当前课程知识点:数据库概论 >  第七章 实体关系模型 >  7.3 E-R模型的拓展 >  Video

返回《数据库概论》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《数据库概论》慕课在线视频列表

Video课程教案、知识点、字幕

同学们

大家好

我是云南大学软件学院的教师何婧

E-R模型是描述现实世界的一种概念模型

在前面的课程中

我们学习了常用的E-R模型

然而现实世界中

对象和对象之间的关系是多种多样的

本节我们将给大家介绍一些

扩展的E-R模型知识

主要包括属性的基数

弱实体

一元递归模型

复杂的多元模型

以及泛化模型

首先

我们学习什么是属性的基数

回顾一下上一节中学过的内容

假如实体E和实体F具有R联系

那么实体E参与到联系R中的基数

表示实体E中的一个实例

最少与实体F中的多少个实例有联系

最多与实体F中的多少个实例有联系

同样的

属性的基数也可以划分为

最大基数和最小基数

表示一个实体实例在该属性上的取值个数

假设最小基数为0

则表示实体在该属性上的取值可能为空值

该属性是可选参与的

反之

最小基数为1

则表示实体在该属性上的取值

是不能为空值的

相应的

如果一个属性的最大基数为1

则表示该属性是一个单值属性

最大基数为N则表示这是一个多值属性

例如

我们之前分析过的员工实体

员工的爱好的最大基数为N

最小基数为1

说明它是一个多值属性

而且至少要填写一个爱好

不能为空值

再比如员工的地址属性

它的最大基数为1

最小基数为0

表明员工的地址属性可以为空

如果有值的话就只需要填写一个地址信息

我们注意到地址属性是一个复合属性

由街道

城市

邮编等单值属性组成

每一个单值属性的最小基数

和最大基数都是1

那么在地址属性有值时

这些单值属性都是必须要填写的

不能取空值

接下来我们来分析一下什么是弱实体

假设有两个实体E和F

实体E的实体实例是否存在

依赖于实体F中的实体实例

就说明实体E是一个弱实体

实体F是一个强实体

例如

订单实体和订单明细实体

是否存在订单明细信息

依赖于是否有相应的订单信息

当一条订单记录删除后

其对应的订单明细信息也应该删除掉

这样我们就说订单是一个强实体

而订单明细是一个弱实体

订单和订单明细之间是一种1对多的联系

转换成关系模型时

应该在订单明细表中添加订单表的主键

并将它设定成外键

在前面的学习中

我们分析的主要是两个实体之间的联系

事实上

有些联系是一个实体内各个实例之间的联系

有些联系是多个实体之间的联系

一元递归模型指的就是一个实体内部的联系

例如

员工实体内部的管理联系

由于企业的组织架构通常是一种树形结构

员工之间就存在了上下级的关系

从管理的角度来看

一名担任领导职务的员工最多可以管理N个人

一名普通员工管理0个人

从下级向上级汇报的角度来看

一名普通员工的直接上级最多就是1个人

最少情况下

企业的最高领导没有上级

怎样将一元递归联系转换成关系表呢

从上一节学过的知识可知

这和联系的类型相关

对员工实体的管理联系而言

这是一个1对多联系

管理是1的那一方

汇报是多的那方

应该在员工表上添加一个负责人属性列

保存每一个员工的直接上级的员工编号

有些联系是两个实体之间的

有些联系是一个实体内部的

那么还有一些联系是多个实体间存在的

称为多元联系

也称为多元模型

例如

在前面的课程中

我们学习过的CAP数据库

顾客是一个实体

代理商是一个实体

商品是一个实体

那么订购就是三个实体之间的联系

表示一个顾客

通过某个代理商订购了什么商品

我们来分析订购联系的基数

因为一个顾客

可以通过多个代理商订购多种商品

顾客对订购是一种(0,N)的联系

一个代理商可以向多个顾客提供多种商品

代理商对订购是一种(0,N)的联系

一种商品可以被多个顾客

和多个代理商购买

所以商品对订购也是一种(0,N)的联系

通过分析

得出订购是一种多对多联系

因此订购联系单独生成了一张订单关系表

表中包含了顾客

代理商和商品三个实体的主键列

并且这三个主键列在订单表中都是外键

可见联系可以是一元联系

二元联系

多元联系

但联系的类型始终是1对1联系

1对多联系

或者多对多联系

最后我们还会看到一种

具有泛化层次的E-R模型

例如

人员信息

在不同的需求中有不同的处理方式

如果对所有的人员而言

我们需要保存的都是他们的基础信息

那么可以简单的将它处理成一个人员实体

但是

在实际需求中

根据业务的不同

不同的人员往往需要与

不同的实体具有联系

需要保存不同的特殊信息

比如学校里的人员

有些是学生

有些是教师

有些是行政办公人员

他们需要保存一些不一样的属性信息

学生要保存专业和绩点

教师要保存所属部门和职称

行政人员要保存当前的工作状态

是专职还是兼职

那么就应该将人员实体划分为

三个不同的实体

这就形成了一种泛化层次模型

针对泛化层次模型怎样转换成关系表

还要具体来看泛化的联系类型

第一种情况

假如父层实体中的实例

都能够保存到子层实体中

并且孩子层实体是相互独立的

那么就根据孩子实体的个数

分别生成一张关系表

如果有些孩子实体区别较小

也可以将他们合并为一个实体

第二种情况

假如父层实体中的实例

有些不能保存到子层实体中

那么

父层实体仍然需要单独建立一张关系表

孩子层实体则根据他们是否存在

相互数据重叠来区分是

每个孩子建立一张关系表

还是有些孩子实体合并成一张关系表

在学校人员的这个例子中

对人员信息分别建立三张关系表

他们是学生表

教师表和行政人员表

好了

现在我们就基本掌握了E-R模型的主体知识

后面

我们会针对一些E-R模型的实例

进行总体分析

帮助大家更好的掌握数据库设计方法

好了

同学们

我们今天的课程就到这里

下节课再见

数据库概论课程列表:

导论

-数据库概述

--Video

-导论--数据库概述

第一章 数据库基础

-1.1 数据库基础

--Video

-第一章 数据库基础--1.1 数据库基础

第二章 关系运算

-2.1 CAP数据库

--CAP数据库

-第二章 关系运算--2.1 CAP数据库

-2.2 自然关系运算1

-- 自然关系运算1

-第二章 关系运算--2.2 自然关系运算1

-2.3 自然关系运算2

--自然关系运算2

-第二章 关系运算--2.3 自然关系运算2

第三章 结构化查询语言SQL

-3.1 SQL概述

-- SQL概述

-3.1 SQL概述--作业

-3.2 数据定义DDL

--数据定义DDL

-3.2 数据定义DDL--作业

-3.3 SQL数据更新DML

--SQL数据更新DML

-3.3 SQL数据更新DML--作业

-3.4 复杂SQL查询操作1

--复杂SQL查询操作1

-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1

-3.5 复杂SQL查询操作2

--复杂SQL查询操作2

-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2

第四章 数据库完整性、视图与安全性

-4.1 数据完整性

--4.1 数据完整性

-4.1 数据完整性--作业

-4.2 完整性约束

--完整性约束

-4.2 完整性约束--作业

-4.3 外键约束

--外键约束

-4.3 外键约束--作业

-4.4 触发器

--触发器

-4.4 触发器--作业

-4.5 视图

--视图

-4.5 视图--作业

-4.6 安全性

--安全性

-4.6 安全性--作业

第五章 索引

-5.1 索引

--Video

-5.2 B+树索引

--Video

第六章 规范化理论

-6.1 函数依赖

--Video

-6.2 Armstrong公理

--Video

-6.3 无损分解

--Video

-6.4 范式举例

--Video

-6.5 三种范式

--Video

-6.5 三种范式--作业

第七章 实体关系模型

-7.1-E-R模型概述

--E-R模型概述

-7.2 E-R模型详解

--Video

-7.3 E-R模型的拓展

--Video

-7.4 E-R模型实例分析

--Video

第八章 事务处理

-8.1 事务的ACID性质介绍

--ACID介绍

-8.1 事务的ACID性质介绍--作业

-8.2 事务经历

--事务经历

-8.2 事务经历--作业

-8.3 可串行化调度和前趋图

--可串行化调度和前趋图

-8.3 可串行化调度和前趋图--作业

-8.4 两阶段封锁

--两段锁协议

-8.4 两阶段封锁--作业

-8.5 隔离级别

--隔离级别

-8.5 隔离级别--作业

-8.6 事务恢复

--事务恢复

-8.6 事务恢复--作业

第九章 数据库应用与开发

-9.1 数据库使用介绍

--数据库使用介绍

-9.2 Java访问数据库

--Java访问数据库

-9.2 Java访问数据库--作业

第十章 其他数据库技术概述

-10.1 数据库新技术概述

--Video

Video笔记与讨论

也许你还感兴趣的课程:

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