摘 要:本文主要闡述“Linux+數據庫”的開發模式,用動態PL/SQL高級數據庫程序設計語言,提出了基于動態PL/SQL的數據庫開發的兩種模式,對動態PL/SQL數據庫服務器進行了設計,并給出了客戶端與數據庫服務器的連接方式。這種基于動態PL/SQL數據庫具有良好的安全和跨平臺效果。
關鍵詞:LinuxPL/SQL數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1674-098X(2011)08(c)-0024-01
1 引言
隨著數據庫技術的普遍應用和Linux操作系統的不斷成熟,很多企業和網站使用了“Linux+數據庫”的模式。Linux與數據庫的結合已成為一種不可逆轉的趨勢。PL/SQL是一種高級數據庫程序設計語言,該語言專用于在各種環境下對Oracle數據庫進行訪問。從該語言的名稱可以看出,PL/SQL是在SQL語言中擴充了面向過程語言中使用的程序結構。
2 數據庫應用模式
在數據庫的應用模式中,又稱邏輯模式或者概念模式,這是對應于數據庫的概念級別。因為用戶的所有數據都是由設計者應用數據庫的模式去體現,按照全局邏輯的結構趨構建統一的數據庫,對所有用戶的全部數據進行邏輯分析,描述數據庫的總體體征,將用戶形成一個公共數據的結構。
2.1 客戶端/服務器模式分析
在數據庫的應用模式中,由客戶端和服務器端組成的模式稱之為客戶端/服務器端,處理用戶界面的稱之為客戶端,管理數據庫的為服務器端。一般情況下,PL/SQL在服務器中,特殊情況下,客戶端也存在PL/SQL引擎。
2.1.1 服務器端PL/SQL:一般情況下,PL/SQL都是在服務器端的,因為這是數據庫的通常結構,服務器中需要處理的數據很多,SQL數據庫是處理中小型數據庫常用的數據庫類型,PL/SQL模塊放在服務器端通常可以實現數據庫的快速讀取,方便客戶快速讀取。在一般用戶的使用中,在客戶端調取數據的時候,為了能快速的訪問到數據庫中的數據,要求數據庫的結構一定要有快速響應的特點,PL/SQL服務器端結構就實現了這個功能,是用戶讀取數據快速準確,客戶的應用程序,可以用Oracle開發還是用別的開發工具去實現這個功能,都可以實現PL/SQL數據庫的快速訪問功能,SQL應用語句可以直接訪問服務器,引擎負責快速的執行訪問功能,使用戶達到快速讀取數據的目的。
2.1.2 客戶端的PL/SQL:除了位于服務器端的PL/SQL引擎外,幾種Oracle開發工具也帶有PL/SQL引擎。由于這些開發工具是運行在客戶端的,所以它們的PL/SQL引擎也運行在客戶端。借助于客戶端的PL/SQL支持,PL/SQL塊中的過程語句就可以在本地運行,而沒有必要送到服務器端。如Oracle Forms應用程序包括了觸發器和過程,這些語句都在客戶端執行,只需將SQL語句和調用服務器端存儲于程序的語句發往服務器進行處理。客戶端的PL/SQL引擎可以處理過程語句。
與服務器端的PL/SQL一樣,應用程序提供的單獨的SQL語句直接通過網絡送往服務器端的SQL語句執行器。不同的是,PL/SQL塊是在客戶端直接處理的。任何過程語句的處理都不會引起網絡傳輸。PL/SQL塊中的SQL語句要提供給SQL語句執行器,對服務器端的存儲子程序的調用則送到服務器端的PL/SQL引擎執行。
2.2 用戶界面、應用邏輯和數據庫模式
在模式中,用戶界面、應用邏輯和數據庫是三個獨立的部分。該模式下的客戶是典型的廋客戶類型,如瀏覽器一類的客戶軟件。應用層邏輯全部位于成為應用服務器的獨立層中,在這種環境下,PL/SQL引擎通常只放置在服務器中。
3 在Linux中基于PL/SQL數據庫服務器設計
在Linux中,設計兩層的應用模式,即服務器端和客戶端,結構如圖1所示。客戶端的主要作用就是與數據庫服務器建立連接,進行數據的查詢、修改和輸入等;Web服務器主要提供網絡的相關功能;數據庫服務器主要用來對客戶端的請求進行相應并進行數據庫的日常維護。
3.1 工作流程
(1)建立與數據庫服務器的連接。包括適當使用服務器認識的用戶名和口令來對連接進行身份認證。建立了連接后,服務器選中要使用的特定數據庫。(2)與數據庫進行連接。其主要目的是運行常規SQL命令,包括添加和刪除表,以及向它們添加記錄;也可以對返回結果的數據庫進行查詢。(3)返回客戶端的查詢結果。(4)關閉客戶端與服務器的連接。
3.2 數據庫的安全分析
建立數據庫后,還必須建立和維護數據庫系統的安全性,這對網絡應用是非常必要的,為了保證網絡數據庫的安全,采取了下面一些方法。
3.2.1 用戶控制。Oracle數據庫安全性的核心是數據庫用戶的帳號。在訪問數據庫的任何對象之前,用戶首先必須用一個有效的帳號和密碼連接到該數據庫。
3.2.2 用戶權限。在創建Oracle用戶后,如果該用戶不能創建自己的數據庫對象或者訪問其它Oracle用戶擁有的對象,那將是沒有意義的。Oracle定義了兩種類型的權限:系統權限和對象權限,用于控制Oracle用戶可進行的操作。
3.2.3 角色。角色是一組系統級權限和各級權限的集合。這些權限被組合在一起,并被賦予一個名字,從而使得它們的授權和收回更加簡單。一旦Oracle用戶定為某個角色,它將自動繼承該角色的所有權限。
3.2.4 配置文件。配置文件可以限制一個Oracle用戶使用的資源,限制一個單獨的調用或整個會話所需要的資源。如果超過了調用級配置文件的限制,該語句就會失敗;如果超過了會話級配置文件的限制,整個會話就會退出,當前沒有完成的事務會自動回滾。
4 客戶端與數據庫服務器的連接
在SQL*Plus下輸入SQL或PL/SQL命令之前,必須先實現與數據庫服務器的連接。一般有兩種常用連接方法:(1)在SQL*Plus命令行輸入用戶標識和口令,或輸入連接字符串。(2)進入SQL*Plus后使用CONNECT語句。用戶通過網頁請求,Web服務器收到后,進行請求的解析并進行信息的打包,通過TCP/IP協議發送到遠方的數據庫;在數據庫服務器端,接收Web服務器的請求,然后根據不同的請求對本機上的數據庫進行不同的操作,最后將結果通過TCP/IP送回到Web服務器。Web服務器接收到返回的結果,對結果進行解包,進行結果的解析并實現在網頁上。
5 結語
隨著科學技術的快速發展,計算機技術和數據庫技術也得到了相應的發展,Linux系統正在不斷成熟,由于基于動態PL/SQL的數據庫開發具有實現簡單,功能強大,可靠和跨平臺等優點,所以“Linux+數據庫”的模式的應用越來越廣泛。
參考文獻
[1]王錦標,編著.計算機控制系統.清華大學出版社.2008.
[2]張炯明.安全電子商務實用技術[M].北京:清華大學出版社.2002.