数据库系统之设计数据库的范式

在了解三范式之前需要知道几个数学公式

公式一    函数依赖

        设一个关系为R(U),X和Y为属性集U上的子集,若对于X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖系,并称X函数决定Y,或称Y函数依赖于X,记作X→Y,称X为决定因素

eg:如存在一个学生表student,属性有学号,姓名,其中学号可决定学生的姓名,则称姓名依赖于学号

公式二   完全函数依赖

        设一个关系为R(U),X和Y为属性集U上的子集,若存在X→Y,但在X中不存在一个真子集X’,使得X’能够函数决定Y,则称X完全函数决定Y,或Y完全函数依赖于X

eg:如存在一个课程表,属性有班级,课程,老师,其中班级和课程可决定老师,但是单独的班级或课程都不可决定,则称老师完全依赖于班级和课程的集合

公式三   部分函数依赖

      设一个关系为R(U),X和Y为属性上U的子集,若存在X->Y,并且X中存在一个真子集X`,使得X`能够函数决定Y,则称X部分函数决定Y,或Y部分函数依赖于X

eg:还是以学生表为例,属性有学号,性别,姓名,其中学号与性别可决定姓名,学号也可单独决定姓名,则称姓名部分依赖学号与性别的集合

公式四    传递函数依赖

     设一个关系为R(U),X,Y和Z为属性集U上的子集,其中存在X→Y和Y→Z,但Y不决定X,同时Y不包含Z,则存在X→Z,称此为传递函数依赖,即X传递函数决定Z,Z传递函数依赖于X。

好了,在了解了这些公式之后,我们现在开始进入正题

  第一范式(1NF) :是指数据库的每一列,每一行都是不可分割的基本数据项(通俗的说就是不能像excel一样,合并单元格)

  第二范式(2NF):是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应

  第三范式(3NF):就是指表中的所有数据元素不但要能唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系

  BCNF:就是在第三范式的基础上消除对主码子集的依赖

范式之间的转化

1NF转化为2NF:消除非主属性对码的部分依赖

2NF转化为3NF:消除非主属性对码的传递函数依赖

3NF转化为BCNF:消除主属性对码的部分和传递函数

ps:在设计表时尽量消除多对多的关系,可以通过拆分表的方式来消除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值