购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 关系数据库的概念(RDBMS)

1970年,E.F.Codd先生发表了一篇有关数据库的文章——“A Relational Model of Data for Large Shared Data Banks”,这篇文章主要阐述关系模型的定义,关系数据库的概念由此诞生。从此,数据库进入一个划时代的发展。首先,IBM公司根据E.F.Codd先生的理论开发了“结构化英语查询语言”(Structured English Query Language,SEQUEL),可以通过这种语言来访问关系数据库。后来,美国国家标准协会ANSI和国际标准化组织ISO都对“结构化英语查询语言”进行标准化,使“结构化英语查询语言”成为业界的标准。现在,我们通常都把这种语言叫SQL(Structured Query Language)。

由于E.F.Codd先生的杰出贡献,1981年,E.F.Codd先生获得了计算机界的最高奖——图灵奖。

1979年,Oracle推出第一个商品化的关系数据库系统Oracle V2。这个版本的推出并没有多大的市场反响。但是,Oracle公司却第一个开拓了关系数据库商业应用的先河。

1986年,Oracle公司推出Oracle V5,这个版本支持分布式查询。

1988年,Oracle公司推出Oracle V6,该版本具备了联机事务处理的能力。

20世纪90年代以后,由于网络的发展,数据库在商业上的应用并不局限于一个办公间、一栋楼,而是扩展到全世界,Oracle加强了在分布式环境的集成。

后来,随着硬件的发展,Oracle把自己的数据库推向了高端应用。Oracle集群(Real Application Cluster,RAC)、Dataguard的出现,为用户提供了最大的数据保护,使商业应用能够实现7×24小时的目标(每周7天,每天24小时运转)。

最近,面向对象(Object-Oriented,OO)的DBMS已经成为最为突出的数据库管理系统,并找到了许多适当的应用环境,如多媒体领域。面向对象的DBMS适于这样的应用,因为在一个几乎非事务性的环境中,它们具有控制复杂数据类型的能力。由于竞争,RDBMS厂商为了提供包括文本、音频、图像和视频数据类型的应用,已经制造出了商业可用的通用服务器。

此外,多维数据库(Multi-Dimensional Database,MDD)也分享了部分数据库市场份额,所谓多维数据库,是将数据存放在一个 n 维数组中,而不是像关系数据库那样以记录的形式存放。

1.4.1 关系数据库模型

进行数据库逻辑模型设计的时候,逻辑模型是通过实体—关系图来表示的,这种表示方法叫“E-R图”。逻辑模型由三个元素组成:实体、属性、关系。

实体 :是客观存在的事物,它通过一系列的属性进行描述。一个学生是一个实体,一件产品也是一个实体。实体和实体间要能够相互区分开。实体的概念并不仅仅局限于物体,还可以是事,如手机维修记录就可以看成一个实体。

实体集 :所有实体的集合叫实体集,如:所有学生的集合就是一个实体集。

属性 :是实体的组成部分,它描述实体某方面的特性。如果学生是一个实体,那么学生的名字可以看成是这个实体的属性。

关系 :用于描述两个集合的元素之间的联系,这是数学的范畴。关系模型本来就是建立在数学基础之上的。简单地说,关系就是两个实体之间的联系。两个实体之间有下面几种关系。

■ 一对一关系,对于实体集A中的每个实体,在实体集B中只有一个实体与之对应;反之,对于实体集B中的每个实体,在实体集A中也只有一个实体与之对应。如图1-1所示,国家是一个实体,总统也是一个实体,一个国家当前只能有一个总统,一个总统当前也只能在一个国家任职。

■ 一对多关系,对于实体集A中的每个实体,实体集B中有多个实体与之对应;反之,对于实体集B中的每个实体,实体集A中只能有一个实体与之对应。如图1-2所示,班主任是一个实体,学生也是一个实体,一个班主任可以对应多个学生,而一个学生只能有一个班主任。

图1-1 一对一关系

图1-2 一对多关系

■ 多对多关系,对于实体集A中的实体,实体集B中有多个实体与之对应;对于实体集B中的实体,实体集A中有多个实体与之对应。如医生和病人的关系,一个医生可以给多个病人治病,一个病人也可以接受多个医生的治疗,如图1-3所示。

图1-3 多对多关系

1.4.2 表

关系数据库系统中,最基本的元素是表,表又称“关系”,表以二维的形式对数据进行组织。每个表中有0行或者多行数据,每一行数据有一列或者多列。图1-4是一个学生信息表的例子。

图1-4 学生信息表

列又称为字段(field)或者属性,如本例中的姓名(name)就是一列。列用于描述对象的特性。如本例中,学生是一个对象,学生的姓名是一个属性。

行(Row),又称元组(tuple)。表中的每行由若干个字段组成,描述一个对象的信息。每个字段描述了该对象的一种属性或性质。如本例中,每一行由学生姓名(name)、性别(sex)、年级(grade)、家庭住址(address)组成。 Rwrhb///KLY8A7Mu6qQ/+jFYwzPXKvcQjI8Z5rJXSRwP+cgafVqoit5bSuzIfjB/

点击中间区域
呼出菜单
上一章
目录
下一章
×