备份
使用DOS命令导入导出
导出
-- 格式:mysqldump -h主机 -u用户名 -p主机 数据库 表 > 物理存储位置/文件名
mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql
-- 导入多条表 格式:mysqldump -h主机 -u用户名 -p主机 数据库 表1 表2 ... > 物理存储位置/文件名
导入
-- 登录的情况下,以切换到指定的数据库
-- 格式:source 备份文件
source d:/a.sql
-- 还未登录格式:mysql -u用户名 -p密码 库名 < 备份文件
三大范式
第一范式(1NF)
- 原子性:保证每一列不可再分
举例说明
学号 | 姓名 | 家庭信息 |
---|---|---|
0001 | 张三 | 5口人,河南 |
0002 | 李四 | 3口人,北京 |
0003 | 王二 | 2口人,上海 |
上表中“家庭信息”列不满足原子性的要求,不满足第一范式,调整为:
学号 | 姓名 | 家庭人口 | 户籍 |
---|---|---|---|
0001 | 张三 | 5口人 | 河南 |
0002 | 李四 | 3口人 | 北京 |
0003 | 王二 | 2口人 | 上海 |
第二范式(2NF)
- 在1NF的基础上,非主码属性必须完全依赖于候选码
- 每张表只描述一件事情
第三范式(3NF)
- 前提:满足1NF和2NF
- 在2NF的基础上,需确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
举例描述
学号 | 姓名 | 家庭人口 | 班主任教工号 | 班主任姓名 |
---|---|---|---|---|
0001 | 张三 | 5口人 | 1111 | 李丽 |
0002 | 李四 | 3口人 | 1112 | 南林 |
0003 | 王二 | 2口人 | 1113 | 南林 |
上表,所有属性都完全依赖于学号,所以满足2FN,但是“班主任姓名”直接依赖的是“班主任教工号”,而不是主键“学号”,所以应调整成两个表:
学号 | 姓名 | 家庭人口 | 班主任教工号 |
---|---|---|---|
0001 | 张三 | 5口人 | 1111 |
0002 | 李四 | 3口人 | 1112 |
0003 | 王二 | 2口人 | 1113 |
班主任教工号 | 班主任姓名 |
---|---|
1111 | 李丽 |
1112 | 南林 |
1113 | 南林 |