关系数据库基本原理关系模型和关系代数-课件_第1页
关系数据库基本原理关系模型和关系代数-课件_第2页
关系数据库基本原理关系模型和关系代数-课件_第3页
关系数据库基本原理关系模型和关系代数-课件_第4页
关系数据库基本原理关系模型和关系代数-课件_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关系数据库基本原理

(1)关系模型与关系代数王传栋南京邮电大学计算机学院关系数据库基本原理

(1)关系模型与关系代数王传栋内容与要求知识点(1)知识点一:关系模型概述(2)知识点二:关系数据结构(3)知识点三:关系代数理论(4)知识点四:关系数据库标准语言SQL(5)知识点五:关系数据库的规范化理论实验1SQL语言的应用教学基本要求了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,掌握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原理与过程。内容与要求知识点2引言关系模型是当前的主流逻辑数据模型由IBM公司的高级研究员E.F.Codd于1970年提出应用广泛的原因:单一的数据建模概念坚实的数学理论基础提供高级接口:数据库语言SQL引言关系模型是当前的主流逻辑数据模型3关系模型的基本概念关系模型(RelationalModel)用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型理解用二维表格(table)表示实体集及其间联系,用关键码(或键)进行数据导航关系模型是逻辑模型的一种,也具有三个要素关系数据结构关系操作数据完整性约束规则关系模型的基本概念关系模型(RelationalModel4关系模型的基本概念示例关系模型的基本概念示例5关系模型的基本概念关系数据结构:二维表字段称为属性,也称为列(column)反映事物的一个特征,每个字段都有字段名和字段值属性的取值范围(所有可取值的集合)称为属性域Domain大写字母A、B、C、…表示单个属性;大写字母…、X、Y、Z表示属性集小写字母a、b、c、…表示属性值记录称为元组(tuple),也称为行(row)记录类型称为关系模式,由模式名和属性列表组成元组集合称为关系(relation)或实例(instance),也称为表格关系模型的基本概念关系数据结构:二维表6关系模型的基本概念关系数据结构:二维表元组用关键字(Keyword—简称键)来标识属性个数称为元数(Arity),也称为目元组个数为基数(Cardinality)一般术语

关系模型术语字段、数据项 属性记录类型 关系模式记录1 元组1记录2 元组2记录3 元组3记录4 元组4字段值 属性值文件关系R(A,B,C,D,E)关系模型的基本概念关系数据结构:二维表一般术语 关系模型术语7关系模型的基本概念关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键1)超键(SuperKey)其值能唯一地决定其它所有属性的值的属性集2)候选键(CandidateKey)不含多余属性的超键其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组3)主键(PrimaryKey)用户选作元组标识的候选键,称为主键(PK),简称键关系模型的基本概念关键码(key,简称键)8关系模型的基本概念关键码(key,简称键)4)候补键(AlternateKey)主键之外的候选键5)全键:由关系的所有属性构成的主键6)外键(ForeignKey,FK)如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键不是本关系的键,却引用了其它关系或本关系的键的属性或属性组7)主属性与非主属性nSUPPLY(供应商,零件名,工程名)

项目供应mp零件供应商关系模型的基本概念关键码(key,简称键)nSUPPLY(供92.1关系模型的基本概念示例关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)假设:不允许学生重名,问:(学号,姓名,性别,出生日期,籍贯)?(学号,性别)?(学号,姓名)?(学号)?(姓名)?哪些是主属性?2.1关系模型的基本概念示例10关系模型的基本概念关系的定义和性质关系是一个属性数目相同的元组的集合有限关系在关系模型中,关系的规范性限制:1)关系中每一个属性值都是不可分解的(原子的)2)关系中不允许出现重复元组(即不允许出现相同的元组)3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序注:关系中元组的排列是有序的,取决于索引4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序关系模型的基本概念关系的定义和性质11关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)关系内的约束每个关系都应有一个主键每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL)否则,主键值就起不了惟一标识元组的作用关系模型的基本概念关系模型的完整性规则12关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)例如关系模型的基本概念关系模型的完整性规则13关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)不同关系或同一关系的不同元组间的约束参照完整性规则的形式定义如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值规则的实质:不允许引用不存在的实体在上述形式定义中关系模式R1的关系称为“参照关系”,也称“主表”、“父表”关系模式R2的关系称为“依赖关系”,也称“副表”、“子表”关系模型的基本概念关系模型的完整性规则14关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)规则在具体使用时,有三点变通:①外键和相应主键可以不同名,只要定义在相同值域上即可②R1和R2可以是不同关系模式,也可以是同一个关系模式同一个关系模式中,表示了同一个关系中不同元组之间的联系③外键值是否允许空,应视具体问题而定当外键属性是主键的组成成分时,不允许为空关系模型的基本概念关系模型的完整性规则15关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)示例关系模型的基本概念关系模型的完整性规则16关系模型的基本概念关系模型的完整性规则用户定义的完整性规则和数据的具体内容有关的约束构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明CHECK()子句、触发器、断言、过程…说明各种DBMS产品对完整性约束的支持程度不同数据库中完整性约束检查,由DBMS实现对DB进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性关系模型的基本概念关系模型的完整性规则17关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例1关系模型的基本概念关系模型的完整性规则18关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例2关系模型的基本概念关系模型的完整性规则19关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构关系模式记录类型称为关系模式关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图是对数据的特征描述,不涉及物理存储方面的描述由数据定义语言(DDL)实现定义模式名、属性名、值域、模式主键定义时,模式名和属性名一般都用英文单词表示关系模型的基本概念关系模型的三层体系结构20关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构关系模式

用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构用户(应用程序)21关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式是用户所用到的局部数据的描述构建子模式时,需要指出数据与关系模式中相应数据的联系由数据定义语言(DDL)实现定义时需要考虑用户对数据的操作权限对子模式的操作(如插入、修改、删除)是受限的关系模型的基本概念关系模型的三层体系结构22关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式例如构建成绩子模式,要求显示学号、姓名、课程号和成绩G(S#,SNAME,C#,SCORE)

关系模型的基本概念关系模型的三层体系结构G(S#,SNAME23关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式

用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构用户(应用程序)24关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构存储模式在有些DBMS中,关系存储是作为文件看待的每个元组就是一个记录由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)可对任意的属性集建立辅助索引关系模型的基本概念关系模型的三层体系结构25关系模型的基本概念关系模型的形式定义和优点关系模型的三个要素1)关系数据结构关系,二维表数据库中全部数据及其相互联系都被组织成“关系”

2)关系操作一组完备的关系运算,支持对数据库的各种操作关系运算分成关系代数、关系演算和关系逻辑等三类3)数据完整性约束规则实体完整性、参照完整性和用户自定义的完整性关系模型的基本概念关系模型的形式定义和优点26关系模型的基本概念关系模型的形式定义和优点关系模型的优点1)单一的数据结构形式,具有高度的简明性和精确性2)逻辑结构和相应的操作,完全独立于数据存储方式具有高度的数据独立性3)坚实的数学基础关系运算的完备性和规范化设计理论4)数据库技术的基础关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便关系模型的基本概念关系模型的形式定义和优点27关系模型的基本概念关系查询语言和关系运算数据库语言SQL分为:DDL,DML、QL和DCL数据操纵语言DML,描述插入、删除、修改等操作查询语言QL,描述用户的各种检索要求理论基础是“关系运算理论”,分为3部分:1)关系代数语言2)关系演算语言3)关系逻辑语言关系模型的基本概念关系查询语言和关系运算28关系代数五个基本操作并(Union)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的并,是由属于R或属于S的元组构成的集合记为R∪S形式定义R∪S≡{t|t∈R∨t∈S},t是元组变量关系代数五个基本操作29关系代数五个基本操作差(Difference)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的差,是由属于R但不属于S的元组构成的集合记为R-S形式定义R-S≡{t|t∈R∧t∈S},t是元组变量关系代数五个基本操作30关系代数五个基本操作笛卡尔积(CartesianProduct)形式定义假设:R的元数r,基数为m;S的元数s,基数为nR×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}R×S的元数为r+s,基数m×n参与运算的R和S关系,不要求有同名属性若有同名属性,在属性名前加“关系名.”来标注关系代数五个基本操作31关系代数五个基本操作投影(Projection)对关系进行垂直分割(感兴趣的列),属性可任意排列表示Π<属性或序号列表>(<关系名>)形式定义Πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}性质Π<属性表1>(Π<属性表2>(R))≡Π<属性表1>(R) 属性表1∈属性表2关系代数五个基本操作32关系代数五个基本操作选择(Selection)据条件对关系做水平分割,选取符合条件的元组表示σ<选择条件>(<关系名>)→σF(R),F是命题公式形式定义σF(R)={t|t∈R∧F(t)=true}性质a)σ<F1>(σ<F2>(R))≡σ<F2>(σ<F1>(R))b)σ<F1>σ<F2>(

…(σ<Fn>(R)))

≡σ<F1>∧<F2>∧…∧<Fn>(R)关系代数五个基本操作33关系代数五个基本操作示例关系代数五个基本操作34关系代数四个组合操作交(intersection)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的交,是由属于R又属于S的元组构成的集合记为R∩S形式定义R∩S≡{t︱t∈R∧t∈S}推导R∩S=R-(R-S),或R∩S=S-(S-R)关系代数四个组合操作35关系代数四个组合操作交(intersection)示例关系代数四个组合操作36关系代数四个组合操作连接(join)形式定义R⋈

S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}推导R⋈S≡σiθ(r+j)(R×S),其中r是关系R的元数表示连接是在(R×S)中,挑选第i个分量和第(r+j)个分量满足θ操作的元组说明:两个关系的同域属性比较θ连接:θ{,,,,,}等值连接:θ{}F连接:FF1

∧…∧Fn,Fk

iθj(∧、∨、┐)关系代数四个组合操作37关系代数四个组合操作连接(join)示例1)θ连接:R⋈

S,或R⋈

S2)等值连接:R⋈

S,或R⋈

S3)F连接:R⋈

S,或R⋈

S关系代数四个组合操作38关系代数四个组合操作自然连接(naturaljoin)两个关系公共属性上的等值连接推导R⋈S=Πi1,…im

(σR.A1=S.A1∧…∧R.Ak=S.Ak

(R×S))A1,…,Ak是关系R和S的公共属性列表i1,…im是两个关系属性的并集计算过程1)计算R×S2)选择:在R×S中,挑选满足公共属性相等的元组3)投影:在R×S中,去掉冗余属性S.A1,…,S.Ak关系代数四个组合操作39关系代数四个组合操作自然连接(naturaljoin)示例R⋈S≡∏A,R.B,R.C,D(σR.B=S.B∧R.C=S.C(R×S))注:参与自然连接运算的2个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。关系代数四个组合操作40关系代数四个组合操作除法(division)前提R中的属性包含S中的属性R(X,Y),S(Y)作用R÷S是满足下列条件的最大关系,属性由R中那些不出现在S的属性组成,(R÷S)

S的每个元组都在关系R中计算过程:R÷S=ΠX(R)–ΠX((ΠX(R)S)–R)1)T=∏X(R);X为不包含在S中的属性2)W=(T×S)-R;计算T×S中不在R的元组3)V=∏X(W)4)R÷S=T-V关系代数四个组合操作41

C

D

c

d

e

fS→

A

B

C

D

a

b

c

d

a

b

e

f

a

b

d

e

b

c

e

f

e

d

c

d

e

d

e

fR→

关系代数四个组合操作除法(division)示例

bccd被除关系对除关系有覆盖CDcdefS→42关系代数关系代数运算的应用实例关系代数表达式五个基本操作的有限次复合的式子表达式的运算结果仍是一个关系用关系代数表达式表示各种数据查询操作关系代数关系代数运算的应用实例43关系代数关系代数运算的应用实例关系代数表达式示例关系代数关系代数运算的应用实例44关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))Π1,3(σ2='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))σ2='C2'

(Π1,3(SC))关系代数关系代数运算的应用实例45关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))╳σΠΠσ对应的查询:SelectSno,GradeFromSCWhereCno=‘C2’;关系代数关系代数运算的应用实例╳σΠΠσ对应的查询:46关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))查询涉及到两个关系S与SC,先要对这两个关系进行自然连接操作,然后再执行选择和投影操作关系代数关系代数运算的应用实例47关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))⋈关系代数关系代数运算的应用实例⋈48关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))Πσ对应的查询:SelectSNO,SNAMEFromS,SCWhereS.Sno=SC.SnoandCno=‘C2’;关系代数关系代数运算的应用实例Πσ对应的查询:49关系代数关系代数运算的应用实例3)检索至少选修LIU老师所授课程一门课程的学

生学号与姓名ΠSNO,SNAME(σTNAME='LIU'(S⋈SC⋈C⋈T))对应的查询:SelectS.Sno,SnameFromS,SC,C,TWhereTname=‘LIU’andS.Sno=SC.SnoandSC.Cno=C.Cno andC.TNO=T.Tno;关系代数关系代数运算的应用实例对应的查询:50关系代数关系代数运算的应用实例4)检索选修课程号为C2或C4的学生学号ΠSNO(σCNO='C2‘∨CNO='C4'(SC))σΠ对应的查询2:SelectSnoFromSCWhereCnoin(‘C2’,‘C4’);对应的查询1:SelectSnoFromSCWhereCno=‘C2’orCno=‘C4’;对应的查询3:SelectSnoFromSCWhereCno=SOME(‘C2’,‘C4’);关系代数关系代数运算的应用实例σΠ对应的查询2:对应的查询151关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号ΠSNO(σCNO='C2‘∧CNO='C4'(SC))关系代数╳σΠ关系代数运算的应用实例关系代数╳σΠ52关系代数关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号Π1(σ1=4∧2='C2‘∧5='C4'(SC×SC))×对应的查询:SelectX.SnoFromSCasX,SCasYWhereX.Sno=Y.SnoandX.Cno=‘C2’andY.Cno=‘C4’;关系代数关系代数运算的应用实例×对应的查询:53关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(σCNO<>'C2'(S⋈SC))⋈连接查询关系代数关系代数运算的应用实例⋈连接查询54关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(σCNO<>'C2'(S⋈SC))Πσ结论:连接查询不能解决否定问题!关系代数关系代数运算的应用实例Πσ结论:55关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(S)-ΠSNAME,AGE(σCNO='C2‘(S⋈SC))差操作先求出全体学生的姓名和年龄再求出学了C2课的学生的姓名和年龄最后执行差操作-对应的查询:SelectSname,AgeFromSWhereSnonotin( SelectSnoFromSCWhereCno=‘C2’);关系代数关系代数运算的应用实例-对应的查询:56关系代数关系代数运算的应用实例7)检索学习全部课程的学生姓名ΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))ΠΠ÷Π⋈关系代数关系代数运算的应用实例ΠΠ÷Π⋈57关系代数关系代数运算的应用实例7)检索学习全部课程的学生姓名①投影出所有学生的选课情况ΠSNO,CNO(SC)②投影出全部课程的课程号ΠCNO(C)③用除法计算学了全部课程的学生学号集合(临时关系)ΠSNO,CNO(SC)÷ΠCNO(C)④用③得到的关系与S自然联接,最后投影出SNAMEΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))对应的查询:SelectSnameFromSWherenotExists(Select*FromCWherenotExists( Select*FromSC WhereSno=S.SnoandCno=C.Cno));关系代数关系代数运算的应用实例对应的查询:58关系代数关系代数运算的应用实例8)检索所学课程包含学生S3所学课程的学生学号ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(SC))ΠσΠ÷⋈Π?关系代数关系代数运算的应用实例ΠσΠ÷⋈Π?59关系代数关系代数运算的应用实例8)检索所学课程包含学生S3所学课程的学生学号①投影出所有学生的选课情况ΠSNO,CNO(SC)②投影出学生S3所学的全部课程的课程号ΠCNO(σSNO='S3‘(SC))③用除法计算所学课程包含学生S3所学课程的学生学号ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(SC))注③式与S自然连接,投影Π……(S⋈(③))?对应的查询:SelectDistinctSnoFromSCasXWherenotExists(Select*FromSCasYWhereY.Sno=‘S3’andnotExists(Select*FromSCasZWhereSno=X.SnoandCno=Y.Cno));关系代数关系代数运算的应用实例?对应的查询:60关系代数关系代数运算的应用实例总结查询语句的关系代数表达式的一般形式是:Π…(σ…(R×S)) 或者Π…(σ…(R⋈S))先选择,后投影查询涉及到“否定”问题,用减法(差)来解决查询涉及到“全部”问题,用除法来解决关系代数关系代数运算的应用实例61关系数据库基本原理

(1)关系模型与关系代数王传栋南京邮电大学计算机学院关系数据库基本原理

(1)关系模型与关系代数王传栋内容与要求知识点(1)知识点一:关系模型概述(2)知识点二:关系数据结构(3)知识点三:关系代数理论(4)知识点四:关系数据库标准语言SQL(5)知识点五:关系数据库的规范化理论实验1SQL语言的应用教学基本要求了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,掌握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原理与过程。内容与要求知识点63引言关系模型是当前的主流逻辑数据模型由IBM公司的高级研究员E.F.Codd于1970年提出应用广泛的原因:单一的数据建模概念坚实的数学理论基础提供高级接口:数据库语言SQL引言关系模型是当前的主流逻辑数据模型64关系模型的基本概念关系模型(RelationalModel)用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型理解用二维表格(table)表示实体集及其间联系,用关键码(或键)进行数据导航关系模型是逻辑模型的一种,也具有三个要素关系数据结构关系操作数据完整性约束规则关系模型的基本概念关系模型(RelationalModel65关系模型的基本概念示例关系模型的基本概念示例66关系模型的基本概念关系数据结构:二维表字段称为属性,也称为列(column)反映事物的一个特征,每个字段都有字段名和字段值属性的取值范围(所有可取值的集合)称为属性域Domain大写字母A、B、C、…表示单个属性;大写字母…、X、Y、Z表示属性集小写字母a、b、c、…表示属性值记录称为元组(tuple),也称为行(row)记录类型称为关系模式,由模式名和属性列表组成元组集合称为关系(relation)或实例(instance),也称为表格关系模型的基本概念关系数据结构:二维表67关系模型的基本概念关系数据结构:二维表元组用关键字(Keyword—简称键)来标识属性个数称为元数(Arity),也称为目元组个数为基数(Cardinality)一般术语

关系模型术语字段、数据项 属性记录类型 关系模式记录1 元组1记录2 元组2记录3 元组3记录4 元组4字段值 属性值文件关系R(A,B,C,D,E)关系模型的基本概念关系数据结构:二维表一般术语 关系模型术语68关系模型的基本概念关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键1)超键(SuperKey)其值能唯一地决定其它所有属性的值的属性集2)候选键(CandidateKey)不含多余属性的超键其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组3)主键(PrimaryKey)用户选作元组标识的候选键,称为主键(PK),简称键关系模型的基本概念关键码(key,简称键)69关系模型的基本概念关键码(key,简称键)4)候补键(AlternateKey)主键之外的候选键5)全键:由关系的所有属性构成的主键6)外键(ForeignKey,FK)如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键不是本关系的键,却引用了其它关系或本关系的键的属性或属性组7)主属性与非主属性nSUPPLY(供应商,零件名,工程名)

项目供应mp零件供应商关系模型的基本概念关键码(key,简称键)nSUPPLY(供702.1关系模型的基本概念示例关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)假设:不允许学生重名,问:(学号,姓名,性别,出生日期,籍贯)?(学号,性别)?(学号,姓名)?(学号)?(姓名)?哪些是主属性?2.1关系模型的基本概念示例71关系模型的基本概念关系的定义和性质关系是一个属性数目相同的元组的集合有限关系在关系模型中,关系的规范性限制:1)关系中每一个属性值都是不可分解的(原子的)2)关系中不允许出现重复元组(即不允许出现相同的元组)3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序注:关系中元组的排列是有序的,取决于索引4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序关系模型的基本概念关系的定义和性质72关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)关系内的约束每个关系都应有一个主键每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL)否则,主键值就起不了惟一标识元组的作用关系模型的基本概念关系模型的完整性规则73关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)例如关系模型的基本概念关系模型的完整性规则74关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)不同关系或同一关系的不同元组间的约束参照完整性规则的形式定义如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值规则的实质:不允许引用不存在的实体在上述形式定义中关系模式R1的关系称为“参照关系”,也称“主表”、“父表”关系模式R2的关系称为“依赖关系”,也称“副表”、“子表”关系模型的基本概念关系模型的完整性规则75关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)规则在具体使用时,有三点变通:①外键和相应主键可以不同名,只要定义在相同值域上即可②R1和R2可以是不同关系模式,也可以是同一个关系模式同一个关系模式中,表示了同一个关系中不同元组之间的联系③外键值是否允许空,应视具体问题而定当外键属性是主键的组成成分时,不允许为空关系模型的基本概念关系模型的完整性规则76关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)示例关系模型的基本概念关系模型的完整性规则77关系模型的基本概念关系模型的完整性规则用户定义的完整性规则和数据的具体内容有关的约束构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明CHECK()子句、触发器、断言、过程…说明各种DBMS产品对完整性约束的支持程度不同数据库中完整性约束检查,由DBMS实现对DB进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性关系模型的基本概念关系模型的完整性规则78关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例1关系模型的基本概念关系模型的完整性规则79关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例2关系模型的基本概念关系模型的完整性规则80关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构关系模式记录类型称为关系模式关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图是对数据的特征描述,不涉及物理存储方面的描述由数据定义语言(DDL)实现定义模式名、属性名、值域、模式主键定义时,模式名和属性名一般都用英文单词表示关系模型的基本概念关系模型的三层体系结构81关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构关系模式

用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构用户(应用程序)82关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式是用户所用到的局部数据的描述构建子模式时,需要指出数据与关系模式中相应数据的联系由数据定义语言(DDL)实现定义时需要考虑用户对数据的操作权限对子模式的操作(如插入、修改、删除)是受限的关系模型的基本概念关系模型的三层体系结构83关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式例如构建成绩子模式,要求显示学号、姓名、课程号和成绩G(S#,SNAME,C#,SCORE)

关系模型的基本概念关系模型的三层体系结构G(S#,SNAME84关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构子模式

用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构用户(应用程序)85关系模型的基本概念关系模型的三层体系结构

关系模型也遵循数据库的三级体系结构存储模式在有些DBMS中,关系存储是作为文件看待的每个元组就是一个记录由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)可对任意的属性集建立辅助索引关系模型的基本概念关系模型的三层体系结构86关系模型的基本概念关系模型的形式定义和优点关系模型的三个要素1)关系数据结构关系,二维表数据库中全部数据及其相互联系都被组织成“关系”

2)关系操作一组完备的关系运算,支持对数据库的各种操作关系运算分成关系代数、关系演算和关系逻辑等三类3)数据完整性约束规则实体完整性、参照完整性和用户自定义的完整性关系模型的基本概念关系模型的形式定义和优点87关系模型的基本概念关系模型的形式定义和优点关系模型的优点1)单一的数据结构形式,具有高度的简明性和精确性2)逻辑结构和相应的操作,完全独立于数据存储方式具有高度的数据独立性3)坚实的数学基础关系运算的完备性和规范化设计理论4)数据库技术的基础关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便关系模型的基本概念关系模型的形式定义和优点88关系模型的基本概念关系查询语言和关系运算数据库语言SQL分为:DDL,DML、QL和DCL数据操纵语言DML,描述插入、删除、修改等操作查询语言QL,描述用户的各种检索要求理论基础是“关系运算理论”,分为3部分:1)关系代数语言2)关系演算语言3)关系逻辑语言关系模型的基本概念关系查询语言和关系运算89关系代数五个基本操作并(Union)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的并,是由属于R或属于S的元组构成的集合记为R∪S形式定义R∪S≡{t|t∈R∨t∈S},t是元组变量关系代数五个基本操作90关系代数五个基本操作差(Difference)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的差,是由属于R但不属于S的元组构成的集合记为R-S形式定义R-S≡{t|t∈R∧t∈S},t是元组变量关系代数五个基本操作91关系代数五个基本操作笛卡尔积(CartesianProduct)形式定义假设:R的元数r,基数为m;S的元数s,基数为nR×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}R×S的元数为r+s,基数m×n参与运算的R和S关系,不要求有同名属性若有同名属性,在属性名前加“关系名.”来标注关系代数五个基本操作92关系代数五个基本操作投影(Projection)对关系进行垂直分割(感兴趣的列),属性可任意排列表示Π<属性或序号列表>(<关系名>)形式定义Πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}性质Π<属性表1>(Π<属性表2>(R))≡Π<属性表1>(R) 属性表1∈属性表2关系代数五个基本操作93关系代数五个基本操作选择(Selection)据条件对关系做水平分割,选取符合条件的元组表示σ<选择条件>(<关系名>)→σF(R),F是命题公式形式定义σF(R)={t|t∈R∧F(t)=true}性质a)σ<F1>(σ<F2>(R))≡σ<F2>(σ<F1>(R))b)σ<F1>σ<F2>(

…(σ<Fn>(R)))

≡σ<F1>∧<F2>∧…∧<Fn>(R)关系代数五个基本操作94关系代数五个基本操作示例关系代数五个基本操作95关系代数四个组合操作交(intersection)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的交,是由属于R又属于S的元组构成的集合记为R∩S形式定义R∩S≡{t︱t∈R∧t∈S}推导R∩S=R-(R-S),或R∩S=S-(S-R)关系代数四个组合操作96关系代数四个组合操作交(intersection)示例关系代数四个组合操作97关系代数四个组合操作连接(join)形式定义R⋈

S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}推导R⋈S≡σiθ(r+j)(R×S),其中r是关系R的元数表示连接是在(R×S)中,挑选第i个分量和第(r+j)个分量满足θ操作的元组说明:两个关系的同域属性比较θ连接:θ{,,,,,}等值连接:θ{}F连接:FF1

∧…∧Fn,Fk

iθj(∧、∨、┐)关系代数四个组合操作98关系代数四个组合操作连接(join)示例1)θ连接:R⋈

S,或R⋈

S2)等值连接:R⋈

S,或R⋈

S3)F连接:R⋈

S,或R⋈

S关系代数四个组合操作99关系代数四个组合操作自然连接(naturaljoin)两个关系公共属性上的等值连接推导R⋈S=Πi1,…im

(σR.A1=S.A1∧…∧R.Ak=S.Ak

(R×S))A1,…,Ak是关系R和S的公共属性列表i1,…im是两个关系属性的并集计算过程1)计算R×S2)选择:在R×S中,挑选满足公共属性相等的元组3)投影:在R×S中,去掉冗余属性S.A1,…,S.Ak关系代数四个组合操作100关系代数四个组合操作自然连接(naturaljoin)示例R⋈S≡∏A,R.B,R.C,D(σR.B=S.B∧R.C=S.C(R×S))注:参与自然连接运算的2个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。关系代数四个组合操作101关系代数四个组合操作除法(division)前提R中的属性包含S中的属性R(X,Y),S(Y)作用R÷S是满足下列条件的最大关系,属性由R中那些不出现在S的属性组成,(R÷S)

S的每个元组都在关系R中计算过程:R÷S=ΠX(R)–ΠX((ΠX(R)S)–R)1)T=∏X(R);X为不包含在S中的属性2)W=(T×S)-R;计算T×S中不在R的元组3)V=∏X(W)4)R÷S=T-V关系代数四个组合操作102

C

D

c

d

e

fS→

A

B

C

D

a

b

c

d

a

b

e

f

a

b

d

e

b

c

e

f

e

d

c

d

e

d

e

fR→

关系代数四个组合操作除法(division)示例

bccd被除关系对除关系有覆盖CDcdefS→103关系代数关系代数运算的应用实例关系代数表达式五个基本操作的有限次复合的式子表达式的运算结果仍是一个关系用关系代数表达式表示各种数据查询操作关系代数关系代数运算的应用实例104关系代数关系代数运算的应用实例关系代数表达式示例关系代数关系代数运算的应用实例105关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))Π1,3(σ2='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))σ2='C2'

(Π1,3(SC))关系代数关系代数运算的应用实例106关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))╳σΠΠσ对应的查询:SelectSno,GradeFromSCWhereCno=‘C2’;关系代数关系代数运算的应用实例╳σΠΠσ对应的查询:107关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))查询涉及到两个关系S与SC,先要对这两个关系进行自然连接操作,然后再执行选择和投影操作关系代数关系代数运算的应用实例108关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))⋈关系代数关系代数运算的应用实例⋈109关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))Πσ对应的查询:SelectSNO,SNAMEFromS,SCWhereS.Sno=SC.SnoandCno=‘C2’;关系代数关系代数运算的应用实例Πσ对应的查询:110关系代数关系代数运算的应用实例3)检索至少选修LIU老师所授课程一门课程的学

生学号与姓名ΠSNO,SNAME(σTNAME='LIU'(S⋈SC⋈C⋈T))对应的查询:SelectS.Sno,SnameFromS,SC,C,TWhereTname=‘LIU’andS.Sno=SC.SnoandSC.Cno=C.Cno andC.TNO=T.Tno;关系代数关系代数运算的应用实例对应的查询:111关系代数关系代数运算的应用实例4)检索选修课程号为C2或C4的学生学号ΠSNO(σCNO='C2‘∨CNO='C4'(SC))σΠ对应的查询2:SelectSnoFromSCWhereCnoin(‘C2’,‘C4’);对应的查询1:SelectSnoFromSCWhereCno=‘C2’orCno=‘C4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论