实体联系模型
数据库设计的六个阶段
- 需求分析阶段
- 概念结构设计阶段
- 逻辑结构设计阶段
- 数据库物理设计阶段
- 数据库实施阶段
- 数据库运行和维护阶段
实体联系模型用实体表示事务,用联系表示物体之间的联系
概念模型
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言
基本概念
实体和实体型
实体表示现实世界中某一具体的事物,具有相同性质的实体组成了一个实体型,每个实体型要有一个名字,一般用名词表示。
每个实体有一组属性,表示实体型的特点或性质。单值属性,多值属性,派生属性
主关键字,候选关键字:唯一性,最小性
联系和联系型
物体之间的联系由实体型之间的联系型表示;
联系型要有名字,一般用动词或动词短语
度:一个联系型所关联的实体型的个数叫做联系型的度
联系的分类
- 一对一联系
- 一对多联系
- 多对多联系
基数约束
精确地描述实体型的一个实体可以在一个联系中出现的次数。
表示方法:min…max
min=1的约束叫做强制参与约束(被施加基数约束的实体型中的每个实体都要参与联系),min=0的约束叫做非强制参与约束。
常见的问题
多值属性和符合属性常被表示成一个联系型
E-R图
矩形框—实体型;单椭圆—单值属性;双椭圆—多值属性;关键字加下划线
弱实体型
如果一个实体型的存在依赖于其他实体型的存在,则这个实体型叫做弱实体型
在E-R图中,用双矩形表示弱实体型,用双菱形表示识别联系
IsA属性
- 分类属性
- 不相交约束:添加符号 × \times ×
- 完备性约束:完全特化,部分特化
特化(specialization)
在实体集内部进行分组的过程称为特化
Overlapping specialization:一个实体可以属于多个特化实体集
disjoint specialization:一个实体只能属于一个特化实体集
part-of联系
part-of联系即部分联系,它表明某个实体型是另外一个实体型的一部分。
- 非独占联系:即使整体被破坏,整体的部分仍然可以独立存在,可以通过基数约束来表示(非强制参与联系)
- 独占联系:用弱实体型和识别联系的方法表示
概化(generalization)
概化是高层实体集与一个或多个低层实体集间的包含关系
超类-子类(superclass-subclass)
约束:
- Condition-defined:成员资格的确定基于实体是否满足一个显示的条件或谓词
- User-defined
- disjoint
- Overlapping
- total generalization\specialization:每个高层实体必须属于一个低层实体集
- Partial generalization\specialization:允许一些高层实体不属于任何低层实体集
属性继承
高层实体集的属性被底层实体集 inherit
聚集(aggregation)
聚集是一种抽象,通过这种抽象,联系被视为高层实体。
从E-R图到关系数据库
逻辑结构的设计就是把概念结构设计阶段设计好的E-R图转换为与所选用的DBMS产品所支持的数据模型相符合的逻辑结构。
联系型的表示方法
1:1联系
- 方法1:把联系型转换为关系,两个实体的码组成关系的码
- 方法2:把两个实体强制合并,共同建立一个关系
1:n联系
- 方法1: 将联系型转换为关系,关系的码为n端实体的码
- 方法2: 将两个实体强制合并,共同建立一个关系
m:n联系
多元关系可以转化为一个关系模式,各实体码组成关系的码或关系码的一部分
IsA联系的表示方法
一般情况下,父实体和各子实体分别用独自的关系表示,子实体中要包含父实体的码。
如果IsA满足不相交约束,则也可以用一个关系表示父实体和所有子实体。
如果IsA满足完备性约束,则也可以去除表示父实体的关系,但是父实体的所有属性在每个子实体的关系中都必须出现。