数据库规范化理论

2024-10-07

数据库规范化理论(共4篇)

数据库规范化理论 篇1

对于数据库课程的学习, 除了掌握应用型技术外, 还应加强其基础理论的学习, 如关系模型、关系运算理论、关系数据库语言SQL、数据库的规范化理论、数据库设计及数据库实现等知识点。数据库设计的好坏直接影响着实际的应用, 数据库的规范化理论正是用来指导应用系统中数据模式的构建, 即数据库逻辑结构的问题;对于初步的关系模式, 可能存在这样或那样的问题 ( 如数据冗余、插入异常、删除异常等) , 需要利用数据库规范化理论进行规范化, 以逐步消除存在的问题, 从而得到一定规范程度的关系模式。然而对于在目前的教材中及课堂讲授中, 对这部分内容的介绍更多的停留在理论部分的讲述, 大部分学生并没有真正的理解掌握并应用到数据库实践操作中。因此, 如何有效学习数据库规范化理论知识, 并将其应用到数据库技术实践体系中, 构建科学的教学模式, 是当前数据库课程教学改革的重要任务。

一、数据库规范化理论

关系数据库规范化理论的目标是得到一组满足用户需求的关系模式, 旨在设计出一个“好”的关系模式, 这里的“好”指的是数据拥有较少的数据冗余度和操作异常, 以便我们对数据进行高效的管理。

例如, 需要建立一个描述学校教务的数据库, 有学生表student的属性集合U = { Sno, Sname, Sdept, Mname, Cname, Grade} , 其中Sno表示学号、Sname表示学生姓名、Sdept表示所在系、Mname表示系主任姓名、Cno表示课程号、Grade表示成绩;现实世界已知事实的语义: 一个院系有若干学生, 一名学生只属于一个院系; 一个院系只有一名系主任; 一名学生可以选修多门课程, 每门课程有多名学生选修; 每个学生所学的每门课程都有一个成绩。如何判断student是不是一个“好”的关系模式呢? 经分析, 关系模式student有如下问题:

1. 数据冗余

如果一个院系有1000名学生, 而且每名学生大约选修了20门课程, 则院系名称和系主任姓名就要重复出现20000次, 造成了巨大的数据冗余。

2. 插入异常

如果一个院系刚成立, 暂无招生, 或者虽然有学生但尚未安排课程, 按照实体完整性的原则, 就无法把这个院系及系主任的信息录入到数据库。

3. 删除异常

如果某院系的学生全部毕业且无新生的情况下, 我们在删除该院系学生信息的同时, 把这个院系及其系主任的信息也一并删除了。

4. 更新异常

如果某系更换系主任或更换院系名称后, 系统必须修改与该院系相关的每一条记录;若有一条记录中的数据未实时更新, 就会造成数据不一致现象。因此, student不是一个“好”的关系模式。事实上, 数据冗余和操作异常现象产生的根源, 就是由于关系模式中属性间存在着复杂的依赖关系, 这种依赖都称为数据依赖。对于关系模式student ={ Sno, Sname, Sdept, Mname, Cname, Grade} , 其属性关系如图1所示, 由图1可看出, 关系模式student中存在一定的数据依赖, 如学生学号和学生姓名、学生学号和院系名称、院系名称和系主任之间都存在着依赖关系。

关系规范化理论正是用来改造关系模式, 对于“不好”的关系模式, 通过分解关系模式来消除其中不合适的数据依赖, 以解决插入异常、删除异常、更新异常和数据冗余问题; 对于关系模式student, 依据规范化理论的指导原则, 若消除数据冗余、异常等问题, 可将关系模式Student分解为三个关系模式: S ( Sno, Sname, Sdept) 、SC ( Sno, Cname, Grade) 、Dept ( Sdept, Mname) , 可基本解决以上问题。

二、确定理论教学的关键点

数据库规范化理论中, 通常是通过一个关系模式是否属于某一范式 ( Normal Forms, 简记为NF) 来确定其是否解决了数据冗余、操作异常等问题, 是否为一个“好”的模式。范式的种类与数据依赖有着直接的联系, 主要有1NF、2NF、3NF、BCNF等多种。一个低一级范式的关系模式, 通过模式分解 ( 投影运算) 可以转化为若干个高一级范式的关系模式的集合, 这个过程叫做规范化, 关系模式规范化的基本步骤如图2所示。

由图2可知, 在范式的判断中, 主要是对模式中主属性、非主属性、部分函数依赖、完全函数依赖、传递函数依赖、多值依赖的判别。关系模式中, 属于候选键的属性称之为主属性, 反之则为非主属性, 则候选键则成为主属性和非主属性的判断标准, 故候选键的判定是规范化理论的基石知识点。

数据库定义中, 如果关系模式中某一个属性或属性组能够唯一决定关系中其他所有属性的值, 而且其真子集无此性质, 则称这个属性或属性组称为该关系模式的候选键。在很多教学中, 很多教师忽略了候选键判定的重要性, 再加上时间关系, 直接省略掉候选键的规范化计算, 故造成很多学生在应用中判别不清, 跟着感觉走的现象严重。

在关系数据库理论中, 关系模式中属性集的闭包可判断属性是否为候选键。故在设计数据库时, 需要找出不同属性间的函数依赖, 根据这些依赖关系, 计算出关系模式中各属性集的闭包, 进而确定该关系模式的候选键。例如关系模式STC ( SNO, SN, SA, TN, CN, G) , F = { SNO→SN, SNO→SA, ( SNO, CN) →G} , 经过属性集闭包的计算, 得出STC的候选码为 ( SNO, CN, TN) , 该计算结果准确科学, 而不是某人看出来的或者感觉出来的。

三、结束语

数据库规范化理论可有效的消除数据依赖引起的冗余、异常, 在数据库设计中起着重要的作用, 针对于教材中出现的大量定义和概念类的知识点, 我们不能照本宣科地介绍知识点, 而应积极探索教学新方法, 明确教学目标, 变学生被动学习为主动学习, 让学生带着兴趣进入课程的学习, 使理论知识学习和实践操作的结合落到实处, 真正提高课程的教学质量。

摘要:数据库规范化理论是数据库技术中的一个重要的理论基础, 对应用系统的数据库设计起着重要作用。针对其在教学中存在的一些问题, 提出了具体的教学方案, 并结合具体教学案例加以说明。这种教学方法有利于提高课程的教学质量, 有利于提高学生对数据库规范化理论知识的掌握能力。

关键词:数据库,规范化理论,函数依赖,范式

参考文献

[1]王哲, 姜姗.《数据库原理》课程教学改革探讨与实践[J].中国校外教育, 2013, (11) :166-167.

[2]王艳, 沈晓晶, 赵慧娟.计算机专业数据库原理教学体系及教学模式探讨[J].计算机教育, 2012, (2) :54-57.

[3]王珊, 萨师煊.数据库系统概论 (第4版) [M].北京:高等教育出版社, 2006.

时空数据库规范化问题的研究 篇2

对于传统关系数据库,一般用函数依赖、多值依赖和连接依赖表示关系模式满足的属性间固有的约束,文献[1,2,3]中基于它们对关系数据库进行的规范化问题作了大量的研究。

对于时态数据库,文献[4,5,6,7]分别提出了各自的时态数据依赖概念。CS.Jensen在文献[4]中讨论了基于BCDM 模型的时态函数依赖;J.Wijsen在文献[5]中定义了4 种类型的依赖:快照函数依赖(SFDs),动态函数依赖(DFDs),时态函数依赖(TFDs)及间隔依赖(IDs);XS.Wang在文献[6]讨论了具有多时间粒度的时态数据库的逻辑设计问题,定义时态三范式和时态BC范式,并提出了相应的分解算法。鉴于此,文献[7]中J.Wijsen又将其扩充到对复杂对象的约束。基于TFD,XS.Wang提出了时态三范式(T3NF)和时态Boyce-Code范式(TBCNF)的概念,并给出了相关模式分解算法。

有关关系数据库函数依赖以及时态函数依赖的论述见文献[8],对于关系数据库的规范化均有详细的论述。Wang在文献[6]中给出了时态模式及时态函数依赖等相应的描述。基于关系数据库和时态数据库规范化理论的成果,结合文献[6,7,8,9]提出了时空一范式、时空二范式、时空三范式,并对它们的规范化程度的高低次序进行了证明。

1 基本概念

由于时空数据库中引入了时间维和空间维,给时空数据库的设计带来了非常大的困难,在进行时态数据库逻辑设计时,传统关系数据库的一些基础理论需要进行相应的扩展和修改。扩展的核心是时态函数依赖(TFD)。

定义1(时态类型):时态类型是一个从确定的整数(时刻)集合到2R(绝对时间集合)的投影μ,使得对所有确定的整数i,j(i<j),满足:

(1) 若μ(i)≠Φ,μ(j)≠Φ,则μ(i)中的每一个实数小于μ(j)中的所有实数;

(2) 若μ(i)=Φ,则μ(j)=Φ

定义2(细于关系):μ1和μ2是时态类型,如果对每一个确定的整数i,存在整数j满足μ1(i)⊆μ2(j),则称μ1细于μ2,记作μ1≤μ2。

在本文中,经常把μ1(i)⊆μ2(j)描述为:μ2的时刻j覆盖μ1的时刻i。若μν,μv,则称μ严格细于v,记作:μ<v

任何时态类型集相对于细于关系都存在最小下界和最大上界,分别记作μBottom和μTop。它们的定义为:①对每个i>1,μTop(1)=R,μTop(i)=Φ。②对每个i,μBottom(i)=Φ。在不产生二义性情况下,用Top和Bottom分别表示μTop和μBottom。对任意一对时态类型μ1和μ2分别存在一个最大下界和最小上界,分别记作glb(μ1,μ2)和lub(μ1,μ2)。由细于关系的定义可知:μμ;若μ1≤μ2,μ2≤μ1,则μ1=μ2;若μ1≤μ2,μ2≤μ3,则μ1≤μ3。由此可知细于关系是自反的、反对称的、传递的,即对于任何时态类型集T,T对于≤是偏序集。

定义3(集细于关系):{μ1,…,μn}是一个时态类型集,v是一个时态类型。如果对每一个确定的整数i,存在1≤kn及整数j,使得v(i)⊆μk(j),则称v集细于{μ1,…,μn},记作vc{μ1,…,μn}。

空间属性域一般不会作为时空关系的主属性(关键字属性),在函数依赖概念的层次上可以不考虑它的决定作用。因此在研究时空关系的规范化理论时,主要考虑时间属性的作用。

定义4(时空模式与时空模型):一个时空关系模式定义为一个三元组(R,v,μ),其中R是传统的关系模式,v是空间类型,μ是时态类型。相应的时空模块定义为一个四元组(R,v,μ,Ф),Φ是时间窗口函数,是从一个确定的整数(时刻)集合到2Tup(R)的映射(Tup(R)表示R的所有元组的集合),Φ(i)等于在时间μ(i)以及v(i)内有效的元组集合,若μ(i)=Φv(i)=Φ,则Φ(i)=Φ

例1:考虑一含有时间和空间属性的模式BUS看成是时空模式(Bus,Line,Day)的一个时空模型,其中:Bus=<Time(发车时间),Bno(车次),Cname(司机姓名),Wage(司机工资)>,Line为公交线路,Day为时态类型。则表1所示的实例对应的时间窗口函数Φ为:

如果其中Line=<start(始发站),end(终点站)>,A=<火车站,哈尔滨理工大学>则表1所示的关系实例对应的时间窗口函数Φ为:

Φ(3/4/93)={<6:00, 11,张三,1000,A>}

Φ(3/4/93)={<9:00, 12,马六,1500,B>}

Φ(3/5/94)={<6:00, 11,张三,2000,A>}

定义5(逻辑蕴涵):F是STFD集,若每一个满足F的时空模型M都满足STFD:XμY,则称F逻辑蕴涵XμY

定义6(时空关键字):(R,V,μ)是一个时空模式,F是包含R,V中属性的STFD集,属性集XRV,若XμYF逻辑蕴涵,则称X是(R,V,μ)的一个时空超关键字。若对每一个属性AX,X-{A}都不是(R,V,μ)的时空超关键字,则称X是(R,V,μ)的一个时空候选关键字,简称时空码。

包含有时空候选关键字的属性称为时空主属性,反之,不属于任意一个时空候选关键字的属性称为非时空主属性。

定义7(时空函数依赖):设X,YRV上的有限集,μ是时态类型且存在i,使得μ(i)≠ΦX称在时态类型μ上函数决定于YY在时态类型μ上函数依赖于X,记作XμY

显然,时空函数依赖XμY表示:对于任意两个元组t1,t2,若分别使t1,t2有效的时间都被μ的某时刻覆盖,且t1[X]=t2[X],则t1[Y]=t2[Y]。

定义8(闭包):设F是包含RV中属性的STFD集,F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+;X+F={AXA能由F导出},X+F称为属性集X关于函数依赖集F的闭包。

定义9(时空完全函数依赖): 设F是包含RV中属性的STFD集,如果时空函数依赖XμYF+,存在X的真子集X′⊂X,使得X′→μYF+,称Y时空部分依赖于X;若不存在这样的真子集X′,称Y时空完全依赖于X

现在给出STFD的有效和完备的推导规则,它们是Armstrong公理在时空上的扩展。

STFDIR1(自反规则): 若YX,则XμY成立,μ是任意时态类型;

STFDIR2(增广规则):若XμY,则XZμYZ;

STFDIR3(传递规则): 若XμY,YμZ,则XμZ;

STFDIR4(继承规则): 若Xμ1Y,Xμ2Y,…,XμnY,且μc{μ1,…,μn},则XμY

前面三个规则由传统FD直接扩展得出,第四个由集细于关系得出。同传统的函数依赖集一样,时空函数依赖集也存在冗余现象,根据消除异常的程度,可分为各种不同等级的范式。

定义10(时空一范式):一个时空模式(R,V,μ),若它的每个属性都是原子属性,即属性值域中的值是不可再分的最小数据单元,记为ST1NF。

如果某个时空数据库模式的每一个时空模式都属于时空一范式,则称该时空数据库模式属于时空一范式。

定义11(时空二范式):一个时空模式(R,V,μ)是时空二范式,若它是时空一范式,并且每一非时空主属性都完全依赖于它的每一个时空候选关键字。记为ST2NF。

如果某个时空数据库模式的每一个时空模式都属于时空二范式,则称该时空数据库模式属于时空二范式。

定义12(时空三范式):(R,V,μ)为一时空模式,F是包含RV中属性的STFD集。若F逻辑蕴涵的每一个STFD:XvA(XARV, AX,∃i,j使得μ(i)⊆v(j))至少满足以下条件之一,则称(R,μ)是时空第三范式(T3NF)。

(1) A是时空主属性。

(2) X是时空超关键字,并且不存在整数i1,i2(i1≠i2),使得XA∈πu(i1,i2)(F);除非存在i3≠i1,使得XA∈πu(i1,i3)(F),XA∉πu(i1,i2,i3)(F)。

2 相关定理

定理1:STFD推导规则是有效的。

证明:

(1) STFDIR1(自反规则):设XY,对(R,V,μ)中的任一时空关系r中的两个元组t1,t2,若分别使t1,t2有效的时间都被μ的某时刻覆盖,且t1[X]=t2[X],有t1[Y]=t2[Y]。所以XμY成立。自反规则得证。

(2) STFDIR2(增广规则):设XμY,对(R,V,μ)中的任一时空关系r中的两个元组t1,t2,则有t1[X]=t2[X]且t1[Y]=t2[Y]。若t1[XZ]=t2[XZ],则有t1[X]=t2[X]和t1[Z]=t2[Z],所以t1[YZ]=t2[YZ]。增广规则得证。

(3) STFDIR3(传递规则):设XμY,YμZ,对(R,V,μ)中的任一时空关系r的两个元组t1,t2,若t1[X]=t2[X],则有t1[Y]=t2[Y],再由YμZ,有t1[Z]=t2[Z],所以XμZ。传递规则得证。

(4) STFDIR4(继承规则):设Xμ1Y,Xμ2Y,…,XμnY,对(R,V,μ)中若存在时态类型μ使得μc{μ1,…,μn},则XμY。继承规则得证。

引理1:XμY1, Y2,…,Yn,成立的充要条件是XAi成立(i=1,2,…,k)。

定理2:STFD推导规则是完备的。

证明完备性的逆否命题,即若函数依赖XμY不能由F从STFD推导规则导出,那么它必然不为F所蕴含,它的证明分三步。

(1)若VμW成立,且VXF+,则WXF+。

证:因VXF+,所以有XμV成立;于是XμW成立。所以WXF+。

(2)若r不是时空模式上对应的时空关系,记r由{U-XF+}构成。由r的构成可知,V必定是XF+的子集,而W不是XF+的子集,与第(1)步矛盾。所以r必是时空模式上的一个时空关系。

(3)若XμY不能由F从STFD推导规则导出,则Y不是XF+的子集,因此必有Y的子集Y1满足U-XF+,则XYr中不成立,与第(2)步矛盾。

STFD推导规则的有效性和完备性得证。

定理3:任何时空三范式一定是时空二范式。

证明:考察原命题的逆否命题:一个时空模式(R,V,μ)不是时空二范式,则它一定不是时空三范式。

假设时态模式(R,V,μ)不是时空二范式,则根据定义11,存在非主属性对时空码的部分时态依赖。设时空码为X,R中的非时空主属性A部分时空依赖于时空码X,即有X′⊂X,使得X′→μA成立。

可以看出,XμX′,X′→μA,X′→/ μX,(若X′→μX,而X′为时空码X的真子集,根据时空码的定义,X不为时空码,与假设矛盾),且AX(由于A为非时空主属性)。由上可知,时空模式(R,V,μ)中有非时空主属性时空传递依赖于时空码X,即当i1≠i2,XμA∈πu(i1,i2)(F),且不存在i3,i1≠i3,使 XμA∈πu(i1,i3)(F),但XμA∈πu(i1,i2,i3)(F)。故(R,V,μ)不是时空三范式,定理3的逆否命题成立,因此定理3得证。

3 结束语

在关系数据库和时态数据库中,通常用范式这种形式化的方法来进行数据库的规范化,在时空数据库中也是如此。许多研究人员以及学者在关系和时态范式问题上进行了深入的研究,通过把其规范到某种范式级别来达到消除冗余的目的。本文在关系数据库、时态数据库规范化理论的基础上,提出时空函数依赖,时空关键字,时空完全函数依赖的概念,并定义了时空一范式、时空二范式和时空三范式,为解决实际的时空数据库逻辑设计问题开辟了新道路。

参考文献

[1]严云洋,杨民.关系数据库模式中候选码的求解算法[J].现代计算机,1999,6:89-94.

[2]张旭.关系型数据库的规范化[J].武汉工程职业技术学院学报,2002,4:98-105.

[3]马雪英,冯睿.基于函数依赖的模式分解方法[J].计算机应用与软件,2004,4:123-130.

[4]CS.Jensen,Clifford J.A Glossary of temporal database concepts[J].ACM SIGMOD Record,1994,23(1):52-64.

[5]Wijsen J.Design of Temporal Relational Databases Based Dynamic andTemporal Functional Dependencies[J]//Proc of the International Work-shop on Recent Advances in Temporal Databases,1995:61-76.

[6]Wang X S,Bettini C,jajodia S.Logical Design for Temporal Databaseswith Multiple Granularities[J].ACM Transactions on Database System,1997,22(2):115-170.

[7]Wijsen J.Temporal FDs on Complex Objects[J].ACM Transactions onDatabase System,1999,24(1):127-176.

[8]郝忠孝.关系数据库数据理论新进展[M].北京:机械工业出版社,1998.

数据库设计中反规范化技术的应用 篇3

(一)数据库的规范化设计

规范化理论是研究如何将一个不好的关系模式转化为好的关系模式的理论,关系数据库中的关系要满足一定的要求即规范 (约束条件) ,满足不同程度要求的为不同范式,规范化理论把关系应满足的规范要求分为几级,分别是:第一范式 (1NF) ,第二范式 (2NF) ,第三范式 (3NF) ,BCNF范式,4NF, 5NF。范式的等级越高,应满足的约束集条件也越严格,规范的每一级别都依赖于它的前一级别。

数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,从关系模型的角度来看,数据表最好满足3NF最符合标准,这样的设计容易维护。

(二)数据库的反规范

未经规范化的数据库一般都有下述缺点:较大的数据冗余,数据一致性差,数据修改复杂,对表进行插入删除时会产生异常。规范化的作用就在于尽量去除冗余,使数据保持一致,使数据修改简单,除去在表中进行插入删除时产生的异常现象,有时故意保留成非规范化的数据结构,或者规范化以后又反规范了,这样做通常是为了改进性能。

1. 反规范化的必要性

数据库的规范化提高了系统性能,但不是单纯为了规范化而规范化,一个完全规范化的设计并不总能生成最优的性能,特别高范式等级的数据库在网络中不一定有高性能,因为使数据库规范化的方法是把表拆分成相关列最少的表,在进行数据库查询时,通常需要更多的复杂的联结操作,这样查询时就需要用占用较多的CPU资源和输入输出操作,才能查到客户端所需的数据,这会导致复杂度的增加和性能的下降,从而影响查询的速度,因此,有时为了提高某些查询或应用的性能而破坏规范规则,特别在网络环境中,有必要对规范化进行必要的平衡,使系统有最优的性能,提高数据库的网络性能,即反规范。例如:学生收费系统中,有两个表:

收费标准={学号, 收费标准,已收费,收费项目,收费年度}

收费收据={收据序列号,学号,收费日期,摘要信息,收款人}

收据明细={收据序列号,收费项目,缴费金额,费用年度}

从理论上讲,我们可以根据收费收据,无需收费标准中的“已收费”列,统计学生某年度nd的已缴费用通过如下的SQL语句即可得到,即:

SELECT学号, sum (缴费金额)

FROM收费收据, 收据明细

WHERE收费收据.收据序列号=收费收据.收据序列号AND费用年度=@nd

GROUP BY学号

但是,由于学生并非一次性缴清,可能分多次缴款,所以要查询指定学生的欠款情况就复杂,利用这样的数据库模式实现比较困难。若在表“收费标准”中增加”已收费”列,每次收款时对指定学生指定项目指定年度的“已收款”进行累加,这样就十分方便的统计学生的应缴款、已缴款、欠款。用如下的SQL语句即可轻松的完成

Select学号,收费标准, 已收费,Sum (收费标准-已收费)

From收费标准

Group BY学号

另一种情况,在收据表“收费收据”、“收据明细”中,没有学生“姓名”列,只有“学号”列,要查询交费情况学生的姓名,必须与“学生表”连接才能完成。一种特殊情况,如果学生在缴款后,学生改名,此时查询输出的收据信息就和原始的收据信息有差异,这种情况在实际应用中是不允许的。所以,在“收费收据”表中增加一列“姓名”, 这样,保证了收据的原始信息的正确性。

2. 有选择地实现模型的反规范化技术

进行反规范操作,要充分考虑数据的存取需求、表的大小、一些特殊的计算 (例如合计) 、数据的物理存储位置、应用需求特征等。常用的反规范技术是有意识的增加数据的冗余度,特别在网络数据库中适当增加数据的冗余是有好处的。增加冗余分两个层次:一是数据库层,二是表层。

数据库层数据冗余:系统建模无论采用何种体系结构,冗余数据可以数据副本的方式出现,副本的存在使许多应用可以“本地性”,大大减少了网络通信,提高了系统的性能。再有当某一结点出现故障时,由于拷贝副本的存在,系统仍可对此副本操作,而不至于因一处故障而使系统无法使用。

表层数据冗余:一是建立临时表或定义视图以减少频繁出现的多表联结,二是在数据库的设计时仅采用恰当的范式等级,增加冗余列。

(1)增加冗余列

是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如在“教务管理系统中”中,按照规范化的要求,一般有建立如下表

课程={课程号, 课程名称}

教师={教师编号, 教师姓名, }

教学={课程编号, 教师编号, 课时}

在实际应用中,经常检索一门课为“数据库原理”的任课教师姓名、课时等信息,则需要将“课程”表、“教师”和“任课”表的连接查询:采用如下的SQL语句:

Select教师.教师姓名, 教学.课时

from课程, 教师,教学

where教学.教师编号=教师.教师编号and

教学.课程编号=课程.课程号and

课程.课程名称=“C1”

如果在“教学”表中增加一列“教师姓名”就可以减少连接操作了。增加冗余列可以在查询时避免连接操作,但它需要更多的磁盘空间,同时增加了对表维护的工作量。确定是否增加列要视系统的具体情况,要根据查询的频度、表维护的工作量、数据量的大小来确定。

(2)增加派生列

指增加的列来自其它表中的数据,由它们计算生成。它的作用是在查询时减少连接操作,避免使用集函数。

例如在“销售管理系统”中,有三个表:

销售定单={定单编号, 定单日期}

定单明细={定单编号, 产品编号, 数量}

价格表={产品编号, 价格开始执行时间, 价格结束执行时间, 单价}

为了要求计算出一个定单的全部金额,需要做以下的工作:

●找出定单中的所有产品项,每一项对应为产品编号以及该的订购数量。

●对每一个订购产品,使用订购单中的订购日期来找到该产品在下订购单时的价格。

●合计所有计算出的价格。

用户每次查看其定单信息时,都需要涉及这三个表,对该数据模型做如下的修改。增加一派生列“定单金额“。

销售定单={定单编号, 定单日期,定单金额}

采用此方法后,查询一个定单的金额就容易得多,但对“定单”的修改都必须对”定单金额”进行更新,它只适合与不经常对“定单”进行修改的情况下。派生列也具有与冗余列、数据一致性等缺点,在实际应用中,对于具有比较复杂的运算的时候可以采用此方法。

(3)复制副本

在分布式网络数据库中,可以在本地建立相关数据库副本,对于一些常用的数据检索,直接从本地数据库获取。例如“学生成绩登陆与查询系统”中,在教师进行成绩进行登记时,可以先将学生的相关信息在本地建立副本,当教师确认成绩完成登记时,再将数据传输到网络数据库,若传输中有误,可以重新连接网络传输。这样,可以保证数据传输的正确性,以及数据检索的速度。现在许多的“证券分析系统”都采用此方法,将股票相关信息在连接网络时在本地建立副本,以提高数据检索和统计分析的速度。

(4)将过程数据的计算保存在一个本地表中

对于有些查询,可能要经过大量的对不同表格的运算,才能得到结果,这种查询的实际运用中要多次出现,我们可以建立一个副本,将运算的结果存入到副本中,查询时只在副本中查询即可。如在“收费系统中”,要查询“某班各年度的应交款、已交款、欠款情况”,需要做以下的工作:

●确定学生所在的班级

●学生交款情况

●按年度分班统计

如果设置一临时表专门来存放该信息、则完成此查询就方便多了。

班级交款表={班级, 年度, 收费标准, 已缴款}

(5)增加标识列

当一个表需要多个列的组合才能组成主键时,可以在表中合理的增加一列作为主键,唯一标识此表中的记录,一般这一列用的值是一个编号或是时间戳 (timestamp) 。在这种情况下增加列虽然多占了存贮空间,但是在索引中以此列代替大的组合键,从而获得了性能的提高。另外,为了应用程序设计的方便,也常在表中增加标识列,如“在学生收费系统”中,对于“收据表”

收费收据={收据序列号, 学号, 收费日期, 摘要信息,收款人}

可以增加标识列“状态”, 根据不同数据处理的不同业务流程,确定“状态”的值,如状态可以设为“未结帐、结帐、作废”等。这样就方便的表达了收据的状况,对数据的统计分析,也很方便。

(三)结束语

规范化后的表一般都较小,小的表意味着一个数据页中可以包含较多的记录,这样客户端用户就可在同样的时间内获得所需的更多数据记录,从而减少客户端与服务器端的物理输入与输出,减轻网络的负担。数据库的反规范设计可以提高查询性能, 降低连接操作的需求,降低外码和索引的数目,还可能减少表的数目。但相应带来的问题是可能出现数据的完整性问题。因此在做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点。

参考文献

[1]萨师煊.数据库系统概论 (第三版) [M].高等教育出版社, 200.2.

数据库规范化理论 篇4

采用美国国立医学图书馆《医学主题词表(MeSH)》中译本,增强了其与MEDLINE的兼容性还有自身的规范性,对于用户而言,采用专业的医学主题词进行检索,可增强其检索的专指性,提高查准率。

采用中国中医研究院中医药信息研究所出版的《中医药学主题词表》,收录的中医药学主题词较多,对于检索中医药学文献时较有优势。较MEDLINE多了一些诸如中医药疗法、中医疗法、中药疗法、针灸疗法、气功疗法、按摩疗法等具有中医药学特色的副主题词。

提供中英文主题词两种检索入口,并设立了多种入口词,对于不熟悉中国生物医学文献数据库主题词检索功能的用户提供了很大的帮助。

提供主题词/副主题词组配检索与副主题词扩展检索的功能。副主题词用于对主题词的某一特定方面加以限制,强调主题词概念的某些专指方面,使用主题词/副主题词组配检索与副主题词扩展检索功能可以增加检索的查全率与查准率。

2 主题词系统的几个问题分析

2.1 标引深度问题

在中国生物医学文献数据库主题词检索中,我们可发现有关文献主题词标引的深度不够,由于主题词标引深度不够,可能会造成漏检现象。举例来说,分别用中国生物医学文献数据库、MEDLINE系统的主题词检索方法检索1985~2005年间有关"肝肿瘤"的文献,见表1,表2。

从表1,表2可以看出,中国生物医学文献数据库文献的主题词数尽管有逐年增加的趋势,但从与MEDLINE相比可以看出,在标引深度上与MEDLINE有一定的差距[1],而造成标引深度不够的原因大致有下面几种:

2.1.1 标引过粗(1)上位概念代替下位概念,造成越级标引。例:失血性休克的护理体会,数据库中有的文献用了上位主题词"休克"标引,而不是用更为专指的主题词"休克,失血性"。老年期与老年前期冠心病载脂蛋白PA00、A1与血脂观察,库中标"冠状动脉疾病/载脂蛋白类/分析脂类/血液",而在主题词表中.有更专指的主题词"载脂蛋白B类"与"载脂蛋白A1"可用。(2)副主题词标引不到位,以主题词代替了主题词与副主题词的概念组配,尤其是对一些医疗仪器和设备方面的文献标引。例:"自制OLYMPUS胃镜送水系统",数据库中仅标引一个主题词"胃镜检查",而未加副主题词进行限定。"胃镜检查/仪器与设备"才符合原文含义。"氧气湿化瓶消毒方法探讨"。有的仅标"氧吸人疗法"。而未限定在副主题词"仪器与设备"下。

2.1.2 词量不足,不能充分反映文献主题(1)一篇文献论及多个重要概念,仅标出一或两个主题词,有的连文献题目中表述出的含义都未能完全描述出来,过于简化。例:在文献"妊娠与尿道感染192例孕妇中段尿细菌培养结果分析"中,数据库将其标为"产前保健泌尿道感染/微生物学妊娠"。而文章篇名中涉及的"妊娠合并尿路感染"未揭示出来。在文献"急性心肌梗塞PTCA术患者的康复运动方案"中,数据库将其标为"心肌梗塞/康复心率",其手术方法"血管成形术经腔,经皮冠状动脉"却未加标引。(2)一些有检索意义的诊疗技术、方法,在标引中被遗漏。如:"彩色多普勒检测老年人颈动脉硬化的价值探讨",标为"动脉硬化/超声检查颈动脉疾病/超声检查",而诊断方法"彩色多普勒"未加标引。"半月神经节射频热凝与甘油封闭治三叉神经痛",仅标"三叉神经痛/治疗",而治疗手段"射频消融术"与使用药物"甘油"均未标出。(3)中医主题词标引不足。例如:"中药灌肠治疗婴幼穴位埋藏治疗癫痫的临床研究,标为癫痫/穴位疗法"。而中药是什么,穴位埋藏的药物成分是什么都未标明。这样给检索者判读命中文献造成了困难。(4)特征词在数据库中标引问题特征词是一种标识的概念,在标引每一篇文献时都应常规标引。特别是在机械检索中,医学工作者和检索人员能通过特征词进行一些特殊意义的检索限定、集合和排除,因而具有十分重要的作用。作者曾从动物实验、对比研究或年龄等特征词进行限定检查,均不能获得满意结果。可见中国生物医学文献数据库中的特征词标引为薄弱环节,有待完善。

2.2 主题词标引误标、漏标等问题

2.2.1 人工标引的问题中国生物医学文献数据库主题词检索使用了美国国立医学图书馆《医学主题词表(MeSH)》,由于主题词翻译不当可导致主题词误标现象,从而造成相关文献的误检、漏检现象。如"菌斑试验"与"牙菌斑"两个主题词是由专业人员从英文主题词"Plaque Assay"与"Dental Plaque"分别直译出来的,由于数据库相关专业人员将两个英文主题词中的"Plaque"一词均译为"菌斑",这就导致了由于计算机辅助标引或标引人员的疏忽中将含有"菌斑"一词的文献造成错误标引。"菌斑试验"英文主题词为Plaque Assay,由其下的主题词详解可知,"菌斑检测,是一种检测在培养细胞中病毒感染复制的方法。感染细胞孵化期间释放病毒颗粒时就形成一个透亮的溶解区或斑块。在某些病毒的作用下,细胞由于细胞变性作用而死亡;在另一些病毒作用下,细胞没有死亡,但可以通过血液凝集力测定来确定它。有时斑块细胞含有可用免疫荧光测出的病毒抗原。"[2]而牙菌斑的英文主题词为:Dental Plaque,其主题词注释为"一层附着于牙齿的薄膜,经常引起龋齿和牙龈炎。它由从唾液腺分泌的粘蛋白和微生物组成。"显而易见,两者是截然不同的概念。然而,在中国生物医学文献数据库检索"菌斑试验"与"牙菌斑"时,可发现检索出来的文献有重叠,见图1

在检索式中,我们可发现两者的重叠文献有198篇,在这之中可找到如"比较3种牙膏对菌斑、牙龈炎的控制效果"还有"三笑玉洁纯牙膏对牙菌斑清除效果的临床试验"等文献,这些文献均被标上了"菌斑试验",但实际上却与病毒感染完全无关,这其实就是一种误标现象。另外,在"美兰对体外菌斑糖代谢模型产酸代谢的抑制作用"一文中,标引的主题词为"菌斑试验;龋齿/*预防和控制;糖酵解/*药物作用;亚甲蓝/*药理学",这篇文献其实是有关牙科学的一篇文献,文中所提的"菌斑"实际上是"牙菌斑",而由于标引人员没有仔细阅读全文,错将"牙菌斑"标引为了"菌斑试验"。

2.2.2 计算机辅助标引的问题(1)漏标即计算机转词程序没有转换出反映该条文献题录主要涉及内容的主题词。出现此种情况的原因较多,主要有原始文献作者未给出主题词或者较通用的关键词、文献表达内容比较新、关键词-主题词转换词库中尚未收人该词与文献作者使用的词与通用的表达形式不同[3]。例如:数据库中收录有台湾出版的医学期刊,这些期刊文献中有一些医学术语与大陆出版的医学杂志中常见的医学术语的表达形式有所不同,如内窥镜乳突切开术、肾小球肾炎、超音波、颗粒-巨噬细胞族群刺激因子、糖原贮积病Ⅰ型、血管紧缩素转化酶,介白质等等。这些表达方式不同的词汇在标引时经常被遗漏。(2)误标如蛋白主题词蛋白与蛋白质类有本质误转出定向力,而定向力是心理学的概念疾病易感性人员素质常常误转出该词等等。另有一种情况,上位主题词和下位主题词同时被转出,如同时出现肿瘤和肝肿瘤。遇到误标的主题词,人工干预时应将其划去,同时考虑使用其它专指的主题词或者副主题词的概念反映该条文献题录的主要内容,并将有意义的关键词和关键词组补加到转换词库中。(3)混标在"中国生物医学文献数据库"中采用的主题词表是美国国立医学图书馆的《医学主题词表》即MeSH词表以及中国中医研究院中医药信息研究所新版《中医药学主题词表》。中医药学主题词表主题词混合标引是合理的,两个主题词表各具特色,混标可以更好地反映中国生物医学文献的内容,互相补遗。但需注意,在中医药学主题词表与MeSH词表对同一概念的表达有差异时,一般的处理原则为中医药文献用中医药学主题词[4],西医文献用MeSH收录的相关的中药主题词。但对疾病名称的标引通常西医概念更确切,此种情况下,即使是中医药学文献中涉及的疾病名称也可用西医主题词标引。例如有关消渴中医病名及其神经系统病变,可标引为糖尿病神经病变西医病名。

2.3 时间滞后问题

2.3.1 词表更新滞后

中国生物医学文献数据库采用的是MeSH词表,美国国立医学图书馆对MeSH词表每年进行一次修订,修订内容包括新词的增加、旧词的删除以及部分词的更改。MEDLINE每年依照MeSH词表的修订把所用的MeSH词表更新为最新版本。然而,中国生物医学文献数据库却不是对所用的MeSH词表每年更新一次。由于时间的滞后,会导致文献的查全率与查准率的降低。

2.3.2 机标导致的滞后

从1996年开始,中国生物医学文献数据库为了减少时滞,在数据库中加入了一部分预标引数据,这些预标引数据在中国生物医学文献数据库中均用"机标"字样加以标识。中国生物医学文献数据库的机标过程就是通过计算机辅助标引程序将文献记录中有意义的自由词(包括文献作者给出的主题词或者关键词)转变为主题词的过程。而在中国生物医学文献数据库上搜索发表年为2005年的文献,可检索到398055篇文献,但是,其中有135919篇都是机标,机标率为34.1%;而检索2006年的文献,共收录了470785篇,其中315552篇都是机标,机标率为67%;检索2007年的文献,共收录了460043篇,全部都是机标,更令人惊讶的是,在检索1990年的文献时,竟然还有机标文献,可见,中国生物医学文献数据库标引时间滞后问题相当的严重。文献经计算机辅助标引后,如果没有及时进行人工补标,将会给用户带来诸多不便,可能会造成文献查准率与查全率的降低。

3 结语

主题词检索作为中国生物医学文献数据库的一项重要检索功能,其专业性与规范性等优点,得到广大用户的青睐。规范化的中国生物医学文献数据库主题词检索功能主要体现在其标引的规范化上,标引主题词的准确性对检索结果的准确率有着深刻的影响。下面列出关于规范化主题词检索功能的几点建议:

提高标引的专指性,做到适度标引[5],即所标引的主题词概念与原文的实际主题概念基本一致。

标引深度适当。标引深度应反映目前国内外的医学现状和水平;反映各学科的动态和最新的研究课题检索系统中所揭示出来的材料应当是新颖、尖端、全面的,井为检索者所欢迎的。中国生物医学文献数据库作为专业的计算机检索系统,应作到二级标引[6],即不仅要标出文章论述的重点,而且还要揭示文献论述的次要重点,如一些方法、手段、条件等。准确、全面地反映文献主要内容。

加快词表的更新速度,并对计算机预标引的文献进行检查并及时标引出主题词。

增加一些辅助功能:如参照MEDLINE,增加对概念主题词的释义,帮助读者准确选词;如系统在已有的英文主题词指示到中文主题词的功能基础上,可增加由中文主题词指示英文主题词的功能,方便读者在中国生物医学文献数据库和MEDLINE之问进行检索词的转换。系统可增加提示主题词的功能,对于不熟悉主题词的用户,输入错误的主题词时,系统可提示给出类似的主题词供用用户选择。

参考文献

[1]秦东.主题词检索途径CBMdisc和MEDLINE on CD的比较[J].情报检索,2004,,4(9):86~87.

[2]戎文慧,张忠欣,方文,等.CBMdisc数据库主题标引中存在的问题与和几点建议[J].医学图书馆通讯,1998,7(1):60.

[3]诸文雁,任慧玲.CBMdisc数据库计算机辅助标引技术中值得注意的几个问题[J].医学情报工作,2001,22(4):55~56

[4]陈建宏.中医药文献主题词标引存在的若干问题探讨[J].广州中医药大学学报,2001,18(3):287~288.

[5]周潇洒.CBMdisc的主题标引不当与漏检分析[J].广州中医药大学学报,2001,18(3):287~288.

上一篇:公关活动中的社交礼仪下一篇:三维多层螺旋CT