〓資料庫的分類〓 資料庫通常分為層次式資料庫、網路式資料庫和關係式資料庫三種。而不同的資料庫是按不同的數據結構來聯繫和組織的。 而在當今的互聯網中,最常見的資料庫模型主要是兩種,即關係型資料庫和非關係型資料庫。 資料庫分類 〓關係型資料庫介紹〓 1、關係型資料庫的由來 雖然網狀資料庫和層次資料庫已經 ...
〓資料庫的分類〓
資料庫通常分為層次式資料庫、網路式資料庫和關係式資料庫三種。而不同的資料庫是按不同的數據結構來聯繫和組織的。
而在當今的互聯網中,最常見的資料庫模型主要是兩種,即關係型資料庫和非關係型資料庫。
〓關係型資料庫介紹〓
1、關係型資料庫的由來
雖然網狀資料庫和層次資料庫已經很好的解決了數據的集中和共用問題,但是在資料庫獨立性和抽象級別上扔有很大欠缺。用戶在對這兩種資料庫進行存取時,仍然需要明確數據的存儲結構,指出存取路徑。而關係型資料庫就可以較好的解決這些問題。
2、關係型資料庫介紹
關係型資料庫模型是把複雜的數據結構歸結為簡單的二元關係(即二維表格形式)。在關係型資料庫中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關聯的表格分類、合併、連接或選取等運算來實現資料庫的管理。
關係型資料庫誕生40多年了,從理論產生髮展到現實產品,例如:Oracle和MySQL,Oracle在資料庫領域上升到霸主地位,形成每年高達數百億美元的龐大產業市場。
3、關係型資料庫表格之間的關係舉例
![](http://upload-images.jianshu.io/upload_images/228680-945f5401f695df78.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/683)
〓非關係型資料庫介紹〓
1、非關係型資料庫誕生背景
NoSQL,泛指非關係型的資料庫。隨著互聯網web2.0網站的興起,傳統的關係資料庫在應付web2.0網站,特別是超大規模和高併發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以剋服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。NoSql資料庫在特定的場景下可以發揮出難以想象的高效率和高性能,它是作為對傳統關係型資料庫的一個有效的補充。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關係型的數據存儲,相對於鋪天蓋地的關係型資料庫運用,這一概念無疑是一種全新的思維的註入。
2、非關係型資料庫種類
(1)鍵值存儲資料庫(key-value)
鍵值資料庫就類似傳統語言中使用的哈希表。可以通過key來添加、查詢或者刪除資料庫,因為使用key主鍵訪問,所以會獲得很高的性能及擴展性。
鍵值資料庫主要使用一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對於IT系統來說的優勢在於簡單、易部署、高併發。
典型產品:Memcached、Redis、MemcacheDB
(2)列存儲(Column-oriented)資料庫
列存儲資料庫將數據存儲在列族中,一個列族存儲經常被一起查詢的相關數據,比如人類,我們經常會查詢某個人的姓名和年齡,而不是薪資。這種情況下姓名和年齡會被放到一個列族中,薪資會被放到另一個列族中。
這種資料庫通常用來應對分散式存儲海量數據。
典型產品:Cassandra、HBase
(3)面向文檔(Document-Oriented)資料庫
文檔型資料庫的靈感是來自於Lotus Notes辦公軟體,而且它同第一種鍵值資料庫類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。
面向文檔資料庫會將數據以文檔形式存儲。每個文檔都是自包含的數據單元,是一系列數據項的集合。每個數據項都有一個名詞與對應值,值既可以是簡單的數據類型,如字元串、數字和日期等;也可以是複雜的類型,如有序列表和關聯對象。數據存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的,數據可以使用XML、JSON或JSONB等多種形式存儲。
典型產品:MongoDB、CouchDB
(4)圖形資料庫
圖形資料庫允許我們將數據以圖的方式存儲。實體會被作為頂點,而實體之間的關係則會被作為邊。比如我們有三個實體,Steve Jobs、Apple和Next,則會有兩個“Founded by”的邊將Apple和Next連接到Steve Jobs。
典型產品:Neo4J、InforGrid