数据库系统之(函数依赖,码,范式,规范化)
文章目录
- 函数依赖
- 1.函数依赖(functional dependencies)
- 2.平凡函数依赖与非平凡函数依赖(trivial and non-trivial)
- 3.完全函数依赖与部分函数依赖
- 4.传递函数依赖
- 码(超码,候选码)
- 范式
- 第三范式(3NF)
- 3NF的一些性质:
- BCNF
- BCNF一些性质:
- 关系模式规范化
- 基本步骤
- 基本思想
函数依赖
1.函数依赖(functional dependencies)
定义:
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。 X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。
2.平凡函数依赖与非平凡函数依赖(trivial and non-trivial)
X→Y,Y⊈X,则称X→Y是非平凡的函数依赖。
X→Y,但Y⊆X ,则称X→Y是平凡的函数依赖。
例: 在关系SC(Sno, Cno, Grade)中,非平凡函数依赖: (Sno, Cno) → Grade平凡函数依赖: (Sno, Cno) → Sno(Sno, Cno) → Cno
3.完全函数依赖与部分函数依赖
- 在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’↛ Y, 则称Y完全函数依赖于X,记作X →F Y。
- 若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X →P Y 。
4.传递函数依赖
在R(U)中,如果X→Y,(Y⊈X),Y↛X,Y→Z,则称Z对X传递函 数依赖(transitive functional dependency)。记为:X → Z。
注意: 如果Y→X, 即X←→Y,则Z直接依赖于X。
码(超码,候选码)
设K为关系模式R<U,F>中的属性或属性组合。若K →F U,则K
称为R的一个候选码(Candidate Key)。如果U部分函数依赖于K,即K → U,则K称为超码(Surpkey)
候选码是最小的超码,即K的任意一个真子集都不是候选码
[例] S(Sno, Sdept, Sage) Sno→(Sno, Sdept,Sage), Sno是候选码(Sno, Sdept)、 (Sno, Sage)、 (Sno, Sdept, Sage) 是超码SC(Sno, Cno, Grade)中,(Sno, Cno)是候选码
范式
第三范式(3NF)
关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z(Y⊇ Z),使得X→Y,Y→Z,Y↛X,成立,则称R<U,F> ∈ 3NF。
例: S-D(Sno, Sdept) ∈ 3NFD-L(Sdept, Sloc)∈ 3NF
3NF的一些性质:
- 若R∈3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。
- 如果R∈3NF,则 R∈2NF。
- 采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。
- 将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。
BCNF
设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y, 且X ⊇ Y 时,X必含有码,那么R∈BCNF。即,在关系模式R<U,F>中,如果每一个决定因素都包含码,则R∈BCNF。
例:STJ(S,T,J)∈ 3NF T→J ,(S,J)→T, (S,T)→JSJ(S,J)∈ BCNF SJ的码为(S,J), all-keyTJ(T,J)∈ BCNF TJ的码为T, T→J
BCNF一些性质:
- 所有非主属性对每一个码都是完全函数依赖。
- 所有主属性对每一个不包含它的码也是完全函数依赖。
- 没有任何属性完全函数依赖于非码的任何一组属性。
关系模式规范化
基本步骤
基本思想
- 逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”
- 采用“一事一地”的模式设计原则
- 让一个关系描述一个概念、一个实体或者实体间的一种联系。
- 若多于一个概念就把它“分离”出去。
- 规范化实质上是概念的单一化
以上内容全部取自mooc的中国人民大学的《数据库系统概论》
数据库系统之(函数依赖,码,范式,规范化)相关推荐
- 数据库 之数据库设计浅知识 -- 设计概述、概念结构设计(E-R模型概述)、逻辑结构设计(函数依赖和范式)、物理结构设计
文章目录 1. 数据库设计概述 1.1 数据库设计的特点:结构和行为分离的设计 1.2 数据库设计方法 1.3 数据库设计的基本步骤 1.4 数据库设计过程中的各级模式 2. 需求分析 2.1 需求分 ...
- 数据库 函数依赖及范式(最通俗易懂)
数据库 函数依赖及范式(最通俗易懂) 一.基础概念 要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关系数据库就是用二维表来保存数据.表和表之间可以--(省略 ...
- 数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解
文章目录 概念回顾 1.函数依赖的定义 1.1 平凡函数依赖和非平凡函数依赖 1.2 完全函数依赖和部分函数依赖 1.3 传递函数依赖 2.码 2.1 主码和候选码 2.1主属性与非主属性 2.2 全 ...
- 软件设计师 - 函数依赖 和 范式
文章目录 1.函数依赖: 1.0.前提范例: 1.1.函数依赖定义: 1.2. 部分依赖 1.3. 完全依赖 2.范式 2.1. 码.候选码.主码 2.2.主属性和非主属性 2.3.第一范式(1NF) ...
- 基本函数依赖和候选键_[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)...
联系(Relationship)1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中一个实体有联系,反之亦然,那么实体集E1对E2的联系成为一对一联系,记为1:1: 1:N联系:一对多,记为1 ...
- 数据库函数依赖和范式理论学习总结
平凡函数依赖: 如果X→Y(x函数确定y或者y函数依赖x),但Y函数不确定X(Y不确定<不属于符号不能保存>x),则称X→Y是非平凡的函数依赖: 若X→Y,但Y 属于 X, 则称X→Y ...
- 数据库函数依赖及范式
一.基础概念 要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关系数据库就是用二维表来保存数据.表和表之间可以--(省略10W字). 然后你应该理解以下概念: ...
- 数据库系统之函数依赖
Functional Dependencies 什么是函数依赖? 如何发现关系表中的函数依赖关系? 函数依赖关系与对象的类 功能依赖与关联 函数依赖性的派生 阿姆斯特朗公理 (Armstrong ax ...
- 【数据库系统】函数依赖及其公理定理(1)
1.啥是函数依赖? 设 R ( U ) R(U) R(U)是属性集合 U = A 1 , A 2 , - , A n U={A1,A2,-,An} U=A1,A2,-,An上的一个关系模式, X , ...
- 6.0 《数据库系统概论》之关系数据库的规范化理论(数据依赖对表的影响[插入-删除-修改-冗余]、1NF-2NF-3NF-BCNF-4NF、函数依赖与多值依赖)
文章目录 0.思维导图 1.为什么要学习关系数据库规范化理论? (1)基本概念回顾 (2)关系模式的形式化定义 (3)什么是数据依赖F? (4)数据依赖F对关系模式的影响 1️⃣ 数据冗余(Data ...
最新文章
- linux命令详解-useradd,groupadd
- Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
- sql多表查询之一:Where 和 On的秘密
- 三星可折叠手机正式亮相
- 【GoLang】GO语言系列--002.GO语言基础
- spring 整合struts
- 为啥不用ActiveRecord
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_06-freemarker基础-遍历map数据...
- xamarin android 设备,【Xamarin.Android】在Visual Studio中增强设备日志记录
- android 资源文件
- 听说某琳系统停止更新了,其他的主机管理系统哪个好?
- 官方示例之地球模块五:ThingLayer
- 迪普交换机恢复出厂设置_迪普产品配置文档-基础篇(2012-11-05).pdf
- java poi 图片居中,poi word table 居中 poi word table
- matlab用三角分解法解函数
- 服务器同时连接局域网和外网
- w7电脑蓝屏怎么解决_电脑蓝屏怎么解决win7
- (16)万能查询还是万恶查询?
- 留用户、补内容,在线音乐暗战不停
- https网络编程——DNS域名解析获取IP地址
热门文章
- 计算机基础知识的看法,关于《计算机应用基础知识》课程教学的看法
- 计算机体系结构-备考总结
- 屏蔽计算机电缆套什么定额,DJYPVRP计算机电缆套什么定额
- 【计算机网络】数据链路层(三)—— 介质访问控制
- 优优加速cdn带宽_阿里、百度、腾讯的CDN加速,国内加速节点哪家好?
- wireshark显示没有找到接口
- 计算机主机光盘盒在哪,如何安装计算机光盘驱动器?如何在台式计算机上安装光盘驱动器...
- 什么是MTU?设置设备MTU时,需要注意哪些事项?
- 利用转换流将GBK格式文件以UTF-8输出
- 葡萄酒2021:从效仿到去欧洲化,“奥兰中国”们如何品出新口味?