软件设计师考试 | 第九章 数据库技术基础 | 关系数据库的规范化
文章目录
- (一)函数依赖
- (二)规范化
- 1. 1NF(第一范式)
- 2. 2NF(第二范式)
- 3. 3NF(第三范式)
- (三)模式分解及分解应具有的特性
- 1. 分解
- 2. 无损连接
- 3. 保持函数依赖
(一)函数依赖
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。
- 函数依赖
- 非平凡的函数依赖
- 平凡的函数依赖
- 完全函数依赖
- 部分函数依赖
- 传递依赖
- 码
- 主属性和非主属性
- 外码
- 函数依赖的公理系统
(二)规范化
关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式规范的程度。
范式有1NF
、2NF
、3NF
、4NF
和5NF
,其中1NF
的级别最低。
这几种范式之间,5NF⊂4NF⊂3NF⊂2NF⊂1NF
成立。通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这个过程称为规范化。
1. 1NF(第一范式)
定义: 若关系模式R
的每一个分量是不可再分的数据项,则关系模式R
属于第一范式。
存在的问题:
- 冗余度大
- 引起修改操作的不一致性
- 插入异常
- 删除异常
因为上述四个问题,所以要对模式进行分解,并引入了2NF
。
2. 2NF(第二范式)
定义: 若关系模式R∈1NF
,且每一个非主属性完全依赖于码,则关系模式R∈2NF
。
换句话说,当1NF
消除了非主属性对码的部分函数依赖,则称为2NF
。
3. 3NF(第三范式)
定义: 若关系模式R(U,F)
中若不存在这样的码X
,属性组Y
及非主属性Z(Z⫋Y)
使得X→Y(Y/⇢ X)
,Y→Z
成立,则关系模式R∈3NF
。
即当2NF
消除了非主属性对码的传递函数依赖,则称为3NF
。
(三)模式分解及分解应具有的特性
1. 分解
定义: 关系模式R(U,F)
的一个分解是指ρ={R₁(U₁,F₁),R₂(U₂,F₂),...,Rn(Un,Fn)}
,其中,U=U₁∪U₂∪...∪Un
,Fi
是F
在Ui
上的投影。
对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有三种情况:
- 分解具有无损连接性
- 分解要保持函数依赖
- 分解既要无损连接,又要保持函数依赖
2. 无损连接
定义: ρ={R₁(U₁,F₁),R₂(U₂,F₂),...,Rn(Un,Fn)}
是关系模式R(U,F)
的一个分解,若对R(U,F)
的任何一个关系r
均有r=mρ(r)
成立,则分解ρ
具有无损连接性。
3. 保持函数依赖
定义: 设关系模式R(U,F)
的一个分解ρ={R₁(U₁,F₁),R₂(U₂,F₂),...,Rn(Un,Fn)}
,如果F=πRi(F)
,则称分解ρ
保持函数依赖。
软件设计师考试 | 第九章 数据库技术基础 | 关系数据库的规范化相关推荐
- 软考-软件设计师 - 第9章 数据库技术基础【附补充常考知识点】
9.1 基本概念 9.1.1 数据库与数据库系统 数据库系统是才采用数据库技术,有组织的.动态的存储大量相关数据,方便多用户访问的计算机系统.由数据库.硬件.软件.人组成. 9.1.2 数据库管理系统 ...
- 软件设计师(五)数据库技术基础+数据结构
数据库技术基础 1.数据库系统:数据库,硬件,软件,人员 2.DBMS(数据库管理系统)的功能:数据定义,数据库操作,数据库运行管理,数据组织.存储和管理,数据库的建立和维护,与其他软件系统的通信功能 ...
- 独立于计算机系统的是 用户模式,第6章 数据库技术基础习题
一.判断题(该题若正确,则在括号内画Ö,若错误,则在括号内画´.) 1. 任何一个二维表就是一个关系.( ) 2. 在关系中元组的顺序是无关紧要的.( ) 3. 关系模型的完整性规则是对关系的约束条件 ...
- 【软考数据库】第六章 数据库技术基础
目录 6.1 基本概念 6.1.1 关于数据的基本概念 6.1.2 数据库管理系统的功能 6.1.3 数据各个发展阶段的特点 6.1.4 数据库系统的体系结构 6.2 数据模型 6.2.1 三级模式两 ...
- 软考《软件设计师》第九章:数据结构与算法
第九章:数据结构与算法 考点1:矩阵 数组 矩阵:计算时采用带点排除法,注意一维数组的起始位置 考点2:表 线性表 顺序表:顺序存储,即用一组地址连续的存储单元依次存储线性表中的数据元素 链表:链式存 ...
- 软考(软件设计师)考点总结 -- 数据库技术
软考(软件设计师)考点总结:https://blog.csdn.net/Lzy410992/article/details/117321579 数据库基础知识 三级模式-两级映射: 三层模型: 内模式 ...
- 软考-软件设计师 - 第2章 程序设计语言基础知识【附补充常考知识点】
本章导图: 2.1 程序设计语言概述 2.1.1 程序设计语言的基本概念 1 低级语言与高级语言 低级语言:机器语言.汇编语言 高级语言:面向各类应用的程序设计语言,如Java,C,C++,PHP,P ...
- 软考——软件设计师:第九章:计算机网络与信息安全考点总结(完整篇)
文章目录: 1.OSI/RM七层模型 1.1 相关例题 2.TCP/IP协议族(Internet核心协议) 2.1 传输层协议--TCP 2.2 传输层协议--UDP 2.3 应用层协议--DHCP ...
- 软考之软件设计师——数据库技术基础
数据库技术基础 1.数据库管理系统(DBMS) 主要实现对共享数据有效地组织.管理和存取. DBMS的六大功能: 数据定义数据库操作:提供数据操纵语言(DML)来实现对数据的基本操作.DML分为两类: ...
最新文章
- GitHub最最最火的开源爬虫工具箱,一爬就取
- Linux设置环境变量小结
- EJS学习(三)之语法规则中
- Django(part17)--form表单提交数据
- 接口 Closeable
- Qt中的Q_OBJECT
- 软工实践-第二次会议
- windows ce6.0系统 支持双网卡吗_MacBook双系统不求人,自己来
- [转载]CRC校验原理
- python小实例_Python100个小例子
- tail -f 命令卡住
- 【 C# 】ListView控件的基本属性和常用方法详解
- 获得鸿蒙级抽奖,37鸿蒙天尊抽奖活动概率公示
- 大型软件设计——进度报告
- 新视野大学英语4-UNIT4-Expression in use
- java毕业设计_短视频分享网站
- virtualbox中安装xp系统、安装oracle数据库到虚拟机的xp系统中、主机连接oracle、备份xp系统、oracle数据库的一些基本概念(学习oracle数据库的准备工作)-day01
- 设计中的确定性与不确定性思考
- 『阶段总结』研一学习生活总结
- 南昌大学《概率论与数理统计》期末考试试卷真题A