您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 蓝关系模型和关系运算理论2009
1第2章关系模型和关系运算理论2本章重要概念(一)(1)基本概念关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数五个基本操作,四个组合操作,七个扩充操作。3本章重要概念(二)(3)关系演算元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。4本章概要本章先介绍关系模型的基本概念;然后介绍关系运算的三种理论:关系代数、关系演算和关系逻辑。5关系模型和关系运算理论2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系代数表达式的优化2.5关系逻辑62.1关系模型的基本概念基本术语关系的定义和性质关系模型的三类完整性规则ER模型向关系模型的转换规则关系模型的三级体系结构关系模型的形式定义和优点关系查询语言和关系运算返回7基本术语(1)用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(relationalModel)。这里数据导航(datanavigation)是指从已知数据查找未知数据的过程和方法。工号姓名年龄性别工资4001Zhang50M20004002Li40F15004124Liu35M20005018Wang25M1000职工登记表8基本术语在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。记录称为元组(tuple),元组的集合称为关系(relation)或实例(instance)。一般用大写字母A、B、C、…表示单个属性,用大写字母…、X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称呼关系为表或表格,元组为行(row),属性为列(column)。关系中属性个数称为“元数”(arity),元组个数为“基数”(cardinality)。92.1.1基本术语(3)关系模式名是R,关系元数为5,基数为4。RABCDEa1b1c1d1e1a2b2c2d2e2a3b3c3d3e3a4b4c4d4e4一般术语关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记录3元组3记录4元组4字段值属性值关系模型的术语文件关系10基本术语(4)关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。(1)超键(SuperKey)(2)候选键(CandidateKey)(3)主键(PrimaryKey)在职工登记表中,(工号,姓名)是模式的一个超键,但不是候选键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或查找元组的标志,那么称(工号)是主键。(4)外键(ForeignKey)返回11关系的定义和性质关系是一个属性数目相同的元组的集合。在关系模型中,对关系作了下列规范性限制关系中每一个属性值都是不可分解的关系中不允许出现重复元组(即不允许出现相同的元组)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。返回12关系模型的完整性规则(1)实体完整性规则(entityintegrityrule)要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。13关系模型的完整性规则(2)参照完整性规则(referenceintegrityrule)如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值这条规则的实质是“不允许引用不存在的实体”关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。14关系模型的完整性规则(3)下面各种情况说明了参照完整性规则在关系中如何实现的。在关系数据库中有下列两个关系模式:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)这里带线者为主键,带线者为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S#值不允许空。15关系模型的完整性规则(4)设工厂数据库中有两个关系模式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D#值允许空。16关系模型的完整性规则(5)设课程之间有先修、后继连系。模式如下:R(C#,CNAME,PC#)其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#.。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。17关系模型的完整性规则(6)用户定义的完整性规则在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:CHECK(AGEBETWEEN15AND30)返回182.1.4ER模型向关系模型的转换规则(1)ER模型向关系模型的转换,实际上就是把ER图转换成关系模式的集合。规则2.1(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。规则2.2(二元联系类型的转换)①若实体间联系是1:1。②若实体间联系是1:N。③若实体间联系是M:N。192.1.4ER模型向关系模型的转换规则(2)图2.3一对一联系任职年月职称校名地址校长任职学校电话姓名性别年龄11学校(校名,地址,电话,校长名,任职年月)校长(姓名,性别,年龄,职称)202.1.4ER模型向关系模型的转换规则(3)图2.4一对多联系系号系名教师聘用系电话聘期工号姓名性别年龄1N系(系号,系名,电话)教师(工号,姓名,性别,年龄,系号,聘期)212.1.4ER模型向关系模型的转换规则(4)返回图2.5多对多联系学号姓名课程学生年龄成绩课程号课程名教师名选课性别MN学生(学号,姓名,年龄,性别)选课(学号,课程号,成绩)课程(课程号,课程名,教师名)222.1.5关系模型的三级体系结构--关系模式在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。在系统实现时,关系模式和属性的命名一般都用英文单词。譬如图2.5的ER图转换成的关系模式集可用图2.6表示。而图2.7是这个关系模型的三个具体关系。图2.6关系模式集学生关系模式S(S#,SNAME,AGE,SEX)选课关系模式SC(S#,C#,GRADE)课程关系模式C(C#,CNAME,TEACHER)232.1.5关系模型的三级体系结构--子模式子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的连系。例如,用户需要用到子模式G(图2.8)。成绩子模式G(S#,SNAME,C#,GRADE)242.1.5关系模型的三级体系结构--存储模式SCPTRS#C#GRADESS#SNAMEAGESEXPTR·S1C180S1Wang20M··S3C190S2Liu21F··S1C270S3Chen22M··S3C285·S3C395图2.10关系S和SC的环结构•在有些DBMS中,关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属性集建立辅助索引。252.1.6关系模型的形式定义关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。(1)数据结构:数据库中全部数据及其相互连系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。(2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。(3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。262.1.6关系模型的优点与其它数据模型相比,关系模型突出的优点如下:(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。(3)关系模型使数据库的研究建立在比较坚实的数学基础上。(4)关系数据库语言与一阶谓词逻辑的固有内在连系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。返回272.1.7关系查询语言和关系运算关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。关系查询语言根据其理论基础的不同分成三类:(1)关系代数语言。(2)关系演算语言。(3)关系逻辑语言。返回282.2关系代数关系代数的五个基本操作关系代数的四个组合操作关系代数运算的应用实例关系代数的七个扩充操作返回29关系代数的五个基本操作(1)并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下:R∪S≡{t|t∈R∨t∈S},t是元组变量,R和S的元数相同。差(Difference)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下:R-S≡{t|t∈R∧t∈S},R和S的元数相同。30关系代数的五个基本操作(2)笛卡尔积(CartesianProduct)R×S≡{t|t=tr,ts∧tr∈R∧ts∈S}tr、ts中r,s为上标。若R有m个元组,S有n个元组,则R×S有m×n个元组。31关系代数的五个基本操作(2)投影(Projection)(对关系进行垂直分割)πi1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}例如,π3,1(R)表示新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符π的下标处也可以用属性名表示。例如,关系R(A,B,C),么πC,A(R)与π3,1(R)是等价的。322.2.1关系代数的五个基本操作(3)选择(Selection)(据条件对关系做水平分割)σF(R)={t|t∈R∧F(t)=true}σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。33关系代数的五个基本操作(例)有两个关系R和S,(a)、(b)表示R∪S和R-S。(c)表示R×S,此处R和S的属性名相同,就应在属性名前注上相应的关系名,例如R.A、S.A等。图2.13的(d)表示πC,A(R),即π3,1(R)。(e)表示σB=ˊbˊ(R)。ABCABCabCbgadafdafcbd(a)关系R(b)关系S34关系代数的五个基本操作(例)ABCABCR.AR.BR.CS.AS.BS.CCAABCabcabcabcbgacaabcdafcdbabcdaffdcbdcbddafbgadcbgad
本文标题:蓝关系模型和关系运算理论2009
链接地址:https://www.777doc.com/doc-3587871 .html