-
数据库的结构
学习重点
RDBMS 通常使用客户端/服务器这样的系统结构。
通过从客户端向服务器端发送 SQL 语句来实现数据库的读写操作。
关系数据库采用被称为数据库表的二维表来管理数据。
数据库表由表示数据项目的列(字段)和表示一条数据的行(记录)所组成,以记录为单位进行数据读写。
本教程将行和列交汇的方格称为单元格,每个单元格只能输入一个数据。
一、RDBMS 的常见系统结构
使用 RDBMS 时,最常见的系统结构就是 客户端/服务器类型(C/S 类型) 这种结构(图 3)。
KEYWORD
- 客户端/服务器类型(C/S 类型)
服务器指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或者是安装了此类程序的设备(计算机)。在计算机上持续执行处理,并等待接收下一条请求。RDBMS 也是一种服务器,它能够从保存在硬盘上的数据库中读取数据并返回,还可以把数据变更为指定内容。
KEYWORD
服务器
数据库
与之相对,向服务器发出请求的程序(软件),或者是安装了该程序的设备(计算机)称为客户端。访问由 RDBMS 管理的数据库,进行数据读写的程序称为 RDBMS 客户端。RDBMS 客户端将想要获取什么样的数据,或者想对哪些数据进行何种变更等信息通过 SQL 语句发送给 RDBMS 服务器。RDBMS 根据该语句的内容返回所请求的数据,或者对存储在数据库中的数据进行更新。
KEYWORD
客户端
SQL 语句
客户端就如同委托方,而服务器就像是受托方。由于两者关系类似受托方执行委托方发出的指令,故而得名。
这样就可以使用 SQL 语句来实现关系数据库的读写操作了。本教程为了给大家讲解 SQL,使用了可以显示如何将 SQL 语句发送到 RDBMS,以及接收返回信息(数据)的客户端。具体内容请参考 [搭建 SQL 的学习环境]({{<ref "602-00-绪论——搭建="" sql="" 的学习环境.md"="">}})。
另外,RDBMS 既可以和其客户端安装在同一台计算机上,也可以分别安装在不同的计算机上。这样一来,不仅可以通过网络使二者相互关联,还可以实现多个客户端访问同一个 RDBMS(图 4)。
客户端没有必要使用同样的程序,只要能将 SQL 发送给 RDBMS,就可以操作数据库了。并且,多个客户端还可以同时对同一个数据库进行读写操作。
另外,RDBMS 除了需要同时接收多个客户端的请求之外,还需要操作存有大量数据的数据库,因此通常都会安装在比客户端性能更优越的计算机上。操作数据量特别巨大的数据库时,还可以将多台计算机组合使用。
虽然 RDBMS 的系统结构多种多样,但是从客户端发来的 SQL 语句基本上都是一样的。
二、表的结构
让我们再具体了解一下 RDBMS 的结构。上一节我们讲到了关系数据库通过类似 Excel 工作表那样的、由行和列组成的二维表来管理数据。用来管理数据的二维表在关系数据库中简称为表。
KEYWORD
- 表
表存储在由 RDBMS 管理的数据库中,如图 5 所示。一个数据库中可以存储多个表。
根据 SQL 语句的内容返回的数据同样必须是二维表的形式,这也是关系数据库的特征之一。返回结果如果不是二维表的 SQL 语句则无法执行。
另外,图 5 中只有一个数据库,我们还可以创建多个数据库分别用于不同用途。
图 6 所示为之后的学习中实际用到的商品表的内容。
表的列(垂直方向)称为字段,它代表了保存在表中的数据项目。在表 2 的商品表中,从商品编号到登记日期一共有 6 列。对于列的约束比 Excel 更加严格,定义为数字的列只能输入数字,定义为日期的列只能输入日期(将在 表的创建 中详细介绍)。
与之相对,表的行(水平方向)称为记录,它相当于一条数据。商品表中总共有 8 行数据。关系数据库必须以行为单位进行数据读写,请大家牢记。
KEYWORD
列
字段
行
记录
法则 1
关系数据库以行为单位读写数据。
本教程将图 6 所示的行和列交汇的方格称为单元格。一个单元格中只能输入一个数据。像图 7 那样,在一个单元格中输入 2 个或 2 个以上的数据是不允许的,请大家牢记。
KEYWORD
单元格
单元格是本教程特有的表述方式。实际上关系数据库对于行和列交汇的方格并没有专门的称谓。但就像图 6 那样,这个方格通过类似 Excel 单元格的方式管理数据,因此把它称为单元格似乎也很恰当。
法则 2
一个单元格中只能输入一个数据。
专栏
RDBMS 的用户管理
为了防止重要数据被窃读或篡改,RDBMS 只允许注册用户接触数据库。这里的用户并不是指 Windows 等操作系统的注册用户,而是只能用于 RDBMS 的用户。RDBMS 允许注册多个用户。
注册用户的时候除了设定用户名(账号),还需要设定密码。虽然密码并不是必需的,但为了防止重要信息的泄露,还是希望大家能够设定密码。
https://www.cnblogs.com/vin-c/p/15477991.html
来源: