关系型数据库基本原理

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

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!