数据库系统:原理、设计与编程(MOOC版)
上QQ阅读APP看书,第一时间看更新

1.2 数据库技术的发展

数据库技术是一种利用计算机组织、存储和管理数据的软件技术。它涉及研究数据库的结构、存储、设计、管理、应用的基本理论和实现方法,并利用这些理论方法对数据库中的数据进行存取、计算、统计及分析等操作。

扫码预习

1.2.1 数据管理技术的演化

在20世纪60年代末,计算机技术快速发展并被广泛应用,大量用户提出对数据资源进行存储管理和数据存取处理的需求,由此产生了利用计算机进行数据管理的原始数据库技术。在当时,数据库技术主要研究如何存储、使用和管理数据。随着计算机技术的发展,数据库技术与计算机相关技术的发展相互渗透与相互促进,现已成为当今计算机软件领域发展最迅速、应用最广泛的技术。数据库技术不仅应用于数据资源存取管理,还应用到信息检索、数据仓库、数据挖掘、商业智能、大数据处理等领域。在利用计算机进行数据管理的技术发展历程中,数据管理经历了人工数据管理、文件系统管理、数据库管理3个阶段。

1.人工数据管理阶段

在20世纪50年代以前,计算机主要用于科学计算。计算机外部存储只有纸带、卡片、磁带等设备,没有直接存取设备。计算机软件只是一些操作控制程序,还没有操作系统及数据管理软件。计算机可处理的数据量小,数据无结构,数据依赖于特定的应用程序,缺乏独立性。在涉及数据处理的计算机程序中,程序员必须在代码中进行数据管理。因此,当时的数据管理存在很大局限性,难以满足应用数据管理的要求。

2.文件系统管理阶段

在20世纪50年代后期到60年代中期,新的计算机外部存储设备如磁鼓、磁盘等出现,它们可以用来长久存储程序与数据,并支持直接数据块存取。在这个时期,计算机软件也得到快速发展,出现了控制计算机软硬件运行的操作系统软件。在操作系统中,可使用数据文件方式来组织、存储数据,并采用文件系统工具管理各个独立的数据文件。文件系统可以按照数据文件的名称对其进行访问,既可对数据文件中的数据记录进行存取,也可对数据记录进行更新、插入和删除。文件系统实现了数据在记录内的结构化,即在数据文件的各个记录内,数据项组成是一致。但是从整体看数据文件,数据记录之间是无结构的,不能处理数据记录之间的关联性。

在这个阶段,用户可以使用高级语言程序对数据文件进行数据记录的存取,解决了人工数据管理的限制,可以满足应用的基本数据管理要求。但在文件管理数据方式中,存在如下不足:①编写应用程序管理数据的过程较烦琐。②数据文件对应用程序存在依赖,难以实现独立。③不支持多用户对数据文件并发访问。④不能实现数据文件的安全控制。⑤难以解决不同数据文件间的数据冗余。⑥在文件中,数据记录之间缺少联系,难以满足用户对数据的关联访问需求。

3.数据库管理阶段

在20世纪60年代末期,计算机软硬件技术得到较大发展:计算机处理能力得到较大提高,并且大容量磁盘设备开始出现;计算机软件也出现专门管理数据的系统软件——数据库管理系统。这些技术都为实现大规模计算机数据管理提供了支持。在这个阶段,用户可使用数据库管理系统来实现应用系统的数据管理。应用程序连接数据库后,用户可使用数据库操作语言对其表中数据进行操作。所有对数据库的操作都由数据库管理系统自动去完成,应用程序不需要考虑数据库文件的物理操作和系统控制。数据库管理与文件数据管理相比较,具有如下优点:①应用程序与数据相互独立,避免了应用程序对数据的依赖性。②应用程序访问数据库使用标准语言操作,编程访问简单。③数据组织结构化、共享性高、冗余小。④提供数据的安全访问机制,并保证数据的完整性、一致性、正确性。

因此,数据库技术成为当今计算机数据管理的基本技术。虽然数据库技术从20世纪60年代末期到现在经历了几十年发展,其技术也发生了许多变化,但数据库组织与管理数据的基本思想是一致的,这说明数据库技术管理数据的生命力是长久的。

1.2.2 数据库技术的发展阶段

数据模型是数据库技术的核心基础,数据模型的发展演变可以作为数据库技术发展阶段的主要标志。按照数据模型的发展演变过程,数据库技术从出现到如今半个多世纪中,主要经历了3代:第一代是以层次数据模型和网状数据模型为特征的数据库技术,第二代是以关系数据模型为特征的数据库技术,第三代是以面向对象数据模型为主要特征的数据库技术。目前数据库技术进入到第四代,数据库技术与计算机网络技术、人工智能技术、并行计算技术、多媒体技术、云计算技术、大数据技术等相互结合与相互促进,衍生出大量数据库新技术,其典型特征是采用非结构化的数据模型处理大数据。

1.第一代数据库技术

第一代数据库技术出现于20世纪60年代末人们研制的层次模型数据库系统和网状模型数据库系统。层次模型数据库系统的典型代表是1968年 IBM公司研制出的世界上第一个数据库管理系统IMS(Information Management System)。该数据库系统最早运行在IBM 360/370计算机上。经过多年技术改进后,该系统至今还在 IBM 部分大型主机中使用。网状模型数据库系统的典型代表是1964年通用电器公司研制的网状数据模型的数据库管理系统IDS(Integrated Data System)。IDS奠定了网状数据库技术基础,并在当时得到了广泛的发行和应用。

20世纪70年代初,美国数据库系统语言协会CODASYL(Conference On Data System Language)下属的数据库任务组DBTG(DataBase Task Group)对数据库技术方法进行了系统研究,提出了若干报告(被称为DBTG报告)。DBTG报告总结了数据库技术的许多概念、方法和技术。在DBTG思想和方法的指引下,数据库系统的实现技术不断成熟,人们推出了许多商品化的数据库系统,它们都是基于层次模型和网状模型的技术思想实现的。

2.第二代数据库技术

第二代数据库技术出现于20世纪70年代的关系数据库系统。1970年IBM公司San Jose研究实验室的研究员Edgar F. Codd发表《大型共享数据库的关系模型》论文,首次提出了关系数据模型。随后进一步的研究成果建立了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。Edgar F. Codd于1981年被授予ACM图灵奖,其在关系数据库研究方面的杰出贡献被人们所认可。

20世纪70年代是关系数据库理论研究和原型开发的时代,其中以IBM公司San Jose研究实验室开发的System R和Berkeley大学研制的Ingres为典型代表。大量的理论成果和实践经验终于使关系数据库从实验室走向了市场,因此,人们把20世纪70年代称为数据库时代。20世纪80年代几乎所有新开发的数据库系统产品均是关系数据库软件,其中涌现出了许多性能优良的商品化关系数据库管理系统,如DB2、Ingres、Oracle、Informix、Sybase等。这些商用数据库系统使数据库技术被日益广泛地应用到商业服务、企业管理、情报检索、辅助决策等方面,成为实现信息系统数据管理的基本技术。

3.第三代数据库技术

从20世纪80年代以来,数据库技术在商业上的巨大成功刺激了其他领域对数据库技术需求的迅速增长。这些新的领域为数据库应用开辟了新的天地,并在应用中提出了一些新的数据管理需求,推动了数据库技术的研究与发展。

1990年,高级DBMS功能委员会发表了《第三代数据库系统宣言》,提出了第三代数据库管理系统应具有的3个基本特征:支持数据管理、对象管理和知识管理;必须保持或继承第二代数据库系统的技术;必须对其他系统开放。

面向对象数据库技术成为第三代数据库技术发展的主要特征。传统的关系数据模型无法描述现实复杂的数据实体,而面向对象的数据模型由于吸收了已经成熟的面向对象程序设计方法学的核心概念和基本思想,因此符合人类认识世界的一般方法,更适合描述现实世界复杂的数据关系。面向对象数据库技术可以解决关系数据库技术存在的数据模型简单、数据类型有限、难以支持复杂数据处理问题。不过,面向对象数据库技术不具备统一的数据模式和形式化理论,缺少严格的数学理论基础,难以支持广泛使用的结构化查询语言SQL。在实际应用中,面向对象数据库软件产品并没有真正得到推广。相反,一些在关系数据库基础上扩展面向对象功能的对象-关系数据库产品(如PostgreSQL)则得到实际应用。

1.2.3 数据库领域的新技术

1.NoSQL数据库

传统的关系数据库采用二维表结构存储数据,具有数据结构简单、访问操作方便等特点,但它仅支持简单数据类型存取。在采用关系数据库实现信息系统的技术方案中,所有信息数据都需要进行结构化存储处理,才能在关系数据库中进行数据存取访问。而当今大量互联网应用数据以非结构形式存在,如网页信息、文档信息、报表信息、音视频信息、即时通信消息等。若海量的非结构化数据时刻都在进行结构化处理,势必带来系统对信息数据处理的开销和时效性不满足需求等问题。NoSQL 数据库技术是一类针对大量互联网应用的非结构化数据处理需求而产生的一种分布式非关系数据库技术。与关系数据库技术相比,突破了关系数据库结构中必须等长存储各记录行数据的限制,它支持重复字段、子字段及变长字段,并可实现对变长数据和重复数据类型进行处理,这在处理各类文档、报表、图像、音视频等非结构化数据中有着传统关系数据库所无法比拟的优势。因此,NoSQL数据库技术成为支持大数据应用的数据管理主流技术。

2.NewSQL数据库

虽然 NoSQL 数据库技术可以有效解决非结构化数据存储与大数据操作,具有良好的扩展性和灵活性,但它不支持广泛使用的结构化数据访问 SQL,同时也不支持数据库事务的ACID(原子性、一致性、隔离性和持久性)特性操作。另外,不同的NoSQL数据库都有各自的查询语言和数据模型,这使得开发者很难规范应用程序接口。因此,NoSQL数据库技术仅解决了互联网应用的非结构化数据处理需求,但对企业应用的结构化数据管理并不适合。NewSQL 数据库技术是一种在 NoSQL 数据库技术基础上同时支持关系数据库访问的技术,这类数据库具有 NoSQL 对海量数据的分布式存储管理能力,还保持了兼容传统关系数据库的ACID和SQL等特性。NewSQL数据库技术不但支持非结构化数据管理的大数据应用,也支持结构化数据管理的关系数据库应用,它将成为未来主流的数据库技术。

3.领域数据库

计算机领域中各种新兴技术的发展对数据库技术产生了重大影响。数据库技术与计算机网络技术、并行计算机技术、人工智能技术、多媒体技术、地理空间技术等相互渗透,相互结合,使数据库新技术内容层出不穷,如实时数据库、分布式数据库、并行数据库、智能数据库、多媒体数据库、空间数据库等。由此,数据库技术的许多概念、技术方法,甚至某些原理都有了重大的发展和变化,形成了数据库领域众多的研究分支和方向。

此外,数据库应用领域也先后出现工程数据库、统计数据库、科学数据库、空间数据库、地理信息数据库等领域数据库。这些领域数据库在技术实现原理上与通用数据库没有多大的区别,但它们与特定应用领域相结合,加强了数据库系统对有关应用领域的支撑能力,尤其表现在数据模型、操作语言、数据访问方面对应用领域的紧密结合。随着数据库技术的发展和数据库技术在工程领域中的广泛应用,更多的领域将出现领域数据库技术。

4.数据仓库与数据挖掘

数据库技术并不仅仅局限在操作型数据库领域。在数据库技术领域中,对大量应用的历史数据进行有效存储与联机分析,已成为机构信息服务的重要需求。数据仓库(Data Warehouse)是在数据库已经存储了长时间的数据情况下,需要对积累的大量历史数据进行有效的存储组织,以便实现决策分析所需要的联机分析与数据挖掘处理。数据仓库技术涉及研究与解决大量历史数据情况下如何通过有效存储与高效访问来支持数据联机分析与数据挖掘问题。数据仓库的数据管理具有面向主题、集成性、稳定性和时变性等特征,其数据来自于若干分散的操作型数据库。通过对这些数据源进行数据抽取与数据清理处理,经过系统加工、汇总和整理得到的主题数据将被存放到特定模式的数据库中以备联机分析所使用。在数据仓库中,主要工作是对历史数据进行大量的查询操作或联机统计分析处理,以及定期的数据加载、刷新,很少进行数据更新和删除操作。

数据挖掘(Data Mining)是一种建立在数据仓库基础上对大量数据进行模式或规律挖掘,从中发现有价值信息的技术。它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化等技术,对大量数据进行自动化分析,做出归纳性的推理,从中挖掘出潜在的模式,帮助决策者进行策略分析,防范或减少风险,做出正确的决策。数据挖掘一般包含数据预处理、规律寻找和结果可视化表示3个步骤。数据预处理是从相关的数据源中选取所需的数据并整合成用于数据挖掘的数据集;规律寻找是用某种方法将数据集所含的规律找出来;结果可视化表示是尽可能以用户可理解的可视化方式将规律表示出来。

5.商业智能

商业智能(Business Intelligence)是一种利用现代数据仓库技术、联机分析处理技术、数据挖掘等技术对商业信息系统中积累的大量数据进行数据分析以实现商业价值的技术。用户利用商业智能软件工具可以将来自商业信息系统的实时业务数据和历史数据进行数据分析和数据挖掘处理,获取有价值的分析结论和信息,辅助决策者做出正确且明智的决定。商业智能主要包括对商业信息的搜集、管理和分析过程,目的是使商业机构的各级决策者获得商业运营信息或规律洞察力,促使他们做出对机构更有利的决策。商业智能的技术实现涉及软件、硬件、咨询服务及应用,其基本体系结构包括数据仓库、联机分析处理和数据挖掘3个部分。商业智能是将来自机构不同业务系统的数据进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),合并到一个企业级数据仓库里,从而得到机构数据的一个全局视图。在此基础上利用合适的查询和分析工具、数据挖掘工具对其进行分析和处理,获得有价值的商业信息与知识,最后将商业信息与知识呈现给决策者,为决策者的决策过程提供辅助支持。

6.大数据分析处理技术

大数据分析处理技术是继数据库、数据仓库、数据挖掘、商业智能等数据处理技术之后的又一个热点技术。大数据分析处理技术是一种解决传统数据分析处理技术难以在规定时间完成大规模复杂数据分析处理的技术。传统的数据挖掘、商业智能技术虽然也能针对大规模数据集进行分析处理,但它们处理的数据类型有限,也不能快速处理海量的非结构化数据。在当前移动互联网、物联网、云计算、人工智能快速发展时代,每时每刻都在产生大量非结构化数据,如传感数据、即时通信数据、交易数据、多媒体数据等不同类型数据。如何快速地从中分析出有价值的信息,成为大数据分析处理需要解决的主要问题。按照业界普遍认同的定义,大数据(Big Data)是指数据规模及其复杂性难以使用传统数据管理软件以合理成本及可以接受的时限对其进行数据分析的数据集。大数据具有数据体量大、数据类型繁多、数据处理速度要求快、价值密度低等特点。因此,大数据分析处理技术需要整合云存储、云计算、分布式数据库、数据仓库、数据挖掘、机器学习等技术,才能实现有价值信息的数据分析处理。大数据分析处理核心价值在于对海量数据进行分布式存储、计算与分析处理,从而获得有价值的信息。相比现有数据分析处理技术而言,大数据分析处理技术具有快速、廉价、性能强等综合优势。

课堂讨论——本节重点与难点知识问题

1.为什么关系数据库不适合大数据应用处理?

2.结构化数据与非结构化数据有何区别?

3.NoSQL数据库与NewSQL数据库有何区别?

4.通用数据库与领域数据库有何区别?

5.数据库与数据仓库有何区别?

6.大数据分析与数据挖掘有何区别?