- 參考鏈接1:
http://blog.csdn.net/chenhuajie123/article/details/9374957 - 參考鏈接2:
http://blog.csdn.net/tomatofly/article/details/5949070 - 參考鏈接3:
http://blog.csdn.net/xuanjiewu/article/details/48241045
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ù)的處理。