解析Oracle Database Concepts 12c(2)

Jet_Zhang發表於2017-06-02

模式物件(Schema Objects)

Schema,通常翻譯為模式,在Oracle中模式指的是一組邏輯資料結構,如表、索引、儲存過程、觸發器等,這些也稱作模式物件(shcema objects)的集合。一個資料庫使用者擁有一個模式,模式的名稱和使用者名稱是一樣的。這和PostgreSQL是有區別的,在PostgreSQL中,使用者和模式是分離的,當然使用者名稱和模式名也可以是相同的,這樣就和Oracle相容了。

Oracle支援很多種模式物件,其中最重要的兩種是:表和索引。關於表和索引的基本概念這裡就不在累述了,這方面的知識推薦閱讀Jeffrey D. Ullman的《A First Course in Database Systems》、《Database System Implementation》.目前這兩本書已經被原著者合併成《Database Systems: The Complete Book 》,不過目前國內貌似還買不到。題外話了,呵呵。

與之相對應的還有一個是資料庫物件(database objects)。這兩個有什麼關係呢?這麼說吧,模式物件肯定是資料庫物件,但資料庫物件不一定是模式物件,如profile,role這類就不是模式物件。

資料訪問(Data Access
Structured Query Language,簡稱SQL。SQL是一種宣告式語言。像C,Java這類語言,為完成一個事項如交換兩個變數的值,我們需要清楚的描述好每一步動作,這類語言我們稱之為過程式語言。而SQL就不一樣了,比如為了獲取所有名叫“張三”的學生,只要指明獲取students這張表中name是“張三”的就可以了,至於如何獲取的,要不要用索引等等這些不是SQL關心的。簡言之,過程式語言描述的是如何做,而宣告式語言描述的是做什麼。

ANSI針對關聯式資料庫制定了一套標準的SQL,最新的標準為SQL-2003。Oracle支援ANSI的SQL標準,但同時也做了很多的擴充套件,Oracle把它叫做Oracle SQL。所以針對Oracle開發的應用要在其它資料庫上跑,那通常只能是呵呵了。

PL/SQL和Java
PL/SQL擴充套件了Oracle SQL的能力,增加了變數、過程控制、錯誤處理等。所以總結來說,PL/SQL是能夠處理SQL的過程式語言。除了用PL/SQL外,還可以選擇Java。而且兩者是能夠互相呼叫的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13885898/viewspace-2140232/,如需轉載,請註明出處,否則將追究法律責任。

相關文章