mysql-(三)-数据库设计三大范式

一.数据库设计在业务流程的位置

需求分析时要将原始的需求抽象成业务模型

写成需求说明书 <需求说明书>

       概要设计

            抽取实体  :  业务模型  ->   实体模型 (java类)

            数据库设计  :  

                    业务模型/实体模型  ->  数据模型

       详细设计

         ...

 

二.数据库设计的三大范式

第一范式:要求表的每个字段必须是不可分割的独立单元

反例        

如: student  

名字有曾用名和现在的名字

student name 小王|小明

查询不便 ====违法第一范式

student name old_name ====符合第一范式

第二范式:在第一范式的基础之上,要求每张表只表达一个意思。表的每个字段都和主键有依赖关系

反例

employee(员工) : 员工编号   员工姓名   部门名称  订单名称 --违反第二范式

订单名称要设计一张订单表,这样才符合第二范式

第三范式:在第二范式基础上,要求每张表除主键之外的其他字段都只能主键有直接决定依赖关系

员工表: 员工编号(主键)  员工姓名   部门编号   部门名称    ...

部门名称和部门编号有关系,又和员工编号有关系

解决办法就是建立两个表,加外间约束

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值