关系模型
1970年E.F.Codd提出的模型
关系模型由关系数据结构、关系操作集合和关系完整性约束3部分组成。关系模型的数据结构非常简单,只包含单一的数据结构:关系。关系用二维表结构来表示各类实体及实体间的联系,二维表由行和列组成。一个关系数据库由多张二维表组成。
关系模型是建立在严格的数学概念基础上的。给定一组域(域是值的集合)D1、D2 、……、Dn,这组域中可以有相同域,则其勒内·笛卡尔乘积 D1 × D2 ×…… × Dn 的子集可以构成一张二维表,称为一个关系,也称作表。n为关系的目或度。表中各列名必须唯一,称为属性名;唯一确定一个元组的属性组称为候选码;若一个关系有多个候选码,则选定其中一个为主码;一个元组中的某一属性值称为一个分量,关系的每一个分量,必须是不可分的数据项。
简介
关系模型是1970年由E. F. Codd提出的。
它和层次、网状模型相比,有以下特点:
1.数据结构简单(二维表格)
2.扎实的理论基础。
a.关系运算理论
b.关系模式设计理论
定义
网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系数据库理论出现于60年代末到70年代初。1970年,IBM的研究员E. F. Codd博士发表《大型共享数据银行的关系模型》一文提出了关系模型的概念。后来Codd又陆续发表多篇文章,奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974年ACM牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。
关系数据模型提供了关系操作的特点和功能要求,但不对DBMS的语言给出具体的语法要求。对关系数据库的操作是高度非过程化的,用户不需要指出特殊的存取路径,路径的选择由DBMS的优化机制来完成。Codd在70年代初期的论文论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。Codd博士也以其对关系数据库的卓越贡献获得了1981年ACM图灵奖。
关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。
基本术语
关系模型的基本术语共有十三个,它们分别是:
1、关系:一个关系对应着一个二维表,二维表就是关系名。
2、属性和值域:在二维表中的列,称为属性。属性的个数称为关系的元或度。列的值称为属性值;属性值的取值范围为值域。
3、关系模式:在二维表中的行定义,即对关系的描述称为关系模式
4、元组:在二维表中的一行,称为一个元组。
5、分量:元组中的一个属性值
6、键或者码:如果在一个关系中存在这样的一个属性,使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同,即这些属性的值都能够用来唯一标识该关系的元组,则称这些属性为该关系的键或者码。
7、超键或者超码:如果在关系的一个键中移去某个属性,它仍然是这个关系的键,则称这样的键为关系的超键或者超码。
8、候选键或者候选码:如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
9、主键或者主码:在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选键为该关系的主键或者主码。
10、全键或者全码:一个关系模式中的所有属性的集合。
11、主属性和非主属性:关系中包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性为非主属性。
12、外键或者外码:关系中的某个属性虽然不是这个关系的主键,或者只是主键的,但它却是另外一个关系的主键时,则称之为外键或者外码。
13、参照关系与被参照关系:是指以外键相互联系的两个关系,可以相互转化。
二维表格
关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模型。关系模式名是R。记录称为元组,元组的集合称为关系或实例。一般用大写字母A、B、C、……表示单个属性,用小写字母表示属性值。关系中属性的个数称为“元数”,元组的个数称为“基数”。例子的关系元数为5,基数为2。有时也称关系为表格,元组为行,属性为列。
键,又称码,由一个或几个属性组成,分为以下几种:
a.超键:如果在关系的一个键中移除某个属性,它仍然是这个关系的键,则这样的键成为超键。
b.候选键:不含多余属性的超键称为候选键。即在候选键中,若要再删除属性,就不是超键了。
c.主键:用户选作元组标识的一个候选键称为主键。一般情况下,键指主键。
关系的定义和性质
关系是个元数为K(K\u003e=1)的元组的集合。
关系是一种规范化的表格,他有以下限制:
a.关系中的每一个属性值都是不可分解的。
b.关系中不允许出现相同的元组。
c.关系中不考虑元组之间的顺序。
d. 元组中属性也是无序的。
关系模式、关系子模式和存储模式
关系模型中,概念模式是关系模式的集合,外模式是关系子模式的集合,内模式是存储模式的集合。
1.关系模式
关系模式实际就是记录类型,包括:模式名、属性名、值域名及模式的主键。他不涉及物理存储方面的描述,只是对数据特性的描述。
2.关系子模式
子模式是用户所用到的那部分数据的描述。除了指出用户的数据外,还应指出模式和子模式之间的对应性。中国。网管联盟
3. 存储模式
关系存储时的基本组织方式是文件,元组是文件中的记录。由于关系模式有键,因此存储一个关系能用散列方法或索引方法实现。
关系模型的三类完整性规则
1.实体完整性规则
这条规则需求关系中元组在组成主键的属性上不能有空值。如有空值,那么主键值就起不了唯一标识元组的作用。
2.参照完整性规则
如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许有两种可能,或为空值,或等于R1关系中某个主键值。
使用时应注意:
a.外键和相对应的主键能不同名,只要定义在相同的值域上即可。
b.R1和R2也能是同一个关系模式,表示了属性之间的联系。
c. 外键值是否允许为空,应视具体问题而定。
3.用户定义的完整性规则
这是针对具体数据的约束条件,由应用环境而定。
关系模型的形式定义
一、三个组成部分:数据结构、数据操作和完整性规则。
1.关系模型的基本数据结构就是关系。
2.关系运算分为关系代数和关系演算。
3.关系模型的三类完整性规则。
二、关系代数
关系数据库的数据操作分为查询和更新两类。查询语句用于各种检索操作,更新操作用于插入、删除和修改等操作。
关系查询语言根据其理论基础的不同分成两大类:
1.关系代数语言:查询操作是以集合操作为基础运算的DML语言。
2.关系演算语言:查询操作是以谓词演算为基础运算的DML语言。
关系代数的五个基本运算
关系代数是以关系为运算对象的一组高级运算的集合。关系定义为元数相同的元组的集合。集合中的元素为元组,关系代数中的操作可分为两类:
传统的集合操作:并、差、交、勒内·笛卡尔积。
扩充的关系操作:投影,选择,联接和自然联接,除。
1.并
设有两个关系R和S具有相同的关系模式,R和S的并是由属于R和S的元组构成的集合,记为R∪S。
注意:R和S的元数相同。中国网管联盟
2.差
设有两个关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。
注意:R和S的元数相同。
3.笛卡尔积
设关系R和S的元数分别为r和s。定义R和S的笛卡尔积是个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。
若R有M个元组,S有n个元组,则R×S 有m×n个元组。
4.选择
从关系中找出满足给定条件的所有元组称为选择。其中的条件是以逻辑表达式给出的,该逻辑表达式的值为真的元组被选取。这是从行的角度进行的运算,即水平方向抽取元组。经过选择运算得到的结果能形成新的关系,其关系模式不变,但其中元组的数目小于或等于原来的关系中的元组的个数,他是原关系的一个子集
记为: δF(R)≡{t?t属于R∧F(t)=true}
5.投影
从关系中挑选若干属性组成的新的关系称为投影。这是从列的角度进行运算。经过投影运算能得到一个新关系,其关系所包含的属性个数往往比原关系少,或属性的排列顺序不同。如果新关系中包含重复元组,则要删除重复元组。中国网管论坛
记为:∏A(R)={t[A] ?t属于R} A为R中的属性列。
例如: ∏3,1(R)
关系代数的四个组合操作
1.交
关系R和S的交是由属于R又属于S的元组构成的集合,记为R∩S。R和S需求定义在相同的关系模式上。
R∩S≡ {t?t属于R∧t属于S},R和S的元数相同。
2.联接
联接有两种:θ联接和F联接(θ是算术比较符,F是公式)。
⑴ θ联接
θ联接是从关系R和S的勒内·笛卡尔积中选取属性值满足某一θ操作的元组,记为:
R?×i θj?S,这里i和j 分别是关系R和S中第 i个、第j个属性的序号。
R?×i θj?S≡ δi θ (r+j)( R×S )
如果θ是等号“=”,该联接操作称为“等值联接”。
⑵F联接
F联接操作是从关系R和S的笛卡尔积中选取属性值满足某一公式F的元组,记为:
R?×F?S,这里的F是形为F1∧F2∧…∧Fn的公式,每一个f都是形为i θj的式子,而i和j 分别是关系R和S中第 i个、第j个属性的序号。
中国网管联盟
3.自然联接
两个关系R和S的自然联接用R?×?S表示。具体计算过程如下:
①计算R×S
②设R和S的公共属性是A1,……,Ak,挑选R×S中满足R .A1=S.A1,……,R.Ak=S.Ak的那些元组
③去掉S.A1,……, S.Ak的这些列。
如果两个关系中没有公共属性,那么其自然联接就转化为笛卡尔积操作。
4.除法
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y和S中的Y能有不同的属性名,但必须出自相同的域集。R和S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性上的投影:元组在X上分量值x的象集YX包含S在Y上投影的集合。
关系代数表达式及其应用实例
在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的结果仍然是个关系。能使用关系代数表达式表示各种数据查询操作。
例题:设教学库中有三个关系:
学生关系S(S#,SNAME,AGE,SEX)
学习关系SC(S#,C#,GRADE)
课程关系C(C#,CNAME,TEACHER)
下面用关系代数表达式表达各个查询语句
1.检索学习课程号为C2的学生学号和成绩。
2.检索学习课程号为C2的学生学号和姓名。
3.检索选修课程名为MATHS的学生学号和姓名。
4.检索选修课程号为C2或C4的学生学号。
5.检索至少选修课程号为C2或C4的学生学号。
6.检索不学C2课的学生姓名有年龄。
7.检索学习全部课程的学生姓名。
1. ∏S#,GRADE(δC#=‘C2’(SC))
或∏1,3(δ2=‘C2’
参考资料
目录
概述
简介
基本术语
二维表格
关系的定义和性质
参考资料