一、关系模型
为什么学习关系模型?
我们可以通过关系模型这种简单的数据结构能够描述出现实世界的实体及实体间的各种联系。
什么是关系模型?
关系模型的基本假定是所有数据都表示为数学上的关系,就是以集合的形式表示。关系模型是采用二维表格结构表达实体类型及实体间联系的数据模型。
关系模型是1970年由E.F.Codd提出的。
它和层次、网状模型相比,有以下特点:
1.数据结构简单(二维表格)
2.扎实的理论基础。
a.关系运算理论
b.关系模式设计理论
几个重要定义
域:
相同的数据类型,又名属性。
笛卡尔积:
一组域D1,D2,D3...Dn的笛卡尔积为:
D1 x D2 x D3 x Dn = {(d1,d2,d3,...,dn) | di∈Di,i=1,2,3...n}
笛卡尔积的每个元素(d1,d2,d3...dn)称做一个n元组,元组的每一个值叫做一个分量。
关系模型(二维表)
关系模型的基本术语共有十三个,它们分别是:
1、关系:一个关系对应着一个二维表,二维表就是关系名。
2、属性和值域:在二维表中的列,称为属性。属性的个数称为关系的元或度。列的值称为属性值;属性值的取值范围为值域。
3、关系模式:在二维表中的行定义,即对关系的描述称为关系模式
4、元组:在二维表中的一行,称为一个元组。
5、分量:元组中的一个属性值
6、键或者码:如果在一个关系中存在这样的一个属性,使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同,即这些属性的值都能够用来唯一标识该关系的元组,则称这些属性为该关系的键或者码。
7、超键或者超码:如果在关系的一个键中移去某个属性,它仍然是这个关系的键,则称这样的键为关系的超键或者超码。
8、候选键或者候选码:如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
9、主键或者主码:在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选键为该关系的主键或者主码。
10、全键或者全码:一个关系模式中的所有属性的集合。
11、主属性和非主属性:关系中包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性为非主属性。
12、外键或者外码:关系中的某个属性虽然不是这个关系的主键,或者只是主键的,但它却是另外一个关系的主键时,则称之为外键或者外码。
13、参照关系与被参照关系:是指以外键相互联系的两个关系,可以相互转化。
二、关系运算
关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除法、外连接等)。
一、传统的集合运算
1、并(UNION) 设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。
2、差(DIFFERENCE) R和S的差是由属于R但不属关系运算组成的集合,运算符为-。记为T=R-S。
3、交(INTERSECTION) R和S的交是由既属于R又属于S的元组组成的集合,运算符为∩。记为T=R∩S。 R∩S=R-(R-S)。
二、选择运算
从关系中找出满足给定条件的那些元组称为选择。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。 在FOXPRO中的短语FOR<条件>和WHILE<条件>均相当于选择运算。
如:LIST FOR 出版单位='高等教育出版社' AND 单价<=20
三、投影运算
从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。在FOXPRO中短语FIELDS<字段1,字段2,…>相当于投影运算。 如: LIST FIELDS 单位,姓名
四、连接运算
连接运算是从两个关系的笛卡尔积中选择属性间满足一定条件的元组。
五、除法运算
在关系代数中,除法运算可理解为笛卡尔积的逆运算。
设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为R÷S。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。
注:部分摘自百度百科