实体-联系模型
概念结构设计
概念结构设计任务:将用户需求抽象为概念模型(E-R图)。
概念结构设计的方法:自顶向下、自底向上、逐步扩张、混合策略
自底向上方法步骤:
数据抽象与局部视图设计:根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图,即分E-R图。
选择局部应用:可利用机构职能关系进行局部处理
逐一设计分E-R图:
实体与属性的划分原则:属性应是系统中最小的信息单位,不再具有描述性质;属性不能与其他实体有联系。
在设计数据库模式时,必须确保避免两个主要陷阱:
冗余:错误的设计可能导致重复信息。错误的冗余表示可能导致各种信息副本之间的数据不一致。
不完整性:糟糕的设计可能会使应用程序的某些方面难以或不可能建模。
基本概念
实体
现实世界中可区别其他对象的一个“事务”或者“对象”。
示例:特定人员、公司、事件、工厂
实体集
一组共享相同性质或属性的、具有相同类型的实体的集合。
示例:所有人员、公司、树木、假日的集合
实体集可以图形化表示:
矩形表示实体集;
实体矩形内列出的属性;
下划线表示主键属性;
属性
实体集中每个成员所拥有的描述性性质,实体通过一组属性来表示
示例:讲师=(身份证,姓名,薪水);课程=(课程ID,标题,学分)
属性子集构成实体集的主键,唯一标识集合的每个成员。
联系(关系,relationship)
联系集
联系集是相同类型联系的集合,是n≥2个实体之间的数学联系。
联系的描述性属性
联系也可以具有描述性属性,联系集的属性在E-R图中通过未分割的矩形来表示。
实体角色
实体在联系中扮演的角色
一般来说,参与一个联系集的实体集通常是互异的,因此角色是隐含且不指定的。
但同一实体集可以以不同的角色多次参与一个联系集(该联系集被称为递归联系集)
示例:课程信息之间存在一种“prereq前置课程”的联系,以表示不同课程之间的前置关系。
数据抽象
聚集:定义了某一类型的组成成分,它抽象来对象内部类型和成分之间的“is part of”的语义。
概括(概化,继承):定义类型之间的一种子集联系,它抽象了类型之间的“is subset of”的语义。
联系集的度
参与联系的实体集数量
二元联系集、三元联系集
数据库系统中的大多数联系集都是二元联系集
Last updated