MYSQL 4.数据库设计

多表关系

一对一 如人和身份证的关系
一对多 如部门和员工的关系
多对多 如学生和课程 一个学生可以选择多门课程 一门课程可以被多个学生选择

一对多设计思想:在多的一面建立外键 指向一的一方的主键
多对多设计思想:多对多的关系实现需要借助第三张中间表 中间表至少包含两个字段 这两个字段作为第三张表的外键 分别指向两张表的主键 (联合主键) PRIMARY KEY( xx,xx),
一对一设计思想:可以在任意一方添加唯一外键指向另一方的主键

三大范式 1NF 2NF 3NF

第一范式 1NF 每一列都是不可分割的原子数据项
第二范式 2NF 在INF的基础上 消除非主属性得主码部分的部分依赖
第三范式 3NF 在2NF的基础上消除传递依赖

函数依赖
A→B 如果通过A可以确定唯一的B则称B依赖于A
例:学号→姓名 (学号,课程)→ 分数 // 属性组
完全依赖
A -→B 如果A是一个实行租 则B属性值必须依赖于A属性组的所有值
例:(姓名,课程)→分数
部分依赖
A→B 如果A是一个属性组 则B属性值确保只需要A中其中某些值就可以
(学号,课程名)→姓名
传递依赖
A→B B→C

如果是一张表中,一个属性或者属性组 被其他属性完全依赖 则这个属性为该表的码

主属性
码中的所有属性
非主属性
非码中的其他属性

你可能感兴趣的:(MYSQL 4.数据库设计)