2020-07-16

数据库范式理论

数据库关系范式理论:
首先需要知道的一些知识储备:
码=键。主码就是主键。
候选码/候选键:可以唯一确定一个元组的属性。
比如:学号可以唯一确定一个学生,那么学号就是候选码/候选键;
学生选课表里,学号不能唯一确定一个选课关系,而是由学号和课号共同确定一个选课关系,所以学号和课号的组合叫候选码/候选键。
在学生表里加入身份证号属性,学号和身份证号都可以唯一的确定一个学生记录。所以学号和身份证号都是候选码/候选键,此时有两个候选码/候选键。
主码/主键:人为规定的,从候选码/候选键中选择一个。
主属性:包含在候选键里的属性。
非主属性:不是主属性的属性都是非主属性。
主关系键:候选键/候选码。
函数依赖:关系模式中属性之间的逻辑依赖关系。比如一个学号就决定了一个学生的名字,sno–>sname,sno函数决定sname,sname函数决定sno。
部分函数依赖:在关系模式中R中,X、Y是R关系的子集,X的真子集X’,有
X’->Y,则称Y对X的部分函数依赖。
R{SCD(sno,cno,score,sname)},sno和cno的组合做主键,所以Y{(sno,cno)->(score,sname)},另外X{sno->sname},所以sname部分依赖(sno,cno),部分函数依赖是多值函数依赖。
传递函数依赖:SCD(sno,dept,depter,sname),分析该关系模式,sno做主键,sno可以决定所有,sno->sname,dept,depter,但是院系dept不能决定学生sno,却可以决定depter,dept!->sno,dept->depter,sno->dept,所以sno->depter,
所以depter传递函数依赖sno。
第一范式(1NF):每一列要保持原子特征,列是基本数据项,不能再进行拆分。不满足这一条件不能称为关系型数据库。
第二范式(2NF):在第一范式的基础上,消除非主属性对主关系键的部分函数依赖,就是第二范式,部分函数依赖是多值函数依赖,如果主关系键只有一个属性,那就自动满足第二范式。简单来说就是确保非主属性和主键相关。
第三范式(3NF):在第二范式的基础上,消除非主属性对主关系键的传递函数依赖,简单来说就是确保每列都和主键直接相关,而不是间接相关。
BC范式(BCNF):要达到BC范式,说明此时关系已经满足了第三范式,这一层主要是考虑主属性对主关系键的部分依赖。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值