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

《你不可不知的关系数据库理论》——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所示的特定的样本数据。

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

相关文章
什么是数据库的 “缓存池” ?(万字干货)
Buffer Pool 是什么?从字面上看是缓存池的意思,没错,它其实也就是缓存池的意思。它是 MySQL 当中至关重要的一个组件,可以这么说,MySQL的所有的增删改的操作都是在 Buffer Pool 中执行的。
71 0
数据脱敏——什么是数据脱敏
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。
175 0
什么是数据湖分析?
数据湖分析(Data Lake Analytics,DLA)是无服务器(Serverless)化的云上交互式查询分析服务。无需ETL,就可通过DLA在云上通过标准JDBC直接对阿里云OSS,TableStore,RDS,MongoDB等不同数据源中存储的数据进行查询和分析。
779 0
从JS对象开始,谈一谈究竟什么是“不可变数据”和函数式编程
JS中的对象是那么美妙:我们可以随意复制他们,改变并删除他们的某项属性等。但是要记住一句话: “伴随着特权,随之而来的是更大的责任。” (With great power comes great responsibility)
2759 0
不可忽略的数据库缓存重建
引用:http://kb.cnblogs.com/page/116320/ 本文的主要内容来源于MongoDB官方博客,由NoSQLFan补充说明,本文对传统的分布式Cache系统进行了分析,指出了其在缓存重建中会对数据库产生巨大压力的问题。
667 0
什么是数据库事务
  数据库事务是指作为单个逻辑工作单元执行的一系列操作。 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:   · 更新客户所购商品的库存信息   · 保存客户付款信息--可能包括与银行系统的交互   · 生成订单并且保存到数据库中   · 更新用户相关信息,例如购物数量等等 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。
816 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载