如何判断设计数据库是否合理?

摘要

本文讲述如何判断设计的数据库是否合理(设计的数据库表符合第一范式、第二范式、第三范式等)

前置知识

超码、候选码、主码

超码

关系的超码是一个或者多个属性的集合,这些属性上的取值保证可以唯一识别出关系中的元组。
举个例子,有属性为<学号,身份证,姓名,年龄,班级>这样的一个表,其中学号、身份证或者<学号,身份证>都能唯一识别出关系中的元组。那么学号、身份证以及<学号,身份证>都被称为超码。

候选码

候选码是一个最小的超码,它是一组构成超码的属性集,但是这组属性的任意子集都不是超码
比如有属性为<学号,选课>这样的一张选课表,其中<学号,选课>两个属性构成一个超码,但是学号或者选课属性单独提取出来,不能作为超码,那么<学号、选课>就是一组候选码。

主码

关系中的一个候选码被选作为超码
在属性为<学号,身份证,姓名,年龄,班级>这样的一个表的例子中,学号,身份证都是超码,也是候选码,可以选择学号或者身份证作为主码。

第一范式

如果关系R中每个属性都是不可再分的(原子的),并且每个属性都是单值的,则称关系R满足第一范式

第二范式

如果关系R属于第一范式,并且每个非主码属性都函数依赖于整个候选码,而不是依赖于部分候选码,则称关系R满足第二范式。
第一范式转化成第二范式:
1、有限判断主码的规范性
2、将依赖部分候选码的非主码属性和所依赖部分码组成一个关系
3、将依赖整个候选候选码的非主属性和整个候选码组成另一个关系

第三范式

若关系R属于第二范式,并且它的非主属性只函数依赖于候选码,而不依赖于其他非主属性,则称R满足第三范式。
第二范式转换为第三范式:
1、将不止依赖于主码的非主属性和所依赖的非主属性组成一个关系
2、原有关系中去掉那些不止依赖于主码的非主属性,剩余部分组成一个关系

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值