1 要求

目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是?

1.1 目前市场上有些什么样的数据库管理系统(DBMS)

目前市场上的数据库管理系统(DBMS)常见的品牌有:Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro、PostgreSQL、mySQL、DB2、Ingres、MongoDB、达梦(DM)数据库。

1.2 它们都有什么特点?它们之间的优缺点有什么?

整体上可以把这些数据库分为商业数据库和开源数据库两类。当前主流的商业数据库有Oracle、微软SQL Server、IBM DB2和SybaseAdaptive SQL Server。而在开源方面,主要有三家主流数据库:MySQL、PostgreSQL和Ingres。这两类数据库都已经证明了自己可以胜任数据存储和管理的需要。但相对于商业数据库,开源数据库可能是比较低的数据处理数量、缺少的功能、受限制的图形化管理,较低的安全性、或者是一些其他商业数据库有而开源数据库不具备的的东西。

2 商业数据库和开源数据库总览

2.1 商业数据库之Oracle

Oracle是商业数据库的代表,具有非常丰富的功能、广泛的平台支持和大量的附加功能。在IDC的一个调查中,Oracle占据了数据库市场的44%,增长了14%。

Oracle的功能从表分区和大量的统计功能,到一些高可用功能,诸如本地复制、数据镜像和应用集群(Real Application Clusters,RAC)等。

Oracle另一个强大的功能是在线表和索引重建。在很多数据库中,需要离线进行重建,也就是说当索引被重建的时候,不允许访问数据,因为这个操作要求独占性访问对象。当然,这不是Oracle的全部功能,只是其所能提供的高级功能的一些示例。

2.2 商业数据库之IBM DB2

在2004年,DB2数据库的销售主要集中在IBM大型机和它们自己的AS/400系列系统中。尽管根据2006 IDC的调查报告,DB2的市场占有率高居第二位,但是与Oracle相比,它的销售额和市场占有率都要低很多。

现在除了IBM的专有操作系统外,DB2可以运行在Windows、Linux和Unix平台上。新版的DB2 V9在XML处理方面具有较大的改进。在我最近的一个使用了其他数据库的项目中,在规划XML方面我们做了大量的额外工作。如果我们所使用的数据库具有 DB2 V9的相应功能,或许就不会有这么多麻烦了。

另外,IBM正在通过其DB2 Everyplace进入移动领域,目前支持PDA和智能手机。

2.3 商业数据库之微软SQL Server

一直以来,微软的SQL Server都只可以运行在其Windows操作系统平台上,但是在上一年的今天,也就是2016年的3月8日,宣布推出可运行在 Linux 系统下的 SQL Server 数据库。SQL Server的市场份额将会更快的增长。

根据IDC的统计,微软的SQL Server是市场份额增长最快的数据库,市场份额仅次于DB2,排名第三。

在最新版本的SQL Server 2005中,增加了许多新的功能,使其进一步对Oracle够成威胁。其中包括表分区、在线索引操作和很多其他管理功能。从下文中你将看到,很多用户对SQL Server的直观、易用的管理界面深表支持。

2.4 商业数据库之Sybase

最新版本的Sybase Adaptive Server与以前的版本相比,具有更丰富的功能设置,但是与上面Oracle和DB2两个商业数据库相比还是少很多,举个例子来说,它缺少对高可用群集和在线索引重建的支持。这或许是为什么在IDC的一次调查中,它仅排名第四,只有可怜的3.2%的市场份额。

Sybase比较强大的地方在于它对资源的低占有率上。在这一方面,Sybase 15还引入了新的“专利查询过程技术”,显示了增强的性能和降低的硬件资源消耗。另一方面,Sybase正在通过其SQL Anywhere数据库服务器进入移动领域。SQL Anywhere功能之一就是其常驻内存的数据库管理系统,可以运行在Windows Mobile、Windows、Palm OS和Symbian上。

关于Sybase还有一个很有意思的历史插曲,微软的SQL Server是从Sybase开发而来的。微软和Sybase签订了一个合约,微软被授权可以销售一个重新包装的Sybase,或在它的基础上开发一个它自己的版本。尽管微软已经对其进行了很多修改,你依然可以在SQL Server的命令组成中看到两者之间的渊源。

2.5开源数据库之MySQL

MySQL是开源数据库中的佼佼者,它的用户数是在同类开源数据库中是最多的,它既可以被小的新兴公司所使用,也可以被采用了操作系统集群的大型Web站点所使用。

MySQL拥有很多插入式的存储引擎,用来给用户提供不同的所需功能,而不是默认具有全部功能。这也是为什么MySQL会在数据恢复操作中具有最佳表现的另一个原因。

自从MySQL第一版发布以来,就提供一个存储引擎接口。它让用户来根据需要选择数据存储引擎。MySQL既有事务安全(ACID兼容)的存储引擎(诸如InnoDB、Falcon),也有不支持事务处理的存储引擎(MyISAM)、日志引擎(不能被更新或删除,Archive)和通过无共享体系结构实现高可用性的群集技术, MySQL还有专有的第三方引擎,例如InfoBright和Nitro。

MySQL拥有很多实现特定功能的存储引擎,但是并不建议你全部安装它们。而像Google这样的公司则编写了自己的存储引擎来加速它们的常用操作。

MySQL与Oracle相比的一个优势就是它对资源的占用非常少。MySQL是实现数据恢复方面最快的数据库,但是它的确缺少一些在Oracle中的功能。

MySQL从来没有想过与其他数据库在功能数量上一较高下,MySQL的目标是易用、稳定和性能。MySQL现在具有丰富的功能,已经得到了很多开发者的支持。

2.5开源数据库之PostgreSQL

在开源数据库中,PostgreSQL以其丰富的功能而显得格外突出,其中包括存储过程、表分区(partitioning)、多过程语言支持和多种数据类型和索引的支持。另外,PostgreSQL的标准兼容性和严格的安全功能也被众多用户所称道。PostgreSQL的在线事务处理(OLTP)是其最受欢迎的功能,在开源数据库中,它的数据仓库方面也是表现最好的。

由于PostgreSQL是一个被不同公司支持的社区控制型开源项目,很多公司提供对它的支持,诸如Sun、Fujitsu、SRA和Red Hat和很多新兴公司和顾问公司。PostgrefSQL在日本的市场情况很不错,仅次于Oracle。

2.7开源数据库之Ingres

在Ingres 2006版中引入了很多新功能,其中一些功能是关于大规模部署方面的,例如键范围表分区(key range table partitioning)和并行查询支持。另外,诸如存储过程、触发器和视图功能早已被Ingres所支持,不过Ingres现在还不支持内部任务。

2.8嵌入式数据库应用

数据库的一个比较特别的应用案例是嵌入式应用程序,在这方面应用中,低资源占用成为一个必需的要求。

MySQL由于其设计理念,在这一方面被应用的比较多。微软的SQL Server 2005 Express版也被做为嵌入式数据库使用,它被认为是微软数据库引擎(MSDE)的下一版本,而且它也是完全免费的。而Oracle则又通过收购得来的 TimesTen内存数据库来满足嵌入式应用程序。

Linux是开源数据库的首选操作系统,因为它们都是开源而且完全免费的产品。现在的消费电子产品市场中,Linux变种已经被广泛应用。而这也使得开源数据库们在嵌入式应用程序受益。

3对这些数据库管理系统的使用场合分别是什么?

这个问题,我想以“如何选择适合自己的数据库的方式?”来回答。

3.1按需求来选择

事实上,现在没有完美无缺的数据库,无论是商业数据库,还是开源数据库。我们发现,选择一个数据库的主要理由就是它的功能是否可以很好地支持你的应用程序。人们通常使用数据库来完成的任务有:支持Web、事务处理、文本搜索,有的情况下复制也是一个重要的要求。在事务处理方面,Oracle看上去更有领先优势,接下来是微软的SQL Server。没有一个开源数据库具有可以与Oracle相媲美的事务处理功能。

在那些要求功能丰富的情况下,开源数据库们并不比商业数据库有什么优势。人们经常提到的商业数据库的优势功能有存储过程、触发器和一些安全功能。

不过,正如我们上面提到过的,自从Ingres问世以来就支持触发器和存储过程。PostgreSQL对这些功能也早已支持。在MySQL的新版中最近也增加了存储过程和触发器功能。对于支持Web应用程序,MySQL看上去要比其他对手表现好。Web应用程序主要是对数据库进行读取操作。MySQL在这方面以速度快而见长。一些用户表示,在快速阅读操作方面,MySQL至少不比Oracle差。但是,当任务从阅读数据库转向处理一个客户购买操作的时候,用户则可能更倾向于选择Oracle而不是MySQL。在复制和群集功能上,MySQL给人的印象差别很大。MySQL中的单向复制表现惊人,但是,MySQl的群集功能被应用的不多,因为它只是基于内存的。

3.2按易用性和管理来选择

开源数据库们主要是以命令行工具中管理。尽管也有一些图形工具可用,但是与Oracle等商业数据库自带的图形管理工具相比,它们还显得不够灵活和稳定。在图形化管理方面的赢家无疑是微软。微软的SQL Server管理工具不是基于浏览器的,而是自带的一个终端平台。这使得它有能力完成一些Web浏览器所不能实现的强大功能。一些用户希望Oracle中的管理功能也和SQL Server中一样好。

3.3按支持性来选择

当讨论开源软件的时候我们听到最频繁的问题是:“我们从哪儿能得到支持?”MySQL为它自己的客户提供24*7、30分钟响应时间的支持。在其Unlimited服务中还有很多不同的付费支持级别。正如上面所提到的,PostgreSQL的支持来自于不同的平台厂商,支持的内容、成本、地区和要求因厂商不同而不完全一样。由于开源数据库的源代码可以被任何人查看和修改,这导致了几个潜在的问题。一个合法客户对数据库进行了修改会发生什么?Sun公司不会对这种情况提供支持,而MySQL公司将提供支持,但是需要满足一些特定条件和情况。事实上,能对这些开源产品进行修改的客户的数量是非常少的——这与产品的复杂度有关系。另一个开源软件的问题是,任何人可以对产品进行修改的现实会带来一些潜在的漏洞或安全问题。诸如此类的事情已经发生过,客户需要确信从熟悉的网站下载这些产品,并且确认它们可以通过MD5校验。

3.4按成本因素来选择

数据库中成本因素是非常简单的。对于开源数据库,你可以免费得到授权,但是同时也牺牲了一些功能。而对于商业数据库,你可以使用更多强大的功能,但是你需要按每个拷贝或每个CPU来支付授权费用。对于开源数据库,在维护成本方面,尽管看上去你可以选择不从厂商那儿购买支持合同,因为你拥有源代码,但是实际上并不如此简单。

虽然你可以选择修改源代码,但是当新版数据库出来后,你所做的修改不得不重新进行实施,而且你曾经所做的修改可能已经没有必要,因为新版中增加了相应的功能。对我们来说,唯一比较实际的做法就是成为这个数据库开发社区中的一员,这可能需要你投入大量的时间,其成本或许会超过购买一个支持合同。对于商业数据库,你只有面临一个选择,如果你想得到来自它们的维护支持,那么就购买它们的支持合同。

4结论

总体来说,选择什么样的数据库要看你的应用程序的需要。如果它是以阅读数据库为主的Web应用,MySQL无疑是最佳选择。而如果需要那些事务处理和复杂的数据库功能,那么可能是Oracle和微软的SQL Server的地盘。如果你需要一些商业数据库的高级功,但又不想支付授权费用,那么看一下PostgreSQL或Ingres。对于嵌入式数据库应用, MySQL和Sybase所占有的系统资源最少。

目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是?...相关推荐

  1. dbms数据库管理系统_数据库管理系统dbms

    dbms数据库管理系统 A database is an organized collection of data, generally stored and accessed electronica ...

  2. 04--MySQL自学教程:数据库MySQL--【数据库DB】和【数据库管理系统DBMS】简介

    1.数据库DB 数据库:DB(DataBase) 按照一定规则存储在计算机的内部存储设备上被各种用户或者应用共享的数据集合 2.数据库管理系统DBMS 1)数据库管理系统DBMS:DBMS(DataB ...

  3. 学习随笔---数据库管理系统DBMS

    一.数据库管理系统DBMS是什么 是一种操纵和管理数据库信息的大型管理软件,用于建立,使用和维护数据库. 按数据库存储结构方式可以分为:关系数据库管理系统和非关系数据库管理系统. 二.数据库DB是什么 ...

  4. 小机上监控AIX和数据库管理系统的运行情况直到性能优化(SQL语句优化和排除硬件问题)...

    AIX下的命令 1)topas   检测操作系统的运行状况 2)nmon(c--cpu,m--memory,d--disk)  检测这3个的情况 ORACLE下的命令 提示:下面这些视图都是实时监控生 ...

  5. 数据库管理系统(DBMS)的主要功能

    主要功能    1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构.两级映像以及完整性约束和保密限制等约束.DDL主要用于 ...

  6. 数据库杂谈(六)——数据库管理系统

    文章目录 6 数据库管理系统 6.1 数据库管理系统结构简介 6.2 进程结构 6.2.1 进程的分类 6.2.2 线程的由来 6.2.3 建立进程的过程 6.3 数据目录 6 数据库管理系统 6.1 ...

  7. 「数据管理」顶级数据库管理系统供应商

    确定哪种类型的数据库或数据库服务最适合您的企业的最佳方法是什么?这完全取决于您需要什么类型的用例.在本文中了解更多信息. 基本上,我们每天使用的所有数字信息都在世界某处的数据库管理系统或存储阵列中.这 ...

  8. 「数据管理系统」顶级数据库管理系统供应商

    确定哪种类型的数据库或数据库服务最适合您的企业的最佳方法是什么?这完全取决于您需要什么类型的用例.在本文中了解更多信息. 基本上,我们每天使用的所有数字信息都在世界某处的数据库管理系统或存储阵列中.这 ...

  9. dbms数据库管理系统_DBMS中的数据库语言

    dbms数据库管理系统 DBMS数据库语言 (DBMS Database languages ) Database languages are the languages that provide t ...

最新文章

  1. 小程序云开发 一开通云开发,给数据库添加一条记录
  2. Linux下GCC的安装,GCC链接外部库
  3. 使用Flexible实现H5页面的终端适配
  4. 浅拷贝(副本)与深拷贝
  5. Spring注解和XML配置文件孰优孰劣
  6. 深入理解javascript中的焦点管理
  7. 基于mysql的可视化日志管理——loganalyzer
  8. 达梦数据库(简称DM)的初级教程分享
  9. Python数据处理Tips数据预处理操作方法汇总
  10. 解除电脑宽带限制,提升电脑网速
  11. python人物关系网络图共现_文本分析之制作网络关系图
  12. [USACO10HOL]赶小猪
  13. Sqli-labs之Less-17
  14. golang-内存管理-GC回收
  15. Python 图片与pdf相互转换
  16. gin post 数据参数_gin请求参数处理
  17. 知识图谱从入门到应用——知识图谱推理:基于表示学习的知识图谱推理-[嵌入学习]
  18. 【.NET资源收集】C#与时俱进的知识点...
  19. 大伙帮我一起来看看这个数据库的题目
  20. 自然人税收管理系统扣缴客户端Sqlite数据库有密码的,如何破解读取呢

热门文章

  1. 龙卷风收音机客户端电台数据解密算法
  2. Sublime Text 3 3103版本 破解 + 汉化
  3. C语言 十进制转为字符串 数字转为字符串
  4. 提升论文影响力的方法
  5. 小度会是下一个苹果吗?
  6. 源码分析Dubbo系列文章
  7. Excel表格插件:js-xlsx.js 的使用
  8. 2022年消费金融行业研究报告
  9. 演讲口才助你突破怯场之苦
  10. □ 影片名:《木乃伊》(5156) 在线播放