开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

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

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)。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据湖实操讲解【JindoFS 缓存加速】第十四讲:指定表和分区来预先缓存,查询分析更高效
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
4986 0
基于JindoFS+OSS构建高效数据湖
Jindo 是阿里云基于 Apache Spark / Apache Hadoop 在云上定制的分布式计算和存储引擎
25936 0
分布式和集群区别?什么是云计算平台?分布式的应用场景?
分布式是指将一个业务拆分不同的子业务,分布在不同的机器上执行;集群是指多台服务器集中在一起,实现同一业务,可以视为一台计算机;一个云计算平台,就是通过一套软件系统把分布式部署的资源集中调度使用。要应对大并发,要实现高可用,既需要分布式,也离不开集群。
7379 0
《中国人工智能学会通讯》——4.27 电子数据取证理论与技术
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第4章,第4.27节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
1618 0
数据结构之2-3-4树
2-3-4树是一种阶为4的B树。它是一种自平衡的数据结构,可以在O(lgn)的时间内查找、插入和删除,这里的n是树中元素的数目。2-3-4树和红黑树是等价的,也就是每个红黑树都可以转化为一颗2-3-4树,每个选择操作也和2-3-4树中的分裂操作对应。       2-3-4树是这样一种数据结构,满足如下性质:       1) 每个节点每个节点有1、2或3个key,分别称为
1072 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载