摘 要:隨著Linux系統廣泛應用,數據庫的開發至關重要。本文主要闡述“Linux+數據庫”的開發模式,用動態PL/SQL高級數據庫程序設計語言,提出了基于動態PL/SQL的數據庫開發的兩種模式,對動態PL/SQL數據庫服務器進行了設計,并給出了客戶端與數據庫服務器的連接方式。這種基于動態PL/SQL數據庫具有良好的安全和跨平臺效果。
關鍵詞:Linux PL/SQL 數據庫
中圖分類號:TP2文獻標識碼:A文章編號:1674-098X(2011)04(c)-0015-01
1 概述
Linux是一類Unix計算機操作系統的統稱。Linux操作系統的內核的名字也是“Linux”。Linux操作系統也是自由軟件和開放源代碼發展中最著名的例子。嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統。Linux得名于計算機業余愛好者Linus Torvalds。Linux符合POSIX標準,具有多任務、多用戶、設備獨立、自由代碼和自由軟件等特點。Linux最具代表性的應用是與數據庫結合。隨著數據庫技術的普遍應用和Linux操作系統的不斷成熟,很多企業和網站使用了“Linux+數據庫”的模式。Linux與數據庫的結合已成為一種不可逆轉的趨勢。
PL/SQL是一種高級數據庫程序設計語言,該語言專用于在各種環境下對Oracle數據庫進行訪問[2]。它將第四代語言(SQL)的強大功能和靈活性與第三代語言(C++, Java)的過程結構的優勢融為一體。從該語言的名稱可以看出,PL/SQL是在SQL語言中擴充了面向過程語言中使用的程序結構,如:變量和類型、控制語句、過程和函數、對象類型和方法。PL/SQL語言實現了過程結構與SQL的無縫集成,從而為用戶提供一種功能強大的結構化程序設計語言。動態PL/SQL語句限制更少,許多必須要在編譯時知道的事情在運行時刻之前可以不確定。需要的話,可以將整個SQL語句等到運行時刻再確定。
2 數據庫應用模式
模式又稱概念模式或邏輯模式,對應于概念級。它是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據模式描述語言(Data Description Language,DDL)來描述、定義的,體現、反映了數據庫系統的整體觀。數據庫應用程序分為三個部分:用戶界面、應用邏輯和數據庫。為了編譯并運行一個PL/SQL快,程序員必須將該塊提供給PL/SQL引擎來處理。借助于Oracle公司和其它開發商提供的開發工具,PL/SQL可以用于應用程序的各個層次。
2.1 客戶端/服務器模式
在這種模式中,應用程序由客戶端和服務器端兩部分組成。客戶端負責處理用戶界面,而服務器端管理數據庫。通常,PL/SQL引擎駐留在服務器端,在個別情況下,PL/SQL引擎也可以駐留在客戶端。
服務器端的PL/SQL:從Oracle6.0版開始,PL/SQL引擎就駐留在數據庫服務器端,這也是PL/SQL引擎的默認位置。由于數據庫服務器可以處理SQL語言,所以SQL語句和PL/SQL塊都可以送到該服務器進行處理。一個客戶應用程序,不管是用Oracle開發工具實現或使用其它開發工具編制的,都可以向數據庫服務器提供SQL語句和PL/SQL塊。PL/SQL塊和SQL語句通過網絡送往服務器。一旦服務器收到了這些內容,SQL語句將直接進服務器內含的SQL語句執行器,而PL/SQL塊則送往PL/SQL引擎進行語法分析。在PL/SQL塊運行期間,PL/SQL引擎負責執行過程語句(如賦值語句和存儲過程調用等)。對于該塊中出現的SQL語句(如Select語句等),PL/SQL引擎講它們送往SQL語句執行器執行。
2.2 用戶界面、應用邏輯和數據庫模式
在模式中,用戶界面、應用邏輯和數據庫是三個獨立的部分。該模式下的客戶是典型的廋客戶類型,如瀏覽器一類的客戶軟件。應用層邏輯全部位于成為應用服務器的獨立層中,在這種環境下,PL/SQL引擎通常只放置在服務器中。
3 在Linux中基于PL/SQL數據庫服務器設計
在Linux中,設計兩層的應用模式,即服務器端和客戶端,結構如圖1所示。客戶端的主要作用就是與數據庫服務器建立連接,進行數據的查詢、修改和輸入等;Web服務器主要提供網絡的相關功能;數據庫服務器主要用來對客戶端的請求進行相應并進行數據庫的日常維護。
3.1 工作流程
(1)建立與數據庫服務器的連接。包括適當使用服務器認識的用戶名和口令來對連接進行身份認證。建立了連接后,服務器選中要使用的特定數據庫。(2)與數據庫進行連接。其主要目的是運行常規SQL命令,包括添加和刪除表,以及向它們添加記錄;也可以對返回結果的數據庫進行查詢。(3)返回客戶端的查詢結果。(4)關閉客戶端與服務器的連接。
3.2 數據庫的安全分析
建立數據庫后,還必須建立和維護數據庫系統的安全性,這對網絡應用是非常必要的,為了保證網絡數據庫的安全,采取了下面一些方法。
(1)用戶控制。Oracle數據庫安全性的核心是數據庫用戶的帳號。在訪問數據庫的任何對象之前,用戶首先必須用一個有效的帳號和密碼連接到該數據庫。
(2)用戶權限。在創建Oracle用戶后,如果該用戶不能創建自己的數據庫對象或者訪問其它Oracle用戶擁有的對象,那將是沒有意義的。Oracle定義了兩種類型的權限:系統權限和對象權限,用于控制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.
[3]周文艷,夏麗麗.電子商務中的數據庫技術.科技創新導報,2010年第32期.
[4]王迎云,卞顯銳.淺述電子商務安全.科技創新導報,2009年第10期.