难度:★★☆
案例引入
YourTour系统(旅游线路预定系统)
YourTour是一个为旅行社和其目标顾客提供服务的系统。它能够将多个景点组成一条旅游线路,而且能够为所有参加线路的游客提供所需的住宿及往返长交通预定。
用例图
1. 实体关系建模(回顾)
实体
一组具有相同属性的对象。属性是实体包含的元素。
是需求分析产生,经用户确认的数据集合。
关系
实体之间特有的关联。
关系有名称定义和数量级约束(1:1,1:n,n:m)。
实体关系图(ER图)
2. 数据库逻辑结构设计
把概念结构设计(ER图)转换为与选用的DBMS(数据库管理系统)产品所支持的数据模型相符合的逻辑结构(模式)。
目前使用的数据库基本都是关系数据库,因此要将ER图转换为关系模式,并进行优化。
数据库逻辑结构设计决定了数据库及其应用的整体性能。
3. 数据库逻辑结构设计的任务
-
将ER图映射为表。
创建表、属性及关系的基本描述。 -
用规范化方法检查表结构(第三范式)。
-
验证数据表是否支持用户事务,满足业务规则约束。
用户事务:多记录增加或删除;
业务规则:数据、属性域约束;实体完整性;多样性;参照完整性等。
1)将ER图映射为表。
ER图 | 数据库 |
---|---|
实体 | 表 |
属性 | 字段 |
标识属性 | 主键(PK) |
一般属性 | 表字段 |
复合/多值属性 | 表及关系 |
关系
1:1 及 1:n 关系 \(\to\)表关系
n:m 关系 \(\to\)关系表
2)用规范化方法检查表结构(第三范式)。
检查并修改表结构,以符合第三范式(3NF)。
1NF:数据库表中的字段都是单一属性的,不可再分。
2NF:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。
3NF:数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。
3)检查数据表是否支持用户事务,满足业务规则约束。
用户事务
目的:保证数据库逻辑结构设计,能够满足用户事务在数据方面的需求。
检查方法:根据用户事务的数据需求,(设计复杂用例)
- 检查数据在一个或多个表中是否可存储;
- 如果存储在多个表中,检查这些表是否能够通过主/外健机制连接起来。
对业务规则约束的检查
目的:保证数据库表对业务规则约束的支持。
检查项目:
字段数据类型、字段长度;
字段是否允许为空;
字段实际意义约束。
用户事务的检查
保证数据库逻辑结构设计,能够满足用户事务在数据方面的需求。
业务规则的检查
保证数据库表对业务规则约束的支持。
在对用户事务、业务规则约束的检查过程中,优化和细化设计方案。
提高质量,符合用户需求。