基本概念:
E-R模型采用了实体集,联系集和属性3个基本概念来描述事物,联系及特征
1.实体与实体集:
实体是客观世界中可区别于其他事物的“事物”或对象。(学生)
- 实体是独立存在,一个实体不依赖于其他实体 (一个学生存不存在,不取决于其他学生)
- 可区别于其他实体,每一个实体有一组性质,其中一部分性质的取值可以唯一的标识每一个实体(学生的学号)
实体集是指具有相同类型的实体集合(学生的集合,定义为学生实体集)
2.属性:
实体是通过一组属性来描述的,属性是实体集中每个实体都具有的特征描述。(学生实体集中都存在学号,姓名,性别,专业,班级等属性)
一个属性所允许的取值范围或集合称为该属性的域(学号由10为数字组成)
属性的分类:
1.简单属性和复合属性
简单属性:指不能再分为更小的一部分属性
复合属性:指可以进一步划分成更小部分的属性
学生的家庭住址可以进一步分成省份,城市,街道
2.单值属性和多值属性:
某属性对一个特定的实体任何时候都只能有单独的一个值,则该属性为单值属性,否则为多值属性 (单:学生的学号,多:电话号码,电话号码可以有多个)
3.派生属性:
如果某属性的值可以从其他相关联属性或实体派生出来,则该属性为派生属性(学生的年龄,为当前日期和出生日期的值计算得到)
在E-R图中,实体集用矩形表示,属性用椭圆表示,多属性值用双椭圆表示,派生属性用虚线椭圆表示,属性与实体之间用连线表示。
3.联系与联系集
联系是指多个实体之间的相互关联。联系集是同类联系的集合
在E-R图中用菱形表示联系集
联系集的度:参与联系集的实体联系集的数目称为联系集的度。
约束
映射约束:
实体集A中的一个实体通过某联系集R能与实体集B中的实体相联系的数目,称为实体集A到实体集B之间的联系集R的映射基数。
在二元联系中,共有3种映射约束
- 一对一
- 一对多 或 多对一
- 多对多
一对一:A中的一个实体至多同B中的一个实体相联系,B也同样
一对多:A中的一个实体可以同B中的任意数目(可以为0)的实体相联系,而B中的一个实体至多同A中的一个实体相联系
多对一:与一对多同样
多对多 :A中的一个实体可以同B中任意数目的实体相联系,B中的一个实体也可以同A中任意数目的实体相联系
在E-R图中采用->表示指向参与联系集中的“一”方实体集,线段“——“表示参与联系集中多方的实体集
码约束与联系集的属性安置
1.实体集的码
超码是实体集中能够唯一标识一个实体的一个或多个属性的集合。
一个超码的任意真子集都不能成为超码,这样的最小超码称为候选码,一般一个实体集有多个超码,可以选择一个作为实体集的主码
选择主码的原则:
- 选择属性长度最短的候选码
- 尽量选择包含单个属性的码,而不是复合候选码
- 选择在数据库系统生命周期中属性值变化最少的候选码
- 选择在数据库系统生命周期内更可能包含唯一值的候选码
2.联系集的码
每一个联系集,必须存在候选码并选择其中一个候选码作为主码,用于唯一标识该联系集中的一个联系
二元联系集的主码选择依赖于联系集的映射基数
- 一对一联系集:主码可以使用参与联系集中的任何一方的实体集主码
- 一对多联系集:主码由”多“的一方实体集的主码组成
- 多对多联系集:主码由参与联系集中所有实体集的主码构成
联系集的属性安置
- 一对一联系集的属性:可安置在任一边的实体集上
- 一对多联系集的属性:可安置于联系集上,也可以安置在多的那一边的实体集上
- 多对多联系集的属性:描述相关联系集间的交互语义,因此属性只能安置于联系集上,不能放在相关联的实体集上
约束依赖
1.依赖实体集:联系中一种实体的存在依赖于该联系集中联系的存在,称为实体集与联系集之间的依赖约束。
2.弱实体集:联系中一种实体的存在依赖于其他实体集中实体的存在,称为实体集之间的依赖约束。其中被依赖的实体集叫标识实体集,依赖方叫弱实体集。
多值联系
多值联系指,在同一个实体集中,相关联的相同实体之间可能存在多个联系。(一个客户可以向多个银行贷款,一个银行可以向多个客户放贷款)