数据库讲解---(关系规范化)【一】

本文详细介绍了数据库中的泛关系模式、函数依赖的不同类型,以及第一范式至第五范式(1NF,2NF,3NF,BCNF,4NF)的概念和应用。特别强调了MySQL版数据库中的规范化过程,包括主码、外码和避免传递函数依赖的重要性。
摘要由CSDN通过智能技术生成

目录

零.前言

一.泛关系模式

1.1函数依赖【重要】

1.2几个基本概念

 1.3不同类型的函数依赖

1.4码的函数依赖

二.范式

2.1简介

2.2第一范式(1NF)

2.3第二范式(2NF)

2.4第三范式(3NF)

2.5BCNF(修正的3NF)

2.6多值依赖和第四范式(4NF)

2.7第五范式(5NF)

零.前言

数据库讲解(MySQL版)(超详细)【第一章】-CSDN博客

数据库-ER图教程_e-r图数据库-CSDN博客

数据库讲解(MySQL版)(超详细)【第二章】【上】-CSDN博客

数据库讲解---(SQL语句--表的使用)【MySQL版本】-CSDN博客

数据库讲解---(数据查询)【MySQL版本】_mysql中怎么检索学生表中所有学生的信息-CSDN博客

数据库讲解---(SQL语句--练习题讲解)【MySQL版本】-CSDN博客

数据库讲解---(数据更新、视图、数据控制)【MySQL版本】-CSDN博客

一.泛关系模式

现实问题的所有属性组合成一个关系模式R(U),这个关系模式就称为泛关系模式

例如,“有一个研究生管理系统,包含对象有研究生学号、姓名、学院、项目编号、项目名称、承担任务、导师姓名”,我们可以得到如下的泛关系模式

但是这个“泛关系模式效率低下,数据冗余度大,这里我们需要对这个泛关系模式进行改造,对此我们需要使用“关系规范化”的理论

1.1函数依赖【重要

函数依赖:“对于每个属性有且只有一个确定的属性与之对应,这种关系类似于数学上的单值函数

例如:“在一个学生关系中,如果我们知道了一个学号,那么就有一个唯一的学生名字与之对应

此时,我们可以称:“学号函数决定姓名”或者“姓名函数依赖于学号

图形表示为:“X->Y”,表示Y依赖于XX决定Y

注意:“函数以来对于关系中的所有实体都必须满足,即使有一个特例,这个函数依赖也是不成立的

1.2几个基本概念

  • 决定因素”:“若X->Y”,则X被称为决定因素
  • 互相依赖”:若X->Y,Y->X,则X和Y相互依赖,记作X<->Y
  • 若Y不依赖于X,记作X/->Y

 1.3不同类型的函数依赖

  • 非平凡函数依赖”:一个函数依赖X->Y如果满足Y不包含于X,则此函数依赖称为非平凡函数依赖,否则叫做平凡函数依赖,例如“(学号,姓名)->姓名”就是一个平凡函数依赖
  • 完全函数依赖”:如果X->Y,并且对于X的任何一个真子集Z,都有Z不决定Y,则称Y对X完全函数依赖,记作:
  • 部分函数依赖”:如果X->Y,并且存在X的一个真子集Z,有Z->Y成立,则称Y对X部分函数依赖,记作:
  • 传递函数依赖”:如果X->Y,Y不决定X,Y->Z,则X->Z,称Z对X传递函数依赖,记作:

1.4码的函数依赖

下面是一些和码有关的基本概念

  • 主属性和非主属性:包含在候选码中的属性叫作主属性,不包含在候选码中的属性叫作非主属性
  • 全码:如果码包含多个属性,那么这个属性集合就叫做全码,例如(学号,教室,教师)是一个全码
  • 外码:关系R中的属性组X不是R的主码,但X是关系T中的主码,则称X是关系R的一个外码
  • 超码:一个包含关键字属性集合也能用函数决定,这种包含主码的属性集合叫作超码

例如:

而“学号、课程号及(学号,课程号)”分别是关系模式学生、课程、学习表主码,但是:

所以:“(学号,姓名)”、“(学号,学院)”都是超码,因为后面的集合(学号,姓名,学院,性别,班级)都包含了关键字属性“学号”,且可以被“学号”决定,因此是超码

二.范式

2.1简介

对于关系模式作为数据库的模式,性能优劣也是不同的,为了区分关系模式的优劣,为此引入范式来描述关系模式的性能。

对于范式有五种级别:“1NF”、“2NF”、“3NF”、“4NF”、“5NF

范式的级别越高,约束条件也越来越严格,五种级别之间的联系是:

2.2第一范式(1NF)

设有一个关系R,如果R中的每一个属性A的属性名和属性值都是不可再分的,则称R属于第一范式,记作R∈1NF

例如下面的关系模式就∉1NF,因为属性还可以再分

可以看到“学时数”属性可以继续分解为“讲课”、“实验”两个子属性

再比如下面的关系模式也∉1NF,因为属性值还可以再分

2.3第二范式(2NF)

R∈1NF,且每一个非主属性都完全函数依赖于码,则R∈2NF

例如,关系R中有以下两个完全函数依赖:

其中,(编号,成员编号)是R的主码

又因为,项目名称完全依赖编号,所以项目名称部分依赖(编号,成员编号),存在一个部分依赖,因此关系R∉2NF

2.4第三范式(3NF)

关系模式R中不存在这样的码X,属性组Y及非主属性组Z,使得X->Y,Y/->X,Y->Z成立,则称R属于3NF

即:“不存在传递函数依赖

例如:

2.5BCNF(修正的3NF)

BCNF叫作“扩充的第三范式

定义:“对于关系R,每一个决定因素都含有码,则R∈BCNF

通俗理解:

  • 所有非主属性对码都是完全函数依赖的
  • 所有的主属性对每一个不包含它的码也都是完全函数依赖的
  • 没有任何属性完全函数依赖于非码的任何一组属性

2.6多值依赖和第四范式(4NF)

多值依赖设有关系R(U),且X,Y是U的子集,Z=U-X-Y,多值依赖X->->Y成立,当且仅当R的任意具体关系R,给定一对(X,Z)值,就有一组Y值与之对应,这种对应关系与Z值无关

多值依赖的性质:

  • 若X->->Y,则必有X->->U-X-Y
  • 若X->Y,则必有X->->Y,即X->Y是X->->Y的特例

4NF:“对于关系R的每个非平凡的多值依赖X->->Y,X都包含码,则X是第四范式,记作X∈4NF

2.7第五范式(5NF)

第五范式用的很少,故不再赘述

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值