数据库设计:概念模型与关系设计解析
立即解锁
发布时间: 2025-08-23 00:15:07 阅读量: 2 订阅数: 4 

# 数据库设计:概念模型与关系设计解析
## 1. 概念数据模型基础
### 1.1 内涵与实例
内涵或模式是数据库的逻辑模型,由实体集表示。实例描述并约束其所允许包含的元组结构,同样由实体集表示,是数据库的一种模型。对元组的数据操作只有在遵循受影响关系的明确内涵时才被允许。
### 1.2 图书馆管理系统案例
#### 1.2.1 系统需求概述
该系统用于管理作者和借阅者的信息,并跟踪书籍的借阅情况。借阅者信息包括姓名、地址、电子邮件和电话;作者信息包括姓名、地址和电子邮件。新的书籍、作者和客户信息会被录入系统。当客户借阅书籍时,系统会记录借阅日期、计算可借阅天数以及应归还日期。若借阅者逾期归还书籍,需根据逾期天数支付罚款。
#### 1.2.2 概念模型开发步骤
- **步骤 1:识别实体**
- 仔细审查需求规格说明书,突出所有遇到的名词,创建包含所有名词(包括重复项)的列表,后续剔除不相关的名词。在本案例中,识别出的名词有:books、authors、name、address、e - mail、loaner、client、borrowers、name、address、e - mail、phone、loan date、return date、loan days、fine。
- 虽然每个名词都可能是实体集,但有些可能是属性。通过识别依赖关系来确定实体集,例如,name、address 和 e - mail 依赖于 authors;name、address、e - mail 和 phone 依赖于 borrowers。
- 最终确定的实体集有:LIBRARY、BOOK、AUTHOR、BORROWER、CLIENT 和 LOANER。
| No. | Entity set |
| --- | --- |
| 1 | LIBRARY |
| 2 | BOOKS |
| 3 | AUTHORS |
| 4 | BORROWERS |
| 5 | CLIENTS |
| 6 | LOANERS |
- **步骤 2:移除重复实体**
- 业务用户在编写需求时,常出现同一事物的不同表述。需确保识别出的实体集确实是独立的。在本案例中,borrowers、loaners 和 clients 是同义词,选择保留 borrowers。
- 不将系统本身作为实体集,因为是为图书馆系统建模,所以不应有 library 实体集。
- 确定实体集的类型(强或弱):实体集的存在依赖于另一个实体集则为弱实体集;若其存在独立,则为强实体集。此步骤的结果如下:
| No. | Entity set | Type |
| --- | --- | --- |
| 1 | BOOK | Strong |
| 2 | AUTHOR | Strong |
| 3 | BORROWER | Strong |
- **步骤 3:列出每个实体集的属性**
- 确认实体集的必要性,判断某些是否为其他实体集的属性。例如,phone 是实体集还是 AUTHOR 实体集的属性。
- 与客户沟通,确定每个实体集可能需要的其他属性。最初识别的属性如下:
- **BORROWER 实体集**
| Attribute name | Type | Domain | Optional |
| --- | --- | --- | --- |
| BORROWER_ID | Unique identifier | Text | No |
| NAME | Composite attribute | Text | No |
| EMAIL | Single valued attribute | Text | Yes |
| PHONE | Multi - valued attribute | Text | Yes |
| ADDRESS | Composite attribute | Text | Yes |
| BOOK_ID | Single valued attribute | Text | No |
| LOAN_DATE | Single valued attribute | Text | No |
| DUE_DATE | Derived attribute | Text | No |
| RETURN_DATE | Derived attribute | Text | No |
- **AUTHOR 实体集**
| Attribute name | Type | Domain | Optional |
| --- | --- | --- | --- |
| AUTHOR_ID | Unique identifier | Text | No |
| NAME | Composite attribute | Text | No |
| EMAIL | Single valued attribute | Text | Yes |
| PHONE | Multi - valued attribute | Text | Yes |
| ADDRESS | Composite attribute | Text | Yes |
- **BOOK 实体集**
| Attribute name | Type | Domain | Optional |
| --- | --- | --- | --- |
| BOOK_ID | Unique identifier | Text | No |
| TITLE | Single valued attribute | Text | No |
| EDITION | Single valued attribute | Numeric | Yes |
| YEAR | Single valued attribute | Numeric | Yes |
| PRICE | Single valued attribute | Numeric | Yes |
| ISBN | Single valued attribute | Text | Yes |
| PAGES | Single valued attribute | Numeric | Yes |
| AISLE | Single valued attribute | Text | Yes |
| DECRIPTION | Single attribute | Text | Yes |
- 对属性进行分析和调整:
- 对于复合属性,根据客户需求决定是否拆分。例如,若客户希望按名字或姓氏搜索,将 NAME 属性拆分为 FIRST_NAME 和 LAST_NAME。
- 遇到多值属性时,将其转换到另一个实体集。在本案例中,将 PHONE 属性从多值属性改为单值属性。
- 对于派生属性,如 DUE_DATE 可根据 LOAN_DATE 计算得出,在本案例中选择移除该属性。
- 调整后的属性如下:
- **BORROWER 实体集**
| Attribute name | Type | Domain | Optional |
| --- | --- | --- | --- |
| BORROWER_ID | Unique identifier | Text | No |
| FIRST_NAME | Single valued attribute | Text | No |
| LAST_NAME | Single valued attribute | Text | No |
| EMAIL | Single valued attribute | Text | Yes |
0
0
复制全文
相关推荐










