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

下载本文档

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

文档简介

关系数据库基本原理 (1)关系模型与关系代数,王传栋 南京邮电大学计算机学院,内容与要求,知识点 (1)知识点一:关系模型概述 (2)知识点二:关系数据结构 (3)知识点三:关系代数理论 (4)知识点四:关系数据库标准语言SQL (5)知识点五:关系数据库的规范化理论 实验1 SQL语言的应用 教学基本要求 了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,掌握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原理与过程。,引言,关系模型是当前的主流逻辑数据模型 由IBM公司的高级研究员E.F.Codd于1970年提出 应用广泛的原因: 单一的数据建模概念 坚实的数学理论基础 提供高级接口:数据库语言SQL,关系模型的基本概念,关系模型(Relational Model) 用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型 理解 用二维表格(table)表示实体集及其间联系, 用关键码(或键)进行数据导航 关系模型是逻辑模型的一种,也具有三个要素 关系数据结构 关系操作 数据完整性约束规则,关系模型的基本概念,示例,关系模型的基本概念,关系数据结构:二维表 字段称为属性,也称为列(column) 反映事物的一个特征,每个字段都有字段名和字段值 属性的取值范围(所有可取值的集合) 称为属性域Domain 大写字母A、B、C、 表示单个属性;大写字母 、X、Y、Z 表示属性集 小写字母a、b、c、 表示属性值 记录称为元组(tuple),也称为行(row) 记录类型称为关系模式,由模式名和属性列表组成 元组集合称为关系(relation)或实例(instance),也称为表格,关系模型的基本概念,关系数据结构:二维表 元组用关键字(Key word简称键)来标识 属性个数称为元数(Arity),也称为目 元组个数为基数(Cardinality),关系模型的基本概念,关键码(key,简称键) 由一个或多个属性组成。在实际使用中,有下列几种键 1)超键(Super Key) 其值能唯一地决定其它所有属性的值的属性集 2)候选键(Candidate Key) 不含多余属性的超键 其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组 3)主键(Primary Key) 用户选作元组标识的候选键,称为主键(PK),简称键,关系模型的基本概念,关键码(key,简称键) 4)候补键(Alternate Key) 主键之外的候选键 5)全键 :由关系的所有属性构成的主键 6)外键(Foreign Key,FK) 如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键 不是本关系的键,却引用了其它关系或本关系的键的属性或属性组 7)主属性与非主属性,2.1 关系模型的基本概念,示例 关系模式STUDENT(学号,姓名,性别,出生日期,籍贯) 假设:不允许学生重名,问: (学号,姓名,性别,出生日期,籍贯)? (学号,性别)? (学号,姓名)? (学号)? (姓名)? 哪些是主属性?,关系模型的基本概念,关系的定义和性质 关系是一个属性数目相同的元组的集合 有限关系 在关系模型中,关系的规范性限制: 1)关系中每一个属性值都是不可分解的(原子的) 2)关系中不允许出现重复元组(即不允许出现相同的元组) 3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序 注:关系中元组的排列是有序的,取决于索引 4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序,关系模型的基本概念,关系模型的完整性规则 实体完整性规则(entity integrity rule) 关系内的约束 每个关系都应有一个主键 每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL) 否则,主键值就起不了惟一标识元组的作用,关系模型的基本概念,关系模型的完整性规则 实体完整性规则(entity integrity rule) 例如,关系模型的基本概念,关系模型的完整性规则 参照完整性规则(reference integrity rule) 不同关系或同一关系的不同元组间的约束 参照完整性规则的形式定义 如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值 规则的实质:不允许引用不存在的实体 在上述形式定义中 关系模式R1的关系称为“参照关系”,也称“主表”、“父表” 关系模式R2的关系称为“依赖关系”,也称“副表”、“子表”,关系模型的基本概念,关系模型的完整性规则 参照完整性规则(reference integrity rule) 规则在具体使用时,有三点变通: 外键和相应主键可以不同名,只要定义在相同值域上即可 R1和R2可以是不同关系模式,也可以是同一个关系模式 同一个关系模式中,表示了同一个关系中不同元组之间的联系 外键值是否允许空,应视具体问题而定 当外键属性是主键的组成成分时,不允许为空,关系模型的基本概念,关系模型的完整性规则 参照完整性规则(reference integrity rule) 示例,关系模型的基本概念,关系模型的完整性规则 用户定义的完整性规则 和数据的具体内容有关的约束 构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明 CHECK()子句、触发器、断言、过程 说明 各种DBMS产品对完整性约束的支持程度不同 数据库中完整性约束检查,由DBMS实现对DB进行更新 (I/D/U)操作时检查,保证数据与现实世界的一致性,关系模型的基本概念,关系模型的完整性规则 用户定义的完整性规则 示例1,关系模型的基本概念,关系模型的完整性规则 用户定义的完整性规则 示例2,关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 关系模式 记录类型称为关系模式 关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图 是对数据的特征描述,不涉及物理存储方面的描述 由数据定义语言(DDL)实现 定义模式名、属性名、值域、模式主键 定义时,模式名和属性名一般都用英文单词表示,关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 关系模式,关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 子模式 是用户所用到的局部数据的描述 构建子模式时,需要指出数据与关系模式中相应数据的联系 由数据定义语言(DDL)实现 定义时需要考虑用户对数据的操作权限 对子模式的操作(如插入、修改、删除)是受限的,关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 子模式 例如 构建成绩子模式,要求显示学号、姓名、课程号和成绩,G(S#,SNAME,C#,SCORE),关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 子模式,关系模型的基本概念,关系模型的三层体系结构 关系模型也遵循数据库的三级体系结构 存储模式 在有些DBMS中,关系存储是作为文件看待的 每个元组就是一个记录 由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现 如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序) 可对任意的属性集建立辅助索引,关系模型的基本概念,关系模型的形式定义和优点 关系模型的三个要素 1)关系数据结构 关系,二维表 数据库中全部数据及其相互联系都被组织成“关系” 2)关系操作 一组完备的关系运算,支持对数据库的各种操作 关系运算分成关系代数、关系演算和关系逻辑等三类 3)数据完整性约束规则 实体完整性、参照完整性和用户自定义的完整性,关系模型的基本概念,关系模型的形式定义和优点 关系模型的优点 1)单一的数据结构形式,具有高度的简明性和精确性 2)逻辑结构和相应的操作,完全独立于数据存储方式 具有高度的数据独立性 3)坚实的数学基础 关系运算的完备性和规范化设计理论 4)数据库技术的基础 关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便,关系模型的基本概念,关系查询语言和关系运算 数据库语言SQL分为:DDL,DML、QL和DCL 数据操纵语言DML,描述插入、删除、修改等操作 查询语言QL,描述用户的各种检索要求 理论基础是“关系运算理论”,分为3部分: 1)关系代数语言 2)关系演算语言 3)关系逻辑语言,关系代数,五个基本操作 并(Union) 前提 相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样) 定义 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,基数为n RSt | t trR tsS RS的元数为r + s,基数mn 参与运算的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) 前提 相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样) 定义 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 (、),关系代数,四个组合操作 连接(join) 示例 1)连接: R S, 或 R S 2)等值连接: R S,或 R S 3)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) 计算RS 2) 选择:在RS中,挑选满足公共属性相等的元组 3) 投影:在RS中,去掉冗余属性S.A1, S.Ak,关系代数,四个组合操作 自然连接(natural join) 示例 R S A, R.B, R.C, D (R.B = S.B R.C = S.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,关系代数,四个组合操作 除法(division) 示例,关系代数,关系代数运算的应用实例 关系代数表达式 五个基本操作的有限次复合的式子 表达式的运算结果仍是一个关系 用关系代数表达式表示各种数据查询操作,关系代数,关系代数运算的应用实例 关系代数表达式 示例,关系代数,关系代数运算的应用实例 1)检索学习课程号为C2课程的学生学号与成绩 SNO,Grade(CNO = C2(SC) 1,3(2 = C2(SC) CNO = C2 ( SNO,Grade (SC) 2 = C2 ( 1,3 (SC),关系代数,关系代数运算的应用实例 1)检索学习课程号为C2课程的学生学号与成绩 SNO,Grade(CNO = C2(SC) CNO = C2 ( SNO,Grade (SC),对应的查询: Select Sno, Grade From SC Where Cno=C2 ;,关系代数,关系代数运算的应用实例 2)检索学习课程号为C2的学生学号与姓名 SNO,SNAME(CNO = C2(S SC) 查询涉及到两个关系S与SC,先要对这两个关系进行自然连接操作,然后再执行选择和投影操作,关系代数,关系代数运算的应用实例 2)检索学习课程号为C2的学生学号与姓名 SNO,SNAME(CNO = C2(S SC),关系代数,关系代数运算的应用实例 2)检索学习课程号为C2的学生学号与姓名 SNO,SNAME(CNO = C2(S SC),对应的查询: Select SNO,SNAME From S, SC Where S.Sno=SC.Sno and Cno=C2 ;,关系代数,关系代数运算的应用实例 3)检索至少选修LIU老师所授课程一门课程的学 生学号与姓名 SNO,SNAME(TNAME = LIU(SSCCT),对应的查询: Select S.Sno, Sname From S, SC, C, T Where Tname=LIU and S.Sno= SC.Sno and SC.Cno=C.Cno and C.TNO=T.Tno ;,关系代数,关系代数运算的应用实例 4)检索选修课程号为C2或C4的学生学号 SNO(CNO = C2 CNO = C4(SC),对应的查询2: Select Sno From SC Where Cno in (C2, C4) ;,对应的查询1: Select Sno From SC Where Cno = C2 or Cno = C4 ;,对应的查询3: Select Sno From SC Where Cno = SOME(C2, C4) ;,关系代数运算的应用实例 5)检索至少选修课程号为C2和C4的学生学号 SNO(CNO = C2 CNO = C4(SC),关系代数,关系代数,关系代数运算的应用实例 5)检索至少选修课程号为C2和C4的学生学号 1(1 = 4 2 = C2 5 = C4(SCSC),对应的查询: Select X.Sno From SC as X, SC as Y Where 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, Age From S Where Sno not in ( Select Sno From SC Where Cno=C2 ) ;,关系代数,关系代数运算的应用实例 7)检索学习全部课程的学生姓名 SNAME(S (SNO,CNO(SC) CNO(C),关系代数,关系代数运算的应用实例 7)检索学习全部课程的学生姓名 投影出所有学生的选课情况 SNO,CNO

温馨提示

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

评论

0/150

提交评论