app數(shù)據(jù)庫有哪些
數(shù)據(jù)庫共有3種類型,為關(guān)系數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫和鍵值數(shù)據(jù)庫。
一、關(guān)系型數(shù)據(jù)庫的簡要介紹
關(guān)系型數(shù)據(jù)庫模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡單的二元關(guān)系(即二維表格形式)。在關(guān)系型數(shù)據(jù)庫中,對數(shù)據(jù)的操作幾乎全部建立在一個或多個關(guān)系表格上,通過對這些關(guān)聯(lián)的表格分類、合并、連接或選取等運算來實現(xiàn)數(shù)據(jù)庫的管理。其實,目前關(guān)系型數(shù)據(jù)庫的具體產(chǎn)品有:Oracle和MySQL。其中Oracle在數(shù)據(jù)庫領(lǐng)域是占領(lǐng)導(dǎo)地位的。
二、非關(guān)系型數(shù)據(jù)庫的簡要介紹
1、鍵值存儲數(shù)據(jù)庫
鍵值數(shù)據(jù)庫就類似傳統(tǒng)語言中使用的哈希表。可以通過key來添加、查詢或者刪除數(shù)據(jù)庫,因為使用key主鍵訪問,所以會獲得很高的性能及擴展性。鍵值數(shù)據(jù)庫主要使用一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù)。Key/value模型對于IT系統(tǒng)來說的優(yōu)勢在于簡單、易部署、高并發(fā);
典型產(chǎn)品:Memcached、Redis、MemcacheDB
2、列存儲數(shù)據(jù)庫
列存儲數(shù)據(jù)庫將數(shù)據(jù)存儲在列族中,一個列族存儲經(jīng)常被一起查詢的相關(guān)數(shù)據(jù),比如人類,我們經(jīng)常會查詢某個人的姓名和年齡,而不是薪資。這種情況下姓名和年齡會被放到一個列族中,薪資會被放到另一個列族中。這種數(shù)據(jù)庫通常用來應(yīng)對分布式存儲海量數(shù)據(jù);這種數(shù)據(jù)庫的典型產(chǎn)品有:Cassandra、HBase
3、面向文檔數(shù)據(jù)庫
文檔型數(shù)據(jù)庫的靈感是來自于Lotus Notes辦公軟件,而且它同第一種鍵值數(shù)據(jù)庫類似。該類型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲,比如JSON。文檔型數(shù)據(jù)庫可以看作是鍵值數(shù)據(jù)庫的升級版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高;
面向文檔數(shù)據(jù)庫會將數(shù)據(jù)以文檔形式存儲。每個文檔都是自包含的數(shù)據(jù)單元,是一系列數(shù)據(jù)項的集合。每個數(shù)據(jù)項都有一個名詞與對應(yīng)值,值既可以是簡單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對象。數(shù)據(jù)存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或JSONB等多種形式存儲。這種數(shù)據(jù)庫的典型產(chǎn)品有:MongoDB、CouchDB;
4、圖形數(shù)據(jù)庫
圖形數(shù)據(jù)庫允許我們將數(shù)據(jù)以圖的方式存儲。實體會被作為頂點,而實體之間的關(guān)系則會被作為邊。比如我們有三個實體,Steve Jobs、Apple和Next,則會有兩個“Founded by”的邊將Apple和Next連接到Steve Jobs。這種數(shù)據(jù)庫的典型產(chǎn)品有:Neo4J、InforGrid。
