Java Redis系列1 關系型資料庫與非關系型資料庫的優缺點及概念
在學習redis之前我們先來學習兩個概念,即什么是關系型資料庫什么是非關系型資料庫,二者的區別是什么,二者的關系又是什么?

**
關系型資料庫

**
關系型資料庫,是指采用了關系模型來組織資料的資料庫,其以行和列的形式存盤資料,以便于用戶理解,關系型資料庫這一系列的行和列被稱為表,一組表組成了資料庫,用戶通過查詢來檢索資料庫中的資料,而查詢是一個用于限定資料庫中某些區域的執行代碼,關系模型可以簡單理解為二維表格模型,而一個關系型資料庫就是由二維表及其之間的關系組成的一個資料組織,
1.
關系型資料庫是依據關系模型來創建的資料庫,
2.
所謂關系模型就是“一對一、一對多、多對多”等關系模型,關系模型就是指二維表格模型,因而一個關系型資料庫就是由二維表及其之間的聯系組成的一個資料組織,
3.
關系型資料可以很好地存盤一些關系模型的資料,比如一個老師對應多個學生的資料(“多對多”),一本書對應多個作者(“一對多”),一本書對應一個出版日期(“一對一”)
4.
關系模型是我們生活中能經常遇見的模型,存盤這類資料一般用關系型資料庫
5.
關系模型包括資料結構(資料存盤的問題,二維表)、操作指令集合(SQL陳述句)、完整性約束(表內資料約束、表與表之間的約束),

**
非關系型資料庫
**
非關系型資料庫,又被稱為NoSQL(Not Only SQL ),意為不僅僅是SQL(StructuredQueryLanguage,結構化查詢語言),據維基百科介紹,NoSQL最早出現于1998 年,是由Carlo Storzzi最早開發的個輕量、開源、不兼容SQL 功能的關系型資料庫,2009 年,在一次分布式開源資料庫的討論會上,再次提出了NoSQL 的概念,此時NoSQL主要是指非關系型、分布式、不提供ACID (資料庫事務處理的四個基本要素)的資料庫設計模式,同年,在亞特蘭大舉行的“NoSQL(east)”討論會上,對NoSQL 最普遍的定義是“非關聯型的”,強調Key-Value 存盤和檔案資料庫的優點,而不是單純地反對RDBMS,至此,NoSQL 開始正式出現在世人面前,,存盤方式有更多的選擇:"鍵-值"對存盤,列存盤,檔案存盤,圖形資料庫等,沒有宣告性查詢語言,沒有預定義的模式,非結構化和不可預知的資料,高性能,高可用性和可伸縮性,
關系型資料庫與非關系型資料庫的使用場景與優缺點
關系型資料庫
優點:
1.安全,嚴謹:
事務支持使得對于安全性能很高的資料訪問要求得以實作,:鏈接:https://blog.csdn.net/pjh88/article/details/107574137)
而且資料存盤在硬碟上不容易丟失
2.方便使用:
SQL語言通用,學習成本低
3.易于維護:
都使用表結構,格式一致
4.復雜查詢:
:可用于多個表之間非常復雜的查詢
缺點:
1.讀寫性能比較差,尤其是海量資料的讀寫,要不斷進行io操作
2.固定的表結構,靈活性稍欠
3.高并發的讀寫需求,傳統關系型資料庫來說,硬碟i/o是一個很大的瓶頸
非關系型資料庫:
優點:
1、格式靈活:
存盤資料的格式可以是key,value形式、檔案形式、圖片形式等等,檔案形式、圖片形式等等,使用靈活,應用場景廣泛,而關系型資料庫則只支持基礎型別,
2.高拓展性
資料是基于鍵值對的,資料之間沒有耦合性,所以非常容易水平拓展
3.性能高:
nosql是基于鍵值對的,可以想象成表中主鍵與值的關系,而且不需要經過sql層的決議,性能非常高
4.成本低:
noslq部署簡單,基本都是開源的
缺點:
1.沒有標準化,不提供slq支持,學習使用成本高
2.沒有事務的處理
3.資料結構相對復雜,復雜查詢方面稍欠,即有限的查詢功能
關系型資料庫與NoSQL資料庫并非對立而是互補的關系,即通常情況下使用關系型資料庫,在適合使用NoSQL的時候使用NoSQL資料庫,讓NoSQL資料庫對關系型資料庫的不足進行彌補,一般會將資料存盤在關系型資料庫中,在nosql資料庫中備份存盤關系型資料庫的資料
主流的noslq產品:
? 鍵值(Key-Value)存盤資料庫
相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容快取,主要用于處理大量資料的高訪問負載,
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 存盤的資料缺少結構化
? 列存盤資料庫
相關產品:Cassandra, HBase, Riak
典型應用:分布式的檔案系統
資料模型:以列簇式存盤,將同一列資料存在一起
優勢:查找速度快,可擴展性強,更容易進行分布式擴展
劣勢:功能相對局限
? 檔案型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢: 查詢性能不高,而且缺乏統一的查詢語法
? 圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法,
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的集群方案,
以上就是關系型資料庫與非關系型資料庫的優缺點及概念,這也是我JAVA redis系列的第一篇,后面我會繼續更新,寫作不易,請各位老鐵點個贊支持一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1119.html
標籤:NoSQL
上一篇:MySQL學習筆記九:索引
