对于初学者,关于客户端工具与数据库服务器的连接总是会存在如下的疑问:
-
我一定要在本地机器上面安装Oracle数据库吗?
-
如果我在本地安装了Oracle数据库,为什么还要配置一个TNS来连接数据库呢,它怎么这么笨呢?
-
如果本地可以不安装数据库,那又怎么弄呢?
-
还有SQL*Plus,PL/SQL Developer和Oracle数据库有什么关系呢?
?
要弄清楚上面的问题和这些名词之间的关系,我下面就以一个比较笨拙的比喻来说明:
首先需要了解两个进程(Windows平台):Oracle数据库进程和Oracle数据库服务监听进程。如果按照这两个进程来划分安装阶段的话,我们可以将安装阶段分为数据库后台系统安装和创建数据库两个阶段,而数据库进程和数据库服务监听进程分别就是两个安装阶段创建的。
而第一个阶段安装完成后,其实Oracle数据库并没有"真正数据库"的功能,因为它只是具备了管理数据库能力的一个基础系统,并不能存储数据。就像盖房子,需要先有块地皮,才能盖房子,但是光地皮它还不是房子。而如果Oracle数据库进程成功启动了,说明?上面我们可以清楚,如果我需要操作数据库服务器,只要如下条件就可以了:
-
知道TNS,即数据库地址相关的信息
-
具备Oracle Net软件层
-
客户端应用
?
TNS的知识已经足够了,那怎么样才能使自己的系统中拥有Oracle Net软件层呢?有几种途径:
-
专门安装Oracle Client软件,可以从Oracle网站下载
-
安装Oracle开发工具,如Form、Report、Discoverer等等,因为这些软件也带了Oracle Net软件层
-
安装Oracle数据库,它也带了Oracle Net软件层
?
而我们需要的是一个客户端应用,以便我们来操作数据库,SQL*Plus就是Oracle很多产品中自带的一个应用工具,而PL/SQL Developer则是第三方公司开发的一个Oracle客户端工具。因此要使用SQL*Plus或者PL/SQL Developer操作数据库之前,我们一般要做的就是进行TNS配置,而要进行TNS配置就需要安装Oracle Net软件层。
综上所述,要操作Oracle数据库,或者说在Oracle数据库环境下进行数据库应用开发,我们最常见的环境组合:
-
开发机器上安装Oracle Client软件,让其具备Oracle Net软件层,进而配置TNS,标识出要连接的数据库信息;并安装PL/SQL Developer这样的Oracle客户端开发工具。而Oracle数据库服务器系统安装在公司的服务器或者"遥远的地方",和开发人员没有关系,只要TNS配置好就行
-
开发机器上安装Oracle数据库,同时也具备了Oracle Net软件层的功能,配置TNS,标识出连接本机上的数据库;同时安装Oracle客户端开发工具
?
这样一来没有条件在自己机器上面安装一个Oracle数据库的同学就可以选择第一个方案,然后找一个有条件同学的数据库服务器或者公司的数据库服务器来进行学习,当然前提是要保证网络连接!