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

数据备份 & 范式 & ER模型

  • 一、数据备份
    • 1、如何进行数据备份
      • (1)备份数据库中的表
      • (2)备份数据库
      • (3)备份整个数据库服务器
    • 2、如何进行数据恢复
    • 3、如何导出和导入表里的数据
      • (1)SELECT语句导出数据
      • (2)使用LOAD DATA语句导入数据
  • 二、范式
    • 1、第一范式
    • 2、第二范式
    • 3、第三范式
    • 4、业务优先原则
  • 三、ER模型
    • 1、ER模型的要素
    • 2、如何把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对多的关系,往往通过表的外键来表达;
  • 属性转换成表的字段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/608830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARP命令

按照缺省设置&#xff0c;ARP高速缓存中的项目是动态的&#xff0c;每当发送以恶个指定的数据报且高速缓存中不存在当前项目时&#xff0c;ARP便会自动添加该项目。一旦高速缓存的项目被输入&#xff0c;就已经开始走向失效状态。因此&#xff0c;如果ARP高速缓存中的项目很少或…

擎天科技与禅道合作,打造统一的项目管理平台

统一、全面的项目管理平台能够帮助企业优化管理流程&#xff0c;提升业务效率。擎天集团选择与禅道软件合作&#xff0c;打造统一的项目管理平台&#xff0c;在降低自研软件的研发成本、打破团队信息孤岛、保障数据全面性等方面效果显著&#xff0c;大大提高了团队沟通协作效率…

如何使用 ArcGIS Pro 计算容积率

容积率是指地上建筑物的总面积与用地面积的比率&#xff0c;数值越小越舒适&#xff0c;这里为大家介绍一下如何使用ArcGIS Pro 计算容积率&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的建筑和小区数据&#xff0c;除了建筑和小区数据&am…

verilog中不重叠序列检测

编写一个序列检测模块&#xff0c;检测输入信号&#xff08;a&#xff09;是否满足011100序列&#xff0c; 要求以每六个输入为一组&#xff0c;不检测重复序列&#xff0c;例如第一位数据不符合&#xff0c;则不考虑后五位。一直到第七位数据即下一组信号的第一位开始检测。当…

AngularJS基本概念

版本&#xff1a; AngularJs 1.x&#xff1a;https://angularjs.org/ AngularJs 2&#xff1a;https://angular.io/ 或 https://angular.cn/ 实现语言&#xff1a; Angular 1.x&#xff1a;使用ES(avaScript)编写&#xff0c;可直接在浏览器中运行。 Angular 2&#xff1a…

Electron-Vue 脚手架避坑实录,兼容Win11,升级electron22,清理控制台错误

去年的还是有用的&#xff0c;大家继续看&#xff0c;今年再补充一些Electron-Vue 异常处理方案 M1 和 Window10_electron异常处理-CSDN博客 代码gitee.com地址 electron-demo: electron 22 初始代码开发和讲解 升级electron为22版本&#xff08;这个版本承上启下&#xff0c…

内网穿透速度慢

内网穿透速度慢原因及优化策略 在计算机网络应用中&#xff0c;内网穿透是一个常见的需求&#xff0c;它允许外部网络访问位于内部网络&#xff08;如企业局域网或家庭网络&#xff09;中的设备或服务。然而&#xff0c;有时用户在进行内网穿透时会遇到速度慢的问题&#xff0…

【二次元MMORPG游戏开发】任务系统技术拆解

引言 各位同学大家好。在今天的分享当中&#xff0c;我将对任务系统去做一个拆解。也许你见过很多任务系统&#xff0c;但是今天我要分享的是我们经过一个框架迭代以后的任务系统。我会结合客户端的功能演示给大家去讲解。 跟着演示学开发 基本操作 好&#xff0c;首先我们点…

C++ | Leetcode C++题解之第80题删除有序数组中的重复项II

题目&#xff1a; 题解&#xff1a; class Solution { public:int removeDuplicates(vector<int>& nums) {int n nums.size();if (n < 2) {return n;}int slow 2, fast 2;while (fast < n) {if (nums[slow - 2] ! nums[fast]) {nums[slow] nums[fast];slo…

【Linux】项目自动化构建工具make/makefile

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解Linux中项目自动化构建工具make/makefile的相关内容。 如果看到最后…

[windows系统安装/重装系统][step-2]BIOS设置UEFI引导、磁盘分区GPT分区、安装系统[含完整操作拍照图片]

背景 先准备U盘启动盘和系统镜像: [windows系统安装/重装系统][step-1]U盘启动盘制作&#xff0c;微软官方纯净系统镜像下载 前言&#xff08;略长&#xff0c;建议可跳过&#xff09; 我的笔记本升级了CPU升级了内存后出现了一个小问题&#xff0c; 每次启动徽标显示后会…

hyper-v启动centos7虚拟机不能联网

虚拟网卡要和之前虚拟机里面设置的GATEWAY一致。 安装CentOS遇到Error setting up base repository换url 或者换镜像包iso(这个有用&#xff09; 没掌握摸Yu的精髓 好累啊

安全加固

目录 1.文件锁定管理 2.设置用户账户有效期 3.查看并清除命令历史记录 4.设置用户超时登出时间 5.用户切换 6.用户提权 7.禁用重启热键CtrlAltDel 8.设置单用户模式密码 9.调整BIOS引导设置 10.禁止root用户从本地登录&#xff1a; 11.禁止root用户通过ss…

【算法刨析】完全背包

完全背包与01背包的区别 01背包对于一个物品只能选择一次&#xff0c;但是完全背包可以选择任意次&#xff1b; 思路 和01背包类似&#xff0c;01背包我们只需要判断选或不选&#xff0c;完全背包也是如此&#xff0c;不同的是&#xff0c;对于这个物品我们在判断选后在增加一…

【考试100】2023年监理《目标控制(土建)》真题及答案精选

​来源&#xff1a;考试100 一、单项选择题 1、工程建设与使用中&#xff0c;保证人身和环境免受危害&#xff0c;是建设工程质量特性中的&#xff08; &#xff09;要求。A .适用性 B .耐久性 C .安全性 D .可靠性 参考答案&#xff1a;C 解析&#xff1a;安全性&…

2024 全自动ai生成视频MoneyPrinterTurbo源码

只需提供一个视频 主题 或 关键词 &#xff0c;就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐&#xff0c;然后合成一个高清的短视频。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89208288 更多资源下载&#xff1a;关注我。

AGV与智能仓储系统集成的实践与优化

agv 根据相关研究报告指出&#xff0c;储存、装卸、等待及运送等程序&#xff0c;几乎占了整个生产制程95%的时间&#xff0c;因此导致工厂中的再制品及物料无法有效降低&#xff0c;耗损大量人工等问题&#xff0c;早已是制造业者在经营上的痛点。而智慧工厂中的AGV无人搬运车…

Gitee 码云与Git 交互

优质博文&#xff1a;IT-BLOG-CN 一、进入码云官方网站&#xff0c;注册用户 码云(Gitee.com)是一个类似于GitHub的在线代码托管平台。 码云提供了包括版本控制、代码托管、协作开发和代码分享等功能&#xff0c;基于Git开发&#xff0c;支持代码在线查看、历史版本查看、Fo…

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-06-大型网站系统架构演化实例

文章目录 第一阶段&#xff1a;单体架构第二阶段&#xff1a;垂直架构第三阶段&#xff1a;使用缓存改善网站性能第四阶段&#xff1a;使用服务集群改善网站并发处理能力第五阶段&#xff1a;数据库读写分离第六阶段&#xff1a;使用反向代理和CDN加速网站响应第七阶段&#xf…

CommandLineRunner和ApplicationRunner接口实现类中run方法发生异常导致spring程序关闭

今天其他组的一个程序在k8s中启动报错&#xff0c;启动之后立马就关闭了。我去看日志&#xff0c;发现最后面报了一个UnknownHostException异常&#xff0c;感觉是这个原因导致的&#xff0c;然后查看异常栈。定位到一个CommandLineRunner接口实现类&#xff0c;这个实现类里面…