MySQL三大范式和五大约束

一 数据库设计三大范式

1.1 第一范式(1NF)

         原子性、 数据不可再分。

原地址表
ID StuAddress
1 天津   10080
2 上海   10082
3 杭州   10083
4 深圳   10084
... ...
调整之后的表
ID StuAddresss StuCall
1 天津 10080
2 上海 10082
3 杭州 10083
4 深圳 10084
... ... ...

1.2 第二范式(2NF)

         唯一性  使得每一行 数据具有唯一性,并消除数据之间的部分依赖。例如订单表只描述订单相关信息,所以所有字段都必须与订单id相关;产品表只描述产品相关的信息,所以所有字段都必须与产品id相关;因此不能在一张表中同时出现订单信息与产品信息。

orders
订单编号 产品编号 订购日期 产品名称
001 A001 2000-2-3 HP 3120

拆分之后:

orders
订单编号 订单日期
001 2000-2-3
products
产品编号 产品名称
A001 HP 3120
  • 如果一个关系满足1NF,并且除了主键之外的其他列,每个属性是功能依赖于整个键,而不是部分的键则满足第二范式。
  • 第二范式要求每个表只描述一件事情。

1.3 第三范式(3NF)

         独立性,消除传递依赖。例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户id即可,而不能有其他的客户信息。因为其他的客户信息直接关联于用户id,而不是直接与订单id直接相关。

orders
订单编号 订单日期 顾客编号 顾客姓名
001 2000-2-3 AB001 Tony

拆分之后:

orders
订单编号 订购日期 顾客编号
001 2000-2-3 AB001

二 数据库五大约束

  • primary KEY:设置主键约束;
  • UNIQUE:设置唯一性约束,不能有重复值;
  • DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2
  • NOT NULL:设置非空约束,该字段不能为空;
  • FOREIGN key :设置外键约束。

你可能感兴趣的:(MySQL)