安全DB10chap3关系模型与关系代数(20120914).pptx_第1页
安全DB10chap3关系模型与关系代数(20120914).pptx_第2页
安全DB10chap3关系模型与关系代数(20120914).pptx_第3页
安全DB10chap3关系模型与关系代数(20120914).pptx_第4页
安全DB10chap3关系模型与关系代数(20120914).pptx_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

1 关系数据模型的DBMS ORACLESYBASEINFORMIXDB2SQL SERVER 微软 关系数据库是采用关系模型建立的数据库 第3章关系数据模型与关系代数 几种主要的数据模型 层次 网状 关系 面向对象 对象关系等 2 例 学生学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影200109 3 1 1基本概念 关系是命名的二维表 用来描述事物及事物间的联系 3 学号课程号成绩010802c01A010802c03B010801c02B010801c04C010801c01A010901c02D010901c03B 学生选课 4 学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影200109 属性 关系中的各列 属性名即列名 如 学生关系中有学号姓名年龄班级4个属性 属性组 属性集合 5 如 长 20的字符串10 1000间整数日期在1900 1 1 2020 1 1之间 域 属性的取值范围 6 元组 关系中的各行 学生关系有4个元组元组集合其中一个是 010801 张雨 20 0108 元组的分量 元组中与属性相对应的值如 张雨 第1个元组 对应属性 姓名 7 关系有如下性质 5 没有重复的元组6 元组分量不可再分 3 按属性名引用时 属性左右无序4 元组上下无序 1 同属性 列 各分量取自同一域2 不同属性 列 可以取自同一域 8 学号姓名年龄班级010801张雨200108010803陈辰190108010802李新190108010901刘影200109 等价的关系 学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影200109 9 学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影200109 学号姓名班级年龄010801张雨010820010802李新010819010803陈辰010819010901刘影010920 等价的关系 10 学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影200109 学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108 刘影退学 关系是随时间变化的 11 关系的实例 给定的 某一时刻的 关系中元组的集合 关系模式是相对稳定的 关系模式 关系名和关系的属性集合如 学生 学号 姓名 年龄 班级 影片 片名 年份 片长 体裁 12 关系由表头 表体组成表头各属性关系模式非时变表体各元组DB当前状态时变的关系实例 关系模式与关系实例 13 关系数据库就是相关关系组成的集合 关系模型中 数据库设计就是设计一组关系模式 数据库模式 例 供应商 零件数据库有如下3个关系模式 Suppliers Sno Sname State City Parts Pno Pname Color Weight SP Sno Pno Quantity 14 键 码 候选码 关键字 关系中某一属性组能够唯一地标识元组 并且从中去掉任一属性则不能唯一地标识元组 称该属性组为键 E R图中键只涉及实体集 唯一性最小性 3 1 2关于键 Key 15 学号课程号成绩010802c01A010802c03B010801c02B010801c04C010801c01A010901c02D010901c03B 键 学号 课程号 学生选课 16 影片 片名 年份 片长 体裁 键 片名 年份 学生 学号 姓名 年龄 班级 键 学号 17 主键 关系可以有多个键 选一个作为主键 例 学生 学号 姓名 性别 年龄 身份证号 学号和身份证号都是键 选一个作主键 18 超键 关系中某一属性组能够唯一地标识元组只满足唯一性本质 其中包含键 还有哪些超键 键一定是超键 超键一定是键 例 供应商关系Suppliers Sno Sname State City Sno Sname 不是键 是超键 19 关系中全部属性作键 供应 供应商 超市 商品 键 供应商 超市 商品 C T B 课程 教师 参考书 键 课程 教师 参考书 20 3 1 3关系模型的完整性规则 用户定义完整性DBMS提供定义与校验机制 实体完整性 参照完整性一般性规则DBMS自动支持 21 实体完整性 关系R中 任意一个键属性不能取空值 例 影片 片名 年份 片长 体裁 键属性 主属性有空值无法标识元组键唯一性确保唯一标识影片 解释 键唯一决定元组描述实体时 键唯一地标识实体值 22 外键 若关系R的一个属性 或属性组 X 不是R的主键 而是 对应 另一个关系S的主键 则称X为关系R的外键 称R为参照关系 称S为被参照关系 主键 键 23 例 外键不是主键的组成部分 一对多 Employees Eno Ename Sex Age Dno Departments Dno Dname Location Phone Employees中Dno是外键Employees参照关系Departments被参照关系 24 例 外键是主键的组成部分 多对多 SP中Pno是外键SP参照关系Parts被参照关系 Parts Pno Pname Color Weight SP Sno Pno Quantity SP中Sno是外键SP参照关系Suppliers被参照关系 Suppliers Sno Sname State City SP Sno Pno Quantity 25 参照完整性 若关系R包含一个与另一个关系S的主键匹配的外键 则关系R中的该外键的每一非空值必须 等于S中某元组的主键 例 Employees Eno Ename Sex Age Dno Departments Dno Dname Location Phone 外键是将DB中各关系粘连在一起的 粘结剂 26 EmployeesEnoEnameAgeDnoE1张 32D1E2王 45D1E3赵 28D2E4李 36D2E5陈 37D3 DepartmentsDnoDnameLocationPhoneD1管理1号楼3002D2经营5号楼2114 27 用户定义的完整性 与具体应用问题相关的特定的完整性要求 如 年龄 16 24下属的薪金不得高于上司的不得在周末更新数据 出现特殊情况 做一系列操作 28 3 1 4从E R图到关系数据库模式的转换 关系模式R A1 A2 An 数据库模式 一组相关的关系模式 29 Students Sno Sname Sage Sdept Students 3 1 4 1实体集到关系模式的转换 对于每一个非弱实体集 建立一个与之同名具有相同属性集的关系模式 30 Movies title year length genre Stars name address Studios name address 例 P75图4 2 其中3个实体集对应如下关系模式 31 3 1 4 2联系到关系模式的转换对联系建立关系模式联系涉及的每一个实体集的键作为该关系模式的属性 联系的属性作为该关系模式的属性 避免属性重名多对多多对一 32 这方法好吗 其他方法 其中联系Owns对应关系模式 Owns title year studioName 例 33 转换多对一联系的另一种方法 Movies title year length genre studioName 类似 Employees Eno Ename Eage Dno 多的一方外键Departments Dno Dname Phone 注意 此方法 当外键非空或很少出现空值时可取 34 多对多联系Stars In对应关系模式 Stars In title year starName 此关系模式可合并到其他模式中吗 35 转换多对多联系的其他例 学生数据库SC Sno Cno Grade 学生 键 课程 键 联系的属性供应商数据库SP Sno Pno Quantity 供应商 键 零件 键 联系的属性 多对多或带联系的属性单独设计关系模式 36 P93例4 27图4 25 四路联系 37 多路联系Contacts转换为关系模式 Contacts starName title year studioOfStar producingStudio 影星所属公司电影制作公司 多元 路 联系一定单独设计关系模式 注意 属性不能重名 38 一对一 联系转换为关系模式 班级 班号 人数 入学年份 班主任 职工号 姓名 年龄 经验 方案一 将联系独立建表 负责 班号 职工号 39 方案二 一方的 键 存入另一方的关系模式 班级 班号 人数 入学年份 班主任职工号 或 班主任 职工号 姓名 年龄 经验 班号 40 一元递归联系转换为关系模式 例如 职工 职工号 姓名 工龄 直接上级 多对一或一对一独立建关系模式或在实体集对应的关系模式中表达 多对多必须单独建关系模式 41 3 1 4 3处理弱实体集 例 P95图4 28 42 弱实体集CrewsCrews number studioName 几点考虑 1 建立关系模式 包含弱实体集的属性及弱实体集所附属的实体集的键 实体集StudiosStudios name addr 43 描述 双菱形 联系包含弱实体集的键及弱实体集所附属的实体集的键 双菱形 联系Unit ofUnit of number studioName name 2 建立关系模式 44 3 由2 所得是弱实体集对应关系模式的子集 2 可以不做 不必建立Unit of Unit of number studioName name 就是Crews number studioName studioName就是name 45 结论对于弱实体集 建立关系模式 包含弱实体集的属性及弱实体集所附属的实体集的键 对于 双菱形 联系 无须构造关系模式 46 3 1 4 4子类到关系模式的转换 P98例4 31图4 31有关卡通片谋杀片 关系模型中表示 isa 47 length voice weapon genre title year 凶杀片 48 超类实体集 超类实体集Movies Movies title year length genre 建立一个与之同名具有相同属性集的关系模式 49 子类实体集 子类实体集Murder MysteriesMurder Mysteries title year weapon 子类实体集CartoonsCartoons title year 除原有属性外 包含超类实体集的键即通过相同键描述isa联系 50 对联系VoiceVoice starName title year Cartoons是Voice的子集保留Cartoons吗 对于卡通谋杀片配音从voice获得武器从MurderMysteries获得 如果有无声的卡通片 51 结果 Movies title year length genre Cartoons title year Murder Mysteries title year weapon Voice starName title year 考虑有无声卡通片保留Cartoons 52 利用NULL值合并关系表示类的分层结构 卡通谋杀片均为非空 卡通片weapon为NULL 谋杀片voicestarName为NULL Movies title year length genre voicestarName weapon 允许NULL将所有属性放入一张表即使用一个关系 对于P98图4 31 53 弊 大量空值浪费空间影响处理速度 使用空值的利与弊 利 一个关系模式存放所有影片一个元组取出影片所有信息 子类实体集独有的属性的个数 普通影片数量 卡通片数量 谋杀片数量 54 3 1 4 5E R图转换为关系模式 如何寻找关系的键 Stars name address 1 来自实体集的关系的键 就是实体集的键 55 a 多对多 StarIn title year starName 涉及的实体集的键组合成关系模式的键 2 来自联系的关系模式的键二元联系 56 若将Owns合并到Movies如何 b 多对一 Owns tiltle year studioName Movies键 多 的一边的实体集的键作关系模式的键 57 c 一对一 负责 班号 职工号 班号和职工号都可以作键键不唯一 与班级合并为一个关系班级 班号 人数 入学年份 职工号 键同上 58 a 都是多对多涉及的实体集的键组合成关系模式的键 多路联系 多元联系 59 b 有 箭头 所指实体集的键 不出现在该联系的关系模式的键中 60 3 2关系代数关系模型中的运算 关系代数与关系演算 关系代数一种抽象的查询语言 关系模型数据操纵语言的一种传统的表达方式 传统的集合运算专门的关系运算经典的扩展的 61 关系演算以数理逻辑中的谓词演算为基础 非过程化表达做什么不表达怎么做如 ALPHAQBEDatalog 62 关系代数表达的运算总是由旧关系构造新关系运算对象 关系运算结果 关系查询 更新 关系代数表达式 63 关系代数运算分类 1 传统集合运算 并 交 差 2 删除部分数据的运算 选择 删行 投影 删列 3 合并关系元组的运算 连接 两个关系中的元组有选择地组成对 笛卡尔积 两个关系中的元组以所有可能的方式组成对 4 改变关系模式 关系名 属性名 改名 64 3 2 1关系的集合运算关系R和S是元组的集合 前提 R和S的模式具有相同的属性集 且顺序相同 属性名不同 可以改名 等价的说法 并相容 属性数目相同 对应属性取自同一个域 假定 结果关系的模式使用R的名字 65 R S R和S的并由R或S中的元组组成 R S R R S R S R和S的交由R和S中都存在的元组组成 R S R和S的差由R中而不在S中的元组组成 66 例 R 选修数据结构的学生学号姓名年龄班级010812张明180108010820李力190108S 选修操作系统的学生学号姓名年龄班级010812张明180108010814陈东190108 67 1 查询选修数据结构或操作系统的学生信息R S学号姓名年龄班级010812张明180108010820李力190108010814陈东190108 68 2 查询选修数据结构及操作系统的学生信息R S学号姓名年龄班级010812张明180108 69 3 查询选修数据结构没选修操作系统的学生信息R S学号姓名年龄班级010820李力190108 P22例2 8 70 3 2 2投影关系R上的投影是从R中选择若干属性A1 A2 A3 An组成的新的关系 去掉重复元组 记丌A1 A2 A3 An R A1 A2 A3 An是R中属性 删除一些属性和重复的元组一元运算 71 例 查询学生的年龄学生学号姓名年龄班级010812张明180108010820李力190108011004童雪180110 丌年龄 学生 年龄1819 72 P23例2 9查询所有电影的片名 年份 长度P23图2 13关系的实例Movies title year length genre studioName producerC 丌title year length Movies 结果 P23 查询所有电影的体裁丌genre Movies genresciFicomedy 73 3 2 3选择关系R上的选择运算 即从指定关系中选择满足一定条件的元组得到新的关系 结果集的模式与R相同 记 C R 一元运算 C是一个条件 取值为 true 或 false C由逻辑运算符ORANDNOT连接各算术表达式组成 算术表达式形如X Y 是比较运算符 之一 X Y是属性名 常量 简单函数等 74 例 查询0108班年龄大于18岁的学生信息学号姓名年龄班级010812张明180108010820李力190108010814陈东190108 班级 0108 AND年龄 18 学生 学号姓名年龄班级010820李力190108010814陈东190108 查询的实现 依次考察每一个元组 满足条件的放入结果集 75 对于P23例2 10图Movies title year length genre studioName producerC 例5 3查询片长在100分钟以上的电影的信息 length 100 Movies 例5 4查询制片公司为Fox的且片长在100分钟以上的电影的信息 length 100ANDstudioName Fox Movies 76 3 2 4笛卡尔积R和S的笛卡尔积 即乘积 是元组对的集合 选择R的任何一个元组作为第1个元组 选择S的任何一个元组作为第2个元组构成的 由R的元组和S的元组构成更长的元组 R的元组在前 结果关系模式中的属性 由R的属性和S的属性构成 当R和S有公共属性A时 分别用R AS A表示 记作 R S 77 R ABS BCD122563447891011 R SAR BS BCD1225612478129101134256344783491011 P24例2 12 78 例 R学号姓名兴趣班0202李一美术0202李一电脑0205吴晓电脑0304石玉美术S兴趣班老师美术张电脑郑 79 R S学号姓名R 兴趣班S 兴趣班老师0202李一美术美术张0202李一电脑电脑郑0202李一美术电脑郑0202李一电脑美术张0205吴晓电脑美术张0205吴晓电脑电脑郑0304石玉美术美术张0304石玉美术电脑郑笛卡尔积得到的元组不一定有意义R S不一定有公共属性 80 结果关系模式的属性 R和S的属性的并集 81 R ABS BCD122563447891011 ABCD12563478公共属性 B去掉重复列 82 P25例2 14两个公共属性 R ABC123678978 S BCD2342357810 ABCD123412356781097810 83 例 R学号姓名兴趣班0202李一美术0202李一电脑0205吴晓电脑0304石玉美术S兴趣班老师美术张电脑郑 84 RS学号姓名兴趣班老师0202李一美术张0202李一电脑郑0205吴晓电脑郑0304石玉美术张公共属性 兴趣班 85 自然连接由笛卡尔积 选择 投影三个步骤实现的 笛卡尔积 拼接元组选择 选出公共属性上相同的行投影 去掉一组公共属性 自然连接符合结合律 R1R2 R3等价于R1 R2R3 可简记为R1R2R3 86 3 2 6 连接R和S基于条件C的 连接 记为 RCS1 R S2 选满足条件C的元组结果关系模式的属性 由R的属性和S的属性组成 笛卡尔积 选择 连接 87 R ABC123678978 S BCD2342357810 P25例2 15 88 P26例2 16RA DANDR BS BSAR BR CS BS CD1237810可以是组合条件 89 3 2 7综合例学生 课程数据库 Students Sno Sname Ssex Sage Sdept Courses Cno Cname Cpno Ccredit Cpno先修课号SC Sno Cno Grade Students SnoSnameSsexSageSdept020501李勇男20计算机020502刘雪女19计算机020503王敏女18经管020504张功男19计算机 90 SnoCnoGrade020501198020501277020502165020502280020502493 Courses SC 91 例 查询选修了2号课程的学生的学号 SnoCnoGrade020501198020501277020502165020502280020502493 SC 条件目标在 表 Cno 2 SC 选行 丌Sno Cno 2 SC 选列 92 例 查询学分大于3的课程号和课程名 Ccredit 3 Courses 选行丌Cno Cname Ccredit 3 Courses 选列 93 例 计算机系没有选课的同学的学号 丌Sno Sdept 计算机 Students 丌Sno SC 选修 SC 丌Sno Sdept 计算机 Students 丌Sno SC 94 解1 选修 SC名字 Student连接用Sno 例 查询选修了课程的学生的名字 95 解2 丌Sno Sname Students 丌Sno SC 先投影 先连接 先选择 交集 组合成多种解法一般参与运算 尤其连接运算 的数据越少速度越快 96 例 查询选修4学分课程 成绩在90以上的同学的学号 CoursesSC Ccredit 4andgrade 90 CoursesSC 丌Sno Ccredit 4andgrade 90 CoursesSC 其他解法 CoursesSC连接 Cno 97 例 查询选修了以2号课为先修课的课程的学生的名字 CpnoCoursesSnameStudents必须借助SC表连接 解1 CoursesSCStudents Cpno 2 CoursesSCStudents 丌Sname Cpno 2 CoursesSCStudents 98 解2 Cpno 2 Courses Cpno 2 Courses SC 丌Sno Cpno 2 Courses SC 丌Sno Sname Students 丌Sname 丌Sno Cpno 2 Courses SC 丌Sno Sname Students 99 例 选修数据结构课的学生的名字 SC Cname DS Courses StudentsSC Cname DS Courses 名字在表Students中课程名在Courses中无公共属性用SC 100 丌Sname Students 丌Sno Students 丌Sno SC Cname DS Courses 例 没有选修数据结构课的学生的名字 全体学生除去选修的 丌Sno SC Cname DS Courses 丌Sno Students 丌Sno SC Cname DS Courses 101 例 求至少选了一门4学分课程的同学的名字 CoursesStudentsSC 解1 Ccredit 4 Courses Ccredit 4 Courses SCStude

温馨提示

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

最新文档

评论

0/150

提交评论