文章目录
数据库设计
先上图!!
数据库设计概述
特点
- 数据库建设的基本规律
- 结构(数据)设计和行为(处理)设计相结合
数据库设计阶段
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行和维护
需求分析和概念设计独立于任何数据库管理系统
概念结构设计(☆)
定义:
- 需求分析阶段描述的用户需求是现实世界的具体需求
- 将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计
- 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定
- 概念结构设计是整个数据库设计的关键
概念模型的特点
- 能真实、充分地反映现实世界
- 易于理解
- 易于更改
- 易于向关系、网状、层次等各种数据模型转换
描述概念模型的工具
E-R模型(ER图)
E-R模型基本概念
实体(Entity)
- 客观存在并可相互区别的事物称为实体
- 可以是具体的人、事、物或抽象的概念
属性(Attribute)
- 实体所具有的某一特性称为属性
- 一个实体可以由若干个属性来刻画
- 例如:(李明,男,1972,江苏,计算机系,1990)
码(Key)
- 唯一标识实体的属性集称为码
联系(Relationship)
- 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系
两个实体型之间的联系
(1)一对一联系(1:1)
定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1
(2)一对多(1:n)
定义: 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n
(3)多对多(m:n)
定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n
ER图
E-R 图提供了表示实体型、属性和联系的方法:
- 实体型:用矩形表示,矩形框内写明实体名
- 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来
联系: 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n 或m:n)
联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
根据描述画出学校管理的E-R图
涉及的实体型有:
学生:属性有学号、姓名、性别、专业、出生日期
课程:属性有课程号、课程名、课程类别、学分
学院:属性有学院编号、学院名称、办公室电话
教职工:属性有教职工编号、姓名、职称、参加工作日期
这些实体之间的联系如下:
一个学生可以选修多门课程,一门课程可以由多个学生选修
一个学生只能属于一个学院,一个学院包括若干学生
一个教职工只能属于一个学院,一个学院包括若干教职工
一个学院只有一个正院长,一个正院长只能在一个学院任正院长职务
有若干种期刊,每种期刊属性:期刊号、期刊名、期刊类型、期刊目录属性
每种期刊有若干篇论文,每篇论文只能在一种期刊上发表,论文属性:编号、题目
一篇论文可能有多个作者,且一位作者可能写过多篇论文,作者属性:身份证号、姓名、单位、地址
请画出ER图,要求画出属性和注明联系类型
某公司拥有多个大型连锁商场,公司需要构建一个数据库系统便于管理其业务,请根据描述构建E-R图
商场需要记录商场编号(不能重复)、商场名称、商场地址、联系电话
每个商场包含很多不同部门,部门需要记录部门的编号、部门名称、位置分布、联系电话
每个部门雇佣了很多员工,每个员工只属于一个部门。员工需要记录员工编号、员工姓名、岗位、电话号码
每个部门有一个经理,每个经理只管理一个部门,经理需要记录入职时间
逻辑结构设计(☆)
逻辑结构设计的任务
- 把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构
逻辑结构设计的步骤
- 将概念结构转化为一般的关系、网状、层次模型
- 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换
- 对数据模型进行优化
E-R图向关系模型的转换
E-R图向关系模型的转换要解决的问题
- 如何将实体型和实体间的联系转换为关系模式
- 如何确定这些关系模式的属性和码
转换内容
- E-R图由实体型、实体的属性和实体型之间的联系三个要素组成
- 关系模型的逻辑结构是一组关系模式的集合
- 将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转化为关系模式
转换原则
一个实体型转换为一个关系模式
- 关系的属性:实体型的属性
- 关系的码:实体型的码
一个m:n联系转换为一个关系模式
-
关系的属性:与该联系相连的各实体的码以及联系本身的属性
-
关系的码:各实体码的组合
-
选课(学号,课程号,成绩)
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
(1)转换为一个独立的关系模式
- 关系的属性:与该联系相连的各实体的码以及联系本身的属性
- 关系的码:n端实体的码
学院学生(学院编号,学号)
学院教职工(学院编号,教职工编号)
(2)与n端对应的关系模式合并
- 合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性
- 合并后关系的码:不变
可以减少系统中的关系个数,一般情况下更倾向于采用这种方法
学生(学号,姓名,性别,专业,出生日期,学院编号)
课程(课程编号,课程名称,课程类别,学分)
学院(学院编号,学院名称,办公室电话,院长教职工编号)
教职工(教职工编号,姓名,参加工作时间,职称,学院编号)
选课(学号,课程号,成绩)
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
转换为一个独立的关系模式
- 关系的属性:与该联系相连的各实体的码以及联系本身的属性
- 关系的候选码:每个实体的码均是该关系的候选码
与某一端的关系模式合并
- 合并后关系的属性:加入另一端关系的码和联系本身的属性
- 合并后关系的码:不变
“管理”联系为1:1联系
(1)转换为独立的关系模式
- 管理(职工号,班级号)或 管理(职工号,班级号)
(2)“管理”与“班级”关系模式合并
- 班级(班级号,学生人数,职工号)
(3)“管理”与“教师”关系模式合并
- 教师(职工号,姓名,性别,职称,班级号)
具有相同码的关系模式可合并
目的:减少系统中的关系个数
合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序
系(系名,系址,系主任姓名,办公电话)
教师(工号,教师名,出生日期,党派,系名)
学生(学号,姓名,出生日期、性别、指导教师工号)
课程(课程号,课程名,先修课号,任课教师工号)
选修(学号,课程号,成绩)
下图中显示一张交通违章处罚通知书,根据这张通知书所提供的信息,设计一个E-R模型,并将这个E-R模型转换成关系数据模型,要求标注主码和外码。注:驾驶执照号和机动车牌照号是不同的
(1)根据以上描述画出E-R图,要求画出属性和注明联系类型
(2)将E-R图转换为一组关系模式(表尽可能少),并给出每个关系模式的主键和外键(如果存在)
处罚(处罚方式)
被处罚人(驾驶执照号,姓名,地址,邮编,电话)
机动车(机动车牌照号,型号,制造厂,生产日期)
交通违章通知书(编号,驾驶执照号,机动车牌照号,处罚方式,警察编号,警察签字,被处罚人签字)