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

1.1 什么是数据库

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

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

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

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

从图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所示的特定的样本数据。

时间: 2024-08-01 12:54:03

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

《你不可不知的关系数据库理论》——第1章 数据库基本概念

第1章 数据库基本概念 你不可不知的关系数据库理论我们的生活被琐事浪费掉了--简化,简化. --Henry David Thoreau: Walden(1854) 本章是一个介绍性的概述,目的是提供一个距离我们非常遥远的观点.它故意没有讲解得很深奥,如果你已经了解了关于数据库管理的一些知识,也许会发现本章内容都已熟悉.但是我想你应该花些时间把本章从头到尾通读一遍,这是非常值得的,如果只是想获得背景知识,可以看后续的章节.同时,本章还介绍了一些可以运行的示例,在后面的章节中我们也一定会遇到这些例子

《你不可不知的关系数据库理论》导读

前言 你不可不知的关系数据库理论关系数据模型是百年来最伟大的技术发明之一,它是我们完成数据库领域任何事情的基础.的确,它使数据库管理成为一门科学,而不再像过去那样是一些技巧.技术和经验法则的特定集合.因此,每一个与数据库管理有关的专业人员,或多或少都会主动去获得一些与关系模型有关的知识,以加深对关系模型的理解.因为如果没有它,想开展高效的工作.获得较高的工作性能几乎是不可能的. 不幸的是,想要达到如上所说的"获得知识,加深理解"是不容易的.这有多方面的原因,但影响最大的原因是SQL语言

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

1.3 什么是关系型DBMS 现在我们已经知道了什么是DBMS,但什么是关系型DBMS呢?当然,首先它是一个DBMS,它要提供本章介绍的DBMS具备的所有功能:数据存储.查询.修改.恢复控制.并发控制.安全控制和完整性控制,以及本书中没有讨论的其他功能.但是第二点要注意的是,它又是关系型的,这就意味着用户接口在真正实现时必须是关系模型.换句话说,关系模型被看作是DBMS中实现用户接口的一种方法. 在继续讲解之前,还要强调一点,这个方法(即关系模型)其实很简单!关系模型的这些方法并不是紧身衣,相反

《你不可不知的关系数据库理论》——14.2 SQL与关系模型的不同点

14.2 SQL与关系模型的不同点 此部分列出了SQL与关系模型的不同点,主要是为了参考,同时顺便进行一些附加说明.我知道可能会有人对列表中的个别术语吹毛求疵,一一解释列表中这些特性是非常不容易的,特别是它的正交性(例如,保证这些特性都相互独立,互不影响).但是我认为这些吹毛求疵都不是重要的,重要的是它们累积起来造成的影响,坦率地说是相当惊人的3. 不再啰嗦了,下面具体来看一下它们的不同点: SQL不能够完全区分表的值和表变量.SQL表与关系(或关系变量)不同,因为它们不允许或不需要(根据具体情

《你不可不知的关系数据库理论》——1.4 数据库系统与程序系统

1.4 数据库系统与程序系统 这两个概念好像不太好区别,但是也有一些相似性.事实上,通常不认为一个数据库系统就是一个程序系统(更确切地说,是一种特例).图 1.3 给出了代码片段,这段代码的目的是要计算一维数组A中整型数据的和,并将其显示在终端上(该片段采用一种假设的语言来表示,但该语言具有自解析性). 相关说明如下. 语句:整个代码由9条语句组成.在程序设计语言中,一条语句(statement)就是一个指令,它可以引发一些动作,比如,定义或修改一个变量.改变控制流等.通过观察你会发现语句与表达

《你不可不知的关系数据库理论》——14.3 练习

14.3 练习 14.1 从语义上判断下面哪些是合法的独立SQL表达式(即没有嵌套在其他表达式中的表达式),哪些不是?(A和B是表名,假设这里的表都能够满足特定运算的需求.)>{注意:}这个练习有点不公平,因为在本书中没有覆盖到足够的SQL内容来回答所有的问题,但是我想值得尝试一下,对你也会有益处的.但我至少解释一下SQL结构"TABLE T"(T就是一个简单的表,而不是常用的表的表达式),它是表达式"(SELECT * FROM T)"的缩写.也许还要提醒你

《你不可不知的关系数据库理论》——14.4 答案

14.4 答案 14.1 SQL表的表达式采用正规的BNF语法,为了完整地回答这个问题,可以参照SQL and Relational Theory(这个练习中的例子就摘自此书). 至于从练习中得出的结论,要依靠你自己的回答来总结,但是我知道我自己得到的结论. 14.2 影响如下:表达式b原来是不合法的,但现在变成了合法的.表达式c..e..k..l..m.是合法的,但变成了不合法的.其他所有的表达式原来是不合法的,现在仍然是不合法的.从这个练习中你可以得出什么结论? 1支持这些声明的证据(关于不

《你不可不知的关系数据库理论》——1.5 练习

1.5 练习 现在到了该做练习的时候了.当然,在本书中的第1章就进行查找练习是不可能的,下面大多数是复习题.尽管如此,我还是建议你们尽力独自去回答问题,而不要去看后面给出的答案.注意,前两个练习似乎有些不公平,因为我还没有�% 1这里仍然指的是计算机专业人员,而不是一个天才的"终端用户",他可能会合理地忽略掉本书中讨论的大部分内容.2本书的前言中曾提醒读者,在本书中我将用缩写形式"SQL and Relational Theory"代表我的著作SQL and Rel

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

1.2 什么是数据库管理系统 从现在开始,每当我提到"给出一个典型的数据库",如图1.1所示,意味着给出一个如用户想象的那样的数据库(有时称之为逻辑数据库[logical database]).逻辑数据库与物理数据库是相对而言的,物理数据库是被数据库管理系统(DBMS,Database Management System)所理解的(即它是实际存储在计算机中的数据).因此,需要进一步强调的是,这里所谓的逻辑和物理数据库并不是两个完全不同的事情,相反,它们是从不同视角来看待的同一事情,如图