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

1.3 什么是关系型DBMS

现在我们已经知道了什么是DBMS,但什么是关系型DBMS呢?当然,首先它是一个DBMS,它要提供本章介绍的DBMS具备的所有功能:数据存储、查询、修改、恢复控制、并发控制、安全控制和完整性控制,以及本书中没有讨论的其他功能。但是第二点要注意的是,它又是关系型的,这就意味着用户接口在真正实现时必须是关系模型。换句话说,关系模型被看作是DBMS中实现用户接口的一种方法。

在继续讲解之前,还要强调一点,这个方法(即关系模型)其实很简单!关系模型的这些方法并不是紧身衣,相反,它们是一种规则,对用户来说可以是生活更加容易的一种规则(在某些方面,对系统来说也更简单,但是重点是针对用户的)。现在,虽然这种方法有时看上去稍复杂些,但最重要的是,关系模型是很正规的。既然正规就需要有正规的术语,正规的术语有时会令人却步。但是术语中的这些定义实际上相当简单(别忘了,供应商和零件数据库就相当容易理解,不是吗?)。事实上,我们谈论的这些定义要比过去使用的类似定义简单得多,就像IMS和IDMS这样的前期关系系统或非关系系统6。

再重复一下,关系型数据库管理系统是支持真正实现关系模型的用户接口的DBMS。对用户而言,其含义如下。

数据看上去是关系型的。
可以使用关系运算符(如,采用关系运算来处理数据)作为检索请求和修改请求的基础。举个简单的例子,如:

S WHERE CITY = 'London'

这个表达式表示查询供货地点在London的供应商,它使用了关系型的“限定”运算符。规范的表达就是,它请求在表S中查询地点在London的供应商集合。

然后,在本书的第一部分中,我们将仔细看看“数据看上去是关系型的”的真正含义,我们也要检验各种关系运算符,看它们是否能起到作用。然后,要注意的是,这种解释也不一定是非常详尽的(这些主题的详尽解释可以参照 SQL and Relational Theory),但是就现状来说,它是非常综合的,也是非常准确的。

不幸的是,这里还有一个问题。为了说明这些定义,我们还要讨论一些问题,即我需要明确给出一些编码实例。为了表达这些实例,我需要采用正式的语言来描述,但是关系模型没有规定任何一种这样的语言,而且它是在很高的抽象级别上定义的,原则上是能够来具体实现任何不同的语法形式。现在,一种标准的、具体的语言确实存在了,即SQL,目前在市场上它也或多或少地获得了所有主流数据库产品的支持。然而就像在前言中提到的,SQL是有很多缺点的,比如它的复杂性、不完整性、难掌握,在很多方面还容易造成误导。因此我计划编写本书的目的如下。

第一,我会在根本不使用SQL的情况下来解释关系模型(见本书的第一部分)。作为替代,我使用了一种叫做Tutorial D的语言,它是专门为此目的设计的一种语言。注意:我相信Tutorial D是一种可以自我说明的语言。然而,如果需要更容易理解这种表述的话,可以参考Databases, Types, and the Relational Model: The Third Manifesto(第三版,Addison- Wesley, 2007)7。
第二,我将展示关系模型的思想是如何具体用SQL实现的(见本书的第三部分),因此可以肯定的是,我并不是要在本书中全面介绍SQL语言,只要够用即可,即我在前言中提到的语言的核心特征。
(第二部分是对前言中提到的问题所做的简短说明)注意:也许我应该声明一下,由于前面提到的计划,接下来进行的工作可能与目前市场上的大部分书籍或报告不太一样,所以我打算叫做“关系数据库的介绍”。

在结束本节前,再说明一点。你也许知道,但也许不知道(但是我希望你知道):关系模型最早是由E.F.Codd发明的,当时他还是IBM的一名研究人员(E代表Edgar,F代表Frank,但他一直喜欢用首字母签名,作为他的朋友,我也感到很骄傲)。1968年末,Codd已经成为了一名数学家,他第一次实现了数学定律可以用来把一些固有的原理用在某一领域中,例如,数据库管理,而在以前这些都是做不到的。他在关系模型上最初产生的一些思想可以在1969年IBM的研究报告中找到(进一步的研究可以参见附录E)。

时间: 2024-10-30 06:58:40

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

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

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

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

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

《你不可不知的关系数据库理论》——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.1 什么是数据库

1.1 什么是数据库 数据库被认为是一种电子文件柜,它包含了一些数字化的信息(即数据),这些信息可以被永久保存在某种存储介质上,通常是被保存在磁盘上.用户可以通过管理数据库的软件发出请求(request)或命令(command)来向数据库中插入信息,删除.修改或检索数据库中已经存在的信息,这种管理数据库的软件叫做数据库管理系统(DBMS). 注意:在本书中,术语user的含义将根据上下文的要求理解为应用程序员或者是交互用户1或者是应用程序员和交互用户.实际上,现在这些发给DBMS的用户请求可以采

《你不可不知的关系数据库理论》——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)所理解的(即它是实际存储在计算机中的数据).因此,需要进一步强调的是,这里所谓的逻辑和物理数据库并不是两个完全不同的事情,相反,它们是从不同视角来看待的同一事情,如图