• 数据库设计三大范式


    数据三大范式:建立科学的,规范的的数据库是需要满足一些条件。

    理解三大范式

    第一范式

    第一范式是表中的所有字段值都是不可分解的原子值否则,将有很多基本操作在这样的关系模式中实现不了。

    第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到地址这个属性,本来直接将地址属性设计成一个数据库表的字段就行。但是如果系统经常会访问地址属性中的城 市部分,那么就非要将地址这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算 满足了数据库的第一范式。

     第二范式对象的单一性

    确保表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。在一个表中,一个表中只能保存一种数据

    比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,如下表所示。

     

     

    这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。

    而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,把订单项目表也分离到另一个表中,就非常完美了。如下所示。

    第三范式[对象的纯粹性]

     个属性都跟主键有直接关系而不是间接关系。像:a-->b-->c  属性之间含有这样的传递关系,是不符合第三范式的。

    比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)学号--> 所在院校 --> (院校地址,院校电话)

    这样的表结构,我们应该拆开来,如下。(学号,姓名,年龄,性别,所在院校)--(所在院校,院校地址,院校电话)

     

  • 相关阅读:
    Servlet 06: jar包引入和web配置文件创建
    Servlet 05: Servlet生命周期方法
    Servlet 04: 什么是重定向
    Servlet 03: 通过xml配置文件配置servlet访问路径
    080 面向过程编程
    079 内置函数
    078 匿名函数
    077 递归
    076 生成器
    075 字典生成式
  • 原文地址:https://www.cnblogs.com/sdpdf/p/4199145.html
Copyright © 2020-2023  润新知