数据库概论ppt课件_第1页
数据库概论ppt课件_第2页
数据库概论ppt课件_第3页
数据库概论ppt课件_第4页
数据库概论ppt课件_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

任务9逻辑数据的建模,知识目标掌握关系的基本结构及术语;理解关系的完整性约束;掌握E-R模型转换成关系模型的方法;了解关系的基本运算。技能目标掌握概念模型转换成数据模型的能力,任务9逻辑数据的建模,重点关系的完整性约束E-R模型转换为关系模型难点E-R模型的联系如何转换为关系模型,实体联系模型,场景一:学生选课情况的概念模型,数据需求分析每门课程由课程号,课程名,教师,周课时数,备注标识每个学生由学号,姓名,年龄,性别,班级标识多个学生可以同时学习同一门课程,一个学生必须学习多门课程,概念模型E-R表示,学生,课程,实训十1,实体联系模型,知识点1:关系模型,数据需求分析每门课程由课程号,课程名,教师,周课时数,备注标识每个学生由学号,姓名,年龄,性别,班级标识多个学生可以同时学习同一门课程,一个学生必须学习多门课程,场景一:学生选课情况的概念模型,数据模型,学生选课的关系模式:学生(学号,姓名,年龄,性别,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩)学生选课的关系模型:,教学内容,关系基本结构及术语关系的完整性约束将E-R模型转换为关系模型关系模型的数据操作小结,关系,属性,元组,主码,域,关系模式,基本结构及术语,关系模式关系的描述称为关系模式表示为:关系名(属性1,属性2,属性n),如学生选课的关系模式可描述如下:学生(学号,姓名,年龄,性别,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩),在关系模式中,属性的个数称为元数,分析,基本结构及术语,关系在关系模型中,每张二维表就叫作一个关系。每个关系都有一个关系名。,关系与传统的二维表又有区别:关系表中的每一列都是不可再分的基本属性,表中各属性不能重名,表中的行列次序并不重要,即可以交换行、列的前后顺序。,分析,基本结构及术语,元组表中的行称为元组。一行即为一个元组。,主码主码(也称主键或主关键字),是表中的属性或属性组,用于唯一确定一个元组。,属性表中的一列即为一个属性,列名即为属性名。,分析,基本结构及术语,主属性与非主属性包含在主码中的属性称主属性,不包含在主码中的属性称非主属性。,域属性的取值范围称为域。,分量元组中的一个属性值。,分析,基本结构及术语,关系模型的认识关系是元组的集合。关系模式是命名的属性集合。元组是属性值的集合。关系中的每一个属性值都是不可分解的。关系中不允许出现相同的元组。,实训十2,基本结构及术语,错误的关系举例,场景二:现实世界的三个问题,如何保证一个数据(实体)是可识别的?如何由一个数据找到另一个数据?如何保证一个数据的取值合理?,知识点2:完整性约束,在关系模型中是通过关系的完整性约束来解决的.关系模型的完整性规则是对关系的某种约束条件.,关系的完整性约束,关系模型中可以有三类完整性约束实体完整性参照完整性用户定义的完整性,实体完整性,实体完整性规则若属性A是基本关系R的主属性,则属性A不能取空值。,例在课程表(课程号,课程名,教师,周课时数,备注)中,“课程号”不能取相同的值,也不能取空值。,在选课表(学号,课程号,成绩)中,“学号”和“课程号”的均不能取空值,且它们的组合不能取相同的值。,如何保证一个实体可以识别,10004,10002,参照完整性,关系间的引用例1:职工实体集和部门实体集之间的关系引用:职工(职工号,姓名,性别,部门号,工资,佣金)部门(部门号,名称,地点),数据之间的参照关系,职工表,部门表,108,108,参照完整性,关系间的引用例2:选课系统内的关系引用:课程表(课程号,课程名,教师,周课时数,备注),学生表(学号,姓名,年龄,性别,班级),选课表(学号,课程号,成绩)。,参照完整性,关系间的引用例3:有如下职工关系:职工(职工号,姓名,性别,部门号,上司职工号,工资,佣金),注意:不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。,参照完整性,外码设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码相对应,则称F是基本关系R的外码(Forieignkey),并称基本关系R为参照关系,基本关系S为被参照关系。,例1职工(职工号,姓名,性别,部门号,工资,佣金)部门(部门号,名称,地点),关系R,关系S,属性F,外码,参照关系,被参照关系,参照完整性,外码例2课程表(课程号,课程名,教师,周课时数,备注),学生表(学号,姓名,年龄,性别,班级),选课表(学号,课程号,成绩),外码,外码,参照关系,被参照关系,被参照关系,思考:“学号”属性能否作为外码?,参照完整性,外码例3职工(职工号,姓名,性别,部门号,上司职工号,工资,佣金),关系R和S不一定是不同的关系。,外码,参照关系,被参照关系,注意:外码并不一定要与相应的主码同名。,参照完整性,参照完整性规则关系R中每个元组在外码F上的值必须为:或者取空值(F中的每个属性值均为空值);或者等于被参照关系S中某个元组的主码值。,参照完整性,职工关系中的每行的部门号属性只能取下面两类值:第一类:空值,表示尚未给该职工分配部门;第二类:非空值,但该值必须是部门关系中某个元组的部门号值,表示该职工不可能分配到一个不存在的部门中。,参照完整性,输入限制:1。不可以在选课表中随便输入新的学号,除非先将新学号添加到了学生表中。2。不可以随便修改和删除学生表中的学号,例3分析职工(职工号,姓名,性别,部门号,上司,工资,佣金),参照完整性,按照参照完整性规则,“上司”属性值可以取两类值空值(表示该职工没有上司)非空值(此时,该值必须是本关系中某个元组的职工号)。,参照完整性,定义参照完整性的注意点外键和相应的主键可以不同名,只要定义在相同值域上即可;R和S也可以是同一个关系模式。,用户定义完整性,用户定义的完整性是针对某些具体关系数据库的约束条件。,例如某个属性必须取唯一值、某个属性不能取空值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在112之间等。,例如:选课表(课程号,学号,成绩),在定义关系选课表时,我们可以对成绩这个属性定义必须大于等于0的约束。,实训十3,将ER模型转换为关系模型,转换原则原则1:将E-R图中每个实体集转化为一个关系模式,实体集中实体的属性转化为该关系模式的属性;实体的码(实体键)转化为该关系模式的码;每一个实体转化为该关系模式对应关系的一个元组。,将ER模型转换为关系模型,转换原则原则2:E-R图中的联系,根据联系方式的不同,采取不同的方法。一个1:1联系可以转换为一个独立的模式;也可以与任意一端对应的关系模式合并。一个1:N联系可以转换为一个独立的关系模式;也可以与N端对应的关系模式合并。一个M:N联系独立转换为一个关系模式。原则3:确定参照完整性原则4:评价关系模式,实训十4,1:1联系的转换,第一步:根据原则1,每个实体集转换为一个关系模式,实体的属性转换为关系模式的属性,实体的码转换为关系模式的码。,第二步:根据原则2,对于1:1联系可以靠一边,现把“任职”联系靠入“系”实体集对应的关系:,第三步:根据原则3,定义参照完整性:,系主任(职工号,姓名,职称)系(系编号,系名,地址),系(系编号,系名,地址,职工号),系主任(职工号,姓名,职称)系(系编号,系名,地址,职工号),其中,“系”关系中的“职工号”为外码,它参照“系主任”关系中的“职工号”。,1:N联系的转换,第一步:先写出实体集对应的关系模式:仓库(仓库号,地点,面积);产品(货号,品名,价格);,第二步:根据原则2,对于1:N联系可以靠多那边,即把“存放”联系靠入“产品”实体集一边,对应的关系模式:产品(货号,品名,价格,仓库号,数量),第三步:根据原则3,定义参照完整性:仓库(仓库号,地点,面积)产品(货号,品名,价格,仓库号,数量),其中,“产品”关系中的“仓库号”为外码,它参照“仓库”关系中的“仓库号”。,1:N联系的转换,第一步:将实体集转换为关系模式:职工(职工号,姓名,性别),第二步:根据原则2,对于1:N联系可以靠多那边。职工(职工号,姓名,性别,上级职工号),第三步:根据原则3,定义参照完整性:职工(职工号,姓名,性别,上级职工号)其中“上级职工号”为外码,它参照“职工”关系中的“职工号”。,分析,具有角色关系的E-R图转换,前一图等效于下图,领导,N,1,M:N联系的转换,第一步:将实体集转换为关系模式课程(课程号,课程名,周课时数,教师)学生(学号,姓名,年龄,性别,班级),第三步:根据原则3,定义参照完整性,课程(课程号,课程名,周课时数,教师)学生(学号,姓名,年龄,性别,班级)选修(学号,课程号,成绩)其中,“选修”关系中的“学号”是外码,它参照“学生”关系中的“学号”;“选修”关系中的“课程号”也是外码,它参照“课程”关系中的“课程号”。,第二步:根据原则2,对于M:N联系要独立转换成一个关系模式,选修(学号,课程号,成绩),M:N联系的转换,第一步:将实体集转换为关系模式零部件(代号,名称,价格),第二步:根据原则2,对于M:N联系要独立转换成一个关系模式,组装(代号,组装件代号,数量),第三步:根据原则3,定义参照完整性,零部件(代号,名称,价格)组装(代号,组装件代号,数量)其中“组装”关系中的“代号”是外码,它参照“零部件”关系中的“代号”;“组装”关系中的“组装件代号”也是外码,它也参照“零部件”关系中的“代号”。,分析,具有角色关系的E-R图转换,分析,零部件:,组装件:(小零部件),具有角色关系的E-R图转换,前一图等效于下图,组装,M,N,数量,关系模型的数据操作,关系模型的操作对象是完整的表。,关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作是最重要的。,关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符(P42页)。,关系模型的数据操作,并运算差运算交运算笛卡尔乘积,投影选择连接除,并运算,集合R与集合S的并即求:所有至少出现在两个关系中之一的元组集合,前提:每个关系必须要有相同数目的属性,而且在对应列中的属性必须是相同的域。,并运算,Relationsr,s:,rs:,A,B,121,A,B,23,r,s,=,差运算,集合R与集合S的差即求:所有出现在一个关系而不在另一关系中的元组集合,差运算,Relationsr,s:,rs:,A,B,121,A,B,23,r,s,注意:减法的顺序是很重要,R-S和S-R是不同的。,交运算,集合R与集合S的交即求:所有同时出现在两个关系中的元组集合,交运算,Relationr,s:rs,AB,121,AB,23,r,s,课堂练习,R,S,求RS求RS求R-S,笛卡尔乘积,集合R与集合S的积两个关系的积(也称笛卡儿乘积)是指第一个关系中的每个元组和第二个关系的每个元组的连接。,笛卡尔乘积,Relationsr,s:,rxs:,A,B,12,C,D,10102010,E,aabb,r,s,投影,投影投影是从一个关系中选择指定的属性的操作。,关系上的投影关系R上的投影是从R中选择出若干属性列组成新的关系。记作:A(R),其中A为R的属性列。,A,B,C,10203040,1112,=,Relationr:,A,C(r),课程表,课程号,课程名,教师(课程表),教师(课程表),注意:投影是取列,其结果是一个关系,不包含任何重复的元组。,例:查询课程表中课程号、课程名及相应的任课教师信息。,例:查询课程表中任课教师信息。,选择运算,选择选择操作取得的是水平方向上关系的子集(行),在关系R中选择满足给定条件的诸元组,可以表示为:F(R)。,其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。,在逻辑表达式中,可以使用、。另外可以使用连词and()、or()、not(),选择运算,Relationr,A,B,C,D,151223,77310,A=BD5(r),课程表,例如:查询周课时数为4的课程信息。,周课时数=4(课程表),或4=4(课程表),课程表,例如:查询课程号大于3的课程信息,课程号3(课程表),或13(课程表),选择运算,关系运算的组合关系运算的对象和结果都是关系,我们可以把多个关系运算组合称一个关系代数表达式。,年龄20(学生表),例:找出所有年龄大于20岁的学生姓名。,姓名(),选择运算,关系运算的组合例:查询出名叫张三和张六的学生的性别和年龄。,姓名张三姓名张六(学生表),姓名,性别,年龄(姓名张三(学生表)姓名张六(学生表),姓名,性别,年龄(),选择运算,关系运算的组合例:查询出所有学生都及格的课程的课程号。,思路:在所有的课程号范围内除去有同学不及格的课程号,课程号(课程表),课程号(成绩=60(选课表),分析,课程号(成绩s0),那么RS的元数为r-s。,除运算,计算过程第一步:T=1,2,.r-s(R)第二步:W=(TS)R第三步:V=1,2,.r-s(W)第四步:RS=TV,例如:两个关系R与S分别如图3.13所示,计算RS。,第一步:T=1,2,.r-s(R),即先对R关系进行r-s投影,投影结果设为关系T。,第二步:W=(TS)-R,即对T与S进行笛卡儿积再减去R,结果设为

温馨提示

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

评论

0/150

提交评论