NoSQL - 維基百科,自由的百科全書
文章推薦指數: 80 %
... 系統儲存,而其他資料允許使用NOSQL系統儲存。
其數據儲存可以不需要固定的表格模式以及元數據(metadata),也經常會避免使用SQL的JOIN操作,一般有水平可擴展性( ...
NoSQL
維基百科,自由的百科全書
跳至導覽
跳至搜尋
NoSQL(最初表示Non-SQL[1],後來有人轉解為NotonlySQL[2][3]),是對不同於傳統的關聯式資料庫的數據庫管理系統的統稱。
允許部分資料使用SQL系統儲存,而其他資料允許使用NOSQL系統儲存。
其數據儲存可以不需要固定的表格模式以及元數據(metadata),也經常會避免使用SQL的JOIN操作,一般有水平可擴展性(英語:Database_scalability)的特徵。
目次
1發展歷史
2特點
3分類
3.1文檔存儲
3.2圖數據庫
3.3鍵-值(key‐value)儲存
3.3.1最終一致性的鍵-值儲存
3.3.2架構性鍵-值儲存
3.4主機式服務
3.4.1Key/value硬盤存儲
3.4.2Key/valueRAM存儲
3.4.3Key-value基於Paxos算法的存儲
3.5多數據庫
3.6時序型數據庫
3.7對象數據庫
3.8列存儲
4參考文獻
5外部連結
6參見
發展歷史[編輯]
NOSQL一詞最早出現於1998年,是CarloStrozzi開發的一個輕量、開源、不提供SQL功能的關係數據庫[4]。
2009年,Last.fm的JohanOskarsson發起了一次關於分布式開源數據庫的討論[5],來自Rackspace的EricEvans再次提出了NOSQL的概念,這時的NOSQL主要指非關係型、分布式、不提供ACID的數據庫設計模式。
2009年在亞特蘭大舉行的"no:sql(east)"討論會是一個里程碑,其口號是"selectfun,profitfromreal_worldwhererelational=false;"。
因此,對NOSQL最普遍的解釋是「非關聯型的」,強調鍵-值存儲和面向文檔數據庫的優點,而不是單純的反對RDBMS。
基於2014年的收入,NOSQL市場領先企業是MarkLogic(英語:MarkLogic),MongoDB和Datastax(英語:DataStax)[6]。
基於2015年的人氣排名,最受歡迎的NOSQL數據庫是MongoDB,ApacheCassandra和Redis[7]。
特點[編輯]
當代典型的關聯式資料庫在一些數據敏感的應用中表現了糟糕的性能,例如為巨量文檔建立索引、高流量網站的網頁服務,以及發送流式媒體[8]。
關係型數據庫的典型實現主要被調整用於執行規模小而讀寫頻繁,或者大批量讀而極少寫訪問的事務。
NOSQL的結構通常提供弱一致性的保證,如最終一致性,或交易僅限於單個的數據項。
不過,有些系統,提供完整的ACID保證在某些情況下,增加了補充中間件層(例如:CloudTPS)[9]。
有兩個成熟的系統有提供快照隔離的列存儲:像是Google基於過濾器系統的BigTable[10],和滑鐵盧大學開發的HBase[11]。
這些系統,自主開發,使用類似的概念來實現多行(multi-row)分散式ACID交易的快照隔離(snapshotisolation)保證為基礎列儲存,無需額外的資料管理開銷,中間件系統部署或維護,減少了中間件層。
少數NOSQL系統部署了分布式結構,通常使用分散式雜湊表(DHT)將數據以冗餘方式保存在多台服務器上。
依此,擴充系統時候添加服務器更容易,並且擴大了對服務器失效的承受能程度。
[12]
分類[編輯]
文檔存儲[編輯]
名稱
語言
BaseX
XQuery,Java
CouchDB
Erlang
eXist
XQuery
iBoxDB
Java,C#
Jackrabbit
Java
LotusNotes
LotusScript,Java等
MarkLogicServer
XQuery
MongoDB
C++
RethinkDB
C++
OrientDB
Java
SimpleDB
Erlang
Terrastore
Java
ElasticSearch
Java
No2DB
C#
圖數據庫[編輯]
名稱
語言
AllegroGraph
SPARQL
Sparksee
Java,C#
Neo4j
Java
FlockDB
Scala
JanusGraph
Java
鍵-值(key‐value)儲存[編輯]
最終一致性的鍵-值儲存[編輯]
Cassandra
Dynamo(英語:Dynamo)
Hibari(英語:Hibari)
ProjectVoldemort(英語:ProjectVoldemort)
Riak(英語:Riak)[13]
架構性鍵-值儲存[編輯]
GT.M(英語:GT.M)
InterSystemGlobals[14]
主機式服務[編輯]
Key/value硬盤存儲[編輯]
BigTable
MemcacheDB(英語:MemcacheDB)
LevelDB
TokyoCabinet(英語:TokyoCabinet)
Tuplespace(英語:Tuplespace)
TreapDB(英語:TreapDB)
Key/valueRAM存儲[編輯]
OracleCoherence(英語:OracleCoherence)
memcached
Citrusleafdatabase
Velocity(memorycache)(英語:Velocity(memorycache))
Redis
Tuplespace(英語:Tuplespace)
Key-value基於Paxos算法的存儲[編輯]
Keyspace(datastore)(英語:Keyspace(datastore))
多數據庫[編輯]
OpenQM
RocketU2
RevelationSoftware'sOpenInsight
ExtensibleStorageEngine(ESE/NT)
時序型數據庫[編輯]
名稱
語言
Graphite
Python
InfluxDB
Go
InformixTimeSeries
Erlang
OpenTSDB
Java
RRDtool
C
IoTDB
Java
對象數據庫[編輯]
VersantObjectDatabase
db4o
GemStone/S
InterSystemsCaché
JADE
Objectivity/DB
ZODB
ObjectStore
列存儲[編輯]
Cassandra
HBase
Hypertable
參考文獻[編輯]
^http://nosql-database.org/"NoSQLDEFINITION:NextGenerationDatabasesmostlyaddressingsomeofthepoints :beingnon-relational,distributed,open-sourceandhorizontallyscalable".
^NoSQL(NotOnlySQL).NoSQLdatabase,alsocalledNotOnlySQL
^Fowler,Martin.NosqlDefinition.manyadvocatesofNoSQLsaythatitdoesnotmeana"no"toSQL,ratheritmeansNotOnlySQL
^
Lith,Adam;JakobMattson.Investigatingstoragesolutionsforlargedata:Acomparisonofwellperformingandscalabledatastoragesolutionsforrealtimeextractionandbatchinsertionofdata(PDF).Göteborg:DepartmentofComputerScienceandEngineering,ChalmersUniversityofTechnology:15,70.2010[2011-05-12].CarloStrozzifirstusedthetermNOSQLin1998asanameforhisopensourcerelationaldatabasethatdidnotofferaSQLinterface[...] 引文使用過時參數coauthors(幫助)
^NOSQL2009.Blog.sym-link.com.2009-05-12[2010-03-29].(原始內容存檔於2011-07-16).
^Hadoop-NoSQL-rankings.[2015-11-17].
^DB-EnginesRanking.[2015-07-31].(原始內容存檔於2020-02-21).
^Agrawal,Rakesh等.TheClaremontreportondatabaseresearch(PDF).SIGMODRecord(計算機協會).2008,37(3):9–19.ISSN 0163-5808.doi:10.1145/1462571.1462573. 引文格式1維護:顯式使用等標籤(link)
^CloudTPS:ScalableTransactionsforWebApplicationsintheCloud.Globule.org.[2010-03-29].
^Large-scaleIncrementalProcessingUsingDistributedTransactionsandNotifications(PDF).The9thUSENIXSymposiumonOperatingSystemsDesignandImplementation(OSDI2010),Oct4–6,2010,Vancouver,BC,Canada.[2010-10-15].
^SupportingMulti-rowDistributedTransactionswithGlobalSnapshotIsolationUsingBare-bonesHBase(PDF).The11thACM/IEEEInternationalConferenceonGridComputing(Grid2010),Oct25-29,2010,Brussels,Belgium.[2010-10-15].(原始內容(PDF)存檔於2011-06-29).
^Cassandra:StructuredStorageSystemoveraP2PNetwork(PDF).[2010-03-29].
^Riak:AnOpenSourceScalableDataStore.2010-11-28[2010-11-28].(原始內容存檔於2010年12月31日).
^http://nosql.mypopescu.com/post/5633789299/intersystems-globals-and-gt-m-compared
外部連結[編輯]
NoSQL非關係數據庫簡介
Amazon數據庫論文
在互聯網上擁有NoSQL相關鏈接最多的網站。
NoSQL數據庫筆談
CassandravsMongoDBvsCouchDBvsRedisvsRiakvsHBasevsMembasevsNeo4jcomparison
參見[編輯]
最終一致性(BASE——基本可用、弱狀態、最終一致性——的其中一個組成要求,與關係數據庫的Acid相對)
CAP
閱論編NoSQL鍵值存儲最終一致性鍵值存儲Cassandra ·Dynamo(英語:Dynamo) ·Riak(英語:Riak) ·Hibari(英語:Hibari) ·Virtuoso(英語:Virtuoso) ·Voldemort(英語:Voldemort_(distributed_data_store))內存鍵值存儲Memcached ·Redis ·OracleCoherence(英語:OracleCoherence) ·NCache(英語:NCache) ·Hazelcast(英語:Hazelcast) ·Tuplespace(英語:Tuplespace) ·Velocity(英語:Velocity_(memory_cache))持久化鍵值存儲BigTable ·LevelDB ·TokyoCabinet(英語:TokyoCabinet) ·Tarantool ·TreapDB(英語:TreapDB) ·Tuplespace(英語:Tuplespace)文檔存儲MongoDB ·CouchDB ·SimpleDB ·Terrastore ·BaseX(英語:BaseX) ·Clusterpoint(英語:Clusterpoint) ·Riak(英語:Riak) ·No2DB圖存儲FlockDB(英語:FlockDB) ·DEX ·Neo4J(英語:Neo4J) ·AllegroGraph(英語:AllegroGraph) ·InfiniteGraph(英語:InfiniteGraph) ·OrientDB(英語:OrientDB) ·PregelNoSQL理論分佈式系統 ·CAP定理 ·弱一致性 ·強一致性 ·最終一致性 ·MapReduce ·BASENoSQL數據庫比較
閱論編數據庫管理系統(DBMS)概念
數據庫
理論
數據模型
數據庫存儲結構(英語:Databasestoragestructures)
關係(數據庫)
關係模型
分布式數據庫
ACID
原子性(英語:Atomicity(databasesystems))
一致性
隔離性
持久性(英語:Durability(databasesystems))
Null值
關係模型
數據庫規範化
數據庫完整性
實體完整性
參照完整性(英語:Referentialintegrity)
關係數據庫管理系統
主鍵
外鍵
代理鍵
超鍵
候選鍵
事務處理
數據庫組件
觸發器
視圖
數據庫表
行
列
指標
事務日誌(英語:Transactionlog)
數據庫事務
Savepoint
並發控制
樂觀鎖
悲觀鎖
數據庫索引
存儲程序
資料庫分割(英語:Partition(database))
SQL分類
數據查詢語言(DQL)
資料定義語言(DDL)
資料操縱語言(DML)
資料控制語言(DCL)
指令
SELECT
INSERT
UPDATE
MERGE
DELETE
JOIN
UNION(英語:Union(SQL))
CREATE
DROP
Beginwork
COMMIT
ROLLBACK
TRUNCATE
ALTER
安全
SQL資料隱碼攻擊
參數化查詢
實現類型
關係數據庫
面向文檔的數據庫
平面檔案式資料庫(英語:Flatfiledatabase)
Deductive(英語:Deductivedatabase)
維度化資料庫
階層式
圖數據庫
NoSQL
NewSQL
對象數據庫
物件關聯式資料庫(英語:Object-relationaldatabase)
Temporal
XML資料庫(英語:XMLdatabase)
數據庫產品
對象型
對比
關係型
對比
數據庫組件
數據查詢語言
查詢最佳化器(英語:Queryoptimizer)
查詢計畫(英語:Queryplan)
嵌入式SQL
ORM
LINQ
資料關聯層(英語:Dataaccesslayer)
ODBC
OLEDB
ADO
ADO.NET
JDBC
PDO
取自「https://zh.wikipedia.org/w/index.php?title=NoSQL&oldid=66226710」
分類:NoSQL隱藏分類:含有過時參數的引用的頁面引文格式1維護:顯式使用等標籤
導覽選單
個人工具
尚未登入討論貢獻建立帳號登入
命名空間
條目討論
繁體
已展開
已摺疊
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
視圖
閱讀編輯檢視歷史
更多
已展開
已摺疊
搜尋
導覽
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
工具
連結至此的頁面相關變更上傳檔案特殊頁面靜態連結頁面資訊引用此頁面維基數據項目
列印/匯出
下載為PDF可列印版
其他專案
維基共享資源
其他語言
العربيةAzərbaycancaБългарскиCatalàČeštinaDeutschEnglishEsperantoEspañolEestiEuskaraفارسیSuomiFrançaisעבריתMagyarBahasaIndonesiaÍslenskaItaliano日本語한국어LatinaമലയാളംМонголNederlandsPolskiPortuguêsРусскийSimpleEnglishSvenskaதமிழ்TürkçeУкраїнськаاردوTiếngViệt
編輯連結
延伸文章資訊
- 1NoSQL - 維基百科,自由的百科全書
... 系統儲存,而其他資料允許使用NOSQL系統儲存。其數據儲存可以不需要固定的表格模式以及元數據(metadata),也經常會避免使用SQL的JOIN操作,一般有水平可擴展性( ...
- 2初步認識分散式資料庫與NoSQL CAP 理論
這種增加節點的擴容方式,被稱作水平擴展(Horizontal Scaling). 然而,事情不像外表看起來那麼單純又美好,進入分散式世界後所需要考慮的事情變得更多更複雜了。
- 3怎麼擴展資料庫和Nosql資料庫——系統設計 - 每日頭條
但是,根據是SQL還是NoSQL資料庫,擴展背後的技術和原理是不同的。 我將探討兩個資料庫可 ... 另一方面,水平擴展可通過增加伺服器數量來實現擴展。
- 4了解NoSQL不可不知的5項觀念 - iThome
NoSQL資料庫的另一個重要特性是具有水平擴充能力,只要增加新的伺服器節點,就可以不斷擴充資料庫系統的容量。而且可以利用低價的一般等級電腦就能進行 ...
- 5怎么扩展数据库和Nosql数据库——系统设计 - 知乎专栏
我将探讨两个数据库可扩展性背后的主要思想。 由于本文假定你具有有关数据库及其属性的一些基本知识,因此复习SQL / NoSQL数据库将很有帮助。 垂直和水平 ...