MySQL结构
MySQL属于关系型数据库管理系统(RDBMS),使用RDBMS时,最常见的系统结构就是客户端/服务器类型(C/S类型)这种结构。
服务器
指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或者是安装了此类程序的设备(计算机)。在计算机上持续执行处理,并等待接收下一条请求。RDBMS 也是一种服务器,它能够从保存在硬盘上的数据库中读取数据并返回,还可以把数据变更为指定内容。
与之相对,向服务器发出请求的程序(软件),或者是安装了该程序的设备(计算机)称为客户端
。访问由 RDBMS 管理的数据库,进行数据读写的程序称为 RDBMS 客户端。RDBMS 客户端将想要获取什么样的数据,或者想对哪些数据进行何种变更等信息通过 SQL 语句发送给RDBMS 服务器。RDBMS 根据该语句的内容返回所请求的数据,或者对存储在数据库中的数据进行更新。
客户端就如同委托方,而服务器就像是受托方。由于两者关系类似受托方执行委托方发出的指令,故而得名。
就可以使用 SQL 语句来实现关系数据库的读写操作了。本书为了给大家讲解 SQL,使用了可以显示如何将 SQL 语句发送到 RDBMS,以及接收返回信息(数据)的客户端。
另外,RDBMS 既可以和其客户端安装在同一台计算机上,也可以分别安装在不同的计算机上。这样一来,不仅可以通过网络使二者相互关联,还可以实现多个客户端访问同一个 RDBMS,如下图所示:
客户端没有必要使用同样的程序,只要能将 SQL 发送给 RDBMS,就可以操作数据库了。并且,多个客户端还可以同时对同一个数据库进行读写操作。
另外,RDBMS 除了需要同时接收多个客户端的请求之外,还需要操作存有大量数据的数据库,因此通常都会安装在比客户端性能更优越的计算机上。操作数据量特别巨大的数据库时,还可以将多台计算机组合使用。
更详细的MySQL结构体如下所示:
表的结构
关系数据库通过类似 Excel 工作表那样的、由行和列组成的二维表来管理数据。用来管理数据的二维表在关系数据库中简称为表。
表存储在由 RDBMS 管理的数据库中,如下图所示。一个数据库中可以存储多个表。
根据 SQL 语句的内容返回的数据同样必须是二维表的形式,这也是关系数据库的特征之一。返回结果如果不是二维表的 SQL 语句则无法执行。
另外,上图中只有一个数据库,我们还可以创建多个数据库分别用于不同用途。
表的列(垂直方向)称为字段,它代表了保存在表中的数据项目。与之相对,表的行(水平方向)称为记录,它相当于一条数据。关系数据库必须以行为单位进行数据读写 ,请大家牢记。
RDBMS 术语
在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。