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