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

下载本文档

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

文档简介

* 2.1 关系数据模型 2.2 E-R 模型到关系模型的转换 2.3 关系模型的三类完整性约束 2.4 案例1:活期储蓄管理系统数据库设计 * 2.1 关系数据模型 2.1.1 关系模型的结构 v 关系(relationship) 关系是满足一定条件的二维表。表中的一行称为关系的一个元 组,用来存储事物的一个实例;表中的一列称为关系的一个属性 ,用来描述实体的某一特征。表是由一组相关实体组成的集合。 所以,表和实体集这两个词常常可以交替使用。 表2-1给出了实体集、关系、表等一系列术语之间的对照关系 概念模型中关系理论中关系数据库中某些软件中 实体集(Entity set) 关系(relation)表(Table)表(或数据库文件) 实体(Entity)元组(Tuple)行(Row)记录(Recode) 属性(Attribute)属性(Attribute)列(Col)字段(Field) 主码(Primary key)主码(Primary key) 关键字 (Primary key) 关键字(Primary key) * 关系是一个行与列交叉的二维表,每一列(属性)的所有数据 都是同一种数据类型的,每一列都有惟一的列名,列在表中的顺序 无关紧要;表中的任意两行(元组)不能相同,行在表中的顺序也 无关紧要。 表2-2以图书借阅系统为例给出了一个表的实例 编号书名作者出版社出版日期定价 F12.245计算机文化基础 刘凌志青山2002.521.80 F33.33数据结构实用教程 王云晓蓝天2002.522.00 G22.12Visual Basic实用教程 梁晓峰碧水2003.1028.00 G11.22Java程序设计实用教程 张大海碧水2004.720.80 F23.55数据结构(C语言版) 马志刚青山2004.724.50 G11.11C语言程序设计 张大海蓝天2004.826.30 G12.08C语言程序设计 梁晓峰青山2004.1022.00 G12.09C语言程序设计 梁晓峰青山2004.1022.00 * 关系的特点: 关系的每一行定义实体集的一个实体,每一列定义实体的一 个属性。 每一行必须有一个主码,主码是一个属性组(可以是一个属 性),它能惟一的标识一个实体。 每一列表示一个属性,且列名不能重复。 列的每个值必须与对应属性的类型相同。 列有取值范围,称为域。 列是不可分割的最小数据项。 行、列的顺序对用户无关紧要。 * v 关系中的术语 候选码(Candidate Key) 若关系中的某一属性组(或单个属性)的值能惟一的标识 一个元组,则称该属性组(或属性)为候选码。 选择一个候选码作为关系的主码。 主属性(Prime Attribute)和非主属性 关系中包含在任何一个候选码中的属性称为主属性。不包 含在任何一个候选码中的属性称为非主属性。 * 2.2 E-R模型到关系模型的转换 E-R模型可以向现有的各种数据库模型转换,对不同的数据库 模型有不同的转换规则。这里只讨论E-R模型向关系模型的转换方 法。E-R模型向关系模型转换的规则是: v 实体 一个实体类型转换成一个关系模式。实体的属性就是关系的属 性,实体的码就是关系的码。 E-R模型向关系模型转换时,除了将实体转换为关系外,还要 考虑如何将实体之间的联系正确的转换为关系。 v 一对一联系 ( 1:1) 一般是将联系与任意一端实体所对应 的关系模式合并,需要在 该关系模式的属性中加入另一个实体的码和联系本身的属性。 * 【例2-10】实体部门(编号,名称)与实体经理(工号,姓名)之 间的任职联系是1:1联系。E-R模型如图2-1所示。将其转换为关系 模型。 1 1 部门 经理 任职 名称 工号 编号 任职日期 姓名 1 1 部门(编号,名称) 经理(工号,姓名,编号,任职日期) 图2-1 * v 一对多(1:n)联系 一般是将该联系与n端实体所对应的关系模式合并。合并时需 要在n端实体的关系模式的属性中加入1端实体的码和联系本身的 属性。 【例2-11】 将授课系统中的E-R模型转换为 关系模型。 教师 课程 参考书 讲授 1 n 1 * 该E-R模型中有3个实体和1个多元联系。可以用两种方法转换为 关系模型: 1) 将联系转换为一个单独的关系。则该E-R模型对应的关系模型 包含4个关系模式: 课程(课号,课名,学分) 教师(工号,姓名,职称) 参考书(书号,书名) 讲授(工号,课号,书号) 2) 由于该例中的联系是一对多联系,所以可以将联系合并到实 体对应的关系中。 课程(课号,课名,学分) 教师(工号,姓名,职称,课号) 参考书(书号,书名,课号) * v 多对多(m:n)联系 将联系转换成一个关系模式。与该联系相连的各实体的码及联 系本身的属性转换为关系的属性,而关系的码为各实体码的组合 。 【例2-12】将学生选课系统的E-R模型转换为关系模型。 课程号课程名 学分 课程 学号所在系年龄姓名性别 学生 成绩 选课 m n 学生(学号,姓名,性别,年龄,所在系) 选课(学号,课程号,成绩) 课程(课程号,课程名,学分) * 【例2-13】将图书 借阅系统的E-R模型转换为 关系模型。 读者 编号姓名 读者类型已借数量 图书 出版日期 出版社编号书名定价 借期 还期 借阅 m n 读者(编号,姓名,读者类型,已借数量) 借阅(读者编号,图书编号,借期,还期) 图书(编号,书名,出版社,出版日期,定价) * 2.3 关系模型的三类完整性约束 2.3.1 实体完整性 实体完整性规则: 若属性A是关系R的主属性,则A不能取空值。 2.3.2 参照完整性规则 v 外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的主码(或 候选码)。如果F与基本关系S的主码KS相对应,则称F是基本关系R 的外码,并称基本关系R为参照关系,称基本关系S为被参照关系。 例如:在授课系统的关系模型中: 课程(课号,课名,学分) 课号关系课程的主码 教师(工号,姓名,职称,课号) 课号是关系教师的外码 参考书(书号,书名,课号) 关系教师是参照关系,关系课程是被参照关系。 * v 参照完整性规则 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基 本关系S的主码KS相对应,则对于R中的每个元组在F上的值必须满足 :或者取空值(F的每个属性均为空值),或者等于S中某个元组的 主码值。 例如,在授课系统的关系模型中,关系教师中的外码“课号”只能是 下面两类值: (1) 空值。表示还未给该教师安排课。 (2) 非空值,但此值必须为被参照关系课程中某一门课程的“课号” 。 注意:在实际应用中,外码不一定与对应的主码同名。 在关系数据库中,表与表之间的联系是通过公共属性实现的。这 个公共属性往往是一个表的主码,同时是另一个表的外码。 * 2.3.3 用户定义的完整性 用户定义的完整性就是针对某一具体要求来定义的约束条件, 它反映某一具体应用所涉及的数据必须满足的语义要求。 例如,某个属性必须取惟一值;某些属性之间应满足一定的函数 关系;某个属性的取值范围在0400之间等。关系模型应提供定义 和检验这类完整性的机制,以便系统用统一的方法处理它们,而不 需要由应用程序来承担这一功能。 所以,用户定义的完整性通常是定义属性取值的约束,即对属 性的值域的约束。对属性的值域的约束也称为域完整性规则是指对 关系中属性取值的正确性限制。包括数据类型、精度、取值范围、 是否允许空值等。 * 2.3.4 完整性规则检查 为了维护数据库中数据的完整性,在对关系数据库执行插入、 删除和修改操作时,就要检查是否满足以上三类完整性规则。 v 当执行插入操作时 首先检查实体完整性规则,插入行的主码属性上的值,是否已 经存在。若不存在,可以执行插入操作;否则不可以执行插入操作 。 再检查参照完整性规则,如果是向被参照关系插入,不需要考 虑参照完整性规则;如果是向参照关系插入,插入行在外码属性上 的值是否已经在相应被参照关系的主码属性值中存在。若存在,可 以执行插入操作;否则不可以执行插入操作,或将插入行在外码属 性上的值改为空值后再执行插入操作(假定该外码允许取空值)。 最后检查用户定义完整性规则,检查被插入的关系中是否定义 了用户定义完整性规则,如果定义了,检查插入行在相应属性上的 值是否符合用户定义完整性规则。若符合,可以执行插入操作;否 则不可以执行插入操作。 * v 当执行删除操作时 一般只需要检查参照完整性规则。如果是删除被参照关系中的 行,则应检查被删除

温馨提示

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

评论

0/150

提交评论