1、数据库导出的方式
(1)使用可视化工具导出
(2)使用命令行导出
指令
mysqldump -h 主机地址 -u 用户名 -p 密码 数据库名 表1 表2 表3 > 物理磁盘位置/文件名
(3)导入
已登录,指令
source d:/a.sql
未登录,指令
mysql -u用户名 -p密码 库名 < 备份文件
(4)为什么需要备份?
为了应对突发情况,如果将整个sql文件导出,就可以迅速在另一个物理机器上复原数据。
2、如何设计一个数据库
步骤
- 分析需求:分析业务的需要,并明确数据库需要处理的数据
- 概要设计:设计关系图
- 建表、建库
3、数据库的三大范式
(1)为什么需要规范sql数据规范化?
--入库额数据设计不合理,会存在数据重复、更新插入异常等情况
(2)三大范式
- 第一范式(1NF):要求数据库的每一列都是不可分割的原子数据项,即原子性。
- 第二范式(2NF):在满足第一范式的前提下,非码属性必须完全依赖于候选码,即表中的每一列都和主键相关,而不能至于主键的某一部分相关(主要针对联合主键而言),即每张表只描述一件事情。
- 第三范式(3NF):在第二范式前提下,任何非主属性不依赖于其他非主属性(在2NF基础上,消除传递依赖)。即确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
(3)规范性和性能的问题
规范和性能之间需要平衡,如何表拆得过细,会导致查表关联过多,导致性能问题。因此需要在规范性和性能之间作取舍。
经常采用的方法是:处于用户体验考虑,通常以性能为优先考虑;故意给某些表增加一些荣誉的字段,从而将多表查询变成单表查询;或者增加一些计算列,从大数据量降低为小数据量的查询,增加索引。