更新時間:2019-11-01 來源:黑馬程序員 瀏覽量:
什么是關(guān)系型數(shù)據(jù)庫?
關(guān)系型數(shù)據(jù)庫:指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫。
關(guān)系模型指的就是二維表格模型,而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。
關(guān)系模型中常用的概念:
關(guān)系:一張二維表,每個關(guān)系都具有一個關(guān)系名,也就是表名
元組:二維表中的一行,在數(shù)據(jù)庫中被稱為記錄
屬性:二維表中的一列,在數(shù)據(jù)庫中被稱為字段
域:屬性的取值范圍,也就是數(shù)據(jù)庫中某一列的取值限制
關(guān)鍵字:一組可以唯一標識元組的屬性,數(shù)據(jù)庫中常稱為主鍵,由一個或多個列組成
關(guān)系模式:指對關(guān)系的描述。其格式為:關(guān)系名(屬性1,屬性2, ... ... ,屬性N),在數(shù)據(jù)庫中成為表結(jié)構(gòu)。
常見的有關(guān)系型數(shù)據(jù)庫有Oracle、Oracle DataBase、MySQL、MariaDB、Microsoft、SQL Server、Access、IBM、DB2、Sybase。
優(yōu)點:
1、易于維護:都是使用表結(jié)構(gòu),格式一致;
2、使用方便:SQL語言通用,可用于復雜查詢;
3、復雜操作:支持SQL,可用于一個表以及多個表之間非常復雜的查詢。
缺點:
1、讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;
2、固定的表結(jié)構(gòu),靈活度稍欠;
3、高并發(fā)讀寫需求,傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸。
什么是非關(guān)系型數(shù)據(jù)庫?
非關(guān)系型數(shù)據(jù)庫又被稱為NoSQL(Not Only SQL ),意為不僅僅是SQL( Structured QueryLanguage,結(jié)構(gòu)化查詢語言),不需要事先定義結(jié)構(gòu),也就是不需要建表建庫等,每條記錄可以又不同的類型和約束條件。
非關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)
非關(guān)系型數(shù)據(jù)庫以鍵值對存儲,且結(jié)構(gòu)不固定,每一個元組可以有不一樣的字段,每個元組可以根據(jù)需要增加一些自己的鍵值對,不局限于固定的結(jié)構(gòu),可以減少一些時間和空間的開銷。
優(yōu)點:
1、格式靈活:存儲數(shù)據(jù)的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應用場景廣泛,而關(guān)系型數(shù)據(jù)庫則只支持基礎(chǔ)類型。
2、速度快:nosql可以使用硬盤或者隨機存儲器作為載體,而關(guān)系型數(shù)據(jù)庫只能使用硬盤;
3、高擴展性;
4、成本低:nosql數(shù)據(jù)庫部署簡單,基本都是開源軟件。
缺點:
1、不提供sql支持,學習和使用成本較高;
2、無事務處理;
3、數(shù)據(jù)結(jié)構(gòu)相對復雜,復雜查詢方面稍欠。
常見的非關(guān)系型數(shù)據(jù)庫有Hbase、Redis、MongodDB、Neo4j。
推薦了解黑馬程序員大數(shù)據(jù)培訓課程。