常见的数据库产品—测试工程师核心开发技术(7)

发表于:2020-1-16 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing教研团队    来源:51Testing软件测试网原创

分享:
  3.1.2 常见的数据库产品
  常见的数据库产品如表3-1所示。
  表3-1  常见的数据库产品
  3.1.3 数据库模型
  当前常见的数据库模型有4种-网状模型(network model)、层次模型(hierarchical model)、关系模型(relational model)和面向对象模型(object oriented model)。它们的区别在于记录之间联系的表示方式不同。其中,关系模型是目前应用最广泛的模型,市面上绝大多数DBMS是关系型的。
  1.网状模型
  在计算机诞生的初期,数据处理通过穿孔卡片进行。这时的数据管理只对卡片进行物理存储和处理,并且极其麻烦和复杂,根本无法体现出高效性。1956年9月13日,美国加利福尼亚州圣何塞的一小组IBM项目工程师向世人展示了一款新产品-305 RAMAC(Random Access Method of Accounting and Control,统计控制随机存取法),这是世界上第一款计算机磁盘存储系统,是存储历史上的里程碑,真正开启了存储和IT领域的大门,从而引发了数据管理的革命。此后,出现了最早版本的数据库,即网状数据库管理系统,由通用电气公司的Charles Bachman于1961年开发成功。其IDS(Integrated Data Store,集成数据存储)是世界上第一个网状数据库管理系统,也是第一个数据库管理系统。但是它只能运行于通用电气公司的主机上,数据库只有一个文件,所有的表必须通过手工编码生成,有极大的局限性。
  网状模型采用网状结构表示实体及其联系。网状结构的每一个节点表一个记录类型,记录类型可包含若干字段,记录之间的联系用链接指针表示。
  网状模型的特征是:允许一个以上的节点没有父节点,一个节点可以有多于一个的父节点。由于网状模型比较复杂,因此一般实际的网状数据库管理系统对网状都有一些具体的限制。在使用网状数据库时需要一些转换。
  网状模型提供了很大的灵活性,能更直接地描述现实世界,性能和效率也比较高。网状模型的缺点是结构复杂,用户不易掌握,记录之间的联系变动涉及链接指针的调整,扩充和维护都比较复杂。
  2.层次模型
  层次数据库是紧随网络数据库而出现的。最著名、最典型的层次数据库系统之一是IBM公司在1968年开发的信息管理系统(Information Management System,IMS)。1966年,IBM公司、Rockwell公司和Caterpillar公司合作开发新型数据库,帮助美国国家航空航天局管理阿波罗计划中的大量资料,并在1968年完成。1969年,该数据库作为IBM产品发布,更名为IMS。1969年,成功发射了阿波罗11号和实现人类首次登月之后,美国国家航空航天局继续在其航天飞机计划中使用该产品。
  层次模型是数据库系统中最早使用的模型。它的数据结构类似一棵倒置的树,每个节点表示一个记录类型,记录之间的联系是一对多的联系。基本特征如下。
  ●一定有一个并且只有一个位于树根的节点,泛节点称为根节点。
  ●一个节点下面可以没有节点,即向下没有分支,这样的节点称为叶节点。
  ●一个节点可以有一个或多个叶节点,前者称为父节点,后者称为子节点。
  ●同一父节点的子节点称为兄弟节点。
  ●除了根节点外,其他任何节点有且只有一个父节点。
  在层次模型中,每个记录类型可以包含多个字段,不同记录类型之间、同一记录类型的不同字段之间不能同名。如果要存取某一类型的记录,就要从根节点开始,按照树的层次逐层向下查找,查找路径就是存取路径。
  层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但当需要动态访问数据(如增加或修改记录类型)时,其效率并不高。另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较麻烦且不直观。
  3.关系模型
  网状数据库与层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。当采用这两种数据库存取数据时,用户仍然需要明确数据的存储结构,指出存取路径。
  1970年,圣何塞IBM实验室的高级研究员Edgar Frank Codd在刊物Communication of the ACM上发表了一篇名为"大型共享数据库数据的关系模型"(A Relational Model of Data for Large Shared Data Banks)的论文,首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型,奠定了关系模型的理论基础。这篇论文是数据库系统历史上具有划时代意义的里程碑。
  关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时有人认为关系模型是理想化的数据模型,用来实现数据库管理系统是不现实的,尤其担心关系数据库的性能。关系模型不可避免地受到网状模型与层次模型支持者的抵制。为了加深对问题的理解,1974年美国计算机协会牵头组织了一次研讨会,会上展开了以Edgar Frank Codd和Charles Bachman分别为首的两派辩论。而这次辩论也推动了关系数据库的发展,使其最终成为现代数据库产品的主流。
  Edgar Frank Codd于1981年获得美国计算机协会的最高荣誉图灵奖,被誉为"关系数据库之父"。1970年关系模型建立之后,圣何塞的IBM实验室的更多人员开始研究关系数据库,这个项目就是著名的System R。其目标是论证一个全功能关系数据库的可行性。1974年,IBM研究员Don Chamberlin和Ray Boyce通过System R项目的实践,发表了论文"SEQUEL:A Structured English Query Language"。论文提出的SEQUEL是一套比关系微积分与关系代数更适合最终用户使用的非程序化查询语言,我们现在所熟知的SQL就是基于SEQUEL发展起来的。但是此时IBM的IMS层次数据库已有规模,由于公司体系庞大,又一向重视信誉与质量,众多原因阻止了System R投产的脚步,一直到1980年之后System R才作为一个产品正式推向市场。
  1973年,加利福尼亚大学伯克利分校的Michael Stonebraker和Eugene Wong利用System R已发布的信息开发了自己的数据库系统Ingres,并使用QUEL(Query Language,由Michael Stonebraker发明)作为查询语言。不过QUEL与IBM的SQL并不兼容。虽然与IBM SQL相比,QUEL在某些方面还有优势,但由于学院派的Michael Stonebraker考虑到会扼杀创新精神,不主张将QUEL作为标准,IBM担心Ingres把QUEL变成标准会对自己不利,决定把自己的SQL提交给数据库标准委员会。System R和Ingres系统双双获得美国计算机协会的1988年"软件系统奖"。
  1977年6月,Larry Ellison、Bob Miner和Ed Oates在硅谷共同创办了一家名为Software Development Laboratories(SDL)的计算机公司,同样也利用System R开发的商用数据库产品。这就是后来的Oracle,Oracle成功利用了IBM关系数据库产品的空隙,以及IBM确立的SQL标准,发展成全球数一数二的数据库厂商。
  关系模型是目前应用最多、最重要的一种数据模型。关系模型建立在严格的数学概念基础上,采用二维表格结构来表示实体和实体之间的联系。二维表由行和列组成。关系模型中没有层次模型中的链接指针,记录之间的联系是通过不同关系中的同名属性来实现的。
  关系模型的基本特征如下。
  ●建立在关系数据理论之上,有可靠的数据基础。
  ●可以描述一对一、一对多和多对多的联系。
  ●具有表示的一致性。实体本身和实体间联系都使用关系描述。
  ●关系的每个分量具有不可分性,即不允许表中表。
  ●概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示。
  ●比较容易理解。
  另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
  关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次模型和网状模型。为了提高查询的效率,有时需要对查询进行一些特别的优化。
  4.面向对象模型
  关系数据库以其简单、易学和坚实的理论基础目前已取代层次型数据库和网状型数据库,成为当今市场中的主流产品。然而,随着计算机应用领域的扩展和多媒体计算的普及,以二维表格见长的关系数据库已不能满足需求。
  关系数据库在管理信息系统和相关领域获得了巨大成功,因为这些领域涉及的数据类型少,数据之间关系简单,很适合用表格来处理和操作。目前计算机的应用领域在不断扩大,已从管理信息系统向非管理信息系统发展,所涉及的数据也已从简单的字符、整型、浮点型数据发展到图形、图像、声音、超文本、空间几何数据等非常规数据类型,并且它们之间还增加了继承、包含等复杂的关系。据统计,现实世界中90%的数据为非常规数据,如果把它们看成一个个独立存在而又有联系的对象,迫切需要使用面向对象的数据库技术进行管理。
  面向对象模型是采用面向对象的观点来描述现实世界中实体及其联系的模型,现实世界中的实体都被抽象为对象,同类对象的共同属性和方法被抽象为类。面向对象模型是一种接近现实世界的模型,可以定义复杂数据关系。由于具有继承特性,面向对象模型提供了快速创建各种变种记录类型的能力。面向对象模型的缺点是查询功能相对比较弱。

查看《测试工程师核心开发技术》全部连载内容>>
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号