關(guān)系與非關(guān)系型數(shù)據(jù)庫

SQL

  • SQL指結(jié)構(gòu)化查詢語言,是一門ANSI(美國國家標準學會)標準的計算機語言,主要用來訪問和操作數(shù)據(jù)庫系統(tǒng).某些關(guān)系型數(shù)據(jù)庫要求在每個SQL命令的末端使用分號,如MySQL(若不在命令末尾使用分號則報錯),如果使用的關(guān)系型數(shù)據(jù)庫是MS SQL Server或者SQL Server ,則不需要在每個SQL命令末端使用分號。

RDMS

  • RDBMS指的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),RDBMS是SQL的基礎(chǔ),同樣也是很多現(xiàn)在關(guān)系型數(shù)據(jù)庫的基礎(chǔ),RDBMS的數(shù)據(jù)是存儲在被稱為表的數(shù)據(jù)庫對象中,表是相關(guān)數(shù)據(jù)項的集合,由行和列組成,這也是關(guān)系型數(shù)據(jù)的典型特征.

DML和DDL

  • SQL分為兩個部分:數(shù)據(jù)操作語言(DML)和數(shù)據(jù)定義語言(DDL)。

  • DML主要用于執(zhí)行查詢,更新,插入和刪除的語法。SQL主要的DML語句有:
    1)SELECT ----從數(shù)據(jù)庫表中獲取數(shù)據(jù)
    2)UPDATE ----更新數(shù)據(jù)庫表的數(shù)據(jù)
    3)DELETE ----從數(shù)據(jù)庫表中刪除數(shù)據(jù)
    4)INSERT INTO ----向數(shù)據(jù)表中插入數(shù)據(jù)

  • DDL主要創(chuàng)建和刪除數(shù)據(jù)庫或者表格,也可以定義索引(鍵),規(guī)定表之間的鏈接以及施加表間的約束。主要的DDL語句有:
    1)CREATE DATABASE ----創(chuàng)建新數(shù)據(jù)庫
    2)ALTER DATABASE ----修改數(shù)據(jù)庫
    3)CREATE TABLE ----創(chuàng)建新表
    4)ALTER TABLE ----變更數(shù)據(jù)庫表
    5)DROP TABLE ----刪除表
    6)DROP DATABASE ----刪除數(shù)據(jù)庫
    7)CREATE INDEX ----創(chuàng)建索引(搜索鍵)
    8)DROP INDEX ----刪除索引

主流的關(guān)系型數(shù)據(jù)庫

  • Microsoft SQLServer, IBM DB2, Oracle, MySQL,Microsoft Access, Sybase,IBM Informix.

NoSQL

  • NoSQL,指的是非關(guān)系數(shù)據(jù)庫。由上面的敘述可以看到關(guān)系型數(shù)據(jù)庫中的表都是存儲一下格式化的數(shù)據(jù)結(jié)構(gòu),每個元組字段的組成都是一樣的,即使不是每個元組都需要所有的字段,但數(shù)據(jù)庫會為每個元組都分配所有的字段,這樣的結(jié)構(gòu)可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關(guān)系數(shù)據(jù)庫性能瓶頸的一個因素。而非關(guān)系數(shù)據(jù)庫以鍵值對存儲,它的結(jié)構(gòu)不固定,每一個元組可以有不一樣的字段,每個元組可以根據(jù)需要增加或減少一些自己的鍵值對,這樣就不會局限于固定的結(jié)構(gòu),可以減少一些時間和空間的開銷。

  • NoSQL有那些

MangoDB,Membase,Hypertale,Apache Cassandra,BigTable,CouchDB,dynamoDB,SimpleDB, HBase,Redis

關(guān)系型與非關(guān)系型數(shù)據(jù)庫 的區(qū)別

  • 優(yōu)點:
    1)成本:nosql數(shù)據(jù)庫簡單易部署,基本都是開源軟件,不需要像使用oracle那樣花費大量成本購買使用,相比關(guān)系型數(shù)據(jù)庫價格便宜。
    2)查詢速度:nosql數(shù)據(jù)庫將數(shù)據(jù)存儲于緩存之中,關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲在硬盤中,自然查詢速度遠不及nosql數(shù)據(jù)庫。
    3)存儲數(shù)據(jù)的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,所以可以存儲基礎(chǔ)類型以及對象或者是集合等各種格式,而數(shù)據(jù)庫則只支持基礎(chǔ)類型。
    4)擴展性:關(guān)系型數(shù)據(jù)庫有類似join這樣的多表查詢機制的限制導致擴展很艱難。

  • 缺點
    缺點:
    1)維護的工具和資料有限,因為nosql是屬于新的技術(shù),不能和關(guān)系型數(shù)據(jù)庫10幾年的技術(shù)同日而語。
    2)不提供對sql的支持,如果不支持sql這樣的工業(yè)標準,將產(chǎn)生一定用戶的學習和使用成本。
    3)不提供關(guān)系型數(shù)據(jù)庫對事務(wù)的處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容