数据库范式精品PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础知识
基础 知识
• 函数依赖ห้องสมุดไป่ตู้
• 定义:设有关系模式R(U),X和Y是属性集U的子 集,函数依赖是形为X→Y的一个命题,对任意R
中两个元组t和s,都有t[X]=s[X]蕴t[Y]=s[Y],
那么FD X→Y在关系模式R(U)中成立。X→Y读作
‘X函数决定Y’,或‘Y函数依赖于X’。
•
通俗的讲,如果一个表中某一个字段Y的值
3、校长说:一年级语文(上)换教材,换成《大学语文》。 有10000个学生选了这么课,改动好大啊!改累死了……郁闷了吧? (修改异常)
第二范式(2NF) 那应该怎么解决呢? 投影分解,将一个表分解成两个或若干个表
第二 范式
学生
课程
老师
小明 一年级语文(上) 大宝
老师职称
副教授
教室
101
上课时间
14:30
第一
的条件,如果数据库设计不能满足第一范
范式
式,就不称为关系型数据库。关系数据库
设计研究的关系规范化是在1NF之上进行的。
第一范式
第一范式(1NF):属性不可分。
第一 范式
第一范式
• 那么它和属性值不可分有什么区别呢? 给一个例子:
第一 范式
name
tel1
小李
小张
tel2
age
22
010-
21
是由另外一个字段或一组字段X的值来确定的,
就称为Y函数依赖于X。
•
函数依赖应该是通过理解数据项和企业的规
则来决定的,根据表的内容得出的函数依赖可能
是不正确的。
基础知识
基础 知识
目前关系数据库有六种范式: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 第四范式(4NF) 第五范式(5NF) BC范式(BCNF)
第二 范式
每个非主属性要完全函数依赖与候选键, 或者是主键。也就是说,每个非主属性是
由整个主键函数决定的,而不能由主键的
一部分来决定。
第二范式(2NF)
第二 范式
第二范式(2NF):符合1NF,并且,非主属性 完全依赖于码。
听起来好像很神秘,其实真的没什么。 一个候选码中的主属性也可能是好几个。如果 一个主属性,它不能单独做为一个候选码,那 么它也不能确定任何一个非主属性
第二范式(2NF)
学生
课程
老师
小明 一年级语文(上) 大宝
老师职称
教材
教室 上课时间
副教授 《小学语文1》 101 14:30
第二 范式
一个学生上一门课,一定在特定某个教室。 所以有(学生,课程)->教室 一个学生上一门课,一定是特定某个老师教。 所以有(学生,课程)->老师 一个学生上一门课,他老师的职称可以确定。 所以有(学生,课程)->老师职称 一个学生上一门课,一定是特定某个教材。 所以有(学生,课程)->教材 一个学生上一门课,一定在特定时间。所以 有(学生,课程)->上课时间
数据库范式浅谈
序言 序言
•
本文用较为直白的语言介绍范式,旨在
便于理解和记忆,这样做可能会出现一些不
精确的表述。
•
我写下这些的目的主要是为了加强 记
忆,其实我也比较菜,我希望当我对一些概
念生疏的时候,回过头来看看自己写的笔记,
可以快速地进入状态。如果你发现其中用错
误,请指正。
序言 序言
数据库范式是数据库设计中必不可少的知 识,没有对范式的理解,就无法设计出高效率、 优雅的数据库。甚至设计出错误的数据库。而 想要理解并掌握范式却并不是那 么容易。教科 书中一般以关系代数的方法来解释数据库范式。 这样做虽然能够十分准确的表达数据库范式, 但比较抽象,不太直观,不便于理解,更难以 记忆。
基础知识
要理解范式,首先必须
对知道什么是关系数据库,
基础 知识
如果你不知道,我可以简单
的不能再简单的说一下:关
系数据库就是用二维表来保
存数据。
基础知识
所谓范式,是关系型数据库 关系模式规范化的标准,从规范 基础 化的宽松到严格,分别为不同的 知识 范式,通常使用的有第一范式、 第二范式、第三范式及BC范式等。 范式是建立在函数依赖基础上的。
1、校长要新增加一门课程叫“微积分”,教材是《大学数 学》,怎么办?学生还没选课,而学生又是主属性,主属性不能 空,课程怎么记录呢,教材记到哪呢? ……郁闷了吧?(插入异常)
2、下学期没学生学一年级语文(上)了,学一年级语文(下) 去了,那么表中将不存在一年级语文(上),也就没了《小学语 文1》。这时候,校长问:一年级语文(上)用的什么教材 啊?……郁闷了吧?(删除异常)
第二范式(2NF)
给一个反例:
我们考虑一个小学的教务管理系统,学生 上课指定一个老师,一本教材,一个教室,一个 时间,大家都上课去吧,没有问题。那么数据库 怎么设计?(学生上课表)
第二 范式
学生
课程
老师
小明 一年级语文(上) 大宝
老师职称
教材
教室 上课时间
副教授 《小学语文1》 101 14:30
课程
教材
一年级语文(上) 《小学语文1》
第三范式(3NF)
第三 范式
定义:
如果关系模式R是2NF,且关系模式R(U,F) 中的所有非主属性对任何候选关键字都不存在传 递依赖,则称关系R是属于第三范式。简单的说, 第三范式要满足以下的条件:首先要满足第二范 式,其次非主属性之间不存在函数依赖。由于满 足了第二范式,表示每个非主属性都函数依赖于 主键。如果非主属性之间存在了函数依赖,就会 存在传递依赖,这样就不满足第三范式。
第一范式
name
小李 小张
tel 移动电话
age
坐机
22
010-
21
第一 范式
ID
name age
001
小李
22
002
小张
21
ID
移动电话
001
002
坐机 010-
第二范式(2NF)
定义:
如果关系模式R是1NF,且每个非主
属性完全函数依赖于候选键,那么就称R
是第二范式。简单的说,第二范式要满足
以下的条件:首先要满足第一范式,其次
满足最低要求的范式是第一范式(1NF)。 在第一范式的基础上进一步满足更多要求的 称为第二范式(2NF),其余范式以次类推。 一般说来,数据库只需满足第三范式(3NF) 就行了。
第一范式(1NF)
• 定义:
果关系模式R的每个关系r的属性都是
不可分的数据项,那么就称R是第一范式的
模式。简单的说,每一个属性都是原子项, 不可分割。 1NF是关系模式应具备的最起码
第二范式(2NF)
因此(学生,课程)是一个码。 然而,一个课程,一定指定了某个
教材,一年级语文肯定用的是《小学语 文1》,那么就有课程->教材。
第二
(学生,课程)是个码,课程却决定
范式
了教材,这就叫做不完全依赖,或者说
部分依赖。出现这样的情况,就不满足
第二范式!
第二范式(2NF)
第二 范式
有什么不好吗?你可以想想: