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