MySQL学习笔记11——数据备份 & 范式 & ER模型

一、数据备份

MySQL的数据备份有2种:

  • 物理备份, 通过把数据文件复制出来,达到备份的目的,需要收费,用得比较少。
  • 逻辑备份,通过把描述数据库结构和内容的信息保存起来,达到备份的目的,免费的,广泛得到使用,本文重点讲解逻辑备份。

1、如何进行数据备份

用于数据备份的工具mysqldump总共有三种模式:

  • 备份数据库中的表;
  • 备份整个数据库;
  • 备份整个数据库服务器。

(1)备份数据库中的表

-- mysqldump备份数据库中的表的语法结构是:
mysqldump -h 服务器-u 用户-p 密码 数据库名称[表名称 …] > 备份文件名称

举例:
在这里插入图片描述
备份文件是以文本格式保存的,我们可以用记事本查看备份的内容,它相当于一个SQL执行脚本。

(2)备份数据库

-- mysqldump备份数据库的语法结构是:
mysqldump -h 服务器 -u 用户-p 密码 --databases 数据库名称… > 备份文件名

举例:
在这里插入图片描述

(3)备份整个数据库服务器

-- 备份整个数据库服务器的语法结构:
mysqldump -h 服务器 -u 用户 -p 密码 --all-databases > 备份文件名

2、如何进行数据恢复

mysqldump的备份文件包含了创建数据库、数据表,以及插入数据表里原有数据的SQL语句,我们可以直接运行这些SQL语句,来进行数据恢复。

数据恢复的方法主要有2种:

  • 使用 “mysql” 命令行客户端工具进行数据恢复;
  • 使用 “SOURCE” 语句进行数据恢复。
-- 方法一
mysql -u root -p demo < test.sql
-- 方法二
SOURCE 备份文件名
-- 举例:
USE demo
SOURCE H:\\test.sql

3、如何导出和导入表里的数据

首先将表的数据按照一定的格式,导出成一个文件。

(1)SELECT语句导出数据

使用 " SELECT … INTO OUTFILE " 语句导出数据表的语法结构:

-- 查询的结果保存到 "文件名称" 指定的文件中
SELECT 字段列表 INTO OUTFILE 文件名称
-- 列之间的分隔符是 "字符"
FIELDS TERMINATED BY 字符
-- 行之间的分隔符是 "字符"
LINES TERMINATED BY 字符
FROM 表名;

-- 举例:
SELECT * INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/goodsmaster.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM demo.goodsmaster;

注意:在上面这个例子中,如果文件名称写 " D:\goodsmaster.txt ",则系统会报 " --secure-file-priv " 错误。

解决方法就是:我们去 " C:\ProgramData\MySQL\MySQL Server 8.0\my.ini " 中查看 " --secure-file-priv " 的配置如下:在这里插入图片描述

(2)使用LOAD DATA语句导入数据

使用 " LOAD DATA " 语句导入数据的语法结构:

LOAD DATA INFILE 文件名
INTO TABLE 表名
FIELDS TERMINATED BY 字符
LINES TERMINATED BY 字符;

二、范式

范式可以帮助我们设计出简介高效的数据表,进而提高系统的效率。

1、第一范式

关系中的每个属性都是不可再分的最小数据单元,即列不可再分。所有字段都是基本数据字段,不可进一步拆分。如 “ 10支/包 ” 就可以拆分成两个字段存储。

2、第二范式

第二范式要求,在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有字段,都必须完全依赖主键,不能只依赖主键的一部分。即关系必须满足1NF,且非主属性完全依赖于主键

举例:
假设我们有一个学生课程表:在这里插入图片描述
在这个表中,主键是学生ID课程ID的组合。课程名称 这一列并不直接依赖于整个主键(学生ID课程ID),而是只依赖于课程ID。这就不满足2NF的情况,因为课程名称应该与学生ID是无关的。

为了满足2NF,我们可以将表拆分为两个表:一个是学生课程表,只记录学生和课程的关联;另一个是课程表,记录课程的基本信息。

学生课程表:
在这里插入图片描述
课程表:
在这里插入图片描述

3、第三范式

第三范式要求数据表在满足第二范式的基础上,不能包含那些可以由非主键字段派生出来的字段,或者说,不能存在依赖于非主键字段的字段。即关系必须满足2NF,且非主属性之间不存在传递依赖

4、业务优先原则

所谓的业务优先原则,就是指一切以业务需求为主,技术服务于业务。完全按照理论的设计不一定就是最优,还要根据实际情况来决定。

三、ER模型

ER 模型也叫作实体关系模型,是用来描述现实生活中客观存在的事物、事物的属性,以及事物之间关系的一种数据模型。在开发基于数据库的信
息系统的设计阶段,通常使用ER模型来描述信息需求和信息特性,帮助我们理清业务逻辑,从而设计出优秀的数据库。

1、ER模型的要素

  • 实体:可以看做是数据对象,往往对应于现实生活中的真实存在的个体。
  • 属性:则是指实体的特性。
  • 关系:则是指实体之间的联系。关系又可以分为3种类型,分别是1对1、1对多和多对多。
    在这里插入图片描述

2、如何把ER模型转换成数据表

通过绘制ER模型,我们已经理清了业务逻辑。那么如何把绘制好的ER模型,转换成具体的数据表呢。

下面是一些转换的原则:

  • 一个实体通常转换成一个数据表;
  • 一个多对多的关系,通常也转换成一个数据表;
  • 一个1对1,或者1对多的关系,往往通过表的外键来表达;
  • 属性转换成表的字段。
  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值