顧恩碩+劉海粟+白雪
摘 要:關系數據庫,是建立在關系模型基礎上的數據庫,是借助于在數學概念和方法來處理數據庫中的數據。在現實世界中,各種實體以及他們之間的各種聯系均用關系模型來表示。關系模型由關系數據結構、關系操作集合、關系完整性約束三部分組成,集中表現在數據的模型發展上。從最初的層次結構、網狀模型結構發展到今天的關系數據庫模型,數據庫發生了飛速的變化,在變化的過程中,關系模型的出現,是數據庫在發展路程中的一座重要的里程碑,關系理論研究和關系型數據庫管理系統研究的成功,進一步促進了關系數據庫的發展。使得關系型數據模型成為具有統治地位的數據模型。
關鍵詞:數據庫;關系模型;關系數據庫
通俗地說,關系型數據庫就是采用了關系模型來組織數據的數據庫。簡單來說,關系模型就是一個類似于二維表格的模型,而關系型數據庫就是由二維表格及其中含有的數據所組成的一個數據組織。在關系數據庫中,有些名詞需要我們了解:
關系:通俗地說,在一張二維表格中,每個關系都具有一個關系名,就是通常說的表名table。
屬性:在二維表格中也就是類似于excel表格中的一列,在數據庫中被稱為字段。
域:屬性的取值范圍,也就是數據庫中某一字段的屬性限制條件。
關鍵字:一組可以唯一標識元組的屬性。數據庫中常稱為主鍵,由一個或多個列組成。
關系模式:指對關系的描述,其格式為:關系名(屬性1,屬性2,…,屬性N)。也就是數據庫中的表結構。
隨著數據庫應用領域的擴展以及數據對象的多樣化,傳統的關系數據模型暴露出了許多問題,如對復雜對象的表述能力差,表達能力較弱。為此,人們提出了許多新的數據模型,下面筆者向大家介紹一下以前的數據庫的主要特點:數據不保存、系統沒有專用的軟件對數據進行管理、數據不共享、數據不具有獨立性。
在文件系統層面上,數據可以以文件的形式進行長期保存,數據交由文件系統管理數,獨立的機制使得程序與數據之間具有一定的獨立性但在這個結構中,數據的獨立性、共享性差,冗余度大、易造成數據傳輸之間的不一致性。
在數據庫系統層面上,數據可以結構化,數據之間的共享性提高,冗余度小,一個用戶可以擁有多個數據庫,因此數據獨立性高,數據控制功能也變得統一起來。其中大可分為4類:
第一類,數據安全性控制;第二類,數據完整性控制;第三類,數據的并發控制;第四類,數據管理與恢復。
數據結構化,在數據庫系統中,將數據按照一定的數據模型插入到一個結構化的數據庫中,需要考慮此數據庫的數據結構,還需要考慮連接數據后的數據結構,而在以前的數據庫中,這些,是我們看不到的。下面,筆者將就幾個方面對其進行分析:
非關系型數據庫的實質:非關系型數據庫產品是傳統關系型數據庫的縮略版本,通過減少功能,來大幅度提升產品性能,類似于我們平時游戲中的資料篇。
目前市場上流通的大部分主流的非關系型數據庫基本上都是免費的。而大公司中,名氣大的關系型數據庫開發軟件,比如Oracle、DB2是收費的。這在很大程度上限制了一些平民用戶的使用。但是在實際開發中,有很多小型的業務需求,并不需要完整的關系型數據庫進行組建,非關系型數據庫的功能就足夠了。這種情況下,使用性能高、成本低的非關系型數據庫當然是我們的首選。在性能上NOSQL是基于鍵值對的,可以理解成類似于Java中和HashMap中的鍵值對,數據表中的主鍵和值也具有相同對應關系,但在使用過程中是不需要經過SQL層的解析,所以性能非常高是它的主要優點。同樣,它也具有良好的可擴展性,這也是基于鍵值對,數據之間存在相當低的耦合度,所以在使用的時候非常容易擴展。
在SQL語言中,關系型數據庫對其也具有獨特的解讀優勢:在復雜查詢語句中,可以用SQL語句根據表連接、嵌套、子句等方法方便地在一個表或多個表之間做復雜的數據查詢,且代碼的冗余性很低,這也使得數據庫對于安全性能要求很高的數據得以訪問,對于非關系型數據庫,就沒有這些優點。
但是近年來的發展中,兩種數據庫類型都在不同的需求市場中發展著,雖然有所交集,但是這并不影響數據庫的進化方向。比如,NOSQL數據庫自從2008年的更新版本以后,慢慢開始具備SQL數據庫的一些復雜查詢功能,并隨著服務端的更新,這方面的功能日益完善,而SQL數據庫也在慢慢地進化著,在數據庫平臺上HandlerSocker技術的出現,可以在MYSQL上實現對于數據庫SQL層的穿透,在非NOSQL數據庫上使用NOSQL的方式訪問數據庫,可以實現無中心化的集群等特點,更是向我們說明了數據庫在這些年間的變化。
對于研究數據庫的人來說,或許關系型數據庫只是數據庫眾多實現中的一個特例模型,在數據庫中,類型的劃分具有嚴格的限制。科學家們用嚴格的數學公式和邏輯形式定義了數據關系以及其中的各種運算,雖然這兩極都因為各自的弱勢而開始進化出另一極的一些特性,但是這些特性的增加也會導致數據庫失去一些原本具備的優勢,所以怎樣構建和使用數據庫的系統模型,是數據結構的框架構造工程師需要考慮的問題。
參考文獻:
[1] 王珊.數據庫與信息系統[M].北京:高等教育出版社,2005.
[2] 劉唯一,田雯.數據模型,數據庫技術之一[M].北京.科學出版社,2001.
[3] 李紹原.數據庫技術新進展[M].北京:清華大學出版社,1997.