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