没有合适的资源?快使用搜索试试~ 我知道了~
大型共享数据库的数据关系模型 翻译
5星 · 超过95%的资源 需积分: 17 123 下载量 116 浏览量
2011-05-10
11:16:23
上传
评论 6
收藏 219KB DOC 举报
温馨提示
试读
16页
有一个万恶的作业困扰了很多人——A relational model of data for large shared data banks的翻译,现上传成果,希望能帮到大家~逐字逐句自己翻译,完全原创~
资源推荐
资源详情
资源评论
大型共享数据库的数据关系模型
E.F.Codd
IBM Research Laboratory,SanJose,California
未来的数据库使用者一定是和数据在机器中的存储(即数据库的内部模式)相隔离的。
而通过提示服务来提供信息是一个不太令人满意的解决方法。当数据的内部模式表示发生
改变,甚至数据内部表示的多个方面发生改变时,终端用户和大多数应用程序的活动都不
会受到影响。因此,查询、更新和报告存储信息类型的自然增长和变动都需要在数据表示
中表现出来。
现存的不可推断的、格式化的数据系统给用户提供了树结构的文件或者更一般的网格
模式的数据。本文在第一部分讨论这些模式的不足之处。并且会介绍一种基于 n 元组关系
的模式,一种数据库关系的正式形式和通用数据子句的概念。第二部分将讨论一些关系的
操作(不是逻辑层面的),并且把这些操作应用于用户模式上解决冗余和一致性问题。
1 关系模式和一般模式
1.1 简介
这篇文章是关于系统的基本关系原理的应用,这个原理提供了共享大型格式化
数据库的方法。除了 Childs[1]的文章有介绍外,用于数据库系统的关系的主要应
用还表现在演绎推理型的问-答系统中。Levein 和 Maron[2]提供了大量关于这个领
域的参考资料。
相比之下,这里要解决的问题是一些数据独立性的问题——应用程序和终端活
动之于数据类型增长和数据表示变动的独立性,而数据一致性问题即使在非演绎推
理型系统中也是很棘手的。
在目前流行的非推论性系统中,第一部分要介绍的数据的关系视图(或叫做模
式)在一些方面似乎优于图模式和网格模式[3,4]。这种模式提供了一种根据数据的
自然结构来描述描述数据的方式——也就是说,不用为了数据的机器表示而添加其
他的将结构。因此,这种模式为高水准的数据语言提供了基础,而这种数据语言机
制一方面可以达到最大化程序之间的独立性,另一方面也可以最大化数据的机器表
示和组织之间的独立性。
关系模式更高一级的优势在于它构成了关系处理可导性、冗余性和一致性的坚
固基础——这些将在第二部分讨论。另一方面,网络模型产生了一些混淆,尤其是
把连接的源误作为关系的源(见第二部分“连接陷阱”)
最后,关系视图允许对目前格式化数据系统的范围和逻辑限制的更清晰的估算,
并且有在单独的系统内竞争数据表示方式的优点(从逻辑的观点)。更清楚的这个
观点的示例会在本文中的不同部分中被阐释。但是支持关系模式的系统实现不会讨
论。
1.2 目前系统的数据相关性
最近发展的信息系统中数据描述表的提供是向数据独立性目标 [5,6,7]靠近的重
要提高。这些表可以使改变数据库中数据表示的某些特征变得更容易些。但是,许
多数据表示特征可以在不逻辑地削弱一些应用程序的情况下被改变的功能仍受到相
当的限制。更进一步,与用户交互的数据模式仍然有一些散乱的代表性特征,特别
是关于数据收集的描述(如个人名目)。三个仍然需要提高的数据独立性的主要类
型是:排序依赖,索引依赖和存取路径的依赖。在一些系统中这些依赖之间并不是
明确分隔的。
1.2.1 顺序依赖。数据库中的数据元素可以有很多种存储方式,一些是不考虑顺
序的,一些是允许一个元素只参与一个排序,而另外一些允许每个元素参
与多个排序。现在让我们来看看要求或允许数据元素存储在至少一个总排
序的现存系统,而这种总体排序是与硬件决定的排序地址密切相关的。这
种系统通常允许应用程序自己假定文件记录的表示顺序与其在磁盘上的存
储顺序是相同的(或者说是存储排序的子目)。这些运用文件存储顺序有
利条件的应用程序,如果由于某些原因而变得需要用一个新排序替换这种
顺序时,很可能不能正确运行。以指针方式实现的存储排序也有相似的问
题。
我们没有必要挑选出任何一个系统作为例子,因为现在上市的所有著名的
信息系统在清楚区别表示顺序和存储顺序两方面都是失败的。重要的实现
问题必须得到解决来提供这种独立性。
1.2.2 索引依赖。格式化数据的上下文联系中,索引通常被看成数据表示的一个
纯粹的效能导向组件。它倾向于提高对查询和更新的响应,同时减慢了对
插入和删除的响应。从信息的观点来看,索引是数据表示的冗余构成成分 。
如果一个系统王全用索引,并且如果它在变化活动形式的数据库环境中能
够表现的很好,那么不时地产生和销毁索引的能力可能是必须的。那么问
题产生了:应用程序和终端活动在索引项来去的时候仍然能够不受影响吗?
目前格式化数据系统采用很不相同的方法来进行索引。TDMS[7]无条件地
提供了所有属性上的索引。IMS[5]目前发布的版本为用户提供了为每一文
件选择的权利:是完全没有索引(层次序列的组织)和只有主键索引(层
次化索引序列组织)之间的选择。没有一种会使用户的应用逻辑依赖于无
条件提供的索引的存在。但是,IDS[8]允许文件设计者选择用于索引的属
性和指定用于与索引通过外加链的方式组合成文件结构的属性。运用索引
链性能的优势的应用程序必须通过名字来引用这些链。如果这些链后来被
删除,那么这些程序就无法正确运行。
1.2.3 存取路径依赖。许多现存格式化数据系统为用户提供了树结构的文件或者
更一般的数据网络模式。为和这类系统共同工作而发展的应用程序,在树
或网格的结构改变时,往往会在逻辑层受到削弱。一个简单的例子如下。
设想数据库包含关于部件和工程的信息。对于每一个部件,其部件号码、
部件名字、部件描述、在手的数量和订单上的数量的信息都被记录。对于
每一个工程,其工程编号、工程名字和工程描述信息被记录。无论什么时
候,一个工程要用特定部件时,用于这个工程的那种部件的数量也会被记
录。假如系统要求用户或者文件创作者根据树结构声明或者定义数据。那
么,任一层次结构都可以用到如上提到的信息上(见结构 1——5)。
现
在
考
虑
打
印
用
于
名
为
“ a
lp
ha
“
的
工
程
每
个部件的编号、部件名和数目。不考虑可用于面向树的信息系统可以用于
解决这个问题,我们可以得到以下的发现。如果程序 P 是开发用于解决这
个问题(假设结构是上面五种结构中的一种),也就是说 P 不会检测哪一
种结构对他来说有效,然而这样的结果是 P 至少在其中三个结构上是失败
的。更具体地,如果 P 对结构 5 行之有效,那么在其他结构上就会失败;
如果 P 对结构 3 或 4 行之有效,那么它至少会在结构 1,2,5 上是失败的;如
果 P 对结构 1 或 2 行之有效,那么它至少会在结构 3,4,5 上是是小的。对于
每一种情况的原因都很简单。在没有经过检测来决定哪种结构是有效的情
况下,P 会失败是因为它试图引用一个不存在的文件(现可用的系统把这
种情况视为 error)或者是它没有引用包含它必需信息的文件。有疑问的读
者应该找一些样例程序来理解这个简单的问题。
由于在一般情况下,开发可以检测系统允许的所有树结构的应用程序是不
实际的,而且这种程序在结构需要改变时也会失败。
为用户提供网格数据模式的系统也会遇到相似的问题。在树和网格两种情
形下,用户(或者是用户的程序)都被要求采用用户数据存取路径的集合。
这些路径是否与存储表示的指针定义的路径有较近通信是没有影响的,而
在 IDS 中这种通信时极其简单的,但在 TDMS 中就正好相反了。不考虑存
储表示来看这种问题,结果就是,终端活动和程序变得依赖于用户存取路
径的连续存在性。
对于这个问题的一个解决方案就是采用如下策略:一旦用户存取路径被定
义了,那么除非所有应用这个路径的所有程序都废弃了(finish 了),否则
这个路径就不会过时。由于在团体总体模式的数据库用户的存取路径的数
量最终可能变得过大,因此这种策略是不实际的。
1.3 数据的关系视图
关系这个词在这里使用的是其被广泛认可的数学意义。给定集合 S1,S2,……,Sn(这
些集合没有必要一定是不同的),如果 R 是一个满足如下条件的 n 元组集合:其每
个元素的第一个元素来自 S1,第二个元素来自集合 S2,以此类推,那么 R 就是这
n 个集合(S1,S2,……,Sn)上的一个关系。我们用 Sj 来表示 R 的第 j 个域。正如上面
所定义,R 被称作是 n 级的。1 级的关系通常叫做一元关系,2 级的被叫做二元关
系,3 级的被叫做三元关系,而 n 级的叫 n 元关系。(更简单地说,R 是 S1,S2,
……,Sn 这 n 个集合的笛卡尔乘积的一个子集)
说明一下,我们将频繁地使用关系的数组表示,但是必须清楚的是这个特定表示并
不是用于解释关系视图必须的部分。用于表示 n 元关 R 的数组有如下特征:
(1) 每一行代表 R 的一个 n 元组
(2) 行的排列顺序是无关紧要的
(3) 所有行都是不相同的
(4) 列的顺序是有意义的——列应该符合 R 定义时的域的顺序 S1,s2,……,Sn(但
是注意,排序的域和无序的域下标之间的关系)
(5) 每个列的意义部分是由命名相应域来传达的
图 1 中的例子展示了一个叫做 supply 4 级的关系,这个关系显示的是特定工程的特
定供应者的特定数量的零件发货过程。
图 1
有人
可能会问
如果列由
相应域的
名字来标
识,那么
为什么列的顺序会有影响呢?正如图 2 中例子显示的一样,两列可以有相同的头
(表示同样的域),但是对于这个关系他们有不同的含义。这里描述的关系叫做
component 。 它 是 一 个 三 元 关 系 , 其 中 前 两 个 域 叫 做 part 而 第 三 个 域 叫 做
quantity。Component(x,y,z)的意思就是部件 x 部件 y 的直接构成成分(或
者子部件),而需要 z 个的 x 部件来组成一个的 y 部件。这个关系在零件扩大问
题 中 有
重 要 作
用。
图 2
剩余15页未读,继续阅读
资源评论
- yhao1644558512012-11-05楼主辛苦了,自己翻译,深刻的学习英语知识,不错!
- 「已注销」2012-11-02楼主辛苦!真没看出这篇文章有什么特别创新的地方,可能是因为不了解当时的背景吧
- sdfdsfsfxxx2017-08-01看了英文的感觉完全看不懂,再来看中文的
- csuhoward2013-06-07翻译的挺专业的
- cjfdqchwhj2014-01-21大略看了一下,一般般
janah
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功