【IT168 技术文档】
在数据库世界中没有银弹,选择哪个数据完全取决于你自己,你要实现的目标,有多少数据需要存储,你应用程序使用的操作系统和语言平台,你的预算,以及是否需要数据仓库,BI或决策支持系统等。
背景
我的许多朋友,开发人员,应用和系统架构师,有时甚至是系统管理员经常问我同类型的问题:“Bo,在我的应用中该使用SQL Server还是使用Oracle数据库?”,“BO,我应该将我的Sybase数据库迁移到SQL Server吗?”,“哪个数据库(平台)是最好的?”,“为什么我们不使用开源数据库,如MySQL或PostgreSQL?”。所有这些问题基本上都是相同的 —— 哪个数据库平台最适合某个应用程序,或是哪个数据库平台对IT和业务最有意义?
为了回答这些问题,在我推荐任何数据库平台之前,我会问他们更多的问题(通常是十多个),很多时候人们不理解为什么一个简单的问题会引发这么多问题。
其实很多人不知道为什么他/她需要一个数据库,什么是关系数据库,数据库与电子表格之间的差异(以及各自的优缺点),该用Access数据库还是SQL Server数据库,或应用程序能从数据库平台获得什么好处。
虽然我不是在这里宣传数据库是什么,但我知道对IT和非IT人员谈论数据库完全不是一回事,我不想被称为以数据库为中心的呆子,不过我认为在21世纪,人们一直在谈论BI(商业智能),我也认为最灵活,最复杂和最易维护的系统是由数据驱动的,产生的数据量多了就得用数据库来保存。下面我对最流行的数据库平台只做简要的介绍,并根据我的经验和与其它IT界朋友的互动,介绍一下人们是怎么使用这些数据库的。
下面我19年来使用过的数据库:
• dBase/FoxBase/FoxPro in the DOS/Novell/Windows 3.x world
• MS SQL Server (6.5,7.0,2000,2005 and 2008)
• Oracle (7, 8/8i,9i,10g)
• Sybase SQL/ASE Servers (4.9.2, 10, 11, 11.9.2, 12/12.5, 15.x)
• Sybase IQ 12.6/12.7
• Informix/Dynamic (6, 7)
• MySQL (4, 5/5.1)
• PostGreSQL (8.3.5)/EnterpriseDB
此外,我参加了一系列的数据库选型评估,如Vhayu和OneTick,我在各行业也有过内存数据库使用经历,如Oracle TimesTen和Sybase ASE内存版本(Sybase RAP商业版的一部分,它已成为时间序列数据库领域的一个强力竞争者,特别是去年初和CEP集成后,影响越来越大)。
我曾经担任过公司全职员工或不同公司不同项目的顾问,真的觉得在数据库世界中确实没有银弹,选择什么数据库主要取决于以下几方面因素:
• 你是谁;
• 你要实现的目标(业务/功能要求,性能/可靠性/可扩展性/可用性要求);
• 当前数据库存储了多少数据;
• 应用程序要选择的操作系统和语言平台;
• 你的预算有多少;
• 你是否想/需要构建一个数据仓库,BI或决策支持系统。
比较不同的数据库系统就象比较不同的开发平台和操作系统平台:
• Java/J2EE与(C#, VB)/.NET比较
• Windows与Linux/UNIX比较
• Linux与私有UNIX系统如AIX/HP-UX/Solaris/Tru64/Irix比较
• Unix与OpenMVS/UniSys/Tandem/IBM Mainframe比较
如果我们在前端办公应用系统,如订单录入,银行或电信系统中不需要数据库(主要是担忧锁/阻塞,延迟和低I/O等),我们只希望使用数据库来存储事实数据,或使用数据库来备份数据。
当然,所有关系数据库都提供了不同的功能,即使它们都声称遵循ANSI SQL和SQL-92标准,但实际上都有自己的一套SQL语言,这就好比Websphere/Weblogic/Oracle App Server/Sybase Eserver/Jboss之间的关系,它们是J2EE的不同实现,都兼容J2EE规范,但也有自己的扩展和变化。
如何明智选择数据库平台 使你不再后悔
0
相关文章