数据库设计-02-建立数据模型
2016-06-17 本文已影响166人
1Z实验室阿凯
0 现实世界的数据化
Paste_Image.png1 概念模型
1.1 基本概念
Paste_Image.png1.2 E-R 模型
1.2.1基本组成元素
Paste_Image.png1.2.2 设计原则
E-R Rules.png(1)相对原则
属性和联系本质上都是实体,可以相互转化
(2)一致原则
同一对象在业务系统和子系统之间要保持一致
[TODO]
(3)简单原则
将尽可能多的实体转换为属性
1.2.3 E-R模型联系
Paste_Image.png 三种基本关系1.2.4 合并E-R图冲突
Paste_Image.png(1)命名冲突
一个对象抽象的实体在不同子系统中叫了不同的名字,
或者在不同系统的两个对象,命名相同
(2)属性冲突
同一个实体在不同子系统中的某一属性类型不同
(3)结构冲突
例如,同一对象,在A系统中为实体,在B系统中为关系。
注:合并冲突出现在局部E-R模型集成为全局E-R模型的过程中
1.2.5 E-R图设计流程
Paste_Image.png1.2.5.1 局部E-R图设计流程
[TODO]
个人经验总结
Step 1: 列出所有实体的名称 ,顺手列出他们各自的主码
Step 2: 在各个实体之间找出他们之间的关系,这一步是在整个E-R图设计过程中最重要的一步,同时在第一步中列出的实体,可能在你进一步的设计中变成了联系,这都是有可能的。
Step 3: 为各个实体和联系添加详细的属性。(当然这一步可以往后靠,可以先做局部E-R模块集成,最后再添加属性,再或者生成了数据库之后,最后再到DBMS中添加,这都是可以的)
2 数据模型
2.1主要数据模型
Paste_Image.png2.2 基本概念
Paste_Image.png表 : Student
关系模式
Student (学校ID,学生学号,姓名,身份证号,性别)
候选码
能够唯一确定一行元组的属性组合有两种
候选码1
( 学校ID , 学生学号)
候选码2
学生身份证号
主码
主码只能有一个。(注:可以为复合主码)
我们从候选码中选择 (学校ID,学生学号)作为主码
外部码
这里班级号为外部码
元组
表中的一行数据
分量
一行数据中某一属性的值: 大山
域
属性的取值范围
性别: {男,女}
2.3 完整性约束
(1) 实体完整性 Entity Integrity **
任一候选码的任一属性不能为空
(2)参照完整性**
如果A引用了B中的元素,例如我们之前例子中的属性: 班级号
它是外部码,假设对应的另一张表叫Class,主码为班级号
则A中的班级号要么为空,要么必须为Class表中已有的班级号
(3)用户自定义完整性
用户对自己定义的属性的约束条件,例年龄不能>60,学号必须是八位等等。
3 E-R图向关系模式转换
[TODO]