(三) 了解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数据库就是为了使用数据。
为了使用数据,我们需要先有数据。
为了存储数据,我们则需要设计并定义存储结构化数据用的模板。
由此,我们接下来的学习任务其实就相当明确了:

  • 创建数据库
  • 定义表(确定表名,确定表存储器,固定数据表里面列的数量、确定列的数据类型)
  • 存储数据(增)
  • 操作数据(删改)
  • 使用数据(查)
posted @ 2025-07-04 18:53  枫林羡晚  阅读(18)  评论(0)    收藏  举报