E R图和关系数据库设计课件.ppt
《E R图和关系数据库设计课件.ppt》由会员分享,可在线阅读,更多相关《E R图和关系数据库设计课件.ppt(122页珍藏版)》请在三一办公上搜索。
1、第二章,E-R图和关系数据库设计,2.1 实体-联系模型,( E-R图),2.1.1 基本概念,实体联系模型(ER模型)为数据库建模提供了3个基本的语义概念:实体(Entity)、联系(Relationship)、属性(Attributes)。 实体是指客观存在的、对于建立数据库有意义的、能够被清晰地辨识的事物或概念,实体用它的若干属性来描述的。【例】实体“学生”,具有属性“学号”、“姓名”、“性别”、“年龄”。,基本概念,所谓属性是指事物的某一方面的特征,属性可以是基本属性或导出属性。例如,学生的学号是一个简单属性;学生的家庭地址是一个复合属性,它由简单属性“城市”、“街道”、“门牌号”等组
2、成。 属性可以是基本属性或导出属性。例如,一个人的生日是基本属性,年龄是导出属性,年龄可以根据生日和当前日期导出。 属性值的取值范围称为值域(Domain),例如人的年龄值域为0250,图书馆的馆藏资料类型的值域为(书籍、杂志、会议录、内部资料)。,基本概念,ER模型中的联系是指实体类型之间的联系。例如,教师教学生,“教”就是实体类型“教师”和“学生”之间的联系。联系也可以有属性。例如,学生实体与课程实体之间的联系“选课”,可以有属性学号、课程号、成绩等。,2.1.2 ER图的组成,在ER图(E-R Diagram)中,基本的图形元素有3个:实体集合框,联系集合框和属性框。实体集合框用矩形框表
3、示,实体之间的联系用菱形框表示,属性用椭圆形框(或圆形框)表示。,ER图示例,基数比约束,基数比约束(Cardinality Ratio Constraint) 是对参与联系的实体的一种约束。一个联系的基数(Cardinality)是指,对应于该联系的另一方的实体集的单个实体,本实体集的实体的数量。 ER模型支持的实体之间的一对一、一对多、多对多的联系。,基数比约束示例,参与约束,参与约束是对实体参与度的约束。在一个给定的联系中的实体称为该联系的参与者。所谓实体参与度是指实体参与联系的最小和最大的次数。参与的次数可以用一个整数偶对(min , max)来表示,其中min和max分别是实体参与联
4、系的最小和最大的次数。,ER图的联系类型(1),ER图中的联系类型有:递归联系、二元联系和多元联系。 递归联系,即一个实体集合与其本身的联系。二元联系是指两个实体集合之间的联系。,ER图的联系类型(2),多元联系是指三个以上实体集合之间的联系。,如何建立ER模型,在建立ER模型中,首先确定实体集合,然后确定联系集合,最后给出实体和联系的属性。下面的一些启发性规则可以帮助确定实体:对于汇集和维护企业组织的数据有重要意义的、确定的、可以标识的对象可以指定为实体;每个实质性的确定的对象,如人员、位置、事物等可指定为实体;抽象概念如部门或通信干线等可指定为实体;在由唯一的术语标识的环境中的非实质性的概
5、念,也可指定为实体,例如信用货款备忘录中的信用度,可作为一个实体。,ER图示例,民航航班管理数据模型,首先选择实体集及相应的属性。为表示方便,约定如下符号: CHAR(n) 长度为n的字符串 INT(n) n位数字的整数 实体集和属性选择如下。 实体集1 旅客 PASSENGERS 属性: 姓名 NAME:CHAR(30) 住址 ADDRESS:CHAR(30) 电话 PHONE:INT(10) NAME和ADDRESS组成本实体集的关键字。,民航航班管理数据模型,实体集2 航班FLIGHTS 属性: 航班号 NUMBER:INT(3) 出发地 SOURCE:CHAR(3) 目的地 DEST:
6、CHAR(3) 开点 DEP-TIME:INT(4) 到点 ARR-TIME:INT(4) 为简化起见,假设是直达航班。本实体集可用 NUMBER 作关键字, 也可用SOURCE与DEP-TIME组成关键字。,民航航班管理数据模型,实体集3 航次DEPARTURES 属性: 日期DATE:INT(3) 本实体集的每一个实体是在某日起飞的航次。实体集4 机型PLANES 属性: 制造厂 MANUFACTURER:CHAR(10) 型号MODEL-NO:CHAR(10) 这两个属性组成实体集的关键字。实体集5 飞机AIRCRAFT 属性: 序号SERIAL-NO:INT(5),民航航班管理数据模型
7、,实体集6 职工 PERSONNEL 属性: 职工号 EMP-NO:INT(6) 姓名NAME:CHAR(30) 住址ADDRESS:CHAR(30) 工资SALARY:INT(6) 职工号EMP-NO是本实体集的关键字。实体集7 飞行员 PILOTS 实体集PILOTS 无属性。,民航航班管理数据模型,实体集之间的联系集定义如下: (1)ISA(PILOTS,PERSONNEL) 用于指明具体的飞行员个人,它是一对一联系。 (2)BOOKED-ON(PASSENGERS,DEPARTURES) 表示订票,它是多对多联系。 (3)INSTANCE-OF(DEPARTURES,FLIGHTS)
8、表示一次飞行航班,从DEPARTURES到FLIGHTS是多对一联系。,民航航班管理数据模型,(4)ASSIGNED-TO(PERSONNEL,DEPARTURES) 表示每个航次的空中乘务员,它是多对多联系。 (5)CAN-FLY(PILOTS,PLANES) 表示能驾驶飞机的飞行员,是多对多联系。(6)TYPE(AIRCRAFT,PLANES) 从AIRCRAFT到PLANES是多对一联系,表示每架飞机的机型。,实体间的依赖,如果一个实体集合的存在与否是依赖于另一个实体集合的,那么称这两个实体集合之间存在依赖关系。【例】家属和职工、病房和医院前者称为依赖实体集合,又叫作弱实体集合可用双矩形
9、框表示弱实体集合(或用带圆角的矩形框表示)。后者叫作主实体集合或强实体集合,用单个矩形框表示。主实体集合与它的弱实体集合之间的联系称为弱联系集合或依赖联系。在表示联系的菱形框内加上字符E,可表示弱联系集合(或用双菱形框表示)。用一个指向弱实体集合框的箭头表示依赖联系。,【例】实体间的依赖,2.2 实体-联系模型转换为关系模型,把一个E-R模型转化为关系模型,可遵守下列规则:,转换规则1,规则1:每一个实体集转换为一个关系。 实体集中的实体的属性成为该关系的属性。实体的标识符成为该关系的关键字。每个实体由该关系的一个元组表示。例如实体集product转换成关系PRODUCT(product-nu
10、mber, product-name, cost-price)。,转换规则2,规则2:每一个联系集转换成一个关系, 该联系集自身所拥有的属性,加入到该关系中去,而该关系的主关键字由该联系集所联系的实体集的关键字组成。例如联系集 Warehouse-product-order 转换成关系 WAREHOUSE-PRODUCT-ORDER (warehouse-no, product-no, order-no,quantity-order),转换规则3,规则3:如果一个联系集的两侧标明的基数比是1N(一对多联系),且联系无自身的属性,则在1侧的实体集的关键字应加入到另一侧的实体转换成的关系中,联系集
11、本身可不必单独转换成关系。例如下图实体集CUSTOMER的关键字应加入到对应于实体集ORDER的关系中去。经过转换后可得关系模式为: CUSTOMER (cus-no, cus-name) ORDER(order-no, order-date, cus-no)其中,对于关系ORDER,属性cus-no是外来关键字。,转换规则3,11的联系也可以类似处理。如果1n的n一方的实体是部分参与联系,为了避免在转换后的关系中的外来关键字出现空值(NULL),可以分别把实体集和联系集按照规则1、2转换成关系。,【转换示例】,【例】一个简单的足球队数据模型。 实体集选择如下: (1)球员 PLAYERS 属
12、性:姓名 NAME 籍贯 BPLACE 生日BDATE NAME为关键字。 (2)位置POSITIONS 属性:名称POSNAME 人数POSNUMBER POSNAME或POSNUMBER均可作关键字,一般用POSNAME。,【转换示例】,(3)球队TEAMS 属性:球队名TEAM-NAME 城市 CITY 年 YEAR TEAM-NAME和YEAR组成关键字。 上述实体集之间的联系集有: (1)打球PLAYS(PLAYERS,POSITIONS) 从PLAYERS到POSITIONS是多对多联系。 (2)参赛SEASON(PLAYERS,TEAMS) 从PLAYERS到TEAM是多对一联系
13、。它有一个属性BA,表示比赛场次。,【转换示例】,由上述实体集和联系集构成的ER图如图所示,它所转换成的关系模型具有如下5个关系: PLAYERS (NAME,BPLACE,BDATE) TEAMS (TEAM-NAME,CITY,YEAR) POSITIONS (POSNAME,POSNUMBER) PLAYS (NAME,POSNAME) SEASON (NAME,TEAM-NAME,YEAR,BA),2.3 关系数据库设计理论基础,概述,关系数据库设计的核心是关系模式的设计,即按照一定的原则,从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界、又具有良好性能的关系模式。,关
14、系范例的描述,SCT (S,C,CN,GRADE,TNAME,BDATE,SALARY).其中的属性依次代表学号、课程号、课程名、成绩、任课教师姓名、教师出生日期和工资。规定:每个学生选修每门课只有一个成绩;每门课只有唯一的课程号,并且由一个教师担任。,【示例】问题,SCT(学号,课程号,课程名,成绩,任课教师姓名,教师出生日期和工资)通过分析不难发现SCT存在如下问题。 1数据冗余度问题(如教师姓名) 2修改问题(如修改教师工资) 3插入问题(如未开课的教师信息) 4删除问题 (如教师调离学校),【示例】改进,如果把SCT分为如下三关系模式:选课关系:SC(学号,课程号, 成绩)课程关系:C
15、(课程号,课程名,教师姓名)教师关系:T(教师姓名,教师出生日期,工资)则上述问题便都得到解决。,函数依赖(1),设R(U)是属性集U上的一个关系模式,X和Y均为UA1,A2,An的子集,r为R的任一个关系。如果对于r中的任意两个元组u、v,只要有uXvX ,就有uYvY,则称X 函数决定Y或称Y函数依赖于X,记为X Y。其中X 称为决定因素(Determinant)。即对于关系模式R中的属性子集X的每一个值,任何时候都只有一个确定的Y值与之对应。,函数依赖示意图,但是S#和C#、S#和TNAME间不存在函数依赖关系。,函数依赖(2),在R(U)中,如果XY,并且对于X的任何真子集X 都有X
16、Y,则称Y完全函数依赖于X,记作 (简记为XY )。【例】C# CN如果XY,且X中存在一个真子集X ,使得X Y成立,则称Y部分函数依赖于X,记作 。 【例】(S#,C#) CN,根据联系确定函数依赖关系,如果X和Y之间的联系是1:1的,则存在函数依赖XY和YX。【如】C#和CN如果X和Y之间的联系是n:1的,则它们之间只存在函数依赖XY。 【如】 C#TNAME如果X和Y之间的联系是m:n的,则它们之间不存在函数依赖。 【如】 C#和S#,关键字,设R(U)为一关系模式,F为R的函数依赖集,X为属性集U的子集,如果满足: (1)XUF+; (2)不存在Y X,使得YUF+; 则称X是R的关
17、键字。 分析条件(1)要求关键字能唯一地标识元组。条件(2)保证关键字是最小的集合,不存在多余的属性。,关键字分类,候选关键字:任何一个能函数决定全部属性的最小属性集。主关键字: 在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。外部关键字:关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。主属性:包含在任一关键字中的属性。,关系模式的规范化,第一范式(1NF)第二范式(2NF)第三范式(3NF)BCNF,1、第一范式(1NF),如果关系模式R的所有的域为简单域,其元素不可
18、再分,则称R为第一范式的关系,简记为R1NF。1NF的关系模式要求属性不能再分,即属性项不能是属性组。下列两个关系模式均不是第一范式: 部门(部门号,名称,经理(正经理,副经理) 雇员(雇员号,姓名,工资(基本工资,补贴,奖金) 可以转化为如下1NF的关系: 部门(部门号,名称,正经理,副经理)。 雇员(雇员号,姓名,基本工资,补贴,奖金)。,2、第二范式(2NF),如果R1NF,且每个非主属性完全函数依赖于关键字,则关系模式R属于第二范式,简记为R2NF。【例】SCT (S,C,CN,GRADE,TNAME,BDATE,SALARY). 它满足第一范式,但是存在非主属性对关键字的部分函数依赖
19、。 如:C TNAME可以把SCT分解为如下两个关系模式: SC( S,C,GRADE) CT( C,CN, TNAME,BDATE,SALARY) 在CT中, C TNAME, TNAME SALARY, 存在SALARY对C 的传递函数依赖。 【问题】不能增加没开课的教师信息。,3、第三范式(3NF),如果R2NF,且每个非主属性都不传递函数依赖于关键字,则称关系模式R为第三范式,简记为R3NF。SC是第三范式的,CT不是第三范式的,可以把CT进一步分解为如下两个关系模式: C( C ,CN,TNAME) T( TNAME ,BDATE,SALARY),3NF问题示例,关系模式R(S#,C
20、#,CN,GRADE)中,(S#,C#)和(S#, CN)都可以作为关键字,S#、C#、CN都是主属性,非主属性GRADE没有部分和传递函数依赖,所以R3NF。【问题】当一门课被多个学生选修时,CN的数据冗余问题严重。【原因】主属性C# CN,存在部分函数依赖。【解决方案】 R(S#,C#,GRADE),4、BCNF,若关系模式R1NF,且函数依赖集中每一个形式为XA的非平凡函数依赖的决定因素都含有关键字,则称R是Boyde/Codd范式的,简记为RBCNF。可以得出关于BCNF关系模式的以下结论: (1)非主属性对关键字完全函数依赖; (2)主属性对不包含它的关键字完全函数依赖; (3)没有
21、属性完全函数依赖于一组非主属性。 一个BCNF范式必定是3NF的。,四种范式间的关系,四种范式之间存在如下的关系: BCNF3NF2NF1NF 即: 1NF 消除非主属性对关键字的部分函数依赖 2NF 消除非主属性对关键字的传递函数依赖 3NF 消除主属性对关键字的部分和传递函数依赖 BCNF,【注意】,在实际应用中最有价值的是3NF和BCNF,一般分解到3NF已经足够,但用来表示一个实体集或一个1:n联系的关系一般已经是BCNF。在应用规范化理论时,千万不要盲目追求高范式,因为并非规范化程度越高的关系模式越好。,2.4 关系数据库设计,数据库设计的含义,数据库设计一般不是指DBMS的设计,而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- R图和关系数据库设计课件 关系 数据库 设计 课件

链接地址:https://www.31ppt.com/p-1456129.html