190 likes | 359 Views
数 据 库 基 础 E-R 模型. 汤 娜 中山大学计算机科学系 isstn@zsu.edu.cn. 概念模型. 用于信息世界的建模。是现实世界到信息世界的第一层抽象。 是数据库设计人员进行数据库设计的有利工具。也是数据库设计人员和用户之间进行交流的语言。 最有名的 E-R 模型 世界由一组称作实体的基本对象及这些对象间的联系组成 用图形的方法,描述实体及实体间的联系. 1. E-R 图的基本元素 实体 实体集 属性 关系 2. 关系的基数问题 3. 弱实体 4. 如何将 E-R 模型转化为表. 1. E/R 模型的元素.
E N D
数 据 库 基 础E-R模型 汤 娜 中山大学计算机科学系 isstn@zsu.edu.cn
概念模型 • 用于信息世界的建模。是现实世界到信息世界的第一层抽象。 • 是数据库设计人员进行数据库设计的有利工具。也是数据库设计人员和用户之间进行交流的语言。 • 最有名的E-R模型 • 世界由一组称作实体的基本对象及这些对象间的联系组成 • 用图形的方法,描述实体及实体间的联系
1. E-R图的基本元素 • 实体 • 实体集 • 属性 • 关系 • 2.关系的基数问题 • 3.弱实体 • 4.如何将E-R模型转化为表
1. E/R 模型的元素 • 实体(Entity) • 客观存在并可相互区别的事件或物体 • 用矩形表示 • 实体集(Entity Set) • 同类(具有相同类型、相同性质)实体的集合 • 用数学方式描述实体集与实体之间的关系 E={e1,e2,...,en}
student实体 实体集 (学号 ,姓名,性别,年龄,系别) 学生1 (95001,张三,男 ,19 ,CS ) 学生2 (95003,李四,女 ,20 ,CS ) 学生3 (95004, 王二,女 ,20 ,CS ) 张三 李四 王二 …… 姓名 姓名字段的域
1. E/R 模型的元素(1) • 属性(Attribute):实体所具有的某一特性 • 用与实体集相连的椭圆表示 • 类型 • 主标识属性(属性名下加下划线) • 多值属性(用双线与实体集相连) • 复合属性(与其他属性相连)
主标识属性 多值属性 复合属性
1. E/R 模型的元素(2) • 联系或关系(Relationship) • 用与相应的实体集相连的菱形表示 • 实体集之间的关联 • 二元关系(一个关系只涉及两个实体集) • 循环关系 • 多元关系(一个关系涉及多个实体集) • 关系的属性
学生 课程 选课 (0,35) (1,6) 教师 课程 选课 (1,1) (0,3) 2.关系的基数问题(1) • 实体A出现一次可能引起另一实体出现的最少和最多的次数,称为实体A的基数 card(mincard,maxcard) 例:每学期学生至少选修一门课,最多6门课,每门课程可以没有人选修,最多35人选修 例:每个教师可以不上课,但最多上3门课,每门课程最少要一个教师来教授,最多也只能由一个教师教授
关系的基数问题(2) • 基数是一个组织制度、策略或规则的函数,这些规则是通过完整性约束来完成的。 • 如果关系中两个实体的maxcard值 • 都为1,则此关系为1对1的关系( 1:1 ) • 一个为1(此实体称为多方),一个大于1,则此关系为一对多的关系(1:M) • 都大于1,则此关系为多对多的关系(M:M) • 例子
弱实体 • 弱实体实例的存在依赖于强实体相应实例的存在。 • 弱实体用双方框表示,弱实体的主标识用虚下划线表示。弱实体与强实体之间的关系用双菱形表示。 • 例如以下雇员和家属的关系 • 弱实体与强实体的关系都为一对多的关系,弱实体为多方。
实体联系图(E/R模型) • E-R图转换为表的规则 • (1)实体的转换规则 • 每个实体转化为一张表,表中包含了除多值属性以外的所有属性,表的主键是实体的主标识,对于组合属性将其子属性转化为表中的属性。(不用转化复合属性) • 多值属性和实体的主标识属性组合转化为一张表,表中的所有属性为表的主键 • 例子
实体联系图(E/R模型) • E-R图转换为表的规则 • (2)二元关系(无多值属性) • M:M 要转化为3张表,两个实体各1张表,每个实体的主标识转化为表的主键。关系的属性及两个实体的主标识形成关系表。关系表的主键为两个实体主标识的组合 参加表(E1,P1,percent) 雇员表(E1,E2) 项目表(P1,P2,P3) M M 雇员 参加 项目 P3 E2 P2 E1 P1 项目津贴比例
M 1 课程 教课 老师 • 1:M 要转化为2张表,两个实体各1张表,将关系的属性及非多方的主标识加入到多方表,非多方表的主键是非多方实体的主标识,多方表的主键是多方实体的主标识,多方表的外键是非多方实体的主标识。 • 例子:实体转化的表如下 老师(Tid,Tname,Tsex) 课程(Cid,Cname) 关系转化后形成的表 老师表(Tid,Tname,Tsex) 课程表(Cid,Cname,Tid,allowance) Tsex Cname Tname Cid Tid allowance 外键
1 1 Studios Presidents Runs Sname Ename Sid Eid year • 1:1 要转化为2张表。两个实体各1张表,两个实体各1张表,每个实体的主标识转化为表的主键。将关系的属性及任意一方(实体A)的主标识加入到另一个实体的表中,此表的主键不变,外键是实体A的主标识 • 方案1:presidents(Eid,Ename) studios(Sid,Sname,Eid ,year ) • 方案2: presidents(Eid,Ename ,Sid,year) studios(Sid,Sname) 外键 外键
弱实体 • 和原来一对多关系的差别在于多方表的主键,原来的规则是多方表的主键为多方实体的主标识,弱实体的转化过程中多方表的主键为多方实体和强实体的主标识的组合 • 非强弱实体转换的结果 employees(ssn,name,lot) dependents(pname,age,ssn) • 强弱实体转换的结果: employees(ssn,name,lot) dependents(ssn,pname,age) 外键 外键
salary Stars Movies Contracts Studios 实体联系图(E/R模型) • (2)M元关系 • 要转化为M+1张表,M个实体各1张表,每个实体的主标识转化为表的主键。关系的属性及M个实体的主标识形成关系表。关系表的主键为M个实体主标识的组合 四张表:(三个实体各一张,关系一张) stars(starNO,……) movies(movieNO,……) studios( studios NO,……) contracts( starNO, movieNO, studios NO ,salary)
Passengers(ticketno) Gates(gateno) flights(flightno,ddate,dtime) seats(seatno) 综合实例1
Gates(gateno) Passengers(ticketno,seatno,flightno) flights(flightno,ddate,dtime,gateno) seats(seatno,flightno) • 或者 Gates(gateno) Passengers(ticketno,flightno) flights(flightno,ddate,dtime,gateno) seats(seatno,flightno ,ticketno)