函数依赖是数据依赖的一种,函数依赖反映了同一关系中属性间一一对应的约束。函数依赖理论是关系的1 NF、2 NF、3 NF和BC NF的基础理论。在理解函数依赖概念时,应当注意以下相关概念及表示。传递函数依赖记作。关系数据库中,凡非规范化的关系必须化成规范化的关系。3 NF是一个可用的关系模式应满足的最低范式。③没有任何属性完全函数依赖于非码的任何一组属性。......
2023-11-24
关系模型十分简单,其基本概念包含以下三个。
第一个是属性的域(domain),它用于说明属性所有合理的取值。
第二个是规范化的关系(relation),它用来定义所有合理的数据记录。
第三个是键(key),它用来维持关系的集合特征。
关系模型建立的数据库是规范化关系的集合,这里的规范化关系可以理解为由同质单一结构的数据记录组成的专门表格。
在有些文献中,数据结构的描述通常被称为模式(schema)。
关系模式由关系名(记作RN)、属性名的有穷集合(A 1,A 2,…,An)(在一个关系模式内,属性名是一义性的)和属性名集合在域集合上的函数映射FRN构成。若属性名A对应域D=F(A),则A的所有属性值都属于D。一个域可以与多个属性名对应。
集合D1,D2,…,Dn的n元数学关系是笛卡儿积D1×D2×…×Dn的一个子集。如果t是该关系的一个元素,则称t为n元组,简称为元组,表示成:
t=〈d1,d2,…,dn〉,di∈Di,1≤i≤n
关系模式R(A 1,A 2,…,An),简称为关系R,其中,R是F(A 1)×F(A 2)×…×F(An)的一个有穷子集,函数F为给属性名分配模式的域。
保持关系R中元组一义性的属性或属性组称为候选键。从R的所有候选键中可以挑选一个作为主键(primary key)。如果某个关系的一个属性(或属性组)与另外一个关系的某个候选键同域,则称为外键。这些相同的域实际上是依据数据的值来表征关系之间联系的重要信息,也是不同关系间运算的前提。在一个关系模式内或不同的关系模式之间,如果属性有相同的域,则这些属性具有可比性或并相容性(union-compatible)。
关系的性质可以定义如下。
(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
(2)不同的列可出自同一个域,其中每一列称为一个属性,不同的属性要赋予不同的属性名。
(3)列是无序的,即列的次序可以任意交换。
(4)任意两个元组不能完全相同。
(5)行是无序的,即行的次序可以任意交换。
(6)分量必须取原子值,即每个分量都必须是不可分的数据项。
直观来说,在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成,所以也俗称为“表”(table)。后面会将关系和表两个词混用。键(key)是表中的某个属性(组),如果它可以唯一地确定一个元组,则称该属性(组)为候选键。若一个关系有多个候选键,则选定其中一个为主键。
1.关系代数
关系代数首先涉及集合运算。传统的集合运算是二目(元)运算,包括并、交、差和广义笛卡儿积四种运算。
设关系R和关系S具有相同的目n(即两个关系都具有n个属性),且相应的属性取自同一个域,即R和S是相容的[1],则四种运算定义如下。①并。关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系,记作R∪S或R UN S。②交。关系R与关系S的交由既属于R又属于S的元组组成,其结果关系仍为n目关系,记作R∩S或R IN S。③差。关系R与关系S的差由属于R而不属于S的所有元组组成,其结果关系仍为n目关系,记作R-S或R DF S。④广义笛卡儿积。n目和m目的关系R与关系S的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,元组的后m列是关系S的一个元组。若R有A1个元组,S有A2个元组,则关系R和关系S的广义笛卡儿积有A1×A 2个元组,记作R×S或R CP S。
还有一些专门的关系运算包括选择、投影、连接、除等。其中,选择和投影是单目(一元)运算。
(1)选择。选择是在关系R中选择满足给定条件的所有元组,记作:
σF(R)={t|t∈R∧F(t)=true},简单记作σF(R)或SLF(R)
其中:F表示选择条件,它是一个逻辑表达式,取逻辑值“真”(true)或“假”(false)。
逻辑表达式F的基本形式为
x1 y1[Φx2 y2]…
其中:表示比较运算符,它可以是“大于”(>)、“大于等于”(≥)、“小于”(<)、“小于等于”(≤)、“等于”(=)或“不等于”(≠);x1、y1等是属性名或常量或简单函数;Φ表示逻辑运算符,它可以是∧(逻辑与)、∨(逻辑或)或(逻辑非)[2];[]表示任选项。
因此,选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。其实,这是从表的行的角度进行的运算。
(2)投影。关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
πA(R)={t[A]|t∈R},简单记作πA(R)或PJA(R)
其中:A为R中的属性集。
投影操作是从表的列的角度进行的运算。投影之后不仅取消了原关系中的某些列,而且可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,因此应取消这些完全相同的冗余行。
(3)连接。连接也记作∞。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:
R∞FS={tr ts|tr∈R∧ts∈S∧tr[A]ts[B]},简单记作R∞FS或R JNF S(www.chuimin.cn)
其中:A和B分别为关系R和关系S上度数相等且可比的属性组;F是一个关系表达式;是比较运算符。连接运算是从关系R和关系S的笛卡儿积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上的值来满足比较关系的元组。
为“=”的连接运算称为等值连接(等连接)。它是从关系R与关系S的笛卡儿积中选取A、B属性值相等的那些元组。即等值连接为
R∞FS={tr ts|tr∈R∧ts∈S∧tr[A]=ts[B]}
(4)除。除法可以用前面几种运算的组合来表达。
除了关系代数还有关系演算。关系演算是以数理逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算和域关系演算。限于篇幅,关系演算后面会讨论,在此不再赘述。
下面讨论关系模型的一个重要性质,即函数依赖性问题。
定义1.1 令R(U)为一个关系模式,U是R的属性集合,X⊆U和Y⊆U是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,且它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→f Y(有时可以简记为X→Y)。
需要说明以下几点。
●函数依赖不是指关系模式R(U)的某个或某些关系实例满足的约束条件,而是指关系R的所有关系实例均要满足的约束条件。
●函数依赖是语义范畴的概念,我们只能根据数据的语义来确定函数依赖。例如,“姓名→f所在系”这个函数依赖只有在没有同名同姓人的条件下才能成立。如果有相同姓名的人,则“所在系”就不再函数依赖于“姓名”了。
●若X→f Y,但Y⊄X,则称X→f Y是非平凡函数依赖。若不特别声明,则我们讨论的都是非平凡函数依赖。
●若X→f Y,则称X为这个函数依赖的决定属性集。
●若X→f Y,并且Y→f X,则它们是自反的,记为X↔Y。
●若Y不函数依赖于X,则记为X→f Y。
定义1.2 在关系模式R(U)中,如果X→f Y,并且对于X的任何一个真子集X′,都有X′→f Y,则称Y完全函数依赖于X,记作X→c Y。若X→f Y,但Y不完全函数依赖于X,称Y部分函数依赖于X,记作X→p Y。
2.关系规范化
关系规范化也是关系模型的一个重要性质。
定义1.3 设K为关系模式R(U)中的属性或属性组合。若K→U,则称K为R的一个候选键。若关系模式有多个候选键,则选定其中一个作为主键,或者称为基键。
主键的属性称为主属性,不包含在任何候选键中的属性称为非主属性。在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系模式的所有属性的组合是这个关系模式的候选键,称为全键。
范式(normal form)是符合某种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。
满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称为1NF。在第一范式的基础上进一步满足一些要求的为第二范式,简称为2NF。其余依此类推。显然,各种范式之间存在联系:
1NF⊆2NF⊆3NF…
通常把某一关系模式R为第n范式简记为R∈n NF。
一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题,解决方法就是对其进行规范化,转换成高级范式。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就称为关系模式的规范化。
规范化的方法有以下两种。
(1)对1NF关系进行分解,消除原关系中非主属性对键的部分函数依赖,将1NF关系转换为若干个2NF关系。
(2)对2NF关系进行分解,消除原关系中非主属性对键的传递函数依赖,从而产生一组3NF关系。
关系模式的规范化是通过对关系模式的分解来实现的,但是把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的。在这些分解方法中,只有保证分解后的关系模式与原关系模式等价的方法才有意义。
下面判断关系模式的一个分解是否与原关系模式等价的两种标准。
(1)分解具有无损连接性。
设关系模式R(U)被分解为若干个关系模式R1(U 1),R2(U 2),…,Rn(Un)(其中U=U 1∪U2∪…∪Un,且不存在Ui⊆Uj,Ri为R在Ui上的投影),若R与R1,R2,…,Rn自然连接的结果相等,则称关系模式R(U)的这个分解具有无损连接性。
(2)分解要保持函数依赖。
设关系模式R(U)被分解为若干个关系模式R1(U 1),R2(U 2),…,Rn(Un)(其中U=U 1∪U 2∪…∪Un,且不存在Ui⊆Uj,Ri为R在Uj上的投影),若R中的函数依赖(F)所逻辑蕴含的函数依赖也由分解得到的某个关系模式Ri中的(Fj)所逻辑蕴含,则称关系模式R(U)的这个分解是保持函数依赖的。
如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。
有关分布式数据库技术的文章
函数依赖是数据依赖的一种,函数依赖反映了同一关系中属性间一一对应的约束。函数依赖理论是关系的1 NF、2 NF、3 NF和BC NF的基础理论。在理解函数依赖概念时,应当注意以下相关概念及表示。传递函数依赖记作。关系数据库中,凡非规范化的关系必须化成规范化的关系。3 NF是一个可用的关系模式应满足的最低范式。③没有任何属性完全函数依赖于非码的任何一组属性。......
2023-11-24
表7-4常用键的形式及规定标记续表图7-24普通平键的装配图常用键在装配图中的画法分别如图7-24、图7-25、图7-26所示。图7-27矩形花键轴的画法和尺寸标注图7-28矩形花键孔的画法和尺寸标注花键孔在平行于花键轴线的投影面的剖视图中,大径及小径均用粗实线绘制,并用局部视图画出一部分或全部键形,如图7-28所示。花键连接用剖视图表示时,其连接部分按外花键的画法绘制,如图7-29所示。......
2023-06-28
要想消除此类问题,需要研究多值依赖及相关的范式理论。图2—1JPW数据实例表2—3JPW的一个关系2.多值依赖的定义和性质定义2-8:设有关系模式R,U是属性集,X、Y是U的子集。由多值依赖的定义可知,在上述的JPW关系模式中:产品→→零件;零件→→工序。函数依赖和多值依赖是两种最重要的数据依赖。......
2023-11-24
前面我们证明了在区域D内的解析函数,其导数仍为D内的解析函数,下面我们用这个结论来研究解析函数与调和函数的关系.定义1 若φ(x,y)在平面区域D内有二阶连续偏导数,并且满足拉普拉斯(Laplace)方程则称φ=φ(x,y)在D内为调和函数.引入记号称为Laplace算子,则式(3.5.1)可简记为△φ=0.定理1 若函数f(z)=u(x,y)+iv(x,y)在区域D内解析,则u=u(x,y)和v......
2023-10-30
图2.1.1 关系的基本概念 关系类型有两种类型的关系:● 等式——使等式左边的一个参数等于右边的表达式。进入关系操作界面要进入关系操作界面,可选择下拉菜单命令,此时系统弹出图2.1.2所示的“关系”对话框,可在区域指定要查看其中关系的对象的类型,然后选取某个对象。图2.1.2 “关系”对话框● ——访问元件中的关系。......
2023-06-20
分解是关系规范化采用的主要手段,分解后的关系可以自然连接将关系合并。连接依赖是有关分解和自然连接的理论,第五范式是有关如何消除子关系的插入和删除异常的理论。、xn上具有n目连接依赖。例如,设关系模式SPJ,其中SNO表示供应者号,PNO表示零件号,JNO表示项目号。因为多值依赖是连接依赖的特殊情况,所以任何5 NF的关系自然也都是4 NF的关系。......
2023-11-24
模型环境定义了各行为主体的活动空间,这些活动主要包括两个方面,其一是与环境的互动,其二是行为主体之间的互动。目前,已有许多扩展模块被正式内嵌入NetLogo的主程序。采用真实地图作为模型的空间环境,其最突出的优势就是能够使模型用户非常准确地定位各个行为主体在真实世界中的具体位置。因此,这就需要对该模型空间的比例尺作出合理规定。表5.3列出了每一个子集所代表的意义及其与模型运行之间的关系。......
2023-08-10
相关推荐