minor fix for ch2

This commit is contained in:
jiajia.debug 2018-04-01 01:24:11 +08:00
parent 360087cb07
commit 3d3c8b05bf

8
ch2.md
View File

@ -32,11 +32,11 @@
## 关系模型与文档模型
现在最著名的数据模型可能是SQL。它基于Edgar Codd在1970年提出的关系模型【1】数据被组织成**关系relation**SQL中称作**表table**),其中每个关系是**元组tuple**SQL中称作**行row**的无序集合。
现在最著名的数据模型可能是SQL。它基于Edgar Codd在1970年提出的关系模型【1】数据被组织成**关系**SQL中称作**表**),其中每个关系是**元组**SQL中称作**行**)的无序集合。
关系模型曾是一个理论性的提议当时很多人都怀疑是否能够有效实现它。然而到了20世纪80年代中期关系数据库管理系统RDBMSes和SQL已成为大多数人们存储和查询某些常规结构的数据的首选工具。关系数据库已经持续称霸了大约25~30年——这对计算机史来说是极其漫长的时间。
关系数据库起源于商业数据处理在20世纪60年代和70年代用大型计算机来执行。从今天的角度来看那些用例显得很平常典型的**事务处理transaction processing**(将销售或银行交易,航空公司预订,库存管理信息记录在库)和**批处理batch processing**(客户发票,工资单,报告)。
关系数据库起源于商业数据处理在20世纪60年代和70年代用大型计算机来执行。从今天的角度来看那些用例显得很平常典型的**事务处理**(将销售或银行交易,航空公司预订,库存管理信息记录在库)和**批处理**(客户发票,工资单,报告)。
当时的其他数据库迫使应用程序开发人员必须考虑数据库内部的数据表示形式。关系模型致力于将上述实现细节隐藏在更简洁的接口之后。
@ -150,7 +150,7 @@ JSON表示比[图2-1](img/fig2-1.png)中的多表模式具有更好的**局部
[^iii]: 在撰写本文时RethinkDB支持连接MongoDB不支持连接而CouchDB只支持预先声明的视图。
如果数据库本身不支持连接,那就不得不在应用程序代码中通过对数据库进行多个查询来模拟连接。(在这种情况中,地区和行业的列表可能很小,改动很少,应用程序可以简单地将其保存在内存中。不过,执行连接的工作从数据库被转移到应用程序代码上。
如果数据库本身不支持连接,则必须在应用程序代码中通过对数据库进行多个查询来模拟连接。(在这种情况中,地区和行业的列表可能很小,改动很少,应用程序可以简单地将其保存在内存中。不过,执行连接的工作从数据库被转移到应用程序代码上。
此外,即便应用程序的最初版本适合无连接的文档模型,随着功能添加到应用程序中,数据会变得更加互联。例如,考虑一下对简历例子进行的一些修改:
@ -181,7 +181,7 @@ IMS的设计中使用了一个相当简单的数据模型称为**层次模型
同文档数据库一样IMS能良好处理一对多的关系但是很难应对多对多的关系并且不支持连接。开发人员必须决定是否复制非规范化数据或手动解决从一个记录到另一个记录的引用。这些二十世纪六七十年代的问题与现在开发人员遇到的文档数据库问题非常相似【15】。
那时人们提出了各种不同的解决方案来解决层次模型的局限性。其中最突出的两个是**关系模型relational model**它变成了SQL统治了世界和**网络模型(network model**最初很受关注但最终变得冷门。这两个阵营之间的“大辩论”在70年代持续了很久时间【2】。
那时人们提出了各种不同的解决方案来解决层次模型的局限性。其中最突出的两个是**关系模型relational model**它变成了SQL统治了世界和**网络模型network model**最初很受关注但最终变得冷门。这两个阵营之间的“大辩论”在70年代持续了很久时间【2】。
那两个模式解决的问题与当前的问题相关,因此值得简要回顾一下那场辩论。