1.3.5 与SQL Server数据库的比较
很多Oracle从业人员都具有SQL Server的基础,如果读者刚刚有SQL Server转到Oracle数据库平台,那么有必要了解一下SQL Server和Oracle之间的差异。最明显的区别是Oracle是跨平台的数据库系统,它可以运行在Windows、Linux、UNIX等何种数据平台上,这使得它的应用非常广泛,毕竟目前大中型企业的服务器仍然是UNIX或Linux为主。而SQL Server却只能在Windows平台上运行,但是由于SQL Server与Windows操作系统的整合非常紧密,因此从平台的整合性来说,Windows平台下的SQL Server要比Oracle具有更强的整合性能。
其次,在使用SQL Sserver时,当用户使用企业管理器连接到某个SQL Server实例后,可以同时管理多个数据库,这是因为在SQL Server中,实例就是SQL Server服务器引擎,每个引擎都有一套不为其他实例共享的系统及数据库,因此一个实例可以创建多个数据库。
在Oracle中,实例是由一系列的进程和服务器组成的,与数据库可以是一对一的关系,也就是说一个实例可以管理一个数据;也可以是多对一的关系,也就是说多个实例可以管理一个数据库,其中多个实例组成一个数据库的架构称为集群,简称为RAC,因为全称是Oracle Real Application Clusters。
注意:在Oracle中一个实例不能管理多个数据库,这是与SQL Server的一个明显的区别。
大多数情况下,Oracle的实例与数据库都是一对一的关系,比如在笔者的公司,Dev数据库对应的一个Dev的实例,Prod数据库对应的Prod实例。不同的实例对不同的数据库进行管理,实例与数据库的一对一关系如图1.15所示。
Oracle数据库上的SQL语句也与SQL Server上有一些区别,这两大软件巨头都对ANSI SQL的标准进行了细微的定制,导致有的时候在Oracle数据库上开发的应用程序无法直接迁移到SQL Server,反之亦然。
从易用性上来说,SQL Server很容易上手,而Oracle由于其灵活的体系结构,因此需要一定阶段的学习才能掌握,不过当灵活地掌握了Oracle的体系结构与操作方式后,会发现Oracle数据库比SQL Server更容易控制,也具有更好的性能。