属性:关系的列名叫属性,如title,在数据库中又名字段。文献综述
关系模式:关系名和其属性集合的组合成为此关系的模式,通常写为Movies (title,year,length, genre)。又名表的结构。
元组:关系中除了属性名所在的一行外,其他的每一行都叫一个元组,也就是一个关系的实体,通常写为(Gone With the Wind,1939,231,drama)。
约束:是指对存储在数据库中的数据具有的约束能力,如键约束,“引用完整性约束”、函数依赖约束等。在本文中将详细介绍键约束和函数依赖约束。
2。2 关系数据库理论
关系数据库设计理论主要用于数据库设计的规范化,能够使人们运用一些原则和条件来检验数据库设计并由此做出一些改进。本节为关系数据库模式设计做理论铺垫,说明一些系统中用到的重要概念和算法。
2。2。1 键的含义及求解
(1)键:
关系型数据库中的数据被允许存储在多个表中,这些表能够依靠“键”的共享来互相联系[5]。
键又名候选键,是关系模式的一种约束。一个关系模式R中的键为一组或多组属性集合组成,需要满足两个条件:一,通过键中的任意一组属性集合可以保证关系模式中的任意两个元组的值在上的取值不同;二,在的真子集中,没有一个能够函数决定R的所有其他属性,即键必须是最小的[6]。例如title和year就是Movies中的一个键,也就是说,没有两部电影的名字和制作年份是相同的。
(2)超键:
一个包含键的属性集合就是超键,即只满足键的定义中的第一个条件的属性集合。3NF、BCNF等的定义需要用到此概念。
(3)键的求解:
对于给定的R及其中成立的函数依赖集,属性全集U,待求解的键集KEY,可将属性分为四类:
L类:只在函数依赖左边出现的属性;
R类:只在函数依赖右边出现的属性;
LR类:在函数依赖两边都出现的属性;
N类:未在函数依赖中出现的属性。
其中L和N类属性一定包含在键中,R类属性一定不在键中,LR类可能包含在键中,键的具体求解方法见下:
首先,求出L、N和LR类属性,求解LN的闭包(见2。2。3),若=U,则LN是关系R中唯一的候选键;
否则,LR的子集D,若=U且LND不包含KEY中的任何一个候选键,则LND为一个新的候选键,则。重复本步骤,直至KEY不再变化时为止[7]。
2。2。2 函数依赖
函数依赖(Functional Dependency,简称FD)是关系上的另外一种约束,与键约束不同的是,它泛化了关系中的“键”的概念,是关系中个属性之间的相互关联和制约的一种形式[8]。
函数依赖指,如果关系R中两个元组在属性上一致,那么它们一定在其他属性上一致,称函数决定。记为。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
若有一个函数依赖,称X为决定因素,若,则此函数依赖为非平凡函数依赖。相应的平凡函数依赖就是,即函数依赖的右边是左边的子集。
如函数依赖: title year -> length genre ,含义是若有两个元组在属性title和year上的值一样,则这两个元组在属性length和genre上的值也一样。这个函数依赖是一个非平凡函数依赖。
2。2。3 闭包的含义及求解
闭包是一个基本的原则,所有的规则都是由它推解出来的,如键、函数依赖集等求解算法中都曾需要多次对某个属性集求其闭包。
(1)闭包的含义: