DB Chapter 8:ER model
- 实体:
学校,学生
- 实体联系
学校has学生
- 属性
学生的学号、姓名....
- 实例
学生中的jack,学校中的牛津
entity
实体entity type
有共同属性的,现实生活中存在的,每个实例可以独立存在的。
用矩形表达,一般来讲是个名词
实例entity occurrence
实体下的,现实生活中存在的,可以唯一独立标示的一个。
联系relationship
联系的类 relationship type
学生和课程之间有选课联系
用一根线表示,线上写联系的名字,一般用动词表达
联系的实例 relationship occurrence
张三选了毛概、马原,李四没选课,王五选了英语
举例:学生实体、老师实体,有教课联系,辅导员联系 、、、有各种各样的实体有各种各样的联系,你要清楚 ,你要的是哪个
联系的度 degree of a relation type
参与联系的实体的个数
联系可能存在在一个实体之间(单元),也可能两个实体之间(二元),也可能多个实体之间(多元)。
多元联系需要一个棱形的来连接
递归联系 recursive relational
就是单元联系
一个例子在goodnote45页
属性 attribute
attribute
有一个例子在goodnote 46页
矩形下面的再来一个框,写出属性的名字
描述实体的数据项
在表中就是一个字段
- simple attribute
不可再分,原子属性 - composite attribute
还可分为
- single-valued attribute
- multi-valued attribute
还有
- 导出属性 derived attribute
身份证号(原始属性)-->出生日期 和 出生地 (导出属性)
还有
candidate key
描述实体的一组属性,如果可以唯一标示一个实例,且它的任何真子集都不能... table -- 实体 tuple -- 实例
primary key 在er模型中没有外键(那是关系模型的概念)
- comp
attribute domain
强实体
不依赖另一个实体的存在而存在
客户一定存在
弱实体
依赖另一个实体存在而存在
偏好依赖于客户的存在而存在
都是强实体,无所谓外键在哪个表
一个强一个弱,把外键放在
正像实体可以用属性描述一样,联系也可以用实体描述
也是像实体一样的双矩形,但是上面那个矩形没有名字,用虚线连接一个联系(也就是一条实线)
结构化约束
多样性原则:最多最少问题
一个学生能学几门课,一门课可以给几个学生学
多样性 -- 业务 -- 联系规则 -- 联系方式(一对一,一对多,多对多)
明确业务 ==理出==> a..b联系基数 <===> 最少a,最多b
最大基数 <===> 联系方式(一对一,一对多,多对多)
多元联系里的最大最小基数 ==> 其他的实体组合起来再和那一个看最大最小基数
基数cardinality约束
最大基数 ==> 决定一对一,一对多,多对多
参与participation约束
最小基数 ==> 决定强制参与还是可选参与
如何将ER图转化为表结构
规则
1.一个实体对应一张表。
2.一个一对多的联系不单独成表,把联系归与多方:一个 一对多 的联系转换成表的时候 在多方那一边对应的实体中加入一方的主键作为外键。把联系的属性也加在多方对应的表中。
3.一个多对多的联系单独成表,这个表的字段由参与这个联系的实体的主键和联系本身的属性组成。
一个例子在goodnote p47