数据库系统概论学习笔记Day02
E-R 模型的数据库设计
设计阶段
数据库设计者必须与应用的用户进行交互以理解应用的需求,把它们以用户能够理解的高层的形式表示出来,然后再将需求转换为更低层次的设计。
需求分析:此阶段是完整的描述未来数据库用户的需求。
数据库设计者需要和应用领域的专家和用户进行深入♂沟通。这一阶段产出的是用户需求规格说明
概念设计:设计者选用一种数据模型,并将所选数据模型的概念将这些需求转化为数据库的概念模式。 概念模式明确规定了数据库中表示的实体、实体的属性、实体之间的联系以及实体和联系上的约束。通常此阶段会构建 实体 - 联系图
完善的概念模式会指明企业的功能需求。在功能需求规格说明中,用户描述将在数据库上执行的各类操作。在概念设计这一阶段,设计者可以检查模式以确保其满足所有需求。
逻辑设计阶段:设计者将高层概念模式映射到将被使用的数据库系统具体实现的数据模型。
数据模型的实现通常是关系数据模型。
物理设计阶段
设计选择
在一个数据库模式的设计中,我们必须确保避免两个主要的缺陷
冗余:一种不好的设计会重复信息。
冗余信息的最大问题是:如果对一条信息进行了更新但没有仔细将这条信息的所有拷贝都更新,那么这条信息将变得不一致。
不完整
实体-联系模型(E-R数据模型)
E-R数据模型被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式来做到的
E-R数据模型采用了三个基本概念:
实体集
一个实体是现实世界中可区别于所有其他对象的一个“事务”或“对象”。实体可以是实际存在的,也可以是抽象的。实体集是共享相同性质或属性的、具有相同类型的实体的集合。我们用外延这个术语来表示属于某个实体集的实体的实际集合
实体集在E-R图中以(分割的)矩形表示,如
实体通过一组属性来表示。
联系集
联系是多个实体间的相互关联,也可以被成为描述性属性的属性。联系集是相同类型联系的集合。E-R模式中的一个联系实例表示在所建模的现实企业中被命名的实体之间的一种关联。
联系集在E-R图中以菱形表示,菱形通过线条联系到多个不同的实体集
联系集的属性在E-R图中以(未分割的)矩形来表示
属性
对于每个属性都有一个可取值得集合,成为该属性的域或值集。
- 简单和复合属性。复合属性可以被划分为子部分
- 单值和多值属性。一个属性只对应一个值被称为单值属性,一个属性对应多个值被称为多值属性(数组)。
- 派生属性。这类属性的值可以从其他相关的属性派生出来,派生属性的值并不存储,而是在需要时根据基属性计算出来
映射基数
映射基数或基数比率表示一个实体能通过联系集关联的另一些实体的数量。
一对一one-to-one:A 中的一个实体 至多 与 B 中的一个实体相关联,且 B 中的一个实体 至多 与 A 中的一个实体相关联
在E-R图中,我们从联系集到两个实体集各画一条有向线段。
一对多one-to-many:A 中的一个实体可以与 B 中的任意个实体相关联,而 B 中的一个实体 至多 与 A 中的一个实体相关联 在E-R图中,我们从联系集向“一one”侧画一条有向线段。
多对一many-to-one:A 中的一个实体 至多 与 B 中的一个实体相关联,而 B 中的一个实体可以与 A 中的任意个实体相关联
在E-R图中,我们从联系集向“一one”侧画一条有向线段。
多对多many-to-many:A 中的一个实体可以与 B 中的任意个实体相关联,且 B 中的一个实体也可以与 A 中的任意个实体相关联
在E-R图中,我们从联系集到两个实体集各画一条无向线段。
在这些关系中:
- 如果某一侧是“一one”的关系,则从联系集向“一one”侧画一条有向线段
- 如果某一侧是“多many”的关系,则从联系集向“多many”侧画一条无向线段
如果实体集中的每个实体都必须参与到联系集中的至少一个联系中,那么该实体集在该联系集中就被称为是全部的,否则该实体集在该联系集中就被称为是部分的
我们用双线表示一个实体集在联系中的全部参与
E-R 图还提供了一种方式描述更复杂的约束,这种约束限制了每个实体参与联系集中联系的次数,线段上可以有一个关联的最小和最大基数,使用 l(英文 L )...h的形式表示,其中 l(英文 L ) 表示最小基数 h 表示最大基数
弱实体集
弱实体集的存在依赖于另一个实体集,称其为标识性实体集。我们使用标识性实体集的主码和分辨率属性的额外属性来唯一的标识弱实体集。与之相对的,非弱实体集被称为强实体集。