数据库范式

基本概念

函数依赖

x → y x\rightarrow y xy,当确定 x x x的时候, y y y也可以确定
例:
学号 → \rightarrow 姓名,当知道了学号,就知道了学生姓名
学号,课程号 → \rightarrow 成绩,当知道了学号和课程号,就可以推出该学生在该课的成绩。

非平凡依赖

无效依赖关系:
学号,课程号 → \rightarrow 可以推出学号,其中没有有效信息

完全依赖和不完全依赖,记为 → F , → P \stackrel{F}{\rightarrow},\stackrel{P}{\rightarrow} F,P

学号,课程号 → \rightarrow 成绩,学号课程号缺一不可。
学号,课程号 → \rightarrow 院系,只需要学号就可确定。

候选码和超码

超码 → P \stackrel{P}{\rightarrow} P全键
侯选码 → F \stackrel{F}{\rightarrow} F全键

主属性

包含在候选码中的称为主属性

范式

第一范式

表项不可再分

第二范式

非主属性完全依赖于主属性
例表:(学号,院系,宿舍,课程号,成绩),不满足第二范式
修改为: (学号,课程号,成绩),(学号,院系,住址)

第三范式

非主属性无传递依赖到码
非主属性依赖于其它非主属性时,必不满足第三范式。

上述例子修改结果符合第二范式,但是注意到有 学号 → 院系 → 住址 学号\rightarrow院系\rightarrow住址 学号院系住址
(学号,课程号,成绩),(学号,院系,住址)进一步分为
(学号,课程号,成绩),(学号,院系)(院系,住址)

BCNF

消除主属性对码的部份依赖和传递依赖
(学生,课程,老师)
假设一个老师只上一门课,,则候选码有(学生,课程),(学生,老师)
( 学生,课程 ) → 老师 , ( 老师 ) → 课程 (学生,课程)\rightarrow老师,(老师)\rightarrow课程 (学生,课程)老师,(老师)课程,主属性对主属性部份依赖了。
拆为(学生,老师),(老师,课程)。

多值依赖

X → → Y X\rightarrow\rightarrow Y X→→Y,当X确定时,Y为固定的几个值
例:一个教师可以教多门课,则有
教师 → → 课程 教师\rightarrow\rightarrow课程 教师→→课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值