文档详情

数据库设计和E-R模型..ppt

发布:2017-05-28约1.96万字共79页下载文档
文本预览下载声明
第五章: 实体 – 联系模型 第五章: 实体 – 联系模型 设计过程 建模 约束 E-R 图 设计中的问题 弱实体集 扩展的 E-R 特性 银行数据库的设计 数据库设计的其他问题 设计过程 用户需求规格说明 概念设计阶段 E-R 模型 功能需求规格说明 逻辑设计 关系模式建立 物理设计 定义数据库物理特征 设计中主要陷阱 冗余 不完整性 建立模型 数据库可以被建模为: 实体集合 实体间的联系 实体(entity) 是一个存在且区别于其他对象的对象 例子: 特定的一个人/公司/事件/工厂 实体有属性(attributes) 例子: 人有名字和住址 实体集(entity set)是具有相同类型,即相同性质或属性的实体集合 例子: 所有人/公司/树/假期的集合 customer 和 loan 实体集合 联系集 联系(relationship) 是一个几个实体间的关联 例子: Hayes depositor A-102 customer 实体 联系集 account 实体 联系集(relationship set) 是一个n ? 2 实体集间的数学关系(这些实体集不必互异),来源于实体集 {(e1, e2, … en) | e1 ? E1, e2 ? E2, …, en ? En} 这里 (e1, e2, …, en) 是联系 例子: (Hayes, A-102) ? depositor 联系集 borrower 联系集 (Cont.) 属性可以是一个联系集中的性质(property) 例如, customer 和 account实体集间的depositor 联系集可以有属性access-date 联系集的度(degree) 指参与一个联系集的实体集数目 涉及两个实体集的联系集叫做二元(binary) (或两度)。总体上,大多数数据库系统中的联系集是二元的。 联系集可以涉及两个以上的实体集 涉及两个以上的实体集的联系集很少见 属性 实体由属性集代表,即实体集所有属性具有的描述性的性质 域(Domain) – 每个属性允许的取值 属性的类型: 简单(simple)和复合(composite)属性 单值(Single-valued)和 多值(multi-valued)属性 例子: 多值属性 phone_numbers 派生(Derived) 属性 能够从其他属性计算得来 例子: 给定 date_of_birth,得到 age 复合(composite)属性 映射基数约束 表示一个实体通过一个联系集能够与多少个实体相关联 在二元联系集中非常有用 对二元联系集,映射基数必须是下列类型之一: 一对一 一对多 多对一 多对多 映射基数(Mapping Cardinalities) 映射基数(Cont.) 码 超码:唯一标识别实体集中一个实体的属性集 候选码:最小的超码 主码:被选中的候选码 联系集的码 参与联系的实体集的主码的组合形成联系集的一个超码 (customer_id, account_number) 是 depositor 的一个超码 注意:这意味着实体集对能在特定的联系集中最多有一个联系 例子: 如果需要对每个customer访问每个account跟踪所有 access_dates, 我们不能对每次访问假定一个联系。但,我们可以使用多值属性 当确定候选码时,必须考虑联系集的映射基数 当在多于一个候选码中选择主码时,需要考虑联系集的语义 E-R 图 E-R 图:复合、多值、派生属性 具有属性的联系集 角色 一个联系的实体集不需要是相异的 如下,标签 “manager” 和 “worker” 叫做角色( roles), 它们指定employee 实体如何通过 works_for 联系集交互 E-R图中通过标示连接矩形和菱形的线段来表示角色 角色标签可选,用来阐明联系的语义 基数约束(Cardinality Constraints) 基数约束表示为联系集和实体集间的有向或无向线段: ( ? )表示 “一” ( — )表示“多” 一对一联系: 一个customer 通过联系borrower 最多与一个loan关联 一个 loan通过联系borrower 最多与一个customer关联 一对多联系 在一对多联系中,一个customer 通过联系borrower 与多个(包括零个)loan关联,一个 loan通过联系borrower 最多与一个customer关联 多对一联系 在多对一联系中,一个customer 通过联系borrower最多与一个loan关联,一个 loan通过联系borrower 与多个(包括零个)customer关联 多对多联系
显示全部
相似文档