当前课程知识点:数据库系统原理与开发 >  第4章 数据库设计与实现 >  4.4 数据库规范化设计 >  4.4.1 数据库规范化设计-1

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

4.4.1 数据库规范化设计-1在线视频

下一节:4.4.2 数据库规范化设计-2

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

4.4.1 数据库规范化设计-1课程教案、知识点、字幕

大家好!

我是主讲教师陆鑫

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

第4.4小节 数据库规范化设计——函数依赖

本节学习目标如下

1)理解数据库规范化设计的意义

2)理解非规范关系在数据操作中出现的问题

3)理解函数依赖与关系属性

下面开始学习数据库规范化设计

一、为什么需要规范化数据库设计

减少数据库中的冗余数据

尽量使同一数据在数据库中仅保存一份

有效降低维护数据一致性的工作量

设计合理的表间依赖关系和约束关系

便于实现数据完整性和一致性

设计合理的数据库结构

便于系统对数据高效访问处理

二、非规范化关系表的数据操作问题

例如 “雇员”关系表的

模式语句及其数据如下所示

1.“雇员”关系表数据插入操作

例1 新入职的雇员“李青”分配到“产品部”

对雇员关系表执行如下插入数据SQL语句

在该数据插入SQL语句执行后

雇员表数据如下所示

在该表中, 我们可以发现一个问题

产品部的地点信息出现不一致

2.“雇员”关系表数据删除操作

例2 在表4-4所示的雇员关系表中

删除雇员编号为“E0005”的雇员数据

当雇员关系表删除雇员编号为“E0005”的雇员数据后

其数据见下表所示

从该表中发现一个问题

在该表中

“质检部”信息就再也没有了

3.“雇员”关系表数据修改操作

例3 在表4-4所示的雇员关系表中

修改“萧静”雇员所在财务部的地址为“A幢201”

当该雇员所在财务部的地址为“A幢201”后

其雇员关系表见下图所示

问题: 在该关系表中

“财务部”地址数据出现不一致

4.“雇员”关系表数据访问操作存在的异常

插入数据异常

删除数据异常

修改数据异常

5.“雇员”关系表数据访问操作异常的原因

同一关系中存在多个主题信息

如“雇员信息”、“部门信息”

第二关系表中存储冗余数据

如多个雇员数据记录中有相同部门信息

结论: 不规范的关系表可能存在数据冗余

引出数据访问操作异常现象

难以使数据库保持数据的一致性

三、函数依赖理论

1.函数依赖的数学定义

定义 设有一关系模式R(U)

U 为关系R的属性集合

X和Y为属性U的子集

设t、s是关系R中的任意两个元组

如果t[X] = s[X] 则t[Y] = s[Y]

那么称Y函数依赖于X

表示为X决定Y

函数依赖的左部称为决定因子

右部称为依赖函数

决定因子和依赖函数都是属性的集合

说明:函数依赖反映属性或属性组之间相互依赖

互相制约的关系

即关系表中属性之间的依赖关系

2.函数依赖类型

完全函数依赖

部分函数依赖

属性传递依赖

多值函数依赖

定义1:设X、Y是某关系的不同属性集

如X决定Y

且不存在X’作为X的子集

使X’决定Y,则Y称完全函数依赖

否则称Y为部分函数依赖

例1 对于关系R

属性包含X、Y、N、O、P

其中X、Y为复合主键

若其它属性N、O、P都完整依赖于该复合主键

则称关系R为完全函数依赖

反之, 其它属性N、O、P仅依赖于X

或仅依赖于Y

则称R为部分函数依赖

定义2:设X、Y Z是某关系的不同属性集

如果有X决定Y

Y不决定X

Y决定Z

若X决定Z

称Z对X存在函数传递依赖

例2 对于关系R

元素X、N、O、P

其中X为主键

若属性N依赖于X

而X不依赖于N

属性O依赖于N

则属性O函数传递依赖于X

定义3:设U是关系模式R的属性集

X和Y是U的子集

Z=U-X-Y

xyz表示属性集XYZ的值

对于关系模式R的关系r

在r中存在元组(x,y1,z1)和(x,y2,z2)时

也存在元组(x,y1,z2)和(x,y2,z1)

那么在模式R中存在多值函数依赖

例3 对于教学关系R

元素包括课程、教师、课程编号

一门课程可以有多个任课教师

也可以有多本参考书

每个任课教师可以任意选择他的参考书

该关系存在多值函数依赖

好了,本节学习结束!

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

第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.4.1 数据库规范化设计-1笔记与讨论

也许你还感兴趣的课程:

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