(三) 了解MySQL
前言
在安装mysql之后、在接入mysql会话之后,我们对于后续的操作仍然一无所知。为了减少学习的不适感,可以先了解下MySQL的体系,包括MySQL采用的架构、数据库定位,以及对应的数据库的基本要素,从而稍微地建立起对MySQL的学习体系的一个感知,然后再接着学习语法。
本文摘要
本文会依次介绍MySQL的软件架构及其组成,接着将进一步表明MySQL数据库的“身份”,最后归纳一下数据库的一些基本要素。
MySQL的架构和组成
1. MySQL采用C/S架构
问题:我们为什么要使用如下命令安装mysql呢?
sudo apt-get install -y mysql-server mysql-client
答案:我们之所以会使用该命令进行安装,是基于我们学习的需求——在学习MySQL的过程中,我们会在本地环境使用mysql客户端发起请求,启动mysqld进程模拟服务器接收和响应请求。
这里牵扯出了一个比较重要的知识点,即:
“客户端/服务器”架构决定了MySQL服务器端软件包和客户端软件包的存在。然而这两者并非一定要安装在同一台计算机上。在安装时,我们会根据实际需求决定是否同时安装:
-
比如在服务器上安装,我只有本地存储需求,但是没有本地访问需求,那么我就可以只安装mysql-server;
-
再比如在工作机上安装,我只有远程访问需求,且没有本地存储需求,那么我就可以只安装mysql-client。
2. MySQL的组成
MySQL体系是由4个部分组成的:
-
MySQL服务器(mysql-server):负责提供数据库服务,它包含了核心的mysqld服务进程。mysqld主要负责监听客户端发起的请求,并响应这些请求。
-
MySQL客户端(mysql-client):是用户接入服务器使用mysqld服务的工具,它包含了mysql命令行客户端。mysql主要负责向服务器发出请求,并获取请求结果。
-
存储引擎(Storage Engines):是存储数据和管理数据的工具。为了发挥出MySQL的最佳性能,我们可以根据数据的情况,通过选择合适的引擎可以更灵活地处理数据。
-
连接器和管理工具:连接器是MySQL留给不同编程语言的接口。管理工具用于管理数据库数据的备份、数据库状态的检查等等,如mysqldump、mysqladmin。
- mysqldump :它能够把表的内容导出到文件里。主要用于备份,或将某次查询结果另存起来。
- mysqladmin :主要用来检查数据库服务器的工作状态,以及执行一些数据库管理相关的任务,如通知服务器管关闭。
MySQL数据库的定位和基本要素
1. MySQL数据库属于RDBMS
MySQL是一个关系型数据库(RDBMS),它适用于结构化数据(列的数量是固定的,列的数据类型是确定的)。
我们按照字面含义,将它拆分为有意义的3个部分:R、DB、MS。
-
R(Relational)
关系是指表与表之间的关系。- 设计表间关系:我们参照3NF规则将一个大表拆分为多个小表。这意味着我们在设计表时会有一部分的表可能有相同的列。
- 使用表间关系:留下相同的列是刻意为之的,因为这能为我们将来操作数据时带来极大的好处——每次存储数据或修改数据时,我们可以将一次繁杂的任务拆分为“少吃多餐”,一次分为多次,每次都处理尽可能少的数据量,这极大地提高响应地速度;当我们需要的信息查询完整度更高的数据(单表中的信息不再能满足需求)时,我们又会依赖这种看似冗余的裙带关系,轻易地把多个小数据集连接为一个大数据集。
-
DB(DataBase)
数据库的本质是存储在服务器上的一个本地文件夹,使用它就是在对表做主题分类。
表的本质时存储在文件夹的文件,使用它就是在收集数据集合。
因为数据库的基本组成是表,由此我们得出结论:数据库的作用就是收集一个以上的数据集合。 -
MS(Management System)
管理系统是建立在MySQL数据库之上的一个应用,它实现了管理数据库的功能,支持“增删改查”等诸多操作。
2. 数据库的基本要素
有人的地方就有江湖,有“库”的地方就有“表”。
数据库就像俄罗斯套娃,接下来我们具体看看,MySQL数据库到底有多能“装”。
数据库(database)> 表(table)> 列(column)
- 列:列是数据的映射,用于表示某个实体某方面的单一信息。
- 表:表由一个或多个列构成的。因此,它是数据集的载体。
- 数据库:数据库存储一个或多个表(也就是说,空数据库不具备实际价值)。
接下来的学习方向
1. 使用数据与存储数据
从目的出发,我们使用MySQL数据库就是为了使用数据。
为了使用数据,我们需要先有数据。
为了存储数据,我们则需要设计并定义存储结构化数据用的模板。
由此,我们接下来的学习任务其实就相当明确了:
- 创建数据库
- 定义表(确定表名,确定表存储器,固定数据表里面列的数量、确定列的数据类型)
- 存储数据(增)
- 操作数据(删改)
- 使用数据(查)

浙公网安备 33010602011771号