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

1.2 数据库的发展

数据库技术从诞生到现在已经历了半个世纪的时间,形成了坚实的理论基础和成熟的商业产品,在广泛的领域都有应用。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命,已成为企业、部门乃至个人日常工作、生产和生活的基础设施。

在数据库发展的历程中,众多研究者做出了贡献,其中三位代表性人物对数据库的发展起到了至关重要的作用,他们分别是获得1973年图灵奖的网状型数据库之父Charles W.Bachman,获得1981年图灵奖的关系型数据库之父Edgar F.Codd,以及在事务处理技术上做出开拓性工作的James Nicholas Gray。后者提出的加锁协议、基于日志的故障处理、两阶段提交协议等,都是当前数据库技术教材不可或缺的知识体系。

1.2.1 数据管理方式的演变

数据管理经历了人工管理、文件系统管理和数据库管理三个阶段。

1.人工管理阶段

在计算机技术的萌芽时期,数据管理任务主要依赖于人工操作。工作人员需要进行大量的数据分类、比较,并通过操作那些能够处理数百万张穿孔卡片的机器来进行数据处理。这些穿孔卡片上的数据经过机器处理后,其结果会被打印在纸张上,或者转换成新的穿孔卡片以供进一步使用。数据管理的核心任务便是对这些物理形态的穿孔卡片进行妥善的存储和有效处理。

2.文件系统管理阶段

磁带驱动器和磁盘驱动器诞生后,文件系统被用于数据管理工作。磁带只能顺序存取数据,而磁盘可以随机地存取数据,这能够优化数据读写的速度。在此阶段,数据是存放在操作系统所管理的文件中的,为了能够读取、改写或新增这些文件里存放的数据,需要针对这些数据文件的格式,编写专用的管理程序。

在文件处理系统中存储数据有很多弊端。例如,在文本文件中存储学生信息表,不同的文件创建者可能会使用不同的字段间隔符,从而造成数据管理程序不能通用;相同数据有可能存储在多个文件中,带来数据冗余,并且对冗余数据进行修改时,必须保证不能有遗漏,以维护数据的完整性;当出现并发访问的要求时,无法实现对某一个数据进行修改时的规则限定;当访问一个数据文件时,整个数据表的数据都将暴露给文件操作者,无法限定操作者只能读取其中某几个字段,有可能带来隐私数据(如用户表的密码字段等)的泄露。

这些问题仅靠文件系统自身是无法解决的,因此产生了对数据库管理系统的应用需求。

3.数据库管理阶段

由于人们对数据共享的要求越来越高,文件系统已经不能满足需要,统一管理和共享数据的数据库管理系统(DBMS)应运而生。

数据模型是DBMS的核心和基础,按照数据模型的特点将传统DBMS分成网状型数据库、层次型数据库和关系型数据库三类。

1961年,通用电气公司开发出世界上第一个网状型DBMS也是第一个数据库管理系统,奠定了网状型数据库的基础。网状型数据库模型对于层次和非层次结构的事物都能比较自然地模拟,因此在数据库发展史上,网状型数据库占有重要地位。1968年,IBM公司开发出层次型DBMS IMS。

网状型数据库和层次型数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而关系型数据库较好地解决了这些问题。关系型数据库通过范式理论和衡量关系系统的12条标准,用数学理论奠定了基础。关系模型因严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有甲骨文公司的Oracle、IBM公司的DB2、微软公司的SQL Server等。

关系型数据库系统虽然成熟,但对复杂类型的数据无能为力,于是产业界提出了面向对象的关系型数据库理论。实践表明,面向对象的关系型数据库系统理论上的完美性并没有带来市场的热烈反应。其不成功的主要原因在于,这种数据库产品的主要设计思想是用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户来说,他们无法承受新旧数据间的转换带来的巨大工作量及巨额开支。另外,面向对象的关系型数据库系统使查询语言变得极其复杂,增加了技术转换的难度和成本。

传统的关系型数据库在处理超大规模和高并发的数据时,出现了很多难以克服的问题,非关系型数据库(NoSQL,Not Only SQL)应运而生。NoSQL数据库种类繁多,共同特点是不再保证关系数据的ACID(原子性、一致性、隔离性、持久性)特性。数据之间无关系,因此在架构的层面上带来了可扩展的能力,在大数据量下具有非常高的读写性能,为大规模数据集合多重数据种类带来的挑战提供了解决之道。

NoSQL数据库常用于数据模型比较简单、需要灵活性更强的IT系统、对数据库性能要求较高、不需要高度的数据一致性、对于给定key比较容易映射复杂值的环境。Membase、MongoDB都是典型的NoSQL数据库,常见的NoSQL数据库分为以下几类。

●键值(Key-Value)存储数据库。这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。该模型对于IT系统来说优势在于简单、易部署,劣势是当只对部分值进行查询或更新时效率低下。

●列存储数据库。这类数据库通常用来应对分布式存储的海量数据。键仍然存在,但它们的特点是指向多个列。这些列是由列家族来安排的,如HBase等。

●文档型数据库。与键值存储数据库类似,数据模型是版本化的文档,将半结构化的文档以特定的格式存储,如JSON等。

●图数据库。使用灵活的图形模型,能够扩展到多个服务器上,如Neo4J等。

●时序数据库。主要用于处理带时间标签的数据,主要以各类型实时监测、检查与分析设备所采集、产生的工业数据为主,特点是数据产生频率快、严重依赖于采集时间、测点多且信息量大,如Informix TimeSeries等。

此外,还有搜索型数据库、时空数据库、能同时提供OLTP和OLAP的混合关系型数据库(HTAP数据库)、向量数据库等。

1.2.2 数据库产业发展简史

数据库产业诞生的早期,市场上的数据库产品主要以层次型数据库和网状型数据库为主,如由Charles W.Bachman创建的Cullinet公司开发的网状型数据库产品IDMS、IBM公司开发的层次型数据库产品IMS等。

IBM公司的Edgar F.Codd在1970年发表了论文A Relational Model of Data for Large Shared Data Banks,这是数据库产业发展史上的一个里程碑事件,拉开了关系型数据库发展的序幕。鉴于目前市场上的数据库主流产品仍然是关系型数据库及其衍生的非关系型数据库,因此回顾数据库产业的发展历史,可以从20世纪70年代开始。

1973年,IBM公司启动关系型数据库的可行性研究,但考虑到这有可能挤占IMS市场,因而并没有及时推出关系型数据库产品。市场空缺带来了商业机会,1977年6月,Larry Ellison、Bob Miner和Ed Oates在硅谷共同创办Oracle公司的前身,开发可商用的通用关系型数据库产品Oracle数据库。中国的甲骨文英文译名是Oracle,因此该公司进入中国后,将“甲骨文”作为公司和产品的中文名并进行注册。产品推出后,包括美国军方在内的多个重要客户恰好急需关系型数据库软件产品,Oracle恰逢其时的出现为其快速发展提供了绝佳的平台。公司成立刚满十年即成为全球第四大软件公司,并进入中国发展,2013年成为全球第二大软件公司。由于Oracle产品的稳定性和强大的数据管理能力,在其巅峰时期,中国乃至全世界大多数大型企业都在使用Oracle的数据库产品。

在Oracle数据库发展的同时,微软于1988年推出了SQL Server系列关系数据库产品、于1992年推出了Access关系数据库,Sybase公司推出了ASE产品系列,IBM公司研制了DB2关系数据库产品,以及现属甲骨文公司的MySQL关系数据库等也得到应用。这些数据库都有各自的特点,Oracle和SQL Server在企业级的应用中占比较大,而MySQL由于其体积小、速度快、成本低、开放源码等特点被广泛应用在中小型网站中。

在国外数据库公司进入中国的前20年,由于国内数据库市场正处于空白阶段,国外数据库产品在金融、政府、高校、工商业等各个领域攻城略地,占据了绝对的市场份额。但是作为数据库领域的领军企业,甲骨文公司却并不尊重中国市场。2006年前后,阿里巴巴集团下的淘宝在中国飞速发展,用户人数逼近亿级,阿里巴巴集团使用的Oracle数据库逐渐无法满足业务需求,集团于2008年决定自行研发数据库产品。几年后阿里云成熟,甲骨文公司在硬实力上惨遭碾压,不仅丢掉了自己在亚洲最大的客户,这个客户还成了竞争对手,包括12306火车票售票系统在内的数据库系统都采用了阿里云的服务。

1.2.3 国产化与产品替代

随着数字经济的发展,全球数据库产业持续火热,从21世纪开始,全球共有472家企业提供数据库产品服务。我国数据库产业从2013年开始呈现高速发展态势,平均每年新增约10家数据库企业。

历史原因导致我国在数据库技术的研究方面长期处于模仿和引进的地位。在早期的市场上,甲骨文、微软、IBM等公司的数据库产品占据了绝大部分的市场份额,垄断了国内的信息基础设施。它们制定了国内数据库的底层技术标准,并控制了整个数据库产业生态。

由于国家对信息技术应用创新(信创)产业的支持力度不断加大,国产数据库厂商经过多年的技术研发和经验积累,从引进技术、研究,再到自主创新,实力不断提升,产品性能越来越可靠,用户数量越来越多,国产阵营日益强盛,对国外数据库产品的可替代性逐渐增强。同时也诞生了很多优秀的国产化数据库产品,见表1-1。

表1-1 优秀国产数据库产品

这些数据库都在不同程度上满足了各自领域内的需求,其中一些已经被广泛使用,例如人大金仓数据库和达梦数据库等。

1.2.4 数据库产业生态

数据库不是独立存在的,它并非一个直接服务于大众的通用软件产品。从数据库使用方面来说,它伴随着应用系统、中间件、操作系统、硬件平台等上下游产品;从数据库销售方面来说,它涉及分销商、增值渠道商、独立软件开发商、系统集成商、数据库运维合作伙伴等一系列的商业链条。

因此,一款数据库产品是否经得起时间的检验,除了自身的硬实力之外,产业链条是否完备也至关重要。在通用关系型数据库领域,MySQL、Oracle等主流数据库目前仍然有大量应用,这与其几十年来建立起来的产业生态密切相关,其产品的上下游无论是开发人员还是运维人员都很丰富。相对来说,国产数据库产品还有很长一段路要走,技术文档不健全、缺乏大量用户长时间的打磨、出现问题怎么快速解决,对后来者来说都是无法回避的考验。

阿里巴巴集团抓住云计算的发展机遇,细分赛道,定义出一个局部占优的场景,建立起自己的产业生态,把竞争对手拉到其不擅长的场景中,不失为破解数据库领域“赢者通吃”现状的一条可行之策。 3e3L5X1eJnoY/kEJhkThU7CCf/Mrq5xfcT5lbuLDESrvh2yzVjhn1dZPKlOFZMGX

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