Mysql(中)

**#数据库设计**

多表设计
**1.多表之间的关系**
一对一:身份证
一对多:部门员工
多对多:学生和课程


一对多就是部门和员工,很显然员工表建立一个外键到部门表

多对多比如学生和课程,就需要中间表联动,中间表就是多行相同的学生id对应不同的课程id
中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键.

一对一给外键加唯一约束一般就是一张表就不拆成两张表

**2.数据库设计的范式**
关于遵循不同的规范要求设计出合理的关系型数据库,不同的规范要求被称为范式.越高的范式数据库数据冗余越小
第一范式,第二范式,第三范式,巴斯-科德范式,第四范式,第五范式又称为(完美范式)
各种范式呈递次规范,越严格

**第一范式**
不可分割的原子数据项.      //越往后递增越要遵循前几个范式的规则
//比如学院系,系主任,学生,没招生多了系不能添加数据,或者同学毕业了,系也跟着删除了,都是严重问题.

**第二范式**解决了冗余的问题
几个概念:
  1.函数依赖
  如果能通过A的属性值确定B,A-->B,则成为B依赖于A,比如学号确定学生.则学生依赖于学号,学号和课程能推算出分数.
  学号推姓名
  2.完全函数依赖
   学号课程推成绩
  3.部分函数依赖
  学号-课程推姓名
  4.传递函数依赖
  A->B B->C
  C传递依赖于A
  学号->系名 系名->系主任
  5.码(就是能通过这个列或者多个列来确定其他列的值就叫码)
  一个属性或属性组被其他所有属性完全依赖,就是码
   主属性:码属性组中的所有属性
   非主属性:剩下所有的都是非主
**第三范式**
防止传递依赖导致,删除一个会接着删除别的.
学号课程成绩.学号姓名系.系系主任

**数据库的备份和还原**
备份:mysqldump -u用户名 -p密码 数据库名 > 保存路径
还原:登录数据库,创建数据库,使用数据库.执行文件->source 文件路径
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值