SQL Server的优点众多,让其在数据库领域独占鳌头,成为最受用户欢迎的数据库系统,下面就让我们来了解SQL Server的优点和缺点。
创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为祥云企业提供专业的成都网站建设、成都网站制作,祥云网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
SQL Server是一个关系数据库管理系统,它最初是由Microsoft, Sybase和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本,在Windows NT 推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server移植到Windows NT系统上专注于开发推广SQL Server的Windows NT版本,Sybase则较专注于SQL Server在UNIX操作系统上的应用.Microsoft SQL Server以后简称为SQL Server或MS SQL Server 。
随着信息技术的发展,计算机处理数据的方式也发生着变化,文件管理系统--数据库管理系统。Microsoft SQL Server是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。
众所周知,SQL Server能够满足今天的商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。
除这些SQL Server的优点外,SQLServer还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力。
SQL Server的优点众多,但是Microsoft SQL Server和其他数据库产品相比也存在着以下劣势:
1开放性。只能运行在微软的windows平台,没有丝毫的开放性可言。
2可伸缩性,并行性。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
3性能稳定性。SQLServer当用户连接多时性能会变的很差,并且不够稳定。
4使用风险。SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
5客户端支持及应用模式。只支持C/S模式。
着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高。Oracle数据库在大多数企业中受到广泛使用,而SQL Server数据库也因为和Windows的联系,在企业中的使用也是非常广泛。 \x0d\x0a\x0d\x0a操作系统的稳定对数据库来说是十分紧要的,在数据库可操作平台上,Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。对开发商来说是很大的支持。而SQL Server却只能在Windows上运行了,这个就显得比较单调了,但SQL Sever在Window平台上的表现,和Windows操作系统的整体结合程度,使用方便性,和Microsoft开发平台的整合性都比Oracle强的很多。但Windows操作系统的稳定性及可靠性大家是有目共睹的,再说Microsoft公司的策略目标是将客户都锁定到Windows平台的环境当中,只有随着Windows性能的改善,SQL Server才能进一步提高。从操作平台这点上Oracle是完全优胜于SQL Server的了。 \x0d\x0a\x0d\x0a从资料上可以看到,Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证。这方面证明了Oracle的安全性是高于SQL Server的。 \x0d\x0a\x0d\x0a购买一个产品,首先考虑的当然是产品的性能了,当考虑性能的同时当然少不了究竟要花多少钱在这产品也是个很关键的问题。要建立并运行一个数据库系统。不仅仅包含最初购置软件、硬件的费用,还包含了培训及以后维护的费用。Orcale数据库的价格是远比SQL Server数据库要高,为什么Oracle数据库比SQL Server数据库价格上要高出那么多,一方面Oracle的初始花费相对较高,特别是在考虑工具软件的时候,Oracle很多工具软件需要另外购买,与Microsoft提供免费的SQL Server工具软件相比,Oracle更显价格的不菲。但由于SQL Server只能在Windows下运行的原因,普遍认为SQL Server数据库的可靠性是比较差的。Oracle的性能优势体现在他的多用户上,而SQL Server的性能优势在多用户上就显得力不从心了。 \x0d\x0a\x0d\x0a操作上SQL Server明显要比Orcale简单,如果你用过Java和DOTNET的开发平台,区别的基本就是Oracle和SQL Server不同,Oracle的界面基本是基于Java的,大部分的工具是Dos界面的,甚至SQLPlus也是, SQL Server是跟VB一样,全图形界面,很少见到DOS窗口。SQL Server中的企业管理器给用户提供一个全图形界面的集成管理控制台来集中管理多个服务器。Oracle也有自己的企业管理器,而且它的性能在某些方面甚至超过了SQL Server的企业管理器,但它安装较为困难。 \x0d\x0a\x0d\x0aOrcale数据库和SQL Server数据库那个更快?其实是一个很难答的问题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。 \x0d\x0a\x0d\x0aSQL Server 2000是一个具备完全Web支持的数据库产品,提供了可扩展标记语言核心支持以及Internet上和防火墙外进行查询的能力,具有可伸缩性、灵活性、扩充性好,而且价格便宜等特点,而Oracle则有着可靠安全性,速度比SQL Server快上百倍,但其价格在实施中却比SQL Server它高出了几百倍。 \x0d\x0a\x0d\x0a其实各行业考虑选择那种数据库,是由数据库的特点以及根据自己的业务需求和基础设施综合考虑来决定的。 \x0d\x0a\x0d\x0aoracle中有复合数据类型 sql server中没有 \x0d\x0a声明方式:变量名 对象名%type \x0d\x0a这里的变量类型可以是所有以存在的数据类型,具有依赖性 ,存储过程中用这种变量比较灵活,但效率应该会低些 \x0d\x0a\x0d\x0aoracle存储过程中借助cursor类型变量返回并访问记录集 sql server中我没用过类似功能 \x0d\x0a\x0d\x0aoracle里这么用:存储过程中边查询边给变量赋值 \x0d\x0aselect 某一列名 into 变量名 from table where ..; \x0d\x0a相当于oracle中的select 变量名=列....
如若转载,请务必注明出处。整理这段文字,确实破费时日。iihero 2008.9.28于CSDN
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database”相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。
公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
提到Ingres数据库,不得不提一下Michael Stonebraker,他是Ingres的创始人。他是加州大学伯克利分校的教授,著名的数据库学者,他在1992 年提出对象关系数据库模型。Stonebraker 教授领导了称为Postgres 的后Ingres 项目。这个项目的成果是非常巨大的,在现代数据库的许多方面都做出的大量的贡献。Stonebraker 教授还做出了一件造福全人类的事情,那就是把Postgres 放在了BSD 版权的保护下。如今Postgres名字已经变成了PostgreSQL,功能也是日渐强大,我也非常喜爱这个数据库。你可自由的浏览它的代码库,可以实时了解一线工程的思路。
话说,87年的时候,Sybase觉得单靠一家力量,难以把SQLServer(那时不叫ASE)做到老大,于是联合微软,共同开发。至于原始的代码从何而来,这个应该与Ingres有些渊源。后来1994年,两家公司合作终止。截止此时,应该是都拥有一套完全相同的SQLServer代码。
然后可想而知了,Sybase继续开发,将Sybase SQLServer往各个平台移植,版本也是跳跃式的变化,从4.2,好像一下子就到了11.0。
Sybase SQLServer后来为了与微软的MS SQL Server相区分,改名叫:Sybase ASE(Adaptive Server Enterprise),其实,应该改名字的是微软。代码的最初拥有者是Sybase,结果得到正式名字的居然是微软。这笔交易,实在是有些亏。不过,ASE也还好记,把Sybase的前边三个字母去就是ase了。
ASE如今已经发展到了15.0.2版了。13和14两个数,对于老美来说,都不是好数,所以直接从12.5.4跳到15.0了。估计Oracle以后也会这样命名。
现在的Sybase,产品策略已经有了调整,在移动数据库市场上,它的ASA (SQL Anywhere)占据了绝对的老大地位,70%以上的市场。同时,Sybase ASE仍然保持着大型数据库厂商的地位。在电信、交通、市政、银行等领域,拥有强大的市场。它的产品全是多平台支持。
Sybase ASE又分出了Replication Server(复制服务器), Sybase IQ等重量级产品,相当于对大型数据库市场又进行了细分。自ASE15.0开始,已经全面支持cluster,既可以容灾(高可用),也能load balance,应该颇具市场前景。
算起来,MS SQL Server应该算是Sybase ASE的同胞兄弟了,不过,ASE血统更纯正。无论谁更成功,都证明当初的那个SQL Server生命力还在持续,它仍拥有强大的生命力。
转自:
sybase百科:
一:目标任务:
使用SQL
Server
2008自带的维护计划自动备份数据库,并且自动删除超过设定期限的历史备份文件:
1.
每天0点自动备份指定数据库
testDB,备份文件放在E:\autoBack文件夹下
2.
备份文件保留1周,每天备份完数据库后自动删除超过1周的备份文件
二:前提条件
1.
已经安装SQL
Server
Integration
Services
服务
2.
已经安装SQL
Server
代理
(MSSQLSERVER)
服务
如果未安装SQL
Server
Integration
Services
服务,依然可以创建维护计划,但是不会生效
三:
创建维护计划(使用维护计划向导)
1.
选择对象资源管理器下的“管理”,点击右键,选择“维护计划向导”
2.
选择“下一步”进入“选择计划属性”界面,
我们这里修改计划名称为
testMaintenancePlan
因为我们现在有两个任务,一个是备份数据库testDB,一个是删除历史备份文件。所以选择“整个计划统筹安排或无计划”
3.
点击“更改”按钮,进入时间计划设置界面
我们这里需要每天重复执行,频率是每天0点钟执行,从当天开始执行
4.
点击“确定”后,返回计划属性界面
5.
选择“下一步”,进入选择维护任务界面
我们这里有两个任务,备份数据库和删除超期的历史备份文件,所以勾选“备份数据库(完整)”和“‘清除维护’任务”两个任务
6.
选择“下一步”,
进入设置维护任务顺序的界面
这里的顺序是先备份数据库,
再执行“清除维护”任务,删除历史备份
7.
选择“下一步”,进入备份数据库任务的设置界面
选择指定的特定数据库testDB:
指定备份文件存放的目录为E:\autoBack
备份文件扩展名为bak(默认),bak字母前面不要加点(
.
)
8.
选择“下一步”进入“定义清除维护任务”界面
我们需要删除文件夹(E:\autoBack)下面的以bak为扩展名的数据库备份文件,文件保留时间为1周,
这里需要注意的是,
文件扩展名填“bak”而不要填“.bak”,扩展名前不要加点,否则不会删除
9.
选择“下一步”设置报告文件路径
10.
选择“下一步”完成
11.
刷新“管理”
下的“维护计划”文件夹,
可以看到创建的维护计划
12.
双击新建的维护计划或点击右键选择“修改”,可以看到维护计划的内容,并修改,修改后点击保存即可
13.
最后重启SQL
Server
代理
服务即可
IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
SQL Server
1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.
mySQL
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
Access数据库
美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下:
(1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。
(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。
(3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。
(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。
(5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。
FoxPro数据库
最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了较大的提高。 FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。
电子商务最早产生于20世纪60年代,大规模发展于20世纪90年代,其产生和发展的重要条件主要有以下几个方面。
1.经济全球化的发展
经济全球化是指世界各国的经济在生产、分配、消费各个领域发生的一体化趋势。经济全球化促进了跨国公司的发展,使国际范围内的商务活动变得频繁,而且使国际贸易成为了各国经济发展的重要组成部分。经济全球化促使人们寻找合适的方式来满足这种商务活动,电子商务由此应运而生,并以其独特的优势成为这场革命中的重要力量,在国际商务活动中扮演着越来越重要的角色。
2.计算机和网络技术的发展、普及和广泛应用近30年来,计算机的运行速度越来越快,处理能力越来越强,价格越来越低,应用越来越广泛,这为电子商务的应用提供了基础。由于国际互联网逐渐成为全球通信与交易的媒体,全球上网用户呈级数增长趋势,快捷、安全、低成本的特点为电子商务的发展提供了应用条件。
3.信用卡和电子金融的普及应用
信用卡以其方便、快捷、安全等优点而成为人们消费支付的重要手段,并由此形成了完善的全球性信用卡计算机网络支付与结算系统,使“一卡在手,走遍全球”成为可能,同时也成为电子商务中网上支付的重要手段。各大银行也都看到了电子商务的发展前景,纷纷推出了支持在线交易的电子金融服务,在安全技术的保障下,电子银行的发展解决了商务活动中的支付问题,成为促进电子商务发展的强大动力。
4.电子安全交易协议的制定和安全技术的发展
1997年5月31日,由美国VISA和Mastercard国际组织等联合指定的电子安全交易协议(Secure Electronic Transfer
Protocol,SET)出台,该协议得到了大多数厂商的认可和支持,为在网络上进行电子商务活动提供了一个关键的安全环境。计算机和网络安全技术的发展为电子商务的开展提供了技术和安全保障,这些技术包括HTML、XML、数据库技术、动态网页技术、SSL协议、SET协议、加密技术、防火墙技术和数字签名技术等。
5.政府的支持与推动
自1997年欧盟发布了欧洲电子商务协议,美国随后发布《全球电子商务纲要》以后,电子商务受到了世界各国政府的重视,许多国家的政府开始尝试“网上采购”,这为电子商务的发展提供了有力的支持。同时,各国政府都非常重视电子商务的发展,为电子商务的发展提供良好的生存环境,同时为电子商务制定法律规范和技术标准,这就保障了电子商务的合法进行和长远发展
数据库技术从诞生到现在,在不到
半个世纪的时间里,形成了坚实的理论
基础、成熟的商业产品和广泛的应用领
域,吸引越来越多的研究者加入。数据库
的诞生和发展给计算机信息管理带来了
一场巨大的革命。三十多年来,国内外已
经开发建设了成千上万个数据库,它已
成为企业、部门乃至个人日常工作、生产
和生活的基础设施。同时,随着应用的扩
展与深入,数据库的数量和规模越来越
大,数据库的研究领域也已经大大地拓
广和深化了。30年间数据库领域获得了
三次计算机图灵奖(C.W. Bachman,
E.F.Codd, J.Gray),更加充分地说明
了数据库是一个充满活力和创新精神的
领域。就让我们沿着历史的轨迹,追溯一
下数据库的发展历程。
数据库发展简史
1. 数据管理的诞生
数据库的历史可以追溯到五十年前,
那时的数据管理非常简单。通过大量的
分类、比较和表格绘制的机器运行数百
万穿孔卡片来进行数据的处理,其运行
结果在纸上打印出来或者制成新的穿孔
卡片。而数据管理就是对所有这些穿孔
卡片进行物理的储存和处理。
然而,1 9 5 1 年雷明顿兰德公司
(Remington Rand Inc.)的一种叫做
Univac I 的计算机推出了一种一秒钟可
以输入数百条记录的磁带驱动器,从而
引发了数据管理的革命。1956 年IBM生
产出第一个磁盘驱动器—— the Model
305 RAMAC。此驱动器有50 个盘片,
每个盘片直径是2 英尺,可以储存5MB
的数据。使用磁盘最大的好处是可以随
机地存取数据,而穿孔卡片和磁带只能
顺序存取数据。
数据库系统的萌芽出现于60 年代。
当时计算机开始广泛地应用于数据管理,
对数据的共享提出了越来越高的要求。
传统的文件系统已经不能满足人们的需
要。能够统一管理和共享数据的数据库
管理系统(DBMS)应运而生。数据模型
是数据库系统的核心和基础,各种
DBMS 软件都是基于某种数据模型的。
所以通常也按照数据模型的特点将传统
数据库系统分成网状数据库、层次数据
库和关系数据库三类。
最早出现的是网状DBMS,是美国
通用电气公司Bachman等人在1961年开
发成功的IDS(Integrated DataStore)。
1961年通用电气公司(General Electric
Co.)的Charles Bachman 成功地开发
出世界上第一个网状DBMS也是第一个
数据库管理系统—— 集成数据存储
(Integrated DataStore IDS),奠定了网
状数据库的基础,并在当时得到了广泛
的发行和应用。IDS 具有数据模式和日
志的特征。但它只能在GE主机上运行,
并且数据库只有一个文件,数据库所有
的表必须通过手工编码来生成。
之后,通用电气公司一个客户——
BF Goodrich Chemical 公司最终不得
不重写了整个系统。并将重写后的系统
命名为集成数据管理系统(IDMS)。
网状数据库模型对于层次和非层次
结构的事物都能比较自然的模拟,在关
系数据库出现之前网状DBMS要比层次
DBMS用得普遍。在数据库发展史上,网
状数据库占有重要地位。
层次型DBMS是紧随网络型数据库
而出现的。最著名最典型的层次数据库
系统是IBM 公司在1968 年开发的IMS
(Information Management System),一
种适合其主机的层次数据库。这是IBM
公司研制的最早的大型数据库系统程序
产品。从60 年代末产生起,如今已经发
展到IMSV6,提供群集、N路数据共享、
消息队列共享等先进特性的支持。这个
具有3 0 年历史的数据库产品在如今的
WWW应用连接、商务智能应用中扮演
着新的角色。
1973 年Cullinane 公司(也就是后
来的C u l l i n e t 软件公司),开始出售
Goodrich 公司的IDMS 改进版本,并且
逐渐成为当时世界上最大的软件公司。
2. 关系数据库的由来
网状数据库和层次数据库已经很好
1951:Univac I 系统使用磁带
和穿孔卡片作为数据存储
管理·开发故事
数据库发展史
程序员2004.06 47
地解决了数据的集中和共享问题,但是
在数据独立性和抽象级别上仍有很大欠
缺。用户在对这两种数据库进行存取时,
仍然需要明确数据的存储结构,指出存
取路径。而后来出现的关系数据库较好
地解决了这些问题。
1970 年,IBM 的研究员E.F.Codd
博士在刊物Communication of the ACM
上发表了一篇名为“A Relational Model
of Data for Large Shared Data Banks”
的论文,提出了关系模型的概念,奠定了
关系模型的理论基础。尽管之前在1968
年Childs 已经提出了面向集合的模型,
然而这篇论文被普遍认为是数据库系统
历史上具有划时代意义的里程碑。Codd
的心愿是为数据库建立一个优美的数据
模型。后来Codd又陆续发表多篇文章,
论述了范式理论和衡量关系系统的12条
标准,用数学理论奠定了关系数据库的
基础。关系模型有严格的数学基础,抽象
级别比较高,而且简单清晰,便于理解和
使用。但是当时也有人认为关系模型是
理想化的数据模型,用来实现DBMS是
不现实的,尤其担心关系数据库的性能
难以接受,更有人视其为当时正在进行
中的网状数据库规范化工作的严重威胁。
为了促进对问题的理解,1974年ACM牵
头组织了一次研讨会,会上开展了一场
分别以Codd 和Bachman为首的支持和
反对关系数据库两派之间的辩论。这次
著名的辩论推动了关系数据库的发展,
使其最终成为现代数据库产品的主流。
1970 年关系模型建立之后,IBM公
司在San Jose实验室增加了更多的研究
人员研究这个项目,这个项目就是著名
的System R。目标是论证一个全功能关
系DBMS的可行性。该项目结束于1979
年,完成了第一个实现SQL的DBMS。然
而IBM 对IMS 的承诺阻止了System R
的投产,一直到1980 年System R 才作
为一个产品正式推向市场。IBM 产品化
步伐缓慢的三个原因:IBM重视信誉、重
视质量、尽量减少故障;IBM 的官僚体
系庞大;IBM 内部已经有层次数据库产
品,相关人员不积极,甚至反对。
然而同时,1973年加州大学伯克利
分校的Michael Stonebraker 和Eugene
Wong利用System R已发布的信息开始
开发自己的关系数据库系统Ingres。他
们开发的Ingres项目最后由Oracle公司、
Ingres 公司以及硅谷的其他厂商所商品
化。后来,System R和Ingres 系统双双
获得ACM的1988 年“软件系统奖”。
1976 年霍尼韦尔公司(Honeywell)
开发了第一个商用关系数据库系统——
Multics Relational Dat a Store。关系型数
据库系统以关系代数为坚实的理论基础,
经过几十年的发展和实际应用,技术越
来越成熟和完善。其代表产品有Oracle、
IBM 公司的DB2、微软公司的MS SQL
Server 以及Informix、ADABASD 等等。
3. 结构化查询语言 (SQL)
1974 年,IBM 的Ray Boyce 和Don
Chamberlin 将Codd关系数据库的12条
准则的数学定义以简单的关键字语法表
现出来,里程碑式地提出了S Q L
(Structured Query Language)语言。
SQL语言的功能包括查询、操纵、定义和
控制,是一个综合的、通用的关系数据库
语言,同时又是一种高度非过程化的语
言,只要求用户指出做什么而不需要指
出怎么做。SQL集成实现了数据库生命周
期中的全部操作。SQL提供了与关系数据
库进行交互的方法,它可以与标准的编
程语言一起工作。自产生之日起,SQL语
言便成了检验关系数据库的试金石,而
SQL语言标准的每一次变更都指导着关系
数据库产品的发展方向。然而,直到二十
世纪七十年代中期,关系理论才通过SQL
在商业数据库Oracle和DB2中使用。
1986年,ANSI把SQL作为关系数据
库语言的美国标准,同年公布了标准
1969:Edgar F. Codd
发明了关系数据库
数据库发展史
1976年IBM E.F.Codd发表了一篇里
程碑的论文“R系统:数据库关系理论”,
介绍了关系数据库理论和查询语言SQL。
Oracle的创始人Ellison非常仔细地阅读了
这篇文章,被其内容震惊,这是第一次有
人用全面一致的方案管理数据信息。作
者E.F.Codd十年前就发表了关系数据库
理论,并在IBM 研究机构开发原型,这
个项目就是R系统,存取数据表的语言
就是SQL。Ellison看完后,敏锐意识到在
这个研究基础上可以开发商用软件系统。
而当时大多数人认为关系数据库不
会有商业价值。Ellison认为这是他们的
机会:他们决定开发通用商用数据库系统
Oracle,这个名字来源于他们曾给中央情
报局做过的项目名。几个月后,他们就开
发了Oracle 1.0 。但这只不过是个玩具,
除了完成简单关系查询不能做任何事情,
他们花相当长的时间才使Oracle变得可
用,维持公司运转主要靠承接一些数据
库管理项目和做顾问咨询工作。
而IBM却没有计划开发,为什么蓝
色巨人放弃了这个价值上百亿的产品,
原因有很多:IBM的研究人员大多是学
术出身,他们最感兴趣的是理论,而非
推向市场的产品,从学术上看,研究成
果应公开,发表论文和演讲能使他们
成名,为什么不呢?还有一个很主要
的原因就是IBM 当时有一个销售得还
不错的层次数据库产品IMS。直到1985
年I B M 才发布了关系数据库D B 2 ,
Ellision那时已经成了千万富翁。
Ellison曾将IBM 选择Microsoft 的
MS-DOS作为IBM-PC机的操作系统比
为:“世界企业经营历史上最严重的错
误,价值超过了上千亿美元。”IBM 发
表R系统论文,而且没有很快推出关系
数据库产品的错误可能仅仅次之。
Oracle 的市值在1996年就达到了280亿
美元。
Oracle 的由来
48 程序员2004.06
SQL文本。目前SQL标准有3个版本。基
本SQL定义是ANSIX3135-89,“Database
Lan guage —— SQ L w it h I nt e gri t y
Enhancement”[ANS89],一般叫做SQL-
89。SQL-89 定义了模式定义、数据操作
和事务处理。S Q L - 8 9 和随后的
ANSIX3168-1989,“Database Language—
—Embedded SQL”构成了第一代SQL标
准。ANSIX3135-1992[ANS92]描述了一
种增强功能的SQL,现在叫做SQL-92标
准。SQL-92 包括模式操作,动态创建和
SQL语句动态执行、网络环境支持等增
强特性。在完成SQL-92标准后,ANSI和
ISO即开始合作开发SQL3标准。SQL3的
主要特点在于抽象数据类型的支持,为
新一代对象关系数据库提供了标准。
4. 面向对象数据库
随着信息技术和市场的发展,人们
发现关系型数据库系统虽然技术很成熟,
但其局限性也是显而易见的:它能很好
地处理所谓的“表格型数据”,却对越来
越多复杂类型的数据无能为力。九十年
代以后,技术界一直在研究和寻求新型
数据库系统。但什么是新型数据库系统
的发展方向,产业界一度相当困惑。受当
时技术风潮的影响,在相当一段时间内,
人们把大量的精力花在研究“面向对象
的数据库系统(O b j e c t - O r i e n t e d
Database)”或简称“OO数据库系统”。
值得一提的是,美国Stonebraker教授提
出的面向对象的关系型数据库理论曾一
度受到产业界的青睐。而Stonebraker本
人也在当时被Informix花大价钱聘为技
术总负责人。
然而,数年的发展表明,面向对象的
关系型数据库系统产品的市场发展情况
并不理想。理论上的完美性并没有带来
市场的热烈反应。不成功的主要原因在
于,这种数据库产品的主要设计思想是
企图用新型数据库系统来取代现有的数
据库系统。这对许多已经运用数据库系
统并积累了大量工作数据的客户,尤其
是大客户来说,无法承受新旧数据间的
转换而带来的巨大工作量及巨额开支。
另外, 面向对象的关系型数据库系统使
查询语言变得极其复杂,从而使得无论
是数据库的开发商家还是应用客户都视
其复杂的应用技术为畏途。
5. 数据管理的变革
二十世纪六十年代后期出现了一种
新型数据库软件:决定支持系统(DSS),
其目的是让管理者在决策过程中更有效
地利用数据信息。于是在1970 年,第一
个联机分析处理工具—— Express 诞生
了。其他决策支持系统紧随其后,许多是
由公司的IT 部门开发出来的。
1 9 8 5 年,第一个商务智能系统
(business intelligence)由Metaphor计
算机系统有限公司为Procter Gamble
公司开发出来,主要用来连接销售信息
和零售的扫描仪数据。同年, Pilot软件
公司开始出售第一个商用客户/ 服务器
执行信息系统—— Command Center。
同样在这年,加州大学伯克利分校
Ingres 项目演变成Postgres,其目标是开
发出一个面向对象的数据库。此后一年,
Graphael公司开发了第一个商用的对象
数据库系统—— Gbase。
1988 年,IBM 公司的研究者Barry
Devlin和Paul Murphy发明了一个新的
术语——信息仓库,之后,IT厂商开始
构建实验性的数据仓库。1991年,W.H.
Inmon出版了一本《如何构建数据仓库》
的书,使得数据仓库真正开始应用,因此
Inmon 也被尊称为“数据仓库之父”。
二十世纪九十年代,随着客户/ 服
务器计算模式和企业软件包的广泛采用,
数据管理的变革基本完成。数据管理不
再仅仅是存储和管理数据,而转变成用
户需要的各种数据管理的方式。Internet
的异军突起以及XML语言的出现,给数
据库系统的发展开辟了一片新天地。
数据库未来发展趋势
随着信息管理内容的不断扩展,出
现了丰富多样的数据模型(层次模型,网
状模型,关系模型,面向对象模型,半结
构化模型等),新技术也层出不穷(数据
流,Web数据管理,数据挖掘等)。
目前每隔几年,国际上一些资深的
数据库专家就会聚集一堂,探讨数据库
研究现状,存在的问题和未来需要关注
的新技术焦点。过去已有的几个类似报
告包括:1989 年Future Directions in
DBMS Research-The Laguna Beach
Participants ,1990 年Database
S y s t e m s : A c h i e v e m e n t s a n d
Opportunities ,1995 年的Database
1991:W.H. Inmon 发
表了《构建数据仓库》
数据库发展大事记
1951:Univac系统使用磁带和穿孔卡
片作为数据存储。
1956:IBM公司在其Model 305 RAMAC
中第一次引入了磁盘驱动器
1961:通用电气(GE)公司的Charles
Bachman开发了第一个数据库
管理系统—— IDS
1969:E.F. Codd发明了关系数据库。
1973:John J.Cullinane领导Cullinane公
司开发了 IDMS ——一个针对
IBM 主机的基于网络模型的数
据库。
1976:Honeywell 公司推出了Multics
Relational Data Store ——第一
个商用关系数据库产品。
1979:Oracle公司引入了第一个商用
SQL 关系数据库管理系统。
1983:IBM 推出了DB2 数据库产品。
1985:为Procter Gamble 系统设计
的第一个商务智能系统产生。
1991:W.H.Inmon发表了《构建数据
仓库》。
管理·开发故事
程序员2004.06 49
Research; Achievements and Opportunities
into the 21st Century,1996
年Strategic Directions in Database
Systems-Breaking Out of the Box 和
1998 年的The Asilomar Report on
Database Research。2003 年的聚会于5
月初在Lowell Mass举行,共25位资深
数据库学者参加,集中讨论了信息存储、
组织、管理和访问等问题。
信息的本质和来源在不断变化,
Internet、Web、自然科学、电子商务是
信息和信息处理的巨大源泉。而廉价的
微型传感器技术使得大部分物体可以实
时汇报他们的位置和状态。这类信息能
支持对移动对象的状态和位置的监视应
用。传感信息的处理将会引发许多新环
境下极有趣味的数据库问题。
而在应用领域,Internet是目前主要
的驱动力,特别是在支持“跨企业”的应
用上。历史上,应用都是企业内部的,可
以在一个行政领域内进行完善的指定和
优化。但现在,大部分企业感兴趣的是如
何与供应商、客户进行更密切的交流以
便共享信息,以便提供更好的客户支持。
这类应用需要安全和信息集成的有力工
具。由此产生了数据库相关的新问题。
另一个重要应用领域是自然科学,
特别是物理科学、生物科学、保健科学和
工程领域。这些领域产生了大量复杂的
数据集,需要比现有的数据库产品更高
级的数据库支持。这些领域同样也需要
信息集成机制的支持。除此之外,还需要
对数据分析器产生的数据管道的管理,
需要对有序数据的存储和查询(如:时间
序列、图像分析、网格计算和地理信息),
需要世界范围内数据网格的集成。
除了在信息管理领域的这些挑战外,
在传统的DBMS 上,诸如数据模型、访
问方法、查询处理代数、并发控制、恢复、
查询语言和DBMS的用户界面等也面临
着巨大的变化。这些问题过去已经得到
充分的研究,但是技术的发展不断改变
其应用规则。比如说,磁盘和RAM容量
的不断变大,存储每个比特数据的花费
不断降低。虽然访问次数和带宽也在不
断提高,但是他们不像前者发展得那样
快,不断变化的比率要求重新评估存储
管理和查询处理代数。除此之外,处理器
高速缓存的规模和层次的提高,要求
DBMS 算法能够适应cache大小的变化。
上述只是由于技术改变而对原有算法重
新评价的两个例子。
另一个推动数据库研究发展的动力
是相关技术的成熟。如过去几十年里,数
据挖掘技术已成为数据库系统重要的组
成部分。Web搜索引擎导致了信息检索
的商品化,并和传统的数据库查询技术
集成。许多人工智能领域的研究成果也
和数据库技术融合起来,这些新组件使
得我们处理语音、自然语言、进行不确定
性推理和机器学习等。整体上,这些都要
求一个与我们现在完全不同的信息管理
架构,并重新考虑信息存储、组织、管理
和访问等方面的问题。
近40年中,数据库研究工作集中在
数据库管理系统开发的核心领域上,而
数据管理的研究范畴远比这宽的多。如
果忽视一些新的应用领域面临的数据管
理问题,就会使数据库研究局限于传统
的数据管理应用上而失去活力。
在众多新技术应用中,对数据库研
究最具影响力,推动数据库研究进入新
纪元的无疑将是I n t e r n e t 的发展。
Internet从深度和广度两方面对数据库技
术提出了挑战。从深度上讲,Internet环
境中,一些数据管理的基本假设不再成
立,需要重新考虑在新情况下对传统数
据库技术的改进。从广度上讲,新问题的
出现需要开拓思路,寻求创新性的技术
突破。