對於初學者,關於客戶端工具與數據庫服務器的連接總是會存在如下的疑問:
-
我一定要在本地機器上面安裝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數據庫的同學就可以選擇第一個方案,然后找一個有條件同學的數據庫服務器或者公司的數據庫服務器來進行學習,當然前提是要保證網絡連接!