〓數(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)中叉谜,最常見(jiàn)的數(shù)據(jù)庫(kù)模型主要是兩種陡蝇,即關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(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ù)的集中和共享問(wèn)題登夫,但是在數(shù)據(jù)庫(kù)獨(dú)立性和抽象級(jí)別上扔有很大欠缺广匙。用戶在對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)恼策,指出存取路徑鸦致。而關(guān)系型數(shù)據(jù)庫(kù)就可以較好的解決這些問(wèn)題。
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)系舉例
4睹逃、了解關(guān)系型數(shù)據(jù)庫(kù)可以學(xué)習(xí)的課程
課程是基于MySQL參考手冊(cè)中文翻譯版制作;當(dāng)然其他關(guān)系型數(shù)據(jù)庫(kù)也可以,但是初學(xué)者一般以MySQL為主沉填;
當(dāng)然還需要學(xué)習(xí)查詢語(yǔ)言——SQL疗隶,SQL是所有關(guān)系型數(shù)據(jù)庫(kù)的公共語(yǔ)言;
課程介紹了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)顯得力不從心荒叶,暴露了很多難以克服的問(wèn)題,而非關(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主鍵訪問(wèn),所以會(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í)行單層樹(shù)復(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í)~
內(nèi)容via:實(shí)驗(yàn)樓(www.shiyanlou.com)官方微信