1.5.2 常用的数据库管理系统简介
20世纪80—90年代是关系数据库产品发展和竞争的时代,特别是Internet的快速发展与应用,SQL Server、Oracle、IBM DB2、MySQL等一批很有实力的关系数据库管理系统产品成为主流,同时,一些非关系型数据库管理系统如MongoDB、Cassandra、Redis等也逐渐显示出强大的功能与广泛的应用前景。
1)桌面型数据库管理系统
(1)Visual Foxpro
Visual FoxPro是Microsoft公司Visual Studio系列开发产品之一,运行于Windows平台的桌面关系型数据库管理系统。Visual FoxPro源于美国Fox Software公司推出的、在DOS上运行的数据库产品FoxBase,与xBase系列相容。Fox Software被微软收购后,微软对FoxBase加以发展,使其在Windows上运行并更名为Visual FoxPro。目前最新版为Visual FoxPro 9.0(发布于2007年),微软官方网站发布了一份公告,说明未来不再推出新的版本。
(2)Access
Access是微软公司推出的基于Windows的桌面关系数据库管理系统,是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码就可以完成大部分数据管理的任务。
Access属于小型的数据库应用软件,其具有操作灵活、转移方便、运行环境简单等优点,适合数据量少的应用,在处理少量数据和单机访问的数据库时效率很高。
2)数据库服务器
(1)SQL Server
SQL Server是由Microsoft开发的在Windows平台上最为流行的中型关系数据库管理系统。近年来,SQL Server不断更新版本,从SQL Server 6.5,7.0,2000到SQL Server 2019(发布于2019年),功能不断完善。
它的优势是Microsoft产品所共有的易用性。SQL Server是Microsoft公司开发的一个全面的、集成的、端到端的数据解决方案,它为企业用户提供了一个安全、可靠和高效的平台,用于企业数据管理和商业智能。SQL Server大量利用了Microsoft Windows操作系统的底层结构,直接面向Microsoft Windows操作系统。
(2)Oracle
Oracle数据库是美国Oracle(甲骨文)公司的关系型数据库产品,在数据库领域一直处于领先地位,是一个面向Internet计算环境的数据库,其系统可移植性好、使用方便、功能强大,适用于各类大、中、小、微机环境,是一种高效率、高可靠性、高适应性、高吞吐量的数据库解决方案。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。Oracle的关系数据库是世界第一个支持SQL语言的数据库。Oracle的目标定位于高端工作站以及作为服务器的小型计算机。
(3)DB2
DB2是IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Linux、UNIX、Windows等平台上。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
DB2技术还与IBM服务器部门(Server Group)和其他IBM软件品牌(WebSphere、Tivoli、Lotus和Rational)进行合作。WebSphere集成了DB2以管理其所控制的应用程序、数据库、用户和其他资源中的信息。WebSphere Commerce Analyzer的一个版本包括了DB2 Intelligent Miner技术。DB2与WebSphere Application Server一起提供了对基于标准的Web服务的支持。Lotus计划通过集成DB2来扩展Notes和Domino的可伸缩性。DB2受管于Tivoli的系统资源。
从结构化的数据到非结构化的内容,从手持设备到群集服务器配置,以及从事务处理工作负载到数据挖掘,DB2和IBM信息管理软件产品组合随着客户在电子商务方面的发展和成功不断支持他们,IBM信息管理软件可以为客户准备先进技术和策略。
(4)MySQL
MySQL(目前属于Oracle旗下产品)是瑞典MySQL AB公司开发的一种小型关系型数据库管理系统。由于其体积小、速度快、总体运营成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体成本而选择了MySQL作为网站数据库。MySQL作为一种开放源码数据库,以其简单易用的特点被广大用户采用,虽然MySQL是免费的,但同Oracle、Sybase、Informix、DB2等商业数据库一样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言,具有数据库系统的通用性。
3)非关系型(NoSQL)数据库管理系统
(1)MongoDB
MongoDB是一种基于文档模型的数据库管理系统,用C++语言编写。MongoDB的查询语法功能强大,使用类似JSON的BSON作为数据存储和传输格式。在对复杂查询要求不高的情况下,MongoDB可以作为MySQL的替代品,它具有分布式的特点,支持海量数据的存储,并对海量数据有良好的读/写性能。据测试,当数据库达到50 GB以上时,在访问速度方面MongoDB是MySQL的10倍以上,在并发读/写方面,每秒可以处理0.5万~1.5万次读/写请求。MongoDB无法管理内存,它把内存大小交给操作系统来管理,在系统运行时必须在操作系统中监控内存的使用情况。
(2)Cassandra
Cassandra是由Facebook公司开发的基于列存储模型的开源数据库,具有模式灵活、扩展性强、多数据中心识别,支持分布式读/写等特点。Cassandra被Digg、Twitter等多家互联网知名公司使用,是目前非常流行的一种NoSQL数据库管理系统。用Cassandra存储数据,不必提前确定字段,在系统运行时可以随意增加和删除字段。用Cassandra扩展系统容量,可以为服务器集群直接指向新的成员,不需要重新启动或者迁移数据。用Cassandra布置多数据中心识别,每条记录都会在备用的数据中心复制备份。用Cassandra的分布式读/写功能,可以随时随地集中读/写数据,不会有单点失败。
(3)Redis
Redis是用C语言编写的基于Key-Value模型的数据库管理系统,具有持久存储、高性能、高并发等优势。Redis系统在内存中进行操作,通过异步操作定期把数据库输出到硬盘上保存,它能提供每秒超过万次的读/写频率,是目前性能最高的Key-Value型数据库。Redis支持多种数据类型的操作,包括Strings、Lists、Hashes、Sets及OrderedSets,单个Value值的最大限制是1 GB。Redis数据库不能用于海量数据的高性能读/写,因为Redis数据库的容量受到物理内存的限制,所以,它通常局限于较小数据集的高性能操作和运算上。