基于3NF的数据库设计方法

        第一范式是最基本的规范形式,即关系中每个属性都是不可再分的简单项。其实所谓第一范式就是指数据库表中的任何字段都是单一属性不可再分,也就是说对于满足第一范式的表的字段都是对一种的描述属性,该属性都是单一的不可再分的,如人的年龄、姓名等。

       第二范式是指如果一个关系模式满足第一范式且每个主属性都完全函数依赖于它的主关系键则称这个关系满足第二范式。第二范式也就是指除了主键外确保表中的每个属性列都必须依赖于主键。如学生信息表(学号,姓名,性别,年龄,班级,课程)其中学号为主键而课程不依赖于学号所以学生信息表中应把课程删掉

    第三范式是指在满足第二范式的前提下每个非主属性都不传递函数依赖于主键关系则成这个关系满足第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段 → 非关键字段x → 非关键字段y。例如学生表(学号,姓名,年龄,所在学院,学院地点,学院电话)很明显此表满足第一范式,由于存在学号可以决定姓名、年龄、所在学院、学院地点、学院电话所以也满足第二范式,而由于所在学院就可确定学院地点、学院电话因此该表存在依赖关系故不满足第三范式。
      数据库设计时又如何使用3NF设计方法来设计呢?其基本方法是在需求分析的基础上,确定数据库中的全部属性和属性之间的依赖关系,将他们组织在一个单一的关系模式中,然后在分析其中不符合3NF的约束条件,将其进行投影分解,分成若干个3NF关系模式的集合。简单的说就是先试着将所有的属性列在一个表中,然后根据3NF条件约束分析,找出不满足3NF条件约束的再将其分解若干个满足3NF的表。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值