数据库技术从“理论研究”到“原型开发与技术攻关”再到“实际产品研制和应用”,已经形成良性循环,成为计算机领域的成功典范。吸引了学术界和工业界众多的科技人员,使得数据库研究日新月异,新技术、新系统层出不穷,科技队伍也不断壮大。第十三章数据库技术新发展数据库技术发展概述数据库发展的3个阶段数据库系统发展的特点数据库技术发展趋势小结第十三章数据库技术新发展13.1数据库技术发展概述数据库技术产生于20世纪60年代中期,到今天为止仅仅40多年的历史,却已经历了3代演变,造就了C.W.Bachman、E.F.Codd和JamesGray三位图灵奖得主。发展了以数据建模和DBMS核心技术为主,内容丰富的一门学科,带动了一个巨大的软件产业DBMS产品及其相关工具和解决方案。这40多年可谓成就辉煌。13.1数据库技术发展概述数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,目前,它已成为计算机信息系统与应用系统的核心技术和重要基础。当今数据库系统是一个大家族,数据模型丰富多样,新技术内容层出不穷,应用领域日益广泛,当读者步人数据库领域时,面对众多复杂的数据库系统难免产生迷惑和混乱。图13.1通过一个三维空间的视图从数据模型、新技术内容、应用领域3个方面,描述了数据库系统的发展、特点和相互关系。13.1数据库技术发展概述数据模型是数据库系统的核心和基础。按照数据模型的进展,数据库技术可以相应地分为3个发展阶段:第一代的网状、层次数据库系统;第二代的关系数据库系统,以及发展到今天以第三代数据库系统为核心的数据库大家族。13.2数据库发展的3个阶段按照数据模型的进展,数据库技术可以相应地分为三个阶段:一、第一代数据库系统:层次和网状数据库系统其代表是:1969年IBM公司研制的层次模型的数据库管理系统IMS(InformationManagementSystem)。美国数据库系统语言协商会CODASYL(ConferenceOnDataSystemLanguage)下属的数据库任务组DBTG(DataBaseTaskGroup)对数据库方法进行了系统的研究、探讨,于20世纪60年代初提出了若干报告,称为DBTG报告。DBTG报告确定了数据库系统的许多概念、方法和技术。DBTG所提议的方法是基于网状结构的。它是数据库网状模型的典型代表。层次数据库是数据库系统的先驱,而网状数据库则是数据库概念、方法、技术的奠基。它们是数据库技术中研究得最早的两种数据库系统。两者的区分是以数据模型为基础,层次数据库的数据模型是分层结构的,而网状数据库的数据模型是网状的,它们的数据结构都可以用图来表示。层次模型对应于有根定向有序树,而网状模型对应的是有向图。所以,这两种数据模型可以统称为格式化数据模型。13.2数据库发展的3个阶段这两种数据库系统具有下列共同特点:1.支持三级模式的体系结构外模式、模式、内模式。模式之间具有转换(或称为映射)功能。2.用存取路径来表示数据之间的联系数据之间的联系在层次和网状数据库系统中是用存取路径来表示和实现的。例如,DBTG中一对多的联系用系(Set)来表示,而系一般是用指引元的方法实现的,因此系值就是一种数据的存取路径。13.2数据库发展的3个阶段3.独立的数据定义语言层次数据库系统和网状数据库系统有独立的数据定义语言,用以描述数据库的外模式、模式、内模式以及相互映象。诸模式已经定义,就很难修改。4.导航的数据操纵语言层次和网状数据库的数据查询和数据操纵语言是一次一个记录的导航式的过程化语言。这类语言通常嵌入某一种高级语言如COBOL,FORTRAN,PL/1中。所谓导航就是指用户不仅要了解“要干什么”,而且要指出“怎么干”。用户必须用某种高级语言编写程序,一步一步地“引导”程序按照数据库中某一条预先定义的存取路径来访问数据库,最终达到访问的数据目标。13.2数据库发展的3个阶段导航式的数据操纵语言,优点是存取效率高,缺点是编程繁琐,给用户编写应用程序带来了困难。其设计在很大程度上依赖于设计者自己的经验和实践,因而只有具有计算机专业水平的应用程序员才能掌握和使用这类数据库操纵语言。此外,应用程序的可移植性较差,数据的逻辑独立性也较差。13.2数据库发展的3个阶段二、第二代数据库系统--关系数据库系统1970年美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型。20世纪70年代是关系数据库理论研究和原型开发的时代。其中以IBM公司SanJose研究室开发的SystemR和Berkeley大学研制的INGRES为典型代表。经过大量的高层次的研究和开发取得了一系列的成果。主要是:奠定了关系模型的理论基础,给出了人们一致接受的关系模型的规范说明。13.2数据库发展的3个阶段研究了关系数据库语言,有关系代数、关系演算、SQL语言及QBE等。这些描述性语言一改以往程序设计语言和网状、层次数据库系统中数据库语言的风格,以其易学易懂的优点得到了最终用户的喜爱,为20世纪80年代数据库语言标准化打下了基础。研制了大量的RDBMS的原型,攻克了系统实现中查询优化、并发控制、故障恢复等一系列关键技术。不仅大大丰富了DBMS实现技术和数据库理论,更重要的是促进了RDBMS产品的蓬勃发展和广泛应用。13.2数据库发展的3个阶段关系数据库是以关系模型为基础的。关系模型概括地讲有三部分组成:1.数据结构数据结构包括域及域上定义的关系等。关系模型中,实体、实体与实体之间的联系都通过关系这种单一的结构类型来表示。2.关系操作关系操作的能力可用关系代数(或等价的关系演算)中并、交、差、广义笛卡尔积、选择、投影、连接、除等操作来表示。关系操作的特点是集合操作。3.数据完整性数据完整性包括实体完整性、参照完整性以及与应用有关的完整性。13.2数据库发展的3个阶段关系模型建立在严格的数学概念基础上,概念简单、清晰,易于用户理解和使用,大大简化了用户的工作。关系模型具有以下主要特点:关系模型的概念单一,实体以及实体之间的联系都用关系来表示;以关系代数为基础,形式化基础好;数据独立性强,数据的物理存储和存取路径对用户隐蔽。关系数据库语言是非过程化的,将用户从编程数据库记录的导航式检索中解脱出来,大大降低了用户编程的难度。13.2数据库发展的3个阶段三、新一代数据库技术的研究和发展从20世纪80年代以来,数据库技术在商业领域的取大成功刺激了其他领域对数据库技术需求的迅速增长。这些新的领域为数据库应用开辟了新的天地,另一方面在应用中提出的一些新的数据管理的需求也直接推动了数据库技术的研究与发展,尤其是面向对象数据库系统(ObjectOrientedDataBaseSystem,简称OODBS)的研究与发展。13.2数据库发展的3个阶段1、应用领域的需求新的数据库应用领域,如计算机辅助设计/管理(CAD/CAM)、计算机集成制造(CIM)、办公信息系统(OIS)、地理信息系统(GIS)、知识库系统和实时系统等,需要数据库的支持,而其所需要的数据库管理功能有相当一部分是传统的数据库系统所不能支持的。13.2数据库发展的3个阶段2、传统数据库系统的局限性传统数据库系统的局限性主要表现在以下几个方面:①.面向机器的语法数据模型传统数据库中采用的数据模型强调数据的高度结构化,是面向机器的语法数据模型。它们只能存储离散的数据和有限的数据之间的关系,语义表示能力差,无法表示客观世界中的复杂对象,即结构复杂、相互联系的语义也十分复杂的对象。从而限制了数据库处理文本、超文本、图形、图像、CAD图件、声音等多种复杂对象,以及工程、地理、测绘等领域中的非格式化、非经典数据的能力。此外,传统数据模型无法揭示数据之间的深层含义和内在联系,缺乏数据抽象。13.2数据库发展的3个阶段②.数据类型简单、固定传统的DBMS只能理解、存储和处理简单的数据类型。如整数、浮点数、字符串、日期、货币等。传统的RBMS只支持某一固定类型集,不能依据某一应用所需的特定数据类型来扩展其类型集。例如,不能定义包含三个实数分量的数据类型vector来表示三维向量。③.结构与行为分离从应用程序员角度来看,在某一应用领域内标识的对象应包含两个方面的内容:结构表示行为规格前者可映射到数据库模式,而后者在传统的数据库系统中则完全失去了。13.2数据库发展的3个阶段④.阻抗失配在关系数据库系统中,数据操纵语言如SQL与通用程序设计语言之间的失配称为阻抗失配。这种不匹配表现在两个方面:一是编程模式不同,描述性的SQL语言与指令式的编程语言如C语言不同;二是类型系统不匹配,编程语言不能直接表示诸如关系这样的数据库结构,在其界面会丢失信息。进一步地,由于使两个类型系统,自动的类型检查也成了问题。⑤.被动响应传统数据库管理系统只能响应和重做用户要求它们做的事情,从这种意义上说,它们是被动响应。13.2数据库发展的3个阶段⑥.存储、管理的对象有限传统的DBMS只存储和管理数据,缺乏知识管理和对象管理的能力。传统数据库管理中,主要进行的是数据的存储、管理、查询、排序和报表生成等比较简单的、离散化的信息处理工作。数据库中反映的是客观世界中静态、被动的事实。传统的DBMS还缺乏描述和表达知识的能力,缺乏对知识的处理能力,不具有演绎和推理的功能,因而无法满足MIS,DSS,OA和AI等领域中进行高层管理和决策的要求,从而限制了数据库技术的高级应用。13.2数据库发展的3个阶段⑦.事务处理能力较差传统数据库只能支持非嵌套事务。对长事务的响应较慢,而且在长事务发生故障时恢复也比较困难。13.2数据库发展的3个阶段3、新一代数据库技术的特点面向对象的方法和技术对数据库发展的影响最为深远数据库技术与多学科技术的有机结合面向应用领域的数据库技术的研究4、第三代数据库系统其基本特征为:第三代数据库系统应支持数据管理、对象管理和知识管理第三代数据库系统必须保持或继承第二代数据库系统的技术第三代数据库系统必须对其他系统开放13.2数据库发展的3个阶段13.3数据库系统发展的特点一、数据模型的发展数据库的发展集中表现在数据模型的发展。从最初的层次、网状数据模型发展到关系数据模型,数据库技术产生了巨大的飞跃。关系模型的提出,是数据库发展史上具有划时代意义的重大事件。关系理论研究和关系数据库管理系统研制的巨大成功进一步促进了关系数据库的发展,使关系数据模型成为具有统治地位的数据模型。20世纪80年代之后,几乎所有的数据库系统都是关系的,它的应用遍布各个领域。13.3数据库系统发展的特点随着数据库应用领域的扩展,数据对象的多样化,传统的关系数据模型开始暴露出许多弱点,如对复杂对象的表示能力较差,语义表达能力较弱,缺乏灵活丰富的建模能力,对文本、时间、空间、声音、图像和视频等数据类型的处理能力差等。为此,人们提出并发展了许多新的数据模型。这些尝试是沿着如下几个方向进行的。13.3数据库系统发展的特点1.对传统的关系模型(1NF)进行扩充,引入了少数构造器,使它能表达比较复杂的数据类型,增强其结构建模能力,这样的数据模型称为复杂数据模型。按照它们进行扩充的侧重点,复杂数据模型可分为两种。一种是偏重于结构的扩充。首先出现的这类模型是嵌套关系模型(NF2)。它能表达“表中表”,并且表中的一个域可以是一个函数(称为虚域)。另一种是侧重于语义的扩充,像U.C.Berkeley大学的POSTGRES系统。它支持关系之间的继承,也支持在关系上定义函数和运算符,但关系的结构仍然是一张平面表。表中表只能通过关系上定义的函数来模拟。13.3数据库系统发展的特点2.新提出和发展的数据模型相比关系模型来说增加了全新的数据构造器和数据处理原语,以表达复杂的结构和丰富的语义。这类模型中比较有代表性的是函数数据模型(FDM)、语义数据模型(SDM)、RM/T模型以及E-R模型等,常常统称它们为语义数据模型。它们的特点是引人了丰富的语义关联(如ISA、ISP),能更自然、恰当地表达客观世界中实体间的联