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