關係資料庫
(英語:Relational database),是建立在關係模型基礎上的資料庫。
關係模型可以簡單理解為二維表格模型,而一個關係型資料庫就是由二維表及其之間的關係組成的一個數據組織。
關係型資料庫中有許多張表,每張表表示現實世界的各種實體。各種實體之間的聯絡均用關係模型來表示。
特點
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效能也受到了諸多的限制。
關係資料庫
(英語:Relational database),是建立在關係模型基礎上的資料庫。
關係模型可以簡單理解為二維表格模型,而一個關係型資料庫就是由二維表及其之間的關係組成的一個數據組織。
關係型資料庫中有許多張表,每張表表示現實世界的各種實體。各種實體之間的聯絡均用關係模型來表示。
特點
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效能也受到了諸多的限制。