解析Oracle Database Concepts 12c(1)

Jet_Zhang發表於2017-06-02

1 Oracle Database簡介

關於關聯式資料庫
從定義上來說,資料庫是按照某種定義組織好的資料的集合。它能提供資料的採集、儲存和獲取等功能。

資料庫管理系統(DBMS)
資料庫管理系統就是為實現資料庫功能的軟體實現。通常,一個資料庫管理系統包含:

- 核心(Kernel code):記憶體、儲存管理等

- 後設資料(Repository of metadata):也就是資料字典

- 查詢語言(Query language):用來運算元據

現在說到資料庫,首先第一反應的肯定是關聯式資料庫,但是資料庫型別當然不只有關聯式資料庫,還有層次資料庫、網狀資料庫等,只是目前關聯式資料庫是最被廣泛使用的。

關係模型
說到關聯式資料庫,就不得不說到一個人,那就是E.F.Codd,這位天才型的人物在1970年在他的那篇著名的論文 中,首次提出了資料庫系統的關係模型,開創了資料庫關係方法和關係資料理論的研究,為現代資料庫技術奠定了基礎。當然,除了E.F.Codd,還有很多大師級的人物也對關聯式資料庫的發展做出了卓越的貢獻,如C.J.Date(《Database Design and Relational Theory》、《Database in Depth》、《SQL and Relational Theory》等經典書籍的作者,為關聯式資料庫的普及做出了巨大的貢獻),Jim Gray(在事務處理方面有突出的貢獻,使得關係模式技術實用化,《Transaction Processing: Concepts and Techniques》是他留下的鉅著),Michael Stonebraker(Ingres的創始人,Postgres的締造者,提出了物件關聯式資料庫模型),Jeffrey D. Ullman(國際知名的資料庫專家,資料庫領域教育專家,他的著作《A First Course in Database Systems》、《Database System Implementation》是資料庫技術人員的案頭必備書籍)。還有一位特別提一下,Peter Chen(陳品山,華裔科學家,臺灣人),提出了ER模型,為關聯式資料庫應用的開發提供了非常便利的工具。

好,回到正題。關係模型以二維表的形式來表示實體及實體間的聯絡。在關係模型中,主要包含三方面的內容:

- 資料結構(Structure)

- 資料操作(Operation)

- 完整性規則(Intergrity Rule)

其中資料結構簡單點理解,就是二維表結構,主要的概念有:

- 關係(Relation):一個關係對應著一個二維表

- 元祖(Tuple):在二維表中的一行,稱為一個元組

- 屬性(Attribute):在二維表中的列,稱為屬性

- 值域(Domain):屬性值的取值範圍

資料操作是在資料結構的基礎上定義的一系列操作,包括除、並、交、差、笛卡爾積、選擇、投影、連線等,使得能夠在不知道底層資料結構的情況下運算元據。

完整性規則定義了取值範圍,將資料限定在一個有限的域內,使得運算元據成為可能。

關聯式資料庫管理系統(RDBMS)
顧明思議,在關係模型的基礎上實現的資料庫管理系統。不過現在的關聯式資料庫也不是單純的關聯式資料庫,很多都實現了物件導向的功能,稱為ORDBMS。Oracle當然也不例外。
關聯式資料庫一個很大的進步是使資料抽象到了一個更高的層次。在層次資料庫和網狀資料庫中,使用者在運算元據時,是需要明確資料的儲存結構的,並指出儲存路徑。而關聯式資料庫則較好的解決了這個問題。關聯式資料庫將資料抽象為兩層:邏輯層和物理層。邏輯層就是使用者看到的二維表。使用者只需關心邏輯層就夠了,至於資料在磁碟上如何組織的,又是如何從磁碟上讀取的等等這些底層的操作統統交給關聯式資料庫系統就可以了(所以關聯式資料庫遮蔽了底層的資料儲存細節,但是使用者還是需要了解邏輯層的結構,未來是不是可以連邏輯層也不用瞭解了呢?)。

Oracle資料庫簡史
Oracle資料庫已經發展超過了35年,並且還在不斷持續的發展和創新:

- Oracle的成立
 1977年,Larry Ellison,Bob Miner和Ed Oates成立了SDL公司,之後改名為RSI。然後在1983年的時候,更名為Oracle。

- 第一個商業RDBMS

 1979年,Oracle釋出了世界上第一款商業關聯式資料庫Oracle V2

- 第一款多平臺的關聯式資料庫

 1983年釋出的Oracle V3,是第一款可以在大型機、小型機以及PC伺服器上執行的多平臺關聯式資料庫系統。系統採用C語言開發(要知道直到1989年第一個C語言標準才誕生,用C語言開發在當時是有很
 大的風險性的)。

- 不斷加強的併發控制、分散式和擴充套件性

 Oracle V4引入了多版本讀一致性的能力。1985年釋出的V5支援C/S模式和分散式計算。V6版本加強了I/O,行鎖、擴充套件性以及備份恢復,同時引入了PL/SQL。

- PL/SQL Stored Program Units(不知道怎麼翻譯好^V^)

 1992年釋出的Oracle V7引入了PL/SQL儲存過程和觸發器。

- 物件和分割槽

 1997年釋出的Oracle 8引入了物件關係的概念,支援更多的資料型別。同時也引入了分割槽技術以支援更大的表。

- 網路計算(Internet Computing)

 1999年釋出的Oracle 8i,原生支援網際網路協議和服務端Java,支援多層環境的部署。

- Oracle RAC

 2001年釋出的Oracle 9i引入了RAC技術,同時引入了Oracle XML DB。

- 網格計算(Grid Computing)

 2003年釋出的Oracle 10g引入了網格計算,Oracle ASM也是在這一版本中引入的。

- 更方便的管理,更智慧的診斷,更高的可用性

 2007年釋出的Oracle 11g引入了眾多的特性,使得資料庫更加智慧。

- 接入雲端

 2013年釋出的Oracle 12c引入了眾多雲的概念,包括多租戶、記憶體計算、JSON等。

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

相關文章