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

下载本文档

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

文档简介

1、关系数据库基本原理(1)关系模型与关系代数王传栋南京邮电大学计算机学院内容与要求知识点(1)知识点一:关系模型概述(2)知识点二:关系数据结构(3)知识点三:关系代数理论(4)知识点四:关系数据库标准语言SQL(5)知识点五:关系数据库的规范化理论实验1 SQL语言的应用教学基本要求了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,掌握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原理与过程。引言关系模型是当前的主流逻辑数据模型 由IBM公司的高级研究员E.F.Codd于1970年提出 应用广泛的原因:单一的数据建模

2、概念 坚实的数学理论基础 提供高级接口:数据库语言SQL关系模型的基本概念关系模型(Relational Model)用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型理解用二维表格(table)表示实体集及其间联系,用关键码(或键)进行数据导航关系模型是逻辑模型的一种,也具有三个要素关系数据结构关系操作数据完整性约束规则关系模型的基本概念示例关系模型的基本概念关系数据结构:二维表字段称为属性,也称为列(column)反映事物的一个特征,每个字段都有字段名和字段值属性的取值范围(所有可取值的集合) 称为属性域Domain 大写字母A、B、C、 表示单个属性;大写字母 、X、Y

3、、Z 表示属性集小写字母a、b、c、 表示属性值记录称为元组(tuple),也称为行(row)记录类型称为关系模式,由模式名和属性列表组成元组集合称为关系(relation)或实例(instance),也称为表格关系模型的基本概念关系数据结构:二维表元组用关键字(Key word简称键)来标识属性个数称为元数(Arity),也称为目元组个数为基数(Cardinality)一般术语关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记录3元组3记录4元组4字段值属性值文件关系R(A,B,C,D,E)关系模型的基本概念关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下

4、列几种键1)超键(Super Key)其值能唯一地决定其它所有属性的值的属性集2)候选键(Candidate Key)不含多余属性的超键其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组 3)主键(Primary Key)用户选作元组标识的候选键,称为主键(PK),简称键关系模型的基本概念关键码(key,简称键)4)候补键(Alternate Key)主键之外的候选键5)全键 :由关系的所有属性构成的主键 6)外键(Foreign Key,FK)如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键不是本关系的键,却引用了其它关系或本关系的键的属性或属性组7

5、)主属性与非主属性nSUPPLY(供应商,零件名,工程名) 项目供应mp零件供应商2.1 关系模型的基本概念示例关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)假设:不允许学生重名,问:(学号,姓名,性别,出生日期,籍贯)?(学号,性别)?(学号,姓名)?(学号)?(姓名)?哪些是主属性?关系模型的基本概念关系的定义和性质关系是一个属性数目相同的元组的集合有限关系在关系模型中,关系的规范性限制:1)关系中每一个属性值都是不可分解的(原子的)2)关系中不允许出现重复元组(即不允许出现相同的元组)3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序注:关系中元组的排列是有序的,取决

6、于索引4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序关系模型的基本概念关系模型的完整性规则实体完整性规则(entity integrity rule)关系内的约束每个关系都应有一个主键每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL)否则,主键值就起不了惟一标识元组的作用关系模型的基本概念关系模型的完整性规则实体完整性规则(entity integrity rule)例如关系模型的基本概念关系模型的完整性规则参照完整性规则(reference integrity rule)不同关系或同一关系的不同元组间的约束参照完整性规则的形式定义如果属性集K是关系模式R1的主

7、键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值规则的实质:不允许引用不存在的实体在上述形式定义中关系模式R1的关系称为“参照关系”,也称“主表”、“父表”关系模式R2的关系称为“依赖关系”,也称“副表”、“子表”关系模型的基本概念关系模型的完整性规则参照完整性规则(reference integrity rule)规则在具体使用时,有三点变通:外键和相应主键可以不同名,只要定义在相同值域上即可R1和R2可以是不同关系模式,也可以是同一个关系模式同一个关系模式中,表示了同一个关系中不同元组之间的联系外键值是否允许空,应视具体问题

8、而定当外键属性是主键的组成成分时,不允许为空关系模型的基本概念关系模型的完整性规则参照完整性规则(reference integrity rule)示例关系模型的基本概念关系模型的完整性规则用户定义的完整性规则和数据的具体内容有关的约束构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明CHECK()子句、触发器、断言、过程说明各种DBMS产品对完整性约束的支持程度不同 数据库中完整性约束检查,由DBMS实现对DB进行更新 (I/D/U)操作时检查,保证数据与现实世界的一致性关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例1关系模型的基本概念关系模型的

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

10、的局部数据的描述构建子模式时,需要指出数据与关系模式中相应数据的联系由数据定义语言(DDL)实现定义时需要考虑用户对数据的操作权限对子模式的操作(如插入、修改、删除)是受限的关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子模式例如构建成绩子模式,要求显示学号、姓名、课程号和成绩G(S#,SNAME,C#,SCORE) 关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子模式 用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构存储模式在有些DBM

11、S中,关系存储是作为文件看待的每个元组就是一个记录由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)可对任意的属性集建立辅助索引关系模型的基本概念关系模型的形式定义和优点关系模型的三个要素1)关系数据结构关系,二维表数据库中全部数据及其相互联系都被组织成“关系” 2)关系操作一组完备的关系运算,支持对数据库的各种操作关系运算分成关系代数、关系演算和关系逻辑等三类3)数据完整性约束规则实体完整性、参照完整性和用户自定义的完整性关系模型的基本概念关系模型的形式定义和优点关系模型的优点1)单一的数据结

12、构形式,具有高度的简明性和精确性2)逻辑结构和相应的操作,完全独立于数据存储方式具有高度的数据独立性3)坚实的数学基础关系运算的完备性和规范化设计理论4)数据库技术的基础关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便关系模型的基本概念关系查询语言和关系运算数据库语言SQL分为:DDL,DML、QL和DCL数据操纵语言DML,描述插入、删除、修改等操作查询语言QL,描述用户的各种检索要求理论基础是“关系运算理论”,分为3部分:1)关系代数语言2)关系演算语言3)关系逻辑语言关系代数五个基本操作并(Union)前提相同的关系模式(并兼容:两关系

13、具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的并,是由属于R或属于S的元组构成的集合记为RS形式定义RS t | tR tS,t是元组变量关系代数五个基本操作差(Difference)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的差,是由属于R但不属于S的元组构成的集合记为RS形式定义RS t | tR tS, t是元组变量关系代数五个基本操作笛卡尔积(Cartesian Product)形式定义假设:R的元数r,基数为m;S的元数s,基数为nRSt | t trR tsSRS的元数为r + s,基数mn参与运算

14、的R和S关系,不要求有同名属性若有同名属性,在属性名前加“关系名.”来标注关系代数五个基本操作投影(Projection)对关系进行垂直分割(感兴趣的列),属性可任意排列表示()形式定义i1,im(R)t | t R 性质((R) ) (R)属性表1属性表2关系代数五个基本操作选择(Selection)据条件对关系做水平分割,选取符合条件的元组表示() F(R),F是命题公式 形式定义F(R) t | tR F(t)= true 性质a) (R) ) (R)b) ( ( R) (R)关系代数五个基本操作示例关系代数四个组合操作交(intersection)前提相同的关系模式(并兼容:两关系具有

15、相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的交,是由属于R又属于S的元组构成的集合记为RS形式定义RS ttR tS 推导RS = R-(R-S),或 RS = S-(S-R)关系代数四个组合操作交(intersection)示例关系代数四个组合操作连接(join)形式定义R S tt = trRtsStritsj 推导R S i(r+j) (R S),其中r是关系R的元数表示连接是在(R S)中,挑选第i个分量和第(r+j)个分量满足操作的元组说明:两个关系的同域属性比较连接: , 等值连接: F连接: F F1 Fn,Fk i j (、)关系代数四个组合操作连接(jo

16、in)示例1)连接: R S, 或 R S2)等值连接: R S,或 R S3)F连接: R S, 或 R S关系代数四个组合操作自然连接(natural join)两个关系公共属性上的等值连接推导R S = i1,im (R.A1=S.A1 R.Ak=S.Ak (RS)A1,Ak是关系R和S的公共属性列表i1,im是两个关系属性的并集计算过程 1) 计算RS2) 选择:在RS中,挑选满足公共属性相等的元组3) 投影:在RS中,去掉冗余属性S.A1, S.Ak关系代数四个组合操作自然连接(natural join)示例R S A, R.B, R.C, D (R.B = S.B R.C = S.

17、C (RS)注:参与自然连接运算的2个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。关系代数四个组合操作除法(division)前提R中的属性包含S中的属性 R(X,Y),S(Y) 作用RS是满足下列条件的最大关系,属性由R中那些不出现在S的属性组成,(RS) S的每个元组都在关系R中计算过程: RS = X(R) X(X(R) S ) R)1) T = X (R) ;X为不包含在S中的属性2) W = (TS)R ;计算TS中不在R的元组3) V = X(W)4) RS = TV C D c d e fS A B C D a b c d a b e f a b d e b c

18、e f e d c d e d e fR 关系代数四个组合操作除法(division)示例 b c c d被除关系对除关系有覆盖关系代数关系代数运算的应用实例关系代数表达式五个基本操作的有限次复合的式子表达式的运算结果仍是一个关系用关系代数表达式表示各种数据查询操作关系代数关系代数运算的应用实例关系代数表达式示例关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩 SNO,Grade(CNO = C2(SC)1,3(2 = C2(SC)CNO = C2 ( SNO,Grade (SC)2 = C2 ( 1,3 (SC)关系代数关系代数运算的应用实例1)检索学习课程号为C2

19、课程的学生学号与成绩 SNO,Grade(CNO = C2(SC)CNO = C2 ( SNO,Grade (SC)对应的查询:Select Sno, GradeFrom SCWhere Cno=C2 ;关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名SNO,SNAME(CNO = C2(S SC)查询涉及到两个关系S与SC,先要对这两个关系进行自然连接操作,然后再执行选择和投影操作 关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名SNO,SNAME(CNO = C2(S SC)关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名S

20、NO,SNAME(CNO = C2(S SC)对应的查询:Select SNO,SNAMEFrom S, SCWhere S.Sno=SC.Sno and Cno=C2 ;关系代数关系代数运算的应用实例3)检索至少选修LIU老师所授课程一门课程的学 生学号与姓名 SNO,SNAME(TNAME = LIU(SSCCT)对应的查询:Select S.Sno, SnameFrom S, SC, C, TWhere Tname=LIU and S.Sno= SC.Sno and SC.Cno=C.Cno and C.TNO=T.Tno ;关系代数关系代数运算的应用实例4)检索选修课程号为C2或C4的

21、学生学号SNO(CNO = C2 CNO = C4(SC)对应的查询2:Select Sno From SCWhere Cno in (C2, C4) ;对应的查询1:Select SnoFrom SCWhere Cno = C2 or Cno = C4 ;对应的查询3:Select SnoFrom SCWhere Cno = SOME(C2, C4) ;关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号SNO(CNO = C2 CNO = C4(SC)关系代数关系代数关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号1(1 = 4 2 = C2 5 = C4(

22、SCSC)对应的查询:Select X.SnoFrom SC as X, SC as YWhere X.Sno=Y.Sno and X.Cno=C2 and Y.Cno=C4 ;关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄SNAME,AGE(CNO C2(S SC)连接查询关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄SNAME,AGE(CNO C2(S SC)结论:连接查询不能解决否定问题!关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄SNAME,AGE(S) SNAME,AGE(CNO = C2(S SC)差操作先求出全体学生的姓名和年龄再求出学了C2课的学生的姓名和年龄最后执行差操作-对应的查询:Select Sname, AgeFrom SWhere Sno not in ( Select Sno From SC Where Cno=C2 ) ;关系代数关系代数运算的应用实例7)检索学习全部课程的学生姓名SNAME(S (SNO,CNO(SC) CNO(C)关系代数关系代数运算的应用实例7)检索学习全部课程的学

温馨提示

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

评论

0/150

提交评论