数据库领域中模式模式匹配
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库领域中的模式及模式匹配数据库领域模式模式匹配
一、模式
为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的体系结构,模式是通过某些数据结构连接起来的数据成员集合,是数据成员的逻辑级视图。
数据库领域公认的标准体系结构是三级模式结构,它包括外模式、模式和内模式。
1.外模式
外模式又称子模式,对应于用户级。
它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。
外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。
用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(data manipulation language,dml)对这些数据记录进行描述和定义。
外模式反映了数据库的用户观。
2.模式
模式又称概念模式或逻辑模式,对应于概念级。
它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。
它是由数据库管理系统提供的
数据模式描述语言(data description language,ddl)来描述、定义的,体现、反映了数据库系统的整体观。
3.内模式
内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式与物理结构,对应着实际存储在外存储介质上的数据库。
内模式由内模式描述语言来描述、定义,它是数据库的存储观。
在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式、描述数据库逻辑结构的模式,也是惟一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是惟一的,也不可能是惟一的。
总而言之,一句话,外模式对应的是用户看到的信息,例如视图;模式是一个全局的逻辑视图,如基本表;内模式是对应的存储结构,例如表的存储文件。
数据库的三级模式是数据库在三个级别(层次)上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。
实际上,对于一个数据库系统而言,物理级数据库是客观存在的,它是进行数据库操作的基础,概念级数据库中不过是物理数据库的一种逻辑的、抽象的描述(即模式),用户级数据库则是用户与数据库的接口,它是概念级数据库的一个子集(外模
式)。
用户应用程序根据外模式进行数据操作,通过外模式与模式的映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;另一方面,通过模式一内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式—内模式映射,就能保持模式不变,因此应用程序也可以保持不变。
二、模式匹配
模式匹配是在作为输入的模式中有对应语义关系的元素间产生一个映射。
给定两个模式,根据可利用的信息,发现语义对应的模式成员之间正确的映射关系的过程。
模式是通过结构联系的一系列元素的结合,模式匹配是数据交换的核心,以两个模式s、t作为输入,产生匹配对,每个匹配对的一部分元素来自s,另一部分元素来自t,通过匹配表达式指出两部分元素如何关联,例如,模式t中的成员credit_limit_amount(信用额度)与模式s中的成员credit_range存在映射关系credit_limit_amount=credit_range。
模式t中的成员list_price与模式s中的成员price与tax_rate 存在映射关系list_price=price*(1+tax_rate)。
由于准确的语义信息只有模式设计者才能掌握,不能在表达式中完全表达,所以模
式匹配的自动实现是一个难于解决的问题。
目前主要有基于模式内部信息的模式匹配和基于大规模数据和背景知识的模式匹配。
模式匹配的最终目标就是寻找两个或多个模式元素之间的语义上的对应关系。
即给出两个模式s和t,对s中的每个元素s,利用所有可用信息(包括模式信息、数据实例以及用户反馈信息等)在t中找到与s在语义上最匹配的元素。
在很多领域,模式匹配都起着重要的作用,例如web数据源集成、电子简历、数据仓库的装载、数据库设计、站点的建立与管理、基于组件的开发等。
模式匹配的定义从不同的角度有着不同的描述,下面从几个不同的角度分别描述模式匹配的定义:
定义1(解释和非解释的匹配)令mi=match(r(r1,r2…rn)…fm(sm)),其中mi是一个匹配结果,match是一个匹配算法,r是大小为n的一个元模式,s是一个大小为m的目标模式,fi是任意的一个一对一的函数,应用于目标模式中i列的值。
称给定的匹配算法match是一个非解释的匹配,当且仅当在不考虑函数fi时两个匹配的结果m1和m2是相同的。
相反,如果两个结果是不同的,就称为解释的匹配。
定义2(元素匹配和结构匹配)结构匹配算法利用表中列之间的关系,而元素匹配算法仅考虑单一列的特性。
定义3(1∶1的模式匹配)s和t是给定的两个模式,其中,s={s1,s2…sn},t={t1,t2,…tm},对于模式s中的任一元素si,利用
所有有用信息,寻找模式t中与之语义相似度最高的元素tj。
定义4(复杂匹配)给定s和t两个模式,o={o1,o2,…ok}
是一组在一定规则集r的约束下可应用到模式t上的操作集合,对模式s中的每一个元素s,寻找出与之相似度最高的元素t,t可以是t中的一个元素,也可以是由t中的元素在规则r约束下构造的一个规则。
复杂匹配包括1∶n匹配,n∶1匹配和n∶m匹配。
三、模式匹配技术存在的问题
匹配操作研究在一定程度上解决了简单模式匹配中发现的问题,但距其使用还有很大的距离,除了当前的匹配方法不能较好的挖掘语义关系的原因外,还有未充分研究匹配前的预处理,匹配结果的动态维护,自动匹配与用户参与的配合以及复杂模式中的匹配问题等因素。
因此模式匹配在应用中存在以下问题。
1.匹配效率不高,质量较差。
假设模式s有x个实体,m个属性,模式t有y个实体,n个属性,如果仅考虑1∶1的成对属性匹配,至少需要m*n次比对,如果属性较少,则工作量较小,质量较好;如果属性较多,则效率较低且质量较差。
但实际应用中往往是属性和实体很多,此外由此产生的匹配结果将是一个非常巨大的映射集合,人工处理的工作量将是很大的。
实际上,直接成对匹配是没有意义的,因为绝大多数比较计算都发生在语义无关的模式成员之间。
2.重复匹配。
在数据库中,实体之间的联系通常通过主外键表示,因此某些键码属性在多个实体中存在,另外,实际应用中为了方便查询和处理,某些常用的信息可能存在冗余,如果直接匹配会产生大量重复匹配。
3.同名异义的语义冲突匹配。
即名称相同或相似,实际语义不同。
例如,在数据库建设中,数据源s中的实体s1和实体s2都用属性amount描述金额,但s1表示交易类信息,s2表示申请类信息;假设数据库模式s1中,属性amount仅代表交易金额,如果不考虑完整的语义和逻辑分类,直接进行匹配,很可能将s2中的amount 与数据库中的相应属性建立匹配,但实际上它们属于不同的语义背景,毫无关系。
4.复杂匹配关系的处理难度加大。
如前所述,复杂匹配是指模式成员之间的1∶n,n∶1,n∶m的匹配关系,是模式匹配的难点,在模式信息复杂的情况下,直接进行匹配,会产生许多无关或重复的对应关系,增加了复杂匹配的处理难度。