複製鏈接
請複製以下鏈接發送給好友

關係型數據庫

(數據庫類型)

編輯 鎖定
關係型數據庫,是指採用了關係模型來組織數據的數據庫,其以行和列的形式存儲數據,以便於用户理解,關係型數據庫這一系列的行和列被稱為表,一組表組成了數據庫。用户通過查詢來檢索數據庫中的數據,而查詢是一個用於限定數據庫中某些區域的執行代碼。關係模型可以簡單理解為二維表格模型,而一個關係型數據庫就是由二維表及其之間的關係組成的一個數據組織。 [1] 
中文名
關係型數據庫
外文名
Relational database
定    義
採用了關係模型來組織數據的數據庫
存儲方式
表格
常見類型
Oracle,SQLServer等
領    域
計算機技術

關係型數據庫特點

編輯
1.存儲方式:傳統的關係型數據庫採用表格的儲存方式,數據以行和列的方式進行存儲,要讀取和查詢都十分方便。
2.存儲結構:關係型數據庫按照結構化的方法存儲數據,每個數據表都必須對各個字段定義好(也就是先定義好表的結構),再根據表的結構存入數據,這樣做的好處就是由於數據的形式和內容在存入數據之前就已經定義好了,所以整個數據表的可靠性和穩定性都比較高,但帶來的問題就是一旦存入數據後,如果需要修改數據表的結構就會十分困難。
3.存儲規範:關係型數據庫為了避免重複、規範化數據以及充分利用好存儲空間,把數據按照最小關係表的形式進行存儲,這樣數據管理的就可以變得很清晰、一目瞭然,當然這主要是一張數據表的情況。如果是多張表情況就不一樣了,由於數據涉及到多張數據表,數據表之間存在着複雜的關係,隨着數據表數量的增加,數據管理會越來越複雜。
4.擴展方式:由於關係型數據庫將數據存儲在數據表中,數據操作的瓶頸出現在多張數據表的操作中,而且數據表越多這個問題越嚴重,如果要緩解這個問題,只能提高處理能力,也就是選擇速度更快性能更高的計算機,這樣的方法雖然可以一定的拓展空間,但這樣的拓展空間一定有非常有限的,也就是關係型數據庫只具備縱向擴展能力。
5.查詢方式:關係型數據庫採用結構化查詢語言(即SQL)來對數據庫進行查詢,SQL早已獲得了各個數據庫廠商的支持,成為數據庫行業的標準,它能夠支持數據庫的CRUD(增加,查詢,更新,刪除)操作,具有非常強大的功能,SQL可以採用類似索引的方法來加快查詢操作。
6.規範化:在數據庫的設計開發過程中開發人員通常會面對同時需要對一個或者多個數據實體(包括數組、列表和嵌套數據)進行操作,這樣在關係型數據庫中,一個數據實體一般首先要分割成多個部分,然後再對分割的部分進行規範化,規範化以後再分別存入到多張關係型數據表中,這是一個複雜的過程。好消息是隨着軟件技術的發展,相當多的軟件開發平台都提供一些簡單的解決方法,例如,可以利用ORM層(也就是對象關係映射)來將數據庫中對象模型映射到基於SQL的關係型數據庫中去以及進行不同類型系統的數據之間的轉換。
7.事務性:關係型數據庫強調ACID規則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)),可以滿足對事務性要求較高或者需要進行復雜數據查詢的數據操作,而且可以充分滿足數據庫操作的高性能和操作穩定性的要求。並且關係型數據庫十分強調數據的強一致性,對於事務的操作有很好的支持。關係型數據庫可以控制事務原子性細粒度,並且一旦操作有誤或者有需要,可以馬上回滾事務。
8.讀寫性能:關係型數據庫十分強調數據的一致性,併為此降低讀寫性能付出了巨大的代價,雖然關係型數據庫存儲數據和處理數據的可靠性很不錯,但一旦面對海量數據的處理的時候效率就會變得很差,特別是遇到高併發讀寫的時候性能就會下降的非常厲害。
9.授權方式:關係型數據庫常見的有 Oracle,SQLServer,DB2,Mysql,除了Mysql大多數的關係型數據庫如果要使用都需要支付一筆價格高昂的費用,即使是免費的Mysql性能也受到了諸多的限制。 [2] 

關係型數據庫設計步驟

編輯
關係型數據庫設計的過程可大體分為四個時期七個階段。
(1)用户需求分析時期,主要是瞭解和分析用户對數據的功能需求和應用需求,是整個設計過程的基礎,事關整個數據庫應用系統設計的成敗。
(2)數據庫設計時期,主要是將用户需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的數據模型,可用實體—聯繫模型來表示,然後將其轉換為已選好的關係型數據庫管理系統RDBMS所支持的一組關係模式併為其選取一個適合應用環境的物理結構,包括存儲結構和存取方法。
(3)數據庫實現時期,包括數據庫結構創建階段和應用行為設計與實現階段,是根據數據庫的物理模型創建數據庫、創建表、創建索引、創建聚簇等。
(4)數據庫運行與維護階時期,最後一個階段則是數據庫應用系統經過試運行後即可投入正式運行。 [3] 

關係型數據庫設計原則

編輯
在進行關係型數據庫的設計過程中,要遵循以下幾個原則,藉此可以提高數據庫的存儲效率、數據完整性和可擴展性。
1 .命名規範化
在概念模型設計中,對於出現的實體、屬性及相關表的結構要統一。例如在數據庫設計中,指定學生Sstudent,專指本科生,相關的屬性有:學號、姓名、性別、出生年月等,及每個屬性的類型、長度、取值範圍等都要進行確定,這樣就能保證在命名時不會出現同名異義或異名同義、屬性特徵及結構衝突等問題。
2 .數據的一致性和完整性
在關係型數據庫中可以採用域完整性、實體完整性和參照完整性等約束條件來滿足其數據的一致性和完整性,用check、default、null、主鍵和外鍵約束來實現。
3.數據冗餘
數據庫中的數據應儘可能地減少冗餘,這就意味着重複數據應該減少到最少。例如:若一個部門職員的電話存儲在不同的表中,假設該職員的電話號碼發生變化時,冗餘數據的存在就要求對多個表進行更新操作,若某個表不幸被忽略了,那麼就會造成數據不一致的情況。所以在數據庫設計中一定要儘可能存在少地冗餘。
4.範式理論
在關係數據庫設計時,一般是通過設計滿足某一範式來獲得一個好的數據庫模式,通常認為3NF在性能、擴展性和數據完整性方面達到了最好的平衡,因此,一般數據庫設計要求達到3NF,消除數據依賴中不合理的部分,最終實現使一個關係僅描述一個實體或者實體間一種聯繫的目的。 [3] 

關係型數據庫常用關係型數據庫

編輯
主流的關係型數據庫有Oracle、DB2、MySQLMicrosoft SQL Server、Microsoft Access等多個品種,每種數據庫的語法、功能和特性也各具特色。
Oracle數據庫是由甲骨文公司開發,並於1989年正式進入中國市場。雖然當時的Oracle尚名不見經傳,通過多年的發展積聚了眾多領先性的數據庫系統開發經驗,在集羣技術、高可用性、安全性、系統管理等方面都取得了較好的成績。Oracle產品除了數據庫系統外,還有應用系統、開發工具等。在數據庫可操作平台上,Oracle可在所有主流平台上運行,因而可通過運行於較高穩定性的操作系統平台,提高整個數據庫系統的穩定性。
MySQL數據庫是一種開放源代碼的關係型數據庫管理系統(RDBMS),可以使用最常用結構化查詢語言進行數據庫操作。也因為其開源的特性,可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL數據庫因其體積小、速度快、總體擁有成本低而受到中小企業的熱捧,雖然其功能的多樣性和性能的穩定性差強人意,但是在不需要大規模事務化處理的情況下,MySQL也是管理數據內容的好選擇之一。
Microsoft SQL Server數據庫最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,於1988 年推出了第一個操作系統版本。在Windows NT 推出後,Microsoft 將SQL Server 移植到Windows NT系統上,因而SQL Server數據庫伴隨着Windows操作系統發展壯大,其用户界面的友好和部署的簡捷,都與其運行平台息息相關,通過Microsoft的不斷推廣,SQL Server數據庫的佔有率隨着Windows操作系統的推廣不斷攀升。 [1] 
參考資料