《你不可不知的关系数据库理论》——1.1 什么是数据库

简介:

本节书摘来自异步社区出版社《你不可不知的关系数据库理论》一书中的第1章,第1.1节,作者:【美】C.J.Date,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.1 什么是数据库

数据库被认为是一种电子文件柜,它包含了一些数字化的信息(即数据),这些信息可以被永久保存在某种存储介质上,通常是被保存在磁盘上。用户可以通过管理数据库的软件发出请求(request)或命令(command)来向数据库中插入信息,删除、修改或检索数据库中已经存在的信息,这种管理数据库的软件叫做数据库管理系统(DBMS)。

注意:
在本书中,术语user的含义将根据上下文的要求理解为应用程序员或者是交互用户1或者是应用程序员和交互用户。
实际上,现在这些发给DBMS的用户请求可以采用各种各样的方法进行格式化(例如,单击鼠标)。然而,为了达到我们的目的,采用某种正规语言中的简单文本串的形式来表示这些请求会更方便些。例如,有一个人力资源数据库,我们可能会这样写:

EMP WHERE JOB = 'Programmer'
这个表达式表示了一个检索请求(retrieval request)——但通常我们都称之为查询(query)——这个表达式的含义是要获得员工工作性质为Programmer的员工信息。

可以运行的例子
图1.1给出了某种类型数据库中的一些样本数据,包含供应商表(suppliers)、零件表(parts)、货物表(shipments,即由供应商提供的零件数量)。

image

从图1.1可以看出,这个数据库包含了三个文件(file)或称之为(table)。(实际上它们就是关系’[relations],我们将在第2章讲解,但在本章中我们称之为“文件”或者“表”。)这些表的名称分别为S、P和SP。因为它们都是表,所以它们都是由行和列组成的(在传统的文件术语中,行对应为文件中的记录,列对应为字段)。可以按照如下的方式来理解。

表S代表签署了合同的供应商(suppliers under contract)。每个供应商都有一个唯一的供应商号(SNO)、姓名(SNAME)(姓名必须唯一,图1.1中给出的样本数据中姓名唯一只是巧合)、一个状态值(STATUS)、供应商位置(CITY)。注意:在本书的其他位置,“签署了合同的供应商”都缩写为供应商(suppliers)。
表P代表零件的种类(kinds of parts)。每种零件都有一个唯一的零件号码(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)、零件储存位置(CITY)。注意:在本书的其他位置,“零件的种类”都缩写为零件(parts)。
表SP代表供应关系(shipments),即表明零件从哪里运输或者由哪个供应商来提供。每个供应关系都有一个供应商号(SNO)、一个零件号(PNO)以及供应数量(QTY)。因为在特定的时间内,一个特定的供应商和特定零件之间至多有一种供应关系,所以由供应商号和零件号组合在一起表示一个唯一的供应关系。
本书中其他地方的例子大多是基于前面提到的这个数据库。现在,你可以再仔细看看前面的这个数据库,我已经在很多其他的书籍和著作中用过,包括SQL and Relational Theory2,在许多现场演讲时也用过,所以你可能会有点厌烦的感觉。但是就像我在别处写的那样,我相信在各种不同的出版物中使用相同的一个例子对学习是有帮助的,而不是障碍。当然,真正的数据库应该比这个像“玩具”一样的例子复杂得多,但是使用接近于实际的例子会遇到的麻烦就是它们太复杂了,在某种程度上会造成只见树木不见森林的结果。所以我还是要说,即使这个例子有点不现实,但供应商和零件表数据库至少适合说明我们后面要测试的所有观点。因而,要达到本书的目的,这个例子足够了。但要注意的是,在本书其余部分的例子中,除非做特殊说明,否则我会假定使用图1.1所示的特定的样本数据。

相关文章
|
2月前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
109 10
|
2月前
|
存储 关系型数据库 MySQL
RDS MySQL 数据库运维简述
从运维的视角,汇总云数据库RDS MySQL使用的避坑指南。文章初版,维护更新,欢迎指点。
890 3
|
2月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
201 1
|
2月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
224 6
|
10天前
|
消息中间件 关系型数据库 数据库
实时计算 Flink版操作报错合集之在使用RDS数据库作为源端,遇到只能同步21个任务,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1月前
|
消息中间件 关系型数据库 Serverless
函数计算产品使用问题之如何通过vpc来连接rds数据库
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
204 49
|
17天前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
58 0
|
1月前
|
关系型数据库 数据管理 数据库
数据管理DMS产品使用合集之如何极速恢复RDS(关系型数据库服务)中的数据表
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
28天前
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代