当前课程知识点:数据库系统原理与开发 >  第4章 数据库设计与实现 >  4.3 数据库建模设计 >  4.3.2 数据库建模设计-2

返回《数据库系统原理与开发》慕课在线视频课程列表

4.3.2 数据库建模设计-2在线视频

下一节:4.4.1 数据库规范化设计-1

返回《数据库系统原理与开发》慕课在线视频列表

4.3.2 数据库建模设计-2课程教案、知识点、字幕

大家好!

我是主讲教师陆鑫

下面我们开始学习数据库课程

第4.3小节 数据库建模设计——CDM/LDM/PDM模型转换设计

本节学习目标如下

1)理解CDM/LDM/PDM模型转换原理

2)理解实体到关系表的转换方法

3)掌握建模工具如何实现CDM/LDM/PDM模型转换设计

下面继续学习数据库建模设计

一、数据库结构模型转换设计

数据库结构模型设计分为概念数据模型设计

逻辑数据模型设计

物理数据模型设计三个层次

在常规的数据库设计中

将依次对这三种模型进行设计

其中包括不同层次模型之间的转换设计

在数据库设计中

各层次模型元素对应关系如下表所示

概念数据模型的“实体”模型元素

在逻辑数据模型中仍为“实体”元素

但在物理数据模型中则为关系表

概念数据模型中的“属性”模型元素

在逻辑数据模型仍为“属性”元素

但在物理数据模型中则为列

概念数据模型中的“标识符”模型元素

在逻辑数据模型中细分为“主键标识符/外键标识符”元素

但在物理数据模型中则为主键/外键

概念数据模型中的“联系”模型元素

在逻辑数据模型中仍为“联系”元素

但在物理数据模型中则为参照完整性约束

二、不同层次数据模型转换方案

数据库设计各层次模型的转换设计方案

如下图所示

首先基于系统数据需求

设计系统概念数据模型

在此基础上

再从系统软件设计角度

将概念数据模型转换为逻辑数据模型

逻辑数据模型应反映本系统针对特定数据库类型

数据库逻辑结构设计

此后

系统设计人员再基于所选型的

数据库DBMS实现要求

将系统逻辑数据模型

转换为系统物理数据模型设计

系统物理数据模型应反映本系统

数据库在特定DBMS中的具体设计方案

最后将依据系统物理数据模型

在DBMS系统中进行数据库实现

在实际数据库设计中

若不考虑数据库设计规范性或优化处理

可以直接将系统概念数据模型

转换为系统物理数据模型设计

三、CDM/LDM到PDM转换原理

当使用关系数据库时

物理数据模型(PDM)即为关系模型

CDM/LDM到PDM的转换其实就是E-R模型到关系模型的转换

E-R模型到关系模型转换原理

第一 将每一个实体转换成一个关系表

实体属性转换为关系表的列

实体标识符转换为关系表的主键或外键

第二 将实体之间的联系转化为

关系表之间的参照完整性约束

例如 概念数据模型中“学生”实体

转换为物理数据模型中“学生”表

转换方式见下图所示

在实体转换中

“学生”实体名称对应转换为“学生”关系表名称

学生实体属性名称对应转换为“学生”关系列名称

“学号”实体标识符对应转换为关系表的“学号”列主键

四、弱实体转换关系表

前面描述的实体转换为关系表的过程

适用于所有的实体类型

但弱实体转换为关系表时

需要特别的处理

下面以非标识符依赖弱实体“销售订单”转换关系表为例

给出弱实体处理方式如下图所示

由于“销售订单”弱实体为非标识符依赖弱实体

在转换为“销售订单”关系表时

将“销售订单”弱实体的标识符属性

作为“销售订单”关系表的主键

同时将所依赖的“销售员”强实体的标识符属性

在“销售订单”关系表中作为外键

下面以标识符依赖弱实体“订单明细”转换关系表为例

给出弱实体处理方式如下图所示

由于“订单明细”弱实体为标识符依赖弱实体

在转换为“订单明细”关系表时

“订单明细”关系表

需要将“订单明细”弱实体的标识符属性(订单明细编号)

和所依赖的“销售订单”强实体的

标识符属性(订单编号)作为复合主键

同时还将“订单编号”属性还作为“订单明细”关系表的外键

五、实体联系转换参照完整性约束

1.“1对1实体联系”转换表示

下面以“学生”

“助研金发放账号”的1:1实体联系为例

说明如何将它转换为关系表参照完整性约束

有两种转换方案

一种是将学生表的主键“学号”

放入助研金账号表中做外键

另一种是将助研金账号表的

主键“账号”放入学生表中做外键

这两种方案均是可行

由设计者根据应用需求自主做出选择

方案a适合助研金帐号管理查询处理

方案b适合学生信息查询处理

2.“1对N实体联系”转换表示

下面以“班级”

“学生”的1对多实体联系为例

说明如何将它转换为关系表参照完整性约束

转换方案 两个实体分别转换为关系表

然后将父实体关系表的主键放入子实体关系表中做外键

便可将实体一对多联系转换为关系表之间的参照完整性约束

针对本例“班级”实体转换为“班级”关系表

“学生”实体转换“学生”关系表

“班级”关系表主键放入“学生”关系表作为外键

这样“班级”实体与“学生”实体之间的1:N联系

转换为关系表之间的参照完整性约束

3.“M:N实体联系”转换表示

下面以“课程”“学生”的M:N实体联系为例

说明它们如何转换为关系表

转换方案 M:N实体联系

不像1:1和1:N实体联系那样直接转换

需要创建一个新的关联表

该关联表分别参照原有实体对应的关系表

针对本例 “课程”实体转换为“课程”关系表

“学生”实体转换“学生”关系表

新增一个“选修”关联表

“选修”关系表的复合主键“学号”和“课程编号”同时又是外键

它们分别参照“学生”关系表的主键

“课程”关系表的主键

这样“课程”实体与“学生”实体之间的M:N联系

转换为“选修”关系表与“学生”关系表

“课程”关系表之间的参照完整性约束

六、实体继承联系转换参照完整性约束

当带有实体继承联系的E-R模型转换到关系模型时

首先将父实体和子实体都各自转换为表

其属性均转换为表的列

在处理实体继承联系转换时

将父表的主键放置到子表中

既做主键又做外键

例如“学生”“本科生”

“研究生”组成的E-R模型转换关系表

其转换方案如下图所示

“学生”实体转换为“学生”关系表

“本科生”实体转换为“本科生”关系表

“研究生”实体转换为“研究生”关系表

“学生”关系表的主键“学号”

分别在“本科生”关系表“研究生”关系表中

既作为主键又作为外键

七、实体递归联系转换参照完整性约束

1.“1:N实体递归联系”的转换

例如“顾客”1:N实体递归联系转换参照完整性约束

其转换方案如下图所示

转换方案

首先将递归实体转换为表

其属性转换为列

标识符转换为主键

同时还将标识符转换为外键

实现自己对自己的参照

针对本例“顾客”实体转换为“顾客”关系表

“顾客编号”在关系表中作为主键

同时又是添加该属性作为外键

实现自己对自己的参照完整性约束

2.“M:N实体递归联系”的转换

例如

“医生”M:N实体递归联系转换参照完整性约束

其方案如下图所示

转换方案 增加一个关联表

该表分别参照原实体对应的关系表

并对原关系表建立两个参照完整性约束

针对本例“医生”实体转换为“医生”关系表

并增加一个“治疗”关系表

该表对“医生”关系表建立两个参照完整性约束

即“治疗”关系表中

定义两个主键“医生编号”

这两个主键同时又是外键

它们分别参照“医生”关系表的主键“医生编号”

八、系统数据库建模设计实例

这里以“图书借阅管理系统”数据库建模设计为例

说明CDM/LDM/PDM的转换设计

首先设计系统概念数据模型

如下图所示

该 “图书借阅管理系统”的

概念数据模型是以E-R模型图来表示设计的

下面将“图书借阅管理系统”概念数据模型

转换到逻辑数据模型设计

该E-R模型图为“图书借阅管理系统”的

逻辑数据模型设计

在逻辑数据模型中

实体的标识符不但有主键标识符

也有外键标识符

同时 也将概念数据模型中的

多对多实体联系转换为1对多联系

并增加一个关联实体“预定”

对于转换后的逻辑数据模型

通常还需要进行完善设计

如在“预定”实体中

建议增加“预定日期”、“预定数量”等属性

下面将“图书借阅管理系统”逻辑

数据模型转换为物理数据模型设计

将“图书借阅管理系统”逻辑数据模型

转换为指定DBMS的物理数据模型

在系统物理数据模型中

只有关系表元素

以及关系表的参照完整性约束

到此为止

数据库建模设计就结束了

后续

便可进入数据库实现阶段开发

好了,本节学习结束!

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

4.3.2 数据库建模设计-2笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。