1. 程式人生 > >PLSQL簡介(一)【翻譯】

PLSQL簡介(一)【翻譯】

發展 奇怪 設置 操作系統 fort 成熟 解決 之一 其他

PLSQL簡介(一)【翻譯】

原書:steven feuerstei-oracle PLSQL grogramming 2014


PL / SQL代表“結構化查詢語言和過程語言。 Oracle公司推出了PL / SQL克服SQL中的一些限制並提供更完整的編程解決方案。

什麽是PLSQL

Oracle的PL / SQL語言有幾個定義特征:
它是一種高度結構化,可讀且易於使用的語言,如果您不熟悉編程,PL / SQL是一個很好的起點。你會發現的
它是一種易於學習的語言,並且具有明確的關鍵字和結構來表達你的代碼的意圖。如果您有其他編程語言的經驗,你將很容易適應新的語法。
它是Oracle開發的標準和可移植語言,如果編寫PL / SQL過程或函數以在Oracle中執行數據庫坐在您的筆記本電腦上,您可以將相同的過程移動到數據庫在您的公司網絡上執行它而不做任何更改。 一次編寫,到處運行是Java出現之前很久就有PL / SQL的口號。但對於PL / SQL,無處不在的意思是“到處都有Oracle數據庫”。

它是一種嵌入式語言PL / SQL並非設計用作獨立語言,而是在主機環境中使用。因此,例如,您可以從數據庫中運行PL / SQL程序(例如,通過SQL * Plus接口)。或者,您可以在Oracle De-veloper表單或報表中定義和執行PL / SQL程序(此方法稱為客戶端PL / SQL)。但是,您不能創建一個可以自行運行的PL / SQL可執行文件。

它是一種高性能,高度集成的數據庫語言。現在,在編寫軟件以運行Oracle數據庫時,您有很多選擇。您可以使用Java和JDBC;你可以使用Visual Basic和ODBC;你可以使用Delphi,C ++等。但是,您會發現,使用任何其他語言編寫高效的代碼來訪問PL / SQL中的Oracle數據庫更容易。特別是,Oracle提供某些特定於PL / SQL的增強功能,例如FORALL語句,可以將數據庫性能提高一個數量級或更多。

PLSQL起源

Oracle 公司一直領導軟件行業,為數據庫和應用程序的設計提供聲明式,非過程性的方法。 Oracle服務器技術是世界上最先進,功能最強大,最穩定的關系數據庫之一。它的應用程序開發工具,例如Oracle Forms,通過嚴格依賴“繪制屏幕”方法提供高水平的生產力,可以讓開發人員避免繁重的自定義程序設置。

PLSQL早期版本

在Oracle的早期階段,SQL的聲明性方法與其突破性的關系技術相結合,足以滿足開發人員的需求。但隨著行業的發展,預期上升,需求變得更加嚴格。開發人員需要獲得產品一些更深入的東西。他們需要在表單和數據庫腳本中構建復雜的準則,異常和規則。

1988年,甲骨文公司發布了Oracle版本6,這是其關系的重大進步數據庫技術。該版本的一個關鍵組成部分是所謂的程序性選項,或PL / SQL。幾乎在同一時間,Oracle發布了期待已久的升級版到SQL * Forms版本2.3(現在稱為Oracle的產品的原始名稱表格或表格開發者)。 SQL * Forms v3包含了PL / SQL引擎,第一次在工具方面,允許開發人員編寫他們的程序邏輯自然,直截了當的方式。

PL/SQL的第一次發布在其能力上是非常有限的。在服務器端,您只能使用PL/SQL來構建過程和SQL狀態的“批處理”腳本。不能在服務器中構造模塊化應用程序或存儲業務規則。在客戶端,SQLFraseV3.0確實允許您創建過程和函數,雖然對函數的支持未被記錄,因此多年來它們沒有被許多開發人員使用。此外,PL/SQL的這種發布沒有對數組進行支持,並且不能與操作系統(輸入輸出)交互。這與一門成熟的編程語言相去甚遠。

但是由於它的所有的這些的局限性,PL / SQL在開發人員社區中得到了熱烈的,甚至是熱情的。對在SQL * Forms中編寫簡單IF語句的能力的渴望很強烈。執行多SQL語句批處理的需求勢不可擋。

當時很少有開發人員意識到PL / SQL背後的原始動機和驅動超出了對SQL * Forms等程序控制內部產品的需求。在Oracle數據庫和工具的生命周期的早期,Oracle公司已經認識到其架構中的兩個關鍵弱點:缺乏可移植性和執行權限問題。

改善可移植性

對於熟悉Oracle公司的人來說,對可移植性的擔憂可能有點奇怪poration的營銷和技術策略。 Oracle解決方案的標誌之一 -
從20世紀80年代初開始的是它的移植行。在PL / SQL出現的時候,基於C的數據庫在許多不同的操作系統和硬件平臺上運行。SQL * Plus和SQL * Forms可輕松適應各種終端配置。然而所有這些報道,仍然有許多應用程序需要更復雜比如COBOL,C和FORTRAN等宿主語言提供的顆粒度控制。如一旦開發人員走出端口中立的Oracle工具,最終的應用程序將不再是便攜式的。

PL / SQL語言是(並且是)旨在擴大應用範圍 ,可以在獨立於操作系統的編程中完全處理的工具。今天Java和其他編程語言提供了類似的可移植性。然而PL / SQL作為該領域的早期先驅脫穎而出,當然,它繼續允許開發人員編寫高度可移植的應用程。

改進執行權限於事務的完整性

比可移植性更基本的問題是執行權限。數據庫SQL語言可以讓您嚴格控制對任何特定內容的訪問和更改
數據庫表。例如,使用GRANT命令,您可以確保只有某些角色和用戶可以對給定的表執行UPDATE。這個GRANT 命令在另一方面,無法確保用戶對大多數業務對於一個或多個表做出正確的執行順序。

PL/SQL語言提供了對邏輯事務的嚴格控制和管理。一方面,PL/SQL是通過執行權限的實現來實現的。相反,授予角色或用戶更新表的權限時,只授予權限執行一個過程,該過程控制並提供對基礎數據結構的訪問。 該過程由不同的Oracle數據庫架構(“定義者”)所擁有。 然後,授予這些需要事務的表的更新權限。 程序因此稱為事務的“看門人”。一個程序(不管它是oracle-forms還是pro-c可執行文件)的唯一方法是通過該過程,從這個角度,應用程序的事務的完整性就得到了保障。

PLSQL簡介(一)【翻譯】