数据库系统概论——概念结构设计
E-R模型
实体联系方法(Entity-Relationship Approach
),也称为E-R模型
,用来描述现实世界的概念模型
实体之间的联系
两个实体型之间的联系
- 一对一
对于实体集A中每个实体,实体集B中最多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一对应关系,记为1:1
- 一对多
对于实体集A中每个实体,实体集B中有多(n)
个实体与之联系,反之,对于实体集B中每个实体,实体集A中最多有一个实体与之联系,则称实体集A与实体集B具有一对多对应关系,记为1:n
- 多对多
对于实体集A中每个实体,实体集B中有多(n)
个实体与之联系,反之亦然(m)
,则称实体集A与实体集B具有多对多应关系,记为m:n
两个以上的实体型之间的联系
存在一对一、一对多、多对多联系
单个实体型内部的联系
存在一对一、一对多、多对多联系
联系的度
联系的度指的是将参与联系的实体型数目,两个实体型之间联系度为
2
2
2,也称为二元联
系,
N
N
N个实体型之间联系度为
N
N
N,也称为N元联系
,
E-R图
- 实体型
实体型用矩形表示,写明实体名
- 属性
属性用椭圆表示,用无向边与对应实体型连接
- 联系
联系用菱形表示,写明联系名,用无向边与有关实体型连接,同时在无向边标明类型,联系也可以具有属性
扩展的E-R模型
ISA联系
某些实体型是某个实体型的子类型,这种父类-子类联系称为ISA联系,表示is a
语义
△
\triangle
△三角形表示,子类继承父类的所有属性的同时也可以有自己的属性
分类属性
分类属性是父实体型的一个属性,分类属性的值把父实体型中的实体分派到子实体型中
不相交约束和可重叠约束
不相交约束指的是父类中的一个实体不能同时属于多个子类的实体集,即一个父类中的实体最多属于一个子类实体集,在三角形中加叉号表示
可重叠余数指的是父类中的实体可以同时属于多个子类中的实体集,三角形中没有叉号表示
完备性约束
完备性约束描述一个实体是否必须是某一个子类的实体,若是则称为完全特化(total specialization
),父类到子类用双线连接,否则为部分特化(partial specialization
),父类到子类用单线连接
基数约束
基数约束说明任意实体可以在联系中出现的最少次数和最多次数,细化一对一、一对多、多对多联系,用一个数对表示,记为 m i n . . . m a x min...max min...max,其中 0 ⩽ m i n ⩽ m a x 0\leqslant min \leqslant max 0⩽min⩽max, ∗ * ∗表示无穷大
类别
- 强制参与约束
m i n = 1 min = 1 min=1的约束,被施加基数约束的实体型中的每个实体都要参与联系
- 非强制参与约束
m i n = 0 min = 0 min=0的约束,被施加基数约束的实体型中的实体可以出现在联系中,也可以不出现在联系中
PART-OF联系
PART-OF联系描述某个实体型是另外一个实体型的一部分
非独占的PART-OF联系
整体实体如果被破坏,另一部分实体仍然可以独立存在,用非强制参与联系表示非独占的PART-OF联系
独占的PART-OF联系
整体实体如果被破坏,另一部分实体不可以独立存在,用弱实体类型和识别联系来表示独占联系,双矩形表示弱实体型,双菱形表示识别联系
UML
统一建模语言(UML, Unified Modeling Language
),是对象管理组织(Object Management Group, OMG
)的一个标准,为软件开发的各个阶段提供模型化和可视化支持的规范语言,从需求规格描述到系统完成的测试和维护,可以用于数据建模、业务建模、对象建模、组件建模等
实体型
实体型用类表示,矩形框上部记录实体名,下面列出属性名
码
类中在属性后面加上PK
来表示码属性
联系
用类图之间的关联来表示
概念结构设计
概念结构设计是将用户需求抽象为信息结构(即概念模型)的过程,是各种数据类型的共同基础,比数据模型更独立于机器、更抽象、更稳定,是数据库设计的关键
实体与属性的划分原则
尽量作为属性对待可以简化E-R图
-
属性必须是不可分的,不能包含其他属性,不再具有需要描述的性质
-
属性不能与其他实体有联系,联系必然是实体与实体之间的
合并E-R图
属性冲突
属性域冲突,属性值的类型、取值范围、取值单位、取值集合不同
命名冲突
同名异义和异名同义
结构冲突
同一对象在不同应用具有不同的抽象,实体和属性相互变换
E-R图修改和重构
消除冗余
冗余数据指的是由基本数据导出的数据,冗余联系指的是可以由其他联系导出的联系,它们可能破坏数据库完整性、导致维护困难等问题,可以利用分析方法和规范化理论进行消除
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解