数据库技术是一种利用计算机组织、存储和管理数据的软件技术。它涉及数据库结构、数据模型、数据操作语言、数据库设计、数据库系统管理、数据库编程等方面的基本理论与技术方法。初学者在学习具体数据库技术前,需要了解数据库技术如何产生、如何发展,当前技术现状,未来技术发展趋势等知识。
从20世纪60年代开始,计算机技术快速发展并被广泛应用,大量用户提出对数据资源进行存储管理和数据存取处理的需求,利用计算机进行数据管理的早期数据库技术应运而生。当时,数据库技术主要研究如何利用软硬件系统存储、使用和管理数据。随着计算机技术的发展,数据库技术与计算机相关技术的发展相互渗透与相互促进,现已成为当今计算机软件领域发展最迅速、应用最广泛的技术之一。数据库技术不仅应用于数据管理,还应用于信息检索、数据仓库、数据挖掘、商业智能、大数据处理等领域。在利用计算机进行数据管理技术的发展历程中,数据管理经历了人工数据管理、文件系统管理、数据库管理三个阶段。
在20世纪50年代以前,计算机主要用于科学计算。计算机外部存储只有纸带、卡片、磁鼓等设备,还没有方便存取的数据存储设备。计算机软件只是一些操作控制程序,还没有操作系统及数据管理软件。计算机可处理的数据量小,数据无结构,应用程序依赖于特定的数据变量实现编程,缺乏独立性。在涉及数据处理的计算机程序中,程序员必须在代码中进行数据管理。因此,当时的数据管理存在很大局限性,难以满足应用数据管理的要求。
从20世纪50年代后期到20世纪60年代中期,新的计算机外部存储设备(如磁带、磁盘)先后出现,它们可以用来长久存储程序与数据,并支持数据顺序存取、数据随机存取。在这个时期,计算机软件也得到快速发展,出现了控制计算机软硬件运行的操作系统软件。在操作系统中,可使用数据文件方式来组织、存储数据,并采用文件系统工具对各个数据文件进行管理。文件系统可以通过指针访问数据文件记录,既可对数据文件中的数据记录进行检索,也可对数据记录进行插入、更新和删除。文件系统实现了数据在记录内的结构化组织,即在数据文件各个记录中,其数据项组成是一致的。但是从整体看数据文件,数据记录之间是无结构的,不能处理数据记录之间的关联性。
在这个阶段,用户可以使用高级语言程序对数据文件进行数据记录的存取,打破了人工数据管理的限制,可以满足应用的基本数据管理要求。但在数据文件管理中,存在如下不足:①编写应用程序管理数据的过程较烦琐。②应用程序对数据文件存在依赖,难以实现独立修改。③不支持多用户对数据文件并发访问。④不能实现数据文件的安全控制。⑤难以解决不同数据文件间的数据冗余。⑥在文件中,数据记录之间缺少联系,难以满足用户对数据的关联访问需求。
在20世纪60年代末期,计算机软硬件技术得到较大发展:计算机处理能力有了较大提升,并且大容量磁盘设备开始出现;计算机软件也出现了专门管理数据的系统软件——数据库管理系统。这些都为实现大规模计算机数据管理提供了支持。在这个阶段,用户可使用数据库管理系统来实现应用系统的数据管理。应用程序连接数据库后,可使用操作语言语句对数据库表中的数据进行操作。所有对数据库的操作都由数据库管理系统自动完成,应用程序不需要考虑数据库文件的物理操作和系统控制。数据库管理与文件数据管理相比较,具有如下优点:①应用程序与数据相互独立,解决了应用程序对数据文件的依赖问题。②应用程序访问数据库时使用标准的数据操作语言,编程访问简单。③数据组织结构化,共享性高,冗余小。④提供数据的安全访问机制,并保证数据的完整性、一致性、正确性。
因此,数据库技术成为当今计算机数据管理的基本技术。虽然数据库技术从20世纪60年代末期到现在经历了几十年发展,其技术也发生了许多变化,但数据库组织与管理数据的基本思想是一致的,这说明数据库技术管理数据的生命力是长久的。
数据模型是数据库技术的核心基础,数据模型的发展演变可以作为数据库技术发展阶段的主要标志。按照数据模型的发展演变过程,数据库技术从出现到如今已有半个多世纪,其发展阶段主要经历了四代:第一代是以层次数据模型和网状数据模型为特征的数据库技术;第二代是以关系数据模型为特征的数据库技术;第三代是以面向对象数据模型、对象-关系数据模型为主要特征的数据库技术;在第四代数据库技术演进中,数据库技术与计算机网络技术、人工智能技术、并行计算技术、多媒体技术、云计算技术、大数据技术等相互结合与相互促进,衍生出大量新数据模型,其典型特征是采用非结构化的数据模型处理大数据,采用多模数据库技术同时处理结构化数据与非结构化数据。
第一代数据库技术出现于20世纪60年代末,计算机专家先后研制出网状数据模型、层次数据模型用于数据库系统。1961年,通用电气公司(GE)开发出世界上第一个网状数据库管理系统——集成数据系统(Integrated Data System,IDS)。IDS奠定了网状数据库技术基础,并开启了数据库管理数据时代。随后,1968年IBM公司研发出的层次数据库管理系统——信息管理系统(Information Management System,IMS)。IMS最早运行在IBM 360/370计算机上进行数据管理。经过多年技术改进后,该系统至今还在IBM部分大型主机中使用。
20世纪70年代初,美国数据库系统语言会议(Conference On Data System Language,CODASYL)下属的数据库任务组DBTG(Database Task Group)对数据库技术方法进行了系统研究,提出了若干报告(被称为DBTG报告)。DBTG报告总结了数据库技术的许多概念、方法和技术。在DBTG思想和方法的指引下,数据库系统的实现技术不断成熟。一些大型计算机公司推出了商品化的数据库管理系统,它们都是基于网状数据模型和层次数据模型的技术思想实现的。
第二代数据库技术出现在20世纪70年代的关系数据库管理系统中。1970年IBM公司San Jose研究实验室的研究员埃德加·F.科德(Edgar F. Codd)发表《大型共享数据库的关系模型》论文,首次提出了关系数据模型。之后进一步的研究成果建立了关系数据库方法和关系数据库理论,为关系数据库技术发展奠定了理论基础。埃德加·F.科德于1981年被授予ACM图灵奖,他在关系数据库研究方面的杰出贡献被人们所认可。
20世纪70年代是关系数据库理论研究和原型系统开发的时代,其中以IBM公司San Jose研究实验室开发的System R和伯克利(Berkeley)大学研制的Ingres为典型代表。大量的理论成果和实践经验终于使关系数据库从实验室走向了市场,因此,人们把20世纪70年代称为数据库时代。20世纪80年代几乎所有新开发的数据库系统产品均是关系数据库软件,其中涌现出了许多性能优良的商业数据库管理系统,如DB2、Ingres、Oracle、Informix、Sybase等。这些商业数据库管理系统使数据库技术被日益广泛地应用到办公管理、企业管理、情报检索、辅助决策等方面,成为实现信息系统数据管理的基本技术。
从20世纪80年代以来,数据库技术在商业上的巨大成功刺激了其他领域对数据库技术需求的迅速增长。这些新的领域为数据库应用开辟了新的天地,并在应用中提出了一些新的数据管理需求,推动了数据库技术的研究与发展。
1990年,高级DBMS功能委员会发表了《第三代数据库系统宣言》,提出了第三代数据库管理系统应具有的三个基本特征:支持数据管理、对象管理和知识管理;必须保持或继承第二代数据库系统的技术;必须对其他系统开放。
面向对象数据库技术成为第三代数据库技术发展的主要特征。传统的关系数据模型无法描述现实中复杂的数据实体,面向对象的数据模型则应用了成熟的面向对象基本思想,更适合描述现实世界中复杂的数据关系。面向对象数据库技术可以解决关系数据库技术存在的数据模型简单、数据类型有限、难以支持复杂数据处理问题。不过,面向对象数据库技术不具备统一的数据模式和形式化理论,缺少严格的数学理论基础,这使它难以支持广泛使用的结构化查询语言(SQL)。在实际应用中,面向对象数据库软件产品并没有真正得到推广。相反到了后期,一些在关系数据库基础上扩展面向对象功能的对象-关系数据库管理系统软件(如PostgreSQL)却得到了广泛的实际应用。
自进入20世纪90年代以来,数据库技术不再局限于事务处理应用,很多机构与企业希望通过数据分析来辅助业务发展。为此,不少数据库软件厂商推出了数据仓库技术、联机分析工具、数据挖掘工具产品,以此来支持基于历史数据的分析决策应用。为了满足大量数据访问的操作型数据库与分析型数据库处理性能要求,这个时期先后出现了分布式数据库技术和并行数据库技术。特别是在进入21世纪后,互联网应用快速发展,产生了大量非结构化、半结构化数据的大数据应用需求。由于传统关系数据库只能管理结构化数据,虽然将非结构化数据、半结构化数据转换为结构化数据后也可以在关系数据库中进行数据处理,但其处理时效性难以满足实际应用需求,由此出现了基于XML的数据库技术,可以实现半结构化数据管理,也出现了基于NoSQL的数据库技术,可以实现非结构化数据管理。各种NoSQL数据库均采用开源方式实现特定数据模型的分布式数据库处理,可以满足高性能、高可用性的海量数据管理要求,有力支撑了互联网与大数据应用的数据库处理需求。不过NoSQL数据库虽然解决了高并发读写、非结构化数据存储等问题,但其设计思路是以牺牲事务处理、数据强一致性以及放弃SQL兼容性换来的。此外,NoSQL数据库出现了200多种数据模型实现技术,它们的访问模式和操作语言并不统一,因此,每种NoSQL数据库只局限于解决特定模式的非结构化数据管理问题。目前,不少IT公司又开始推出NewSQL数据库技术产品,力图在NoSQL数据库基础上保留SQL操作访问和事务处理能力。此外,在本阶段不少云数据库服务技术也得到了广泛应用。总之,第四代数据库技术使用户可以更好地处理大规模、复杂数据,更快地存取海量数据,支持大数据分析与挖掘,也更高效地支持互联网大数据应用。
数据库技术不局限于关系数据库技术,还包括大量其他类型数据库技术以及数据库处理相关技术,这里将它们统称为数据库领域技术。
传统的关系数据库采用二维表结构存储数据,具有数据结构简单、访问操作方便等特点,但它仅支持简单数据类型存取。在采用关系数据库实现信息系统的技术方案中,所有信息数据都需要进行结构化数据存储处理,才能在关系数据库中进行数据存取访问。当今大量互联网应用数据是以非结构化数据形式存在的,如网页信息、文档信息、报表信息、音视频信息、即时通信消息等。一旦海量的非结构化数据时刻都需进行结构化处理,势必会带来信息数据处理的性能开销,其时效性将无法满足应用要求。NoSQL数据库技术是一类针对大量互联网应用的非结构化数据处理需求而产生的一种分布式非关系数据库技术。与关系数据库技术相比,NoSQL数据库技术突破了关系数据库结构中必须等长存储各记录行数据的限制,它支持重复数据记录及变长数据记录存储,并可实现各类复杂数据类型处理,这在处理文档、报表、图像、音视频等各类非结构化数据时有着传统关系数据库所无法比拟的优势。因此,NoSQL数据库技术已成为支持大数据应用的数据管理主流技术。
虽然NoSQL数据库技术可以有效解决非结构化数据存储与大数据存取操作问题,具有良好的扩展性和灵活性,但它不支持广泛使用的结构化数据操作语言——SQL,同时也不支持数据库事务的ACID(原子性、一致性、隔离性和持久性)特性操作。另外,不同的NoSQL数据库都有各自的查询语言和数据模型,这使得开发者很难处理应用程序接口。因此,NoSQL数据库技术仅满足了互联网应用的非结构化数据处理需求,而不适合企业应用的结构化数据管理。NewSQL数据库技术是一种以NoSQL数据库技术为基础,同时支持关系数据库访问的技术,这类数据库既具有NoSQL对海量数据的分布式存储管理能力,也保持了兼容传统关系数据库的ACID和SQL等特性。NewSQL数据库技术不但支持非结构化数据管理与大数据应用,也支持结构化数据管理的关系数据库应用,它将成为未来主流的数据库技术。
在计算机领域中,各种新兴技术的发展对数据库技术产生了重大影响。数据库技术与计算机网络技术、并行计算机技术、人工智能技术、多媒体技术、地理空间技术等相互渗透,相互结合,使各类领域数据库层出不穷,如实时数据库、分布式数据库、并行数据库、人工智能数据库、多媒体数据库、空间数据库等。由此,数据库技术的许多概念、技术和方法,甚至一些数据库的技术原理都有了重大发展与变化,这也形成了数据库应用领域众多的研究分支和方向。
此外,数据库应用领域也先后出现了工程数据库、统计数据库、科学数据库、空间数据库、地理信息数据库等领域数据库。这些领域数据库在通用数据库基础上,与特定应用领域技术相结合,加强了数据库系统对有关应用领域的支撑能力,尤其表现在数据模型、操作语言、数据访问方面与应用领域的紧密结合。随着数据库技术的发展和数据库技术在工程领域中的广泛应用,将涌现出更多的应用领域数据库技术。
数据库技术并不局限在操作型数据库领域。在数据库技术领域中,对大量应用的历史数据进行有效存储与联机分析,已成为机构与企业信息服务的重要需求。数据仓库(Data Warehouse)是在数据库已经存储了长时间数据的情况下,对积累的大量历史数据进行有效的存储组织,以便实现决策分析所需要的联机分析与数据挖掘处理。数据仓库技术涉及研究与解决大量历史数据情况下如何通过有效存储与高效访问来支持数据联机分析与数据挖掘处理的问题。数据仓库的数据管理具有面向主题、集成性、稳定性和时变性等特征,其数据来自于若干分散的操作型数据库。对这些数据源进行数据抽取与数据清理处理,再经过系统加工、汇总和整理得到主题数据,这些主题数据将被存放到特定模式的数据库中以支持联机分析。在数据仓库中,主要的工作任务是对历史数据进行大量的查询操作或联机统计分析处理,以及定期进行数据加载、刷新,但很少进行数据更新和删除操作。
数据挖掘(Data Mining)是一种建立在数据仓库或其他数据集上对大量数据进行模式或规律挖掘,从中发现有价值信息的技术。它主要基于人工智能、机器学习、模式识别、统计学、数据库、数据可视化等技术,对大量数据进行计算分析,做出归纳性的推理,从中挖掘出潜在的数据模式,帮助决策者进行策略分析,防范或减少风险,做出正确的决策。数据挖掘一般包含数据预处理、规律寻找和结果可视化表示三个步骤。数据预处理是从相关的数据源中选取所需的数据,并对原始数据进行清洗、转换、整合,处理为适合数据挖掘的数据集;规律寻找是用数据挖掘方法将数据集所含的数据规律找出来;结果可视化表示是将挖掘出来的数据规律或数据模式以用户可理解的数据可视化方式呈现出来。
商业智能(Business Intelligence)是一种利用现代数据仓库、联机分析处理、数据挖掘等技术对商业信息系统中积累的大量数据进行数据分析以实现商业价值的技术。用户利用商业智能软件工具,可以对来自商业信息系统的实时业务数据和历史数据进行数据分析与数据挖掘处理,获取有价值的商业分析结论和信息,辅助决策者做出正确且明智的决定。商业智能主要包括对商业信息的搜集、管理和分析等处理,其目的是使商业机构的各级决策者获得商业运营信息或规律洞察力,促使他们做出对机构更有利的决策。商业智能的技术实现涉及软件、硬件、咨询服务及应用,其系统包括数据仓库、联机分析处理和数据挖掘三个部分。商业智能清理来自机构不同业务系统的数据,以保证数据的正确性,然后经过抽取(Extract)、转换(Transformation)和装载(Load),将数据合并到一个企业级数据仓库里,从而得到机构数据的一个全局视图。在此基础上,商业智能利用合适的查询和分析工具、数据挖掘工具对数据进行分析和处理,获得有价值的商业信息与知识,最后将商业信息与知识呈现给决策者,为决策者的决策过程提供辅助支持。
大数据分析处理技术是继数据库、数据仓库、数据挖掘、商业智能等数据处理技术之后的又一个热点技术。大数据分析处理技术旨在解决传统数据分析处理技术难以在规定时间完成大规模复杂数据分析处理的问题。传统的数据挖掘、商业智能技术虽然也能针对大规模数据集进行分析处理,但它们处理的数据类型有限,也不能快速处理海量的非结构化数据。在当前移动互联网、物联网、云计算、人工智能快速发展的时代,每时每刻都在产生大量非结构化数据,如传感数据、即时通信数据、交易数据、多媒体数据等不同类型数据。如何快速地从海量数据中分析出有价值的信息,成为大数据分析处理需要解决的主要问题。按照业界普遍认同的定义,大数据(Big Data)是指由于应用系统的数据规模及其复杂性,难以使用传统数据管理软件以合理的成本、可以接受的时限做数据分析的数据集。大数据具有数据体量大、数据类型繁多、数据处理速度要求快、价值密度低等特点。因此,大数据分析处理技术需要对云存储、云计算、分布式数据库、数据仓库、数据挖掘、机器学习等技术进行整合,才能实现对有价值信息的数据分析处理。大数据分析处理的核心价值在于对海量数据进行分布式存储、计算与分析处理,从而获得有价值的信息。相比现有数据分析处理技术而言,大数据分析处理技术具有快速、廉价、高效等综合优势。
课堂讨论:本节重点与难点知识问题
1)为什么关系数据库不适合大数据应用处理?
2)结构化数据与非结构化数据有何区别?
3)NoSQL数据库与NewSQL数据库有何区别?
4)通用数据库与领域数据库有何区别?
5)数据库与数据仓库有何区别?
6)大数据分析与数据挖掘有何区别?