〓數(shù)據(jù)庫(kù)的分類〓 數(shù)據(jù)庫(kù)通常分為層次式數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)和關(guān)系式數(shù)據(jù)庫(kù)三種;不同的數(shù)據(jù)庫(kù)是按不同的數(shù)據(jù)結(jié)構(gòu)來(lái)聯(lián)系和組織的,。 在當(dāng)今的互聯(lián)網(wǎng)中,,最常見的數(shù)據(jù)庫(kù)模型主要是兩種,即關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù),。 數(shù)據(jù)庫(kù)分類 〓關(guān)系型數(shù)據(jù)庫(kù)介紹〓 1、關(guān)系型數(shù)據(jù)庫(kù)的由來(lái) 雖然網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù)已經(jīng)很好的解決了數(shù)據(jù)的集中和共享問題,,但是在數(shù)據(jù)庫(kù)獨(dú)立性和抽象級(jí)別上扔有很大欠缺,。用戶在對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),,仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),指出存取路徑,。而關(guān)系型數(shù)據(jù)庫(kù)就可以較好的解決這些問題,。 2、關(guān)系型數(shù)據(jù)庫(kù)介紹 關(guān)系型數(shù)據(jù)庫(kù)模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式),。在關(guān)系型數(shù)據(jù)庫(kù)中,,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過(guò)對(duì)這些關(guān)聯(lián)的表格分類,、合并,、連接或選取等運(yùn)算來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的管理。 關(guān)系型數(shù)據(jù)庫(kù)誕生40多年了,,從理論產(chǎn)生發(fā)展到現(xiàn)實(shí)產(chǎn)品,,例如:Oracle和MySQL,Oracle在數(shù)據(jù)庫(kù)領(lǐng)域上升到霸主地位,,形成每年高達(dá)數(shù)百億美元的龐大產(chǎn)業(yè)市場(chǎng),。 3、關(guān)系型數(shù)據(jù)庫(kù)表格之間的關(guān)系舉例 關(guān)系型數(shù)據(jù)庫(kù)舉例 4,、了解關(guān)系型數(shù)據(jù)庫(kù)可以學(xué)習(xí)的課程 課程:【MySQL參考手冊(cè)中文版】 課程是基于MySQL參考手冊(cè)中文翻譯版制作;當(dāng)然其他關(guān)系型數(shù)據(jù)庫(kù)也可以,但是初學(xué)者一般以MySQL為主; 當(dāng)然還需要學(xué)習(xí)查詢語(yǔ)言——SQL,,SQL是所有關(guān)系型數(shù)據(jù)庫(kù)的公共語(yǔ)言; 課程:【SQL基礎(chǔ)課程】 課程介紹了MySQL基礎(chǔ),、常用的操作; 〓非關(guān)系型數(shù)據(jù)庫(kù)介紹〓 1、非關(guān)系型數(shù)據(jù)庫(kù)誕生背景 NoSQL,,泛指非關(guān)系型的數(shù)據(jù)庫(kù),。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展,。NoSql數(shù)據(jù)庫(kù)在特定的場(chǎng)景下可以發(fā)揮出難以想象的高效率和高性能,,它是作為對(duì)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)有效的補(bǔ)充。 NoSQL(NoSQL = Not Only SQL ),,意即“不僅僅是SQL”,,是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,,發(fā)展至2009年趨勢(shì)越發(fā)高漲,。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,,這一概念無(wú)疑是一種全新的思維的注入,。 2,、非關(guān)系型數(shù)據(jù)庫(kù)種類 (1)鍵值存儲(chǔ)數(shù)據(jù)庫(kù)(key-value) 鍵值數(shù)據(jù)庫(kù)就類似傳統(tǒng)語(yǔ)言中使用的哈希表??梢酝ㄟ^(guò)key來(lái)添加、查詢或者刪除數(shù)據(jù)庫(kù),,因?yàn)槭褂胟ey主鍵訪問,,所以會(huì)獲得很高的性能及擴(kuò)展性。 鍵值數(shù)據(jù)庫(kù)主要使用一個(gè)哈希表,,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù),。Key/value模型對(duì)于IT系統(tǒng)來(lái)說(shuō)的優(yōu)勢(shì)在于簡(jiǎn)單、易部署,、高并發(fā),。 典型產(chǎn)品:Memcached、Redis,、MemcacheDB (2)列存儲(chǔ)(Column-oriented)數(shù)據(jù)庫(kù) 列存儲(chǔ)數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在列族中,,一個(gè)列族存儲(chǔ)經(jīng)常被一起查詢的相關(guān)數(shù)據(jù),比如人類,,我們經(jīng)常會(huì)查詢某個(gè)人的姓名和年齡,,而不是薪資。這種情況下姓名和年齡會(huì)被放到一個(gè)列族中,,薪資會(huì)被放到另一個(gè)列族中,。 這種數(shù)據(jù)庫(kù)通常用來(lái)應(yīng)對(duì)分布式存儲(chǔ)海量數(shù)據(jù)。 典型產(chǎn)品:Cassandra,、HBase (3)面向文檔(Document-Oriented)數(shù)據(jù)庫(kù) 文檔型數(shù)據(jù)庫(kù)的靈感是來(lái)自于Lotus Notes辦公軟件,,而且它同第一種鍵值數(shù)據(jù)庫(kù)類似。該類型的數(shù)據(jù)模型是版本化的文檔,,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),,比如JSON。文檔型數(shù)據(jù)庫(kù)可以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,,允許之間嵌套鍵值,。而且文檔型數(shù)據(jù)庫(kù)比鍵值數(shù)據(jù)庫(kù)的查詢效率更高。 面向文檔數(shù)據(jù)庫(kù)會(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ǔ),。 典型產(chǎn)品:MongoDB、CouchDB (4)圖形數(shù)據(jù)庫(kù) 圖形數(shù)據(jù)庫(kù)允許我們將數(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,。 典型產(chǎn)品:Neo4J,、InforGrid 3、了解非關(guān)系型數(shù)據(jù)庫(kù)可以學(xué)習(xí)的課程 課程:面向文檔數(shù)據(jù)庫(kù)——【mongoDB基礎(chǔ)教程】 Mongo最大的特點(diǎn)是他支持的查詢語(yǔ)言非常強(qiáng)大,,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引,。 通過(guò)課程了解monggoDB的基本操作,、數(shù)據(jù)查詢、文檔操作,、以及一些高級(jí)語(yǔ)法; 課程:鍵值存儲(chǔ)數(shù)據(jù)庫(kù)——【Redis基礎(chǔ)教程】 Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù),。Redis支持主從同步,可執(zhí)行單層樹復(fù)制,。 課程介紹Redis系統(tǒng)的基本配置和使用方法,。 課程:列存儲(chǔ)數(shù)據(jù)庫(kù)——【HBASE基礎(chǔ)教程】 HBASE是Hadoop項(xiàng)目的一部分,運(yùn)行于HDFS文件系統(tǒng)之上,,為 Hadoop 提供類似于BigTable 規(guī)模的服務(wù),。 通過(guò)課程了解HBASE的基礎(chǔ)配置以及使用方法。 ※以上所涉及的課程均可到實(shí)驗(yàn)樓免費(fèi)在線學(xué)習(xí),,無(wú)需搭建環(huán)境,,文檔引導(dǎo)學(xué)習(xí)~ |
|