【MySQL进阶之路丨第一篇】什么是MySQL?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【MySQL进阶之路丨第一篇】什么是MySQL?

image.png


MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

什么是数据库?

数据库是指在计算机系统中,通过使用数据库管理系统(DBMS)进行数据存储、管理和访问的集合。

数据库主要用于以下几个方面:

1.数据存储:数据库提供了一种结构化的方式来存储数据。它使用表格(也称为关系或者集合)来组织数据,每个表格由行和列组成,每行表示一个记录,每列包含相同类型的数据。

2.数据管理:数据库管理系统允许用户对数据库中的数据进行各种操作,包括插入新数据、删除现有数据、更新数据以及查询数据等。这样用户可以轻松地对数据进行添加、修改和检索,实现对数据的全面管理。

3.数据共享和协作:数据库支持多用户同时访问和操作数据,实现数据的共享和协作。不同用户可以通过数据库共享数据资源,并根据权限级别进行数据操作,从而促进团队的协作和合作。

4.数据一致性和完整性:数据库提供了机制来确保数据的一致性和完整性。通过定义主键、外键、约束等规则,可以保证数据的正确性和完整性,避免数据冗余和错误。

5.数据安全保护:数据库提供了安全机制来保护数据的隐私和安全。通过访问控制、用户身份验证、数据加密等手段,可以确保数据只被授权用户所访问,并防止数据泄露和非法访问。

6.数据备份和恢复:数据库管理系统支持数据备份和恢复功能,以防止数据丢失和故障发生。通过定期备份数据库,可以在意外情况下快速恢复数据,确保数据的安全性和可靠性。

举个简单的例子:假设我们正在开发一个社交媒体网站,需要让用户进行注册。在这个过程中,数据库的使用是必不可少的。

首先,我们需要设计一个用户表,该表包含以下字段:

用户ID:用于唯一标识每个用户的ID。

用户名:用户选择的独特用户名,用于登录和展示。

密码:用户设置的密码,用于安全登录。

电子邮件:用户提供的电子邮件地址,可以用于与用户进行联系。

联系电话:用户提供的联系电话号码。

接下来,当用户在网站上填写注册表单并提交注册请求时,我们的服务器将收集到用户提供的信息,包括用户名、密码、电子邮件和联系电话等。

然后,服务器端的应用程序将通过数据库管理系统(如MySQL、Oracle等)与数据库进行通信,并将用户提供的注册信息存储到用户表中的相应字段中。

在以后的登录过程中,当用户输入用户名和密码进行登录时,服务器会验证这些凭据是否与数据库中的记录匹配,以确保身份验证的准确性。

通过使用数据库,我们可以轻松管理和操作大量用户的注册信息。我们可以执行查询操作来检索和筛选特定用户的信息,或者进行更新操作来修改用户的个人资料。此外,数据库还能够提供数据备份功能,以防止因系统故障而丢失用户注册的重要信息。

数据库在各种应用中广泛使用,例如企业管理系统、电子商务平台、社交媒体网站等。它们提供了一个灵活、高效的方式来存储和管理大量数据,帮助用户快速获取所需的信息,并实现数据的可靠性和一致性。


为什么是MySQL数据库?

MySQL是目前应用最广泛的关系型数据库管理系统之一,可以支持大部分的应用场景。而且MySQL使用简单,对于初学者来说比较友好。同时,MySQL还具有开源、免费、社区支持和文档齐全等优点,因此成为了Web开发领域中的热门选择。


什么是RDBMS 术语?

就像学习英语一样,要从最基础的单词和语法学起,同样地,在学习MySQL数据库的过程中,需要学习RDBMS 术语。

RDBMS术语提供了一种标准的、统一的、结构化的方式来理解和管理关系型数据库中的数据,以下为一些常用的 RDBMS 术语及其解释:

1.数据库(Database):指存储在计算机上的结构化数据集合,它以表格的形式组织数据,并使用SQL进行操作和查询。

2.表格(Table):也称为关系(Relation),是数据库中数据的主要组织形式。表格由行和列组成,每行代表一个记录,每列包含相同类型的数据。

3.列(Column):也称为字段(Field),是表格中的一个垂直数据组织单元。每列包含特定类型的数据,如整数、字符串、日期等。

4.行(Row):也称为记录(Record),是表格中的一个水平数据组织单元。每行由若干列组成,代表一个完整的数据项。

5.主键(Primary Key):是表格中唯一标识每行记录的字段。主键保证数据的唯一性和完整性,并且用于快速检索和关联表格。

表格示例:

+----+---------+-----+
| ID |  Name   | Age |
+====+=========+=====+
| 1  |  John   | 25  |
| 2  |  Sarah  | 30  |
| 3  |  David  | 28  |
+----+---------+-----+

在上面的表格示例中,“ID” 列被指定为主键。每行都有一个唯一的主键值来标识记录。

6.外键(Foreign Key):是表格中与其他表格关联的字段。外键用于建立表格之间的关联关系,实现数据的引用完整性和一致性。

7.索引(Index):是用于提高数据查询性能和检索效率的数据结构。索引可以根据指定的列值快速定位数据,加快查询速度。

表格示例:

+----+---------+-----+
| ID |  Name   | Age |
+----+---------+-----+
| 1  |  John   | 25  |
| 2  |  Sarah  | 30  |
| 3  |  David  | 28  |
+----+---------+-----+

索引示例:

+----+---------+-----+
ID: |  1 |    2    |  3  |
    +----+---------+-----+
Row: |  0 |    1    |  2  |
    +----+---------+-----+

在上面的索引示例中,我们创建了一个指向每行记录的索引。这使得在查询时可以更快地找到特定的记录。

希望这些更详细的示例能够更好地解释主键和索引的概念。如果你还有其他问题,请随时提问。

8.视图(View):是基于一个或多个表格的查询结果集。视图可以简化复杂的查询操作,并提供数据安全性和隐私保护。

9.事务(Transaction):是一系列数据库操作的逻辑单元。事务要么全部执行成功,要么全部回滚到初始状态,确保数据的一致性和完整性。

10.关联(Join):是通过共享的列值将两个或多个表格连接起来。关联操作用于获取相关联表格中的数据。

一对一关联 (One-to-One Relationship):

示例:

+----+---------+-----+
| ID |  Name   | Age |
+====+=========+=====+
| 1  |  John   | 25  |
+----+---------+-----+
    +
    |
    v
+--------+----------------+
| User ID|   Address      |
+========+================+
|   1    |   123 Main St  |
+--------+----------------+

在上面的示例中,一个用户(User)与一个地址(Address)相关联。每个用户都有一个唯一的 User ID 来与对应的地址关联。

一对多关联 (One-to-Many Relationship):

示例:

+----+---------+-----+
| ID |  Name   | Age |
+====+=========+=====+
| 1  |  John   | 25  |
| 2  |  Sarah  | 30  |
+----+---------+-----+
    +
    |
    v
+--------+----------------+
| User ID|   Address      |
+========+================+
|   1    |   123 Main St  |
|   1    |   456 Elm St   |
|   2    |   789 Oak St   |
+--------+----------------+

在上面的示例中,一个用户可以对应多个地址。通过 User ID 可以将用户与相应的地址进行关联。

多对多关联 (Many-to-Many Relationship):

示例:

+----+---------+-----+
| ID |  Name   | Age |
+====+=========+=====+
| 1  |  John   | 25  |
| 2  |  Sarah  | 30  |
| 3  |  David  | 28  |
+----+---------+-----+
    +                  +
    |                  |
    v                  v
+--------+------------------------+
| User ID|      Hobby             |
+========+========================+
|   1    |   Playing Guitar       |
|   1    |   Singing              |
|   2    |   Painting             |
|   3    |   Cooking              |
|   3    |   Hiking               |
+--------+------------------------+

在上面的示例中,一个用户可以有多个兴趣爱好(Hobby),同时一个兴趣爱好也可以被多个用户拥有。通过 User ID 将用户和相应的兴趣爱好进行关联。

11.触发器(Trigger):是数据库中与表格相关的代码段,用于自动触发特定的动作。触发器可以在指定的事件发生时执行相应的操作。

12.存储过程(Stored Procedure):是一组预定义的SQL语句集合,用于执行特定的数据库操作。存储过程可以被多个应用程序重复调用。

13.事务日志(Transaction Log):记录数据库中所有的事务操作,包括插入、更新、删除等。事务日志用于故障恢复和数据一致性的保证。

事务日志通常包含以下信息:

事务的标识符(Transaction ID)
操作类型(插入、更新、删除等)
受影响的数据对象(表、行等)
原始数据和新数据的值
时间戳

图示:

+-------------------------------------------------------+
   |                   事务日志                              |
   +-------------------------------------------------------+
   |                                                       |
   |  +------------+         +------------+        +-------+|
   |  |  事务 T1    |         |  事务 T2    |       |  ...  ||
   |  +------------+         +------------+        +-------+|
   |  |            |         |            |       |       ||
   |  | 操作类型   |         | 操作类型   |       |       ||
   |  |            |         |            |       |       ||
   |  | 数据对象 1 |         | 数据对象 2 |       |       ||
   |  |            |         |            |       |       ||
   |  | 旧数据     |         | 旧数据     |       |       ||
   |  |            |         |            |       |       ||
   |  | 新数据     |         | 新数据     |       |       ||
   |  +------------+         +------------+       +-------+|
   |                                                       |
   +-------------------------------------------------------+

上面的示意图展示了一个简化的事务日志结构。每个事务都被记录在日志中,每个事务包含了操作类型、受影响的数据对象、旧数据和新数据等信息。

实际的事务日志可能还包含其他元数据,如时间戳、事务状态等。此外,为了确保持久性,事务日志的写入通常采用一些优化技术,如批量写入和日志缓冲区。

14.归一化(Normalization):是一种设计数据库模式的方法,旨在减少数据冗余和提高数据存储效率。

15.ACID特性:ACID是指数据库事务应具备的四个特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

RDBMS术语的主要作用如下:

1.数据组织:RDBMS术语提供了一种结构化的方式来组织和存储数据。通过表格、列和行的概念,可以将数据按照逻辑关系进行分类和管理,使得数据的组织更加清晰和易于理解。

2.数据操作:RDBMS术语定义了一组操作和规则,用于对数据库中的数据进行增、删、改、查等操作。通过SQL(Structured Query Language)语言,可以方便地进行数据的查询、更新和管理。

3.数据完整性:RDBMS术语包括主键、外键、约束等概念,用于确保数据的完整性和一致性。主键保证每条记录的唯一性,外键建立不同表格之间的关联关系,约束规定了数据的合法性和限制条件。

4.数据关联:RDBMS术语中的关联(Join)概念用于将多个表格中具有关联关系的数据进行连接。通过关联操作,可以获取到不同表格中相关联的数据,从而进行更复杂和全面的数据分析。

5.数据查询和报表:RDBMS术语中的视图(View)和索引(Index)等概念,可以提高数据的查询和检索效率。视图可以简化复杂的查询操作,索引可以加速数据检索,从而实现更高效的数据查询和报表生成。

6.事务管理:RDBMS术语中的事务(Transaction)和事务日志(Transaction Log)用于保证数据操作的原子性、一致性、隔离性和持久性。事务管理机制确保了多个操作的一致性,并提供了故障恢复和数据一致性的保证。

RDBMS 术语通过定义各种概念、操作和规则,帮助用户在数据库中存储、操作和查询数据,保证数据的完整性和一致性,实现高效的数据管理和应用开发。

同时,熟悉RDBMS术语也能够提高开发人员的沟通效率,使得团队协作更加顺畅。


总结

以上为 【MySQL进阶之路丨第一篇】什么是MySQL? 实现读者对MySQL概念等的初步理解与掌握。

后续将分享 【MySQL进阶之路丨第二篇】数据库的安装与配置

我是秋说,我们下次见。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 SQL 关系型数据库
MySQL语句详解:从基础到进阶的全面指南
MySQL语句详解:从基础到进阶的全面指南
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第三篇(MySQL性能优化)
MySQL数据库进阶第三篇(MySQL性能优化)
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库进阶第五篇(锁)
MySQL数据库进阶第五篇(锁)
|
5月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
5月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
4月前
|
存储 关系型数据库 MySQL
MySQL数据库开发进阶:精通数据库表的创建与管理22
【7月更文挑战第22天】数据库的创建与删除,数据表的创建与管理
48 1
|
5月前
|
JSON 关系型数据库 MySQL
MySQL常用函数解读:从基础到进阶的全方位指南
MySQL常用函数解读:从基础到进阶的全方位指南
|
5月前
|
SQL 关系型数据库 MySQL
Python进阶第二篇(Python与MySQL数据库)
Python进阶第二篇(Python与MySQL数据库)
|
5月前
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)