3.1 软件数据库类型

通俗地说,数据库就是一个存放计算机数据的“仓库”。这个“仓库”是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,我们可以通过数据库提供的多种方法来管理其中的数据。

按照早期的数据库理论,数据库模型分为层次式数据库、网状数据库和关系型数据库。如今,最常用的数据库模型主要有两种,即关系型数据库和非关系型数据库。

3.1.1 MySQL数据库管理系统

MySQL是关系型数据库管理系统,由瑞典MySQL AB公司开发而成,现在属于Oracle公司。MySQL AB公司于2008年被Sun公司收购,此后Sun公司又被Oracle公司收购。目前MySQL被广泛地应用在互联网的小、中、大型网站中,这是由于其体积小、速度快、总体拥有成本低,尤其是具有开放源码这一特点的缘故。关系型数据库将数据保存在不同的表中,而不是将所有数据全部堆放在一起,这样就提升了速度并提高了灵活性。

MySQL数据库主要应用于互联网领域,如小/中/大型网站、游戏公司及电商平台等。

1.优点

MySQL数据库的优点有以下几点。

(1)MySQL性能卓越,服务稳定,很少出现异常宕机的情况。

(2)MySQL开放源代码,不需要支付额外的费用,并且无版权制约,自主性强,使用成本较低。

(3)MySQL支持大型的数据库,可以处理拥有上千万条记录的大型数据库。

(4)MySQL支持使用标准的SQL数据语言形式。

(5)MySQL支持多种操作系统,提供了多种API接口,并且对PHP有很好的支持。PHP是一种流行的Web开发语言。除了支持PHP,还支持其他多种语言,这些编程语言包括C、C++、Python、Java、Perl等。

(6)MySQL软件体积小,安装、使用简单,易于维护,并且安装及维护成本较低。

(7)MySQL采用了GPL协议,并支持自行定制,用户可以通过修改源码来开发自己的MySQL系统。

(8)MySQL历史悠久,社区及用户非常活跃,遇到相关问题可以及时寻求帮助。

2.缺点

MySQL数据库的缺点有以下几点。

(1)不支持热备份。

(2)没有一种存储过程语言。对于企业级数据库的程序员来说,这是很大的限制。

(3)MySQL的价格随平台和安装方式的变化而变化。Linux操作系统下的MySQL如果由用户自己或系统管理员安装则是免费的;如果由第三方安装则必须付许可费。同样地,UNIX或Linux操作系统如果自行安装则免费;如果由第三方安装则也会收费。

3.1.2 SQL Server数据库管理系统

Microsoft SQL Server是由微软公司开发的关系型数据库系统。SQL Server功能十分全面、效率较高,可以作为中型企业或单位的数据库平台。SQL Server可以与Windows操作系统紧密集成,无论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。对于在Windows平台上开发的各种企业级信息管理系统来说,无论是C/S(客户机/服务器)架构还是B/S(浏览器/服务器)架构,SQL Server都是一个很好的选择。SQL Server的缺点是只能在Windows操作系统下运行。

SQL Server数据库主要应用于部分电商企业及使用Windows服务器平台的企业。

1.优点

SQL Server数据库的优点有以下几点。

(1)具有易用性、适合分布式组织的可伸缩性、用于决策支持的数据库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。

(2)为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转换为商业智能和充分利用Web带来的机会非常重要。

(3)作为一个完备的数据库和数据分析包,SQL Server为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。

(4)作为重要的基准测试可伸缩性和速度的纪录保持者,SQL Server是一款完全具备Web支持能力的数据库产品,提供了对可扩展标记语言(XML)的核心支持及在互联网上和防火墙外进行查询的能力。

2.缺点

SQL Server数据库的缺点有以下几点。

(1)开放性:SQL Server只能在Windows操作系统上运行,没有丝毫开放性。

(2)伸缩性与并行性:SQL Server并行实施和共存模型逐渐成熟,但处理日益增多用户数和数据卷伸缩性有限。

(3)安全性:没有获得任何安全证书。

(4)性能:多用户状态时,SQL Server性能不佳。

(5)客户端支持及应用模式:SQL Server基于C/S结构,只支持Windows客户用ADO、DAO、OLEDB、ODBC连接。

(6)使用风险:SQL Server完全重写的代码经历了长期测试,不断延迟,许多功能需要时间来证明,并不十分兼容早期产品。

3.1.3 Oracle数据库管理系统

Oracle数据库管理系统是由知名的Oracle(甲骨文)公司开发的数据库产品,业内常简称为Oracle。Oracle也属于关系型数据库系统,它采用标准的结构化查询语言,并支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX、Windows等多种平台。Oracle公司的产品非常丰富,包括Oracle服务器、Oracle开发工具和Oracle应用软件等。其中最著名的就是Oracle数据库。

1.优点

Oracle数据库的优点有以下几点。

(1)开放性:Oracle能在所有的主流平台(包括Windows操作系统)上运行,完全支持所有工业标准,采用完全开放策略使客户选择适合的解决方案。

(2)可伸缩性与并行性:Oracle并行服务器通过使组节点共享同组工作来扩展Windows NT的能力,以提供高可用性和高伸缩性等的解决方案;Windows NT操作系统能满足用户迁移数据库的要求,UNIX Oracle并行服务器对各种UNIX平台集群机制都有着相当高的集成度。

(3)安全性:获得最高认证级别的ISO标准认证。

(4)性能:Oracle性能保持开放平台下TPC-D和TPC-C的世界纪录。

(5)客户端支持及应用模式:Oracle经多层次网络计算,支持多种工业标准,可用ODBC、JDBC、OCI等网络客户连接。

(6)使用风险:Oracle在长时间开发下因完全向下兼容而得到广泛应用,并且风险低。

2.缺点

Oracle数据库的缺点有以下几点。

(1)对硬件的要求较高。

(2)价格比较昂贵。

(3)管理维护比较麻烦。

(4)操作比较复杂,需要技术含量较高。

3.1.4 MongoDB数据库管理系统

MongoDB介于关系型数据库和非关系型数据库之间,是非关系型数据库当中功能最丰富、最像关系型数据库的,同时它也是面向文档的开源数据库。MongoDB支持的数据结构非常松散,类似于JSON的BSON格式,因此可以存储比较复杂的数据类型。在C++中,MongoDB可以用作文件系统;在MongoDB中,使用JavaScript作为查询语言。

MongoDB最大的特点是:它支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

1.MongoDB的特点

MongoDB的特点还有以下几点。

(1)提供高性能。

(2)自动分片。

(3)运行在多个服务器上。

(4)支持主从复制。

(5)数据以JSON格式文档的形式存储。

(6)索引文档中的任何字段。

(7)由于数据被放置在碎片中,因此它具有自动负载平衡配置。

(8)支持正则表达式搜索。

(9)在失败的情况下易于管理。

2.优点

与其他数据库相比,MongoDB的优点如下。

(1)易于安装。

(2)MongoDB Inc为客户提供专业支持。

(3)支持临时查询。

(4)高速数据库。

(5)无模式数据库。

(6)横向扩展数据库。

(7)性能非常高。

3.缺点

与其他数据库相比,MongoDB的缺点如下。

(1)不支持连接。

(2)数据量大。

(3)嵌套文档的数量有限。

(4)运行过程中会增加不必要的内存使用。

3.1.5 Redis数据库管理系统

Redis是一款高性能的key-value数据库。与Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和hash(散列)等类型。在此基础上,Redis还支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别是:Redis会周期性地把需要更新的数据写入磁盘或者把要修改的操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器,这使得Redis可以执行单层树复制。存盘可以有意无意地对数据进行写操作。由于完全实现了发布/订阅机制,从数据库在任何地方同步树时,可以订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

另外,Redis还支持多种编程语言,包括Java、C/C++、C#、PHP、JavaScript、Perl、Object-C、Python、Ruby及Erlang等。

1.Redis与其他数据库相比有以下3个特点

(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

(2)Redis不仅支持对简单的key-value类型数据的存储,同时还支持对list、set及hash等数据结构的存储。

(3)Redis支持数据的备份,即master-slave模式的数据备份。

2.Redis与其他数据库相比有以下不同点

(1)Redis有着更为复杂的数据结构并且提供对它的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无须进行额外的抽象。

(2)Redis运行在内存中,可以持久化到磁盘,在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存方面数据库的另一个优点是,相比在磁盘上相同的复杂数据结构,在内存中操作起来非常简单,这样Redis可以做许多内部复杂性很强的工作。同时,在磁盘格式方面,它是紧凑的以追加方式产生的,因为它并不需要进行随机访问。