关系型数据库与NoSQL数据库简述
生活随笔
收集整理的這篇文章主要介紹了
关系型数据库与NoSQL数据库简述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、 關(guān)系型數(shù)據(jù)庫
- 簡單定義,關(guān)系模型指的就是二維表格模型,而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。
- 關(guān)系模型中常用的概念:
-
- 關(guān)系:可以理解為一張二維表,每個關(guān)系都具有一個關(guān)系名,就是通常說的表名
- 元組:可以理解為二維表中的一行,在數(shù)據(jù)庫中經(jīng)常被稱為記錄
- 屬性:可以理解為二維表中的一列,在數(shù)據(jù)庫中經(jīng)常被稱為字段
- 域:屬性的取值范圍,也就是數(shù)據(jù)庫中某一列的取值限制
- 關(guān)鍵字:一組可以唯一標(biāo)識元組的屬性,數(shù)據(jù)庫中常稱為主鍵,由一個或多個列組成
- 關(guān)系模式:指對關(guān)系的描述。其格式為:關(guān)系名(屬性1,屬性2, ... ... ,屬性N),在數(shù)據(jù)庫中成為表結(jié)構(gòu)
- 關(guān)系型數(shù)據(jù)庫的優(yōu)點:
-
- 容易理解
- 使用方便
- 易于維護(hù)
- 關(guān)系型數(shù)據(jù)庫瓶頸 ? ? ? ?------ > ?于是有了非關(guān)系數(shù)據(jù)庫
-
- 高并發(fā)讀寫需求-->對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸。
- 海量數(shù)據(jù)的高效率讀寫
- 高擴(kuò)展性和可用性
- 對許多SNS(社交網(wǎng)絡(luò)服務(wù))網(wǎng)站來說,關(guān)系型數(shù)據(jù)庫的很多特性不再需要了:
-
- 事務(wù)一致性 -- >?關(guān)系型數(shù)據(jù)庫在對事物一致性的維護(hù)中有很大的開銷,而現(xiàn)在很多web2.0系統(tǒng)對事物的讀寫一致性都不高。
-
- 簡述web的幾個版本
-
- web1.0網(wǎng)絡(luò)是信息提供者,單向性的提供和單一性理解; ??網(wǎng)絡(luò) ?- -> ?人
- web2.0網(wǎng)絡(luò)是平臺,用戶提供信息,通過網(wǎng)絡(luò),其他用戶獲取信息; 人- - > 人
- web3.0網(wǎng)絡(luò)成為用戶需求理解者和提供者,網(wǎng)絡(luò)對用戶了如指掌,知道用戶有什么、要什么以及行為習(xí)慣,進(jìn)行資源篩選、智能匹配,直接給用戶答案。人-網(wǎng)絡(luò)-人
- 讀寫實時性 - - >?對關(guān)系數(shù)據(jù)庫來說,插入一條數(shù)據(jù)之后立刻查詢,是肯定可以讀出這條數(shù)據(jù)的,但是對于很多web應(yīng)用來說,發(fā)一條消息之后,過幾秒后才看到這條動態(tài)是可以接受的。
- 復(fù)雜SQL,特別是多表關(guān)聯(lián)查詢,很消耗性能,并且SNS類型的網(wǎng)站,從需求來說就避免了這種查詢,往往更多的只是單表的主鍵查詢,故SQL的功能極大的弱化了。
- 關(guān)系型數(shù)據(jù)庫的最大特點就是事務(wù)的一致性,這個特性使得關(guān)系型數(shù)據(jù)庫可以用于幾乎所有對一致性有要求的系統(tǒng)中,如典型的銀行系統(tǒng)。但它為了維護(hù)一致性所付出的巨大代價就是其讀寫性能比較差。故對于微博、facebook這類SNS的高并發(fā)讀寫的應(yīng)用不適應(yīng)。
- 針對SNS應(yīng)用,一致性卻不是顯得那么重要,用戶A看到的內(nèi)容和用戶B看到同一用戶C內(nèi)容更新不一致是可以容忍的,或者說相差幾秒,故關(guān)系型數(shù)據(jù)庫的最大特點在此用處不大。
二、非關(guān)系型數(shù)據(jù)庫(NoSQL =not only sql )
- NoSQL,用于指代那些非關(guān)系型的,分布式的,且一般不保證遵循 ACID 原則的數(shù)據(jù)存儲系統(tǒng)。非關(guān)系型數(shù)據(jù)庫嚴(yán)格上不是一種數(shù)據(jù)庫,應(yīng)該是一種數(shù)據(jù)結(jié)構(gòu)化存儲方法的集合。
-
- 數(shù)據(jù)庫事務(wù)必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability持久性。
- 非關(guān)系型數(shù)據(jù)庫分類
-
- 面向高性能并發(fā)讀寫的key-value數(shù)據(jù)庫:key-value數(shù)據(jù)庫的主要特點即使具有極高的并發(fā)讀寫性能,Redis?,Tokyo Cabinet,Flare就是這類的代表
- 面向海量數(shù)據(jù)訪問的面向文檔數(shù)據(jù)庫:這類數(shù)據(jù)庫的特點是,可以在海量的數(shù)據(jù)中快速的查詢數(shù)據(jù),典型代表為MongoDB以及CouchDB
- ?面向可擴(kuò)展性的分布式數(shù)據(jù)庫:這類數(shù)據(jù)庫想解決的問題就是傳統(tǒng)數(shù)據(jù)庫存在可擴(kuò)展性上的缺陷,這類數(shù)據(jù)庫可以適應(yīng)數(shù)據(jù)量的增加以及數(shù)據(jù)結(jié)構(gòu)的變化。
三、Redis 簡介
Redis 與其他 key - value 緩存產(chǎn)品有以下三個特點:
- Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進(jìn)行使用。
- Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。
- Redis支持?jǐn)?shù)據(jù)的備份,即 master-slave模式的數(shù)據(jù)備份。
總結(jié)
以上是生活随笔為你收集整理的关系型数据库与NoSQL数据库简述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端框架--React props与Re
- 下一篇: 小猿圈python学习-函数的递归