数据库设计与E-R模型全解析
立即解锁
发布时间: 2025-08-23 01:16:45 阅读量: 6 订阅数: 23 


数据库系统概念第六版精华
### 数据库设计与E - R模型全解析
#### 1. 数据库设计的其他问题
数据库设计通常并非一次性活动。组织的需求在不断演变,其所需存储的数据也会相应变化。在数据库设计的初始阶段,或者在应用程序开发过程中,数据库设计者可能会意识到需要在概念、逻辑或物理模式层面进行更改。模式的改变会影响数据库应用的各个方面。一个优秀的数据库设计应能预见组织未来的需求,并确保随着需求的演变,模式所需的更改最小化。
区分预期永久的基本约束和预计会改变的约束十分重要。例如,教师编号能唯一标识一位教师,这是基本约束;而大学规定教师只能隶属于一个系,若允许联合任命,该规定可能会改变。若数据库设计仅允许一位教师隶属于一个系,当允许联合任命时,可能需要进行重大修改。只要每位教师只有一个主要隶属系,就可以通过添加额外关系来表示联合任命,而无需修改教师关系;若政策改变允许有多个主要隶属系,则可能需要对数据库设计进行更大的改动。一个好的设计不仅要考虑当前政策,还应避免或减少因可预见的变化而导致的更改。
此外,数据库所服务的企业可能会与其他企业进行交互,因此多个数据库可能需要相互协作。在实际应用中,不同模式之间的数据转换是一个重要问题,目前已提出了各种解决方案。XML数据模型在不同应用程序之间交换数据时被广泛用于表示数据。
最后,数据库设计在两个层面上是一项以人为本的活动:系统的最终用户是人(即使数据库和最终用户之间有应用程序);数据库设计者需要与应用领域的专家进行广泛交流,以了解应用程序的数据需求。为了使数据库设计和部署在企业中取得成功,所有与数据相关的人员的需求和偏好都应被考虑在内。
#### 2. 数据库设计相关概念总结
- **数据库设计核心**:数据库设计主要涉及数据库模式的设计。实体 - 关系(E - R)数据模型是数据库设计中广泛使用的数据模型,它能以方便的图形化方式展示数据、关系和约束。
- **E - R模型用途**:E - R模型主要用于数据库设计过程,它通过允许指定企业模式来促进数据库设计。这种模式代表了数据库的整体逻辑结构,整体结构可以用E - R图以图形方式表达。
- **实体与关系**:实体是现实世界中存在且可与其他对象区分的对象,通过为每个实体关联一组描述该对象的属性来体现其区别;关系是多个实体之间的关联,关系集是同一类型关系的集合,实体集是同一类型实体的集合。
- **键的概念**:超键、候选键和主键的概念适用于实体集和关系集,就像它们适用于关系模式一样。确定关系集的主键需要谨慎,因为它由一个或多个相关实体集的属性组成。
- **映射基数**:映射基数表示一个实体通过关系集可以关联的其他实体的数量,包括一对一、一对多、多对一和多对多关系。
- **弱实体集与强实体集**:没有足够属性形成主键的实体集称为弱实体集,有主键的实体集称为强实体集。
- **E - R模型的选择**:E - R模型的各种特性为数据库设计者提供了多种选择,以最佳方式表示所建模的企业。在某些情况下,概念和对象可以用实体、关系或属性来表示。企业的整体结构方面可以通过使用弱实体集、泛化、特化或聚合来最好地描述。设计者通常需要权衡简单紧凑模型和更精确但更复杂模型的优缺点。
- **从E - R图到关系模式**:由E - R图指定的数据库设计可以用一组关系模式表示。对于数据库中的每个实体集和每个关系集,都有一个唯一的关系模式,其名称与相应的实体集或关系集相同。这是从E - R图推导关系数据库设计的基础。
- **特化与泛化**:特化和泛化定义了高层实体集与一个或多个低层实体集之间的包含关系。特化是从高层实体集中选取一个子集形成低层实体集的结果,泛化是将两个或多个不相交的(低层)实体集合并以产生高层实体集的结果。高层实体集的属性由低层实体集继承。
- **聚合**:聚合是一种抽象,其中关系集(及其关联的实体集)被视为高层实体集,并可以参与关系。
- **UML**:UML是一种流行的建模语言,UML类图广泛用于类建模以及通用数据建模。
下面是相关概念的简单表格总结:
|概念|描述|
| ---- | ---- |
|实体 - 关系(E - R)数据模型|广泛用于数据库设计,以图形化展示数据、关系和约束|
|实体|现实世界中可区分的对象,有属性描述|
|关系|多个实体之间的关联|
|超键、候选键、主键|适用于实体集和关系集,确定主键需谨慎|
|映射基数|包括一对一、一对多、多对一、多对多关系|
|弱实体集|无足够属性形成主键|
|强实体集|有主键|
|特化与泛化|定义高层与低层实体集关系,属性可继承|
|聚合|关系集及关联实体集视为高层实体集|
|UML|流行建模语言,UML类图用于建模|
以下是一个简单的mermaid流程图,展示从E - R图到关系模式的转换:
```mermaid
graph LR
A[E - R图] --> B[实体集和关系集]
B --> C[唯一关系模式]
C --> D[关系数据库设计]
```
#### 3. 相关术语回顾
- **实体与实体集**
- **属性**:描述实体的特征。
- **域**:属性的取值范围。
- **简单和复合属性**:简单属性不可再分,复合属性由多个简单属性组成。
- **单值和多值属性**:单值属性只有一个值,多值属性可以有多个值。
- **空值**:表示属性值未知或不存在。
- **派生属性**:可以从其他属性推导得出的属性。
- **超键、候选键和主键**:超键能唯一标识实体,候选键是最小的超键,主键是选定的候选键。
- **关系与关系集**
- **二元关系集**:涉及两个实体集的关系集。
- **关系集的度**:参与关系的实体集的数量。
- **描述性属性**:用于描述关系的属性。
- **超键、候选键和主键**:概念与实体集类似。
- **角色**:实体在关系中扮演的角色。
- **递归关系集**:涉及同一实体集的关系集。
- **E - R图**:用于图形化表示数据库的逻辑结构。
- **映射基数**
- **一对一关系**:一个实体与另一个实体一一对应。
- **一对多关系**:一个实体可以与多个实体关联。
- **多对一关系**:多个实体与一个实体关联。
- **多对多关系**:多个实体与多个实体相互关联。
- **参与**
- **完全参与**:实体集中的每个实体都必须参与关系。
- **部分参与**:实体集中的部分实体参与关系。
- **弱实体集与强实体集**
- **鉴别属性**:用于区分弱实体集中的实体。
- **标识关系**:用于标识弱实体集的关系。
- **特化与泛化**
- **超类和子类**:特化和泛化
0
0
复制全文
相关推荐









