1、沃克科技ER 设计1ppt课件学习目标学习目标v了解设计数据库的步骤了解设计数据库的步骤v掌握如何绘制数据库的掌握如何绘制数据库的E-R图图v理解数据库的规范化理解数据库的规范化-三大范式三大范式2沃克科技为什么需要数据库设计为什么需要数据库设计当数据库比较复杂时需要数据库设计当数据库比较复杂时需要数据库设计3ppt课件为什么需要数据库设计为什么需要数据库设计4数据库设计何时开始?数据库设计何时开始?5设计数据库的步骤设计数据库的步骤16设计数据库的步骤设计数据库的步骤27设计数据库的步骤设计数据库的步骤38设计数据库的步骤设计数据库的步骤49绘制绘制E-R关系图关系图110绘制绘制E-R关系
2、图关系图211绘制绘制E-R关系图关系图312绘制绘制E-R关系图关系图413如何将如何将E-R关系转化成数据库表关系转化成数据库表1v将各实体转换为对应的表,将各属性转换为各表将各实体转换为对应的表,将各属性转换为各表对应的列对应的列v标识每个表的主键列,需要注意的是:没有主键标识每个表的主键列,需要注意的是:没有主键的表添加的表添加ID编号列,它没有实际含义,用于做主编号列,它没有实际含义,用于做主键或外键,例如用户表的键或外键,例如用户表的UID列,版块表中添加列,版块表中添加SID列,发帖表和跟帖表中的列,发帖表和跟帖表中的TID列列v在表之间建立主外键,体现实体之间的映射关系。在表之
3、间建立主外键,体现实体之间的映射关系。14如何将如何将E-R关系转化成数据库表关系转化成数据库表215如何将如何将E-R关系转化成数据库表关系转化成数据库表316数据规范化(数据规范化(Normalization)17第一范式(第一范式(1st NF)18第二范式(第二范式(2st NF)19第三范式(第三范式(3st NF)20规范化实例规范化实例121规范化实例规范化实例222232425应用范式规范化设计应用范式规范化设计26应用第二范式规范化设计应用第二范式规范化设计27应用第三范式规范化设计应用第三范式规范化设计28规范化和性能关系规范化和性能关系29小结小结130小结小结2v为了设
4、计良好的数据库,需要遵守一些专门的规为了设计良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式则,称为数据库的设计范式 第一范式(1NF)的目标:确保每列的原子性 第二范式(2NF)的目标:确保表中的每列,都和主键相关 第三范式(3NF)的目标:确保表中的每列,都和主键列直接相关,而不是间接相关31表的约束类型表的约束类型32添加约束添加约束v添加约束的语法添加约束的语法ALTER TABLE table_nameADD CONSTRAINT 约束名 约束类型 具体约束说明;v约束名的取名规则推荐采用:约束类型约束名的取名规则推荐采用:约束类型_约束字段约束字段 主键(Primary
5、key)约束:如PK_stdNo 唯一(Unique key)约束:如UK_stdid 检查(Check key)约束:如CK_stuage 外键(Foreign key)约束:如FK_stuno33添加约束举例添加约束举例134删除约束删除约束35综合训练综合训练1v 现有论文和作者两个实体现有论文和作者两个实体 论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;v 一篇论文可以有多个作者,且每一位作者写过多篇论文,一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操作:在每一篇论文中有作者的顺序号。请完成以下操作:(
6、1)画出E-R图(2)将E-R图转换成关系模式,并指出每个关系模式的主键(加下划线)和外键(加波浪线)。36解答解答137建表语句建表语句1CREATE TABLE 发表发表 (姓名姓名 CHAR(7)NOT NULL,题目题目 CHAR(6)NOT NULL,顺序号顺序号 INT DEFAULT NULL,PRIMARY KEY(姓名姓名,题目题目),FOREIGN KEY(姓名姓名)REFERENCES 论文论文 ON DELETE CASCADE,FOREIGN KEY(题目题目)REFERENCES 作者作者 ON DELETE RESTRICT);38综合训练综合训练2v 某企业集团
7、有若干工厂,每个工厂生产多种产品,且每一某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品,计划数量不低于量生产产品,计划数量不低于300;v 每个工厂聘用多名职工,且每名职工只能在一个工厂工作,每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂聘用职工有聘期和工资。v 工厂的属性有工厂编号、厂名、地址工厂的属性有工厂编号、厂名、地址v 产品的属性有产品编号、产品名、规格产品的属性有产品编号、产品名、规格v 职工的属性有职工号、姓名、技术等级。请:职工的
8、属性有职工号、姓名、技术等级。请:(1)该集团进行概念设计,画出E-R图。(2)E-R图转换成关系模式,并指出每个关系模式的主键和外键。39解答解答240CREATE TABLE 生产生产 (工厂编号工厂编号 CHAR(7)NOT NULL,产品号产品号 CHAR(6)NOT NULL,数量数量 DEC(5,2),PRIMARY KEY(工厂编号工厂编号,产品号产品号),FOREIGN KEY(工厂编号工厂编号)REFERENCES 工厂工厂 ON DELETE CASCADE,FOREIGN KEY(产品号产品号)REFERENCES 产品产品 ON DELETE RESTRICT,CHEC
9、K(数量数量=300);建表语句建表语句241综合训练综合训练3v 设某汽车运输公司数据库中有三个实体集。设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有车牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有聘期;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数,每个司机可以使用多辆汽车,每辆车可被多个司机使用。v 要求:要求:(1)试画出ER图,并在图上注明属性、联系类型;(2)将ER图转换成
10、关系模式,并说明主键和外键。42解答解答3 车队车队 车辆车辆 司机司机 车队号车队号 聘用聘用 使用使用 n 1 m n 车队名车队名 车牌照号车牌照号 厂家厂家 出厂日期出厂日期 司机编号司机编号 姓名姓名 电话电话 使用日期使用日期 公里数公里数 聘期聘期 43关系模式关系模式v 关系模式:关系模式:1)车队(车队号、车队名)主键:车队号2)车辆(车牌照号、厂家、出厂日期)主键:车牌照号3)司机(司机编号、姓名、电话,聘期,车队号)主键:司机编号,外键:车队号4)使用(司机编号,车牌照号,使用日期,公里数)主键:(司机编号,车牌照号,使用日期);外键1:司机编号,外键2:车牌照号44综合
11、训练综合训练4v 在校田径运动会中设置了各类比赛在校田径运动会中设置了各类比赛v 每一比赛类别有类别编号、类别名称和主管等属性每一比赛类别有类别编号、类别名称和主管等属性v 每一比赛类别包含很多比赛项目每一比赛类别包含很多比赛项目v 每一比赛项目有项目编号、项目名称、比赛时间和级别等属性每一比赛项目有项目编号、项目名称、比赛时间和级别等属性v 各个系团队有团编号、团名称、领队等属性各个系团队有团编号、团名称、领队等属性v 每一代表团有多名运动员组成每一代表团有多名运动员组成v 运动员有编号,姓名,年龄,性别等属性运动员有编号,姓名,年龄,性别等属性v 每一名运动员可以参加多个比赛项目每一名运动
12、员可以参加多个比赛项目v 每一比赛项目也有多名运动员参加每一比赛项目也有多名运动员参加v 运动员参加比赛有成绩属性,成绩限定在运动员参加比赛有成绩属性,成绩限定在07分。分。1)根据上述语义画出ER图,2)将ER图转换成关系模式,并指出每个关系模式的主键和外键。3)用DDL语句定义反映运动员与比赛项目之间的“参与”关系表。45解答解答4 比赛项目比赛项目 系团队系团队 比赛类别比赛类别 姓名姓名 包含包含 组成组成 n 1 m n 级别级别 团编号团编号 领队领队 团名称团名称 类别编号类别编号 类别名称类别名称 主管主管 性别性别 年龄年龄 成绩成绩 项目编号项目编号 项目名称项目名称 比赛
13、时间比赛时间 参加参加 运动员运动员 运动员编号运动员编号 1 n 46关系模式关系模式4关系模式:关系模式:1)比赛类别(比赛类别(类别编号类别编号 ,类别名称,主管),类别名称,主管)2)比赛项目(比赛项目(项目编号项目编号 ,项目名称、比赛时间,级别,项目名称、比赛时间,级别,类别编号类别编号 )3)系团队系团队(团编号团编号 ,团名称,领队),团名称,领队)4)运动员(运动员(运动员编号运动员编号 ,姓名,年龄,性别,姓名,年龄,性别,团编号团编号 )5)参加参加(项目编号项目编号 ,运动员编号,运动员编号 ,成绩),成绩)47建表语句建表语句4CREATE TABLE 参加参加 (项
14、目编号项目编号 CHAR(7)NOT NULL,运动员编号运动员编号 CHAR(6)NOT NULL,成绩成绩 INT,PRIMARY KEY(项目编号项目编号,运动员编号运动员编号),FOREIGN KEY(项目编号项目编号)REFERENCES 比赛项目比赛项目(项目编号项目编号)ON DELETE RESTRICT,FOREIGN KEY(运动员编号运动员编号)REFERENCES 运动员运动员(运动员编号运动员编号)ON DELETE RESTRICT,CHECK(成绩成绩 BETWEEN 0 AND 7);48总结总结v数据库的物理实现一般包括:数据库的物理实现一般包括:创建表 添加各种约束 给需要的操作表的账号授权49推荐建模工具推荐建模工具vPower designervERwin50