NoSQL,指的是非關系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關系數(shù)據(jù)庫在應付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的
目前累計服務客戶1000多家,積累了豐富的產(chǎn)品開發(fā)及服務經(jīng)驗。以網(wǎng)站設計水平和技術實力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)頁設計、網(wǎng)絡營銷、VI設計、網(wǎng)站改版、漏洞修補等服務。創(chuàng)新互聯(lián)始終以務實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領先技術的掌握、對創(chuàng)意設計的研究、對客戶形象的視覺傳遞、對應用系統(tǒng)的結合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。
SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。
NoSQL(NoSQL
= Not Only SQL
),意即“不僅僅是SQL”,是一項全新的數(shù)據(jù)庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關系型的數(shù)
據(jù)存儲,相對于鋪天蓋地的關系型數(shù)據(jù)庫運用,這一概念無疑是一種全新的思維的注入。
從這一新興技術中選擇一款正確的NoSQL數(shù)據(jù)庫是非常具有挑戰(zhàn)性的。比一下網(wǎng)建議在選擇時考慮以下因素:
并發(fā)控制
并
發(fā)控制指的是當多個用戶同時更新運行時,用于保護數(shù)據(jù)庫完整性的各種技術。并發(fā)機制不正確可能導致臟讀、幻讀和不可重復讀等此類問題。并發(fā)控制的目的是保
證一個用戶的工作不會對另一個用戶的工作產(chǎn)生不合理的影響。在某些情況下,這些措施保證了當用戶和其他用戶一起操作時,所得的結果和她單獨操作時的結果是
一樣的。在另一些情況下,這表示用戶的工作按預定的方式受其他用戶的影響。
封鎖
就是事務T在對某個數(shù)據(jù)對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它的鎖之前,其它的事務不能更新此數(shù)據(jù)對象。
封鎖是一次只允許一個用戶讀取或修改的一種機制,是實現(xiàn)并發(fā)控制的一個非常重要的技術。
MVCC
Multi-Version Concurrency Control多版本并發(fā)控制,維持一個數(shù)據(jù)的多個版本使讀寫操作沒有沖突。MVCC優(yōu)化了數(shù)據(jù)庫并發(fā)系統(tǒng),使系統(tǒng)在有大量并發(fā)用戶時得到最高的性能,并且可以不用關閉服務器就直接進行熱備份。
ACID
指
數(shù)據(jù)庫事務正確執(zhí)行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久
性(Durability)。一個支持事務(Transaction)的數(shù)據(jù)庫系統(tǒng),必需要具有這四種特性,否則在事務過程(Transaction
processing)當中無法保證數(shù)據(jù)的正確性,交易過程極可能達不到交易方的要求。
None
一些系統(tǒng)不提供原子性。
鏡像
數(shù)據(jù)庫鏡像是DBMS根據(jù)DBA的要求,自動把整個數(shù)據(jù)庫或其中的關鍵數(shù)據(jù)復制到另一個磁盤上,每當主數(shù)據(jù)庫更新時,DBMS會自動把更新后的數(shù)據(jù)復制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。
鏡像分為同步和異步。
數(shù)據(jù)存儲
指的是數(shù)據(jù)的物理特性怎樣被存儲在數(shù)據(jù)庫中。
磁盤 數(shù)據(jù)被存儲在硬盤驅(qū)動器里;
GFS或谷歌文件系統(tǒng)是一個由谷歌開發(fā)的專有的分布式文件系統(tǒng);
Hadoop是Apache軟件框架,免費許可下支持數(shù)據(jù)密集型分布式應用程序;
RAM隨機存儲器;
插件 可以添加外部插件;
Amazon S3通過Web服務接口提供存儲;
BDB:BDB
全稱是 “Berkeley DB”,它是MySQL具有事務能力的表類型,由Sleepycat
Software開發(fā)。BDB表類型提供了MySQL用戶長久期盼的功能,即事務控制能力。在任何RDBMS中,事務控制能力都是一種極其重要和寶貴的功
能。事務控制能力使得我們能夠確保一組命令確實已經(jīng)全部執(zhí)行成功,或者確保當任何一個命令出現(xiàn)錯誤時所有命令的執(zhí)行結果均被退回。
實現(xiàn)語言
實現(xiàn)語言會影響數(shù)據(jù)庫的發(fā)展速度。典型的NoSQL數(shù)據(jù)庫是用低級語言如C / C + +編寫的。另一方面,那些更高層次的語言如Java,使自定義更容易。
實現(xiàn)語言有:C, C++, Erlang, Java, Python
特性
考慮下列哪一個特點對你的數(shù)據(jù)庫是最重要的:
持久性
可用性
一致性
分區(qū)容忍性
證書類型
下面這些許可證是一個不同的開放源碼許可的形式:
GPL:通用公共許可證
BSD:伯克利軟件分發(fā)
MPL:Mozilla公共許可證
EPL:Eclipse公共許可證
IDPL:最初的開發(fā)者的公共許可證
LGPL:較寬松通用公共許可證
存儲類型
存儲類型是NoSQL數(shù)據(jù)庫最大的不同,是決定使用哪款數(shù)據(jù)庫的一個首要指標。
關鍵字:支持get、put和刪除操作
按列存儲:相對于傳統(tǒng)的按行存儲,數(shù)據(jù)集成容易多了
面向文件系統(tǒng):存儲像是JSON或XML這樣的結構化文件,很容易就能從面向?qū)ο筌浖蝎@取數(shù)據(jù)。
什么是NoSQL數(shù)據(jù)庫?從名稱“非SQL”或“非關系型”衍生而來,這些數(shù)據(jù)庫不使用類似SQL的查詢語言,通常稱為結構化存儲。這些數(shù)據(jù)庫自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開始使用它們時,這些數(shù)據(jù)庫才流行起來。該數(shù)據(jù)庫最明顯的優(yōu)勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時,NoSQL這個名稱也可能表示“不僅僅SQL”,來確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據(jù)結構,并且可以如JSON之類的不同格式存儲。
內(nèi)存數(shù)據(jù)庫,也叫緩存,可以存儲訪問頻次很高的數(shù)據(jù)
redis是一個nosql(not only sql不僅僅只有sql)數(shù)據(jù)庫,翻譯成中文叫做非關系型型數(shù)據(jù)庫
常見的關系型數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品有Oracle、SQL Server、Sybase、DB2、Access等。 1.Oracle
Oracle是1983年推出的世界上第一個開放式商品化關系型數(shù)據(jù)庫管理系統(tǒng)。它采用標準的SQL結構化查詢語言,支持多種數(shù)據(jù)類型,提供面向?qū)ο蟠鎯Φ臄?shù)據(jù)支持,具有第四代語言開發(fā)工具,支持Unix、Windows NT、OS/2、Novell等多種平臺。除此之外,它還具有很好的并行處理功能。Oracle產(chǎn)品主要由Oracle服務器產(chǎn)品、Oracle開發(fā)工具、Oracle應用軟件組成,也有基于微機的數(shù)據(jù)庫產(chǎn)品。主要滿足對銀行、金融、保險等企業(yè)、事業(yè)開發(fā)大型數(shù)據(jù)庫的需求。
2.SQL Server
SQL即結構化查詢語言(Structured Query Language,簡稱為SQL)。SQL Server最早出現(xiàn)在1988年,當時只能在OS/2操作系統(tǒng)上運行。2000年12月微軟發(fā)布了SQL Server 2000,該軟件可以運行于Windows NT/2000/XP等多種操作系統(tǒng)之上,是支持客戶機/服務器結構的數(shù)據(jù)庫管理系統(tǒng),它可以幫助各種規(guī)模的企業(yè)管理數(shù)據(jù)。
隨著用戶群的不斷增大,SQL Server在易用性、可靠性、可收縮性、支持數(shù)據(jù)倉庫、系統(tǒng)集成等方面日趨完美。特別是SQL Server的數(shù)據(jù)庫搜索引擎,可以在絕大多數(shù)的操作系統(tǒng)之上運行,并針對海量數(shù)據(jù)的查詢進行了優(yōu)化。目前SQL Server已經(jīng)成為應用最廣泛的數(shù)據(jù)庫產(chǎn)品之一。
由于使用SQL Server不但要掌握SQL Server的操作,而且還要能熟練掌握Windows NT/2000 Server的運行機制,以及SQL語言,所以對非專業(yè)人員的學習和使用有一定的難度。
3.Sybase
1987年推出的大型關系型數(shù)據(jù)庫管理系統(tǒng)Sybase,能運行于OS/2、Unix、Windows NT等多種平臺,它支持標準的關系型數(shù)據(jù)庫語言SQL,使用客戶機/服務器模式,采用開放體系結構,能實現(xiàn)網(wǎng)絡環(huán)境下各節(jié)點上服務器的數(shù)據(jù)庫互訪操作。技術先進、性能優(yōu)良,是開發(fā)大中型數(shù)據(jù)庫的工具。Sybase產(chǎn)品主要由服務器產(chǎn)品Sybase SQL Server、客戶產(chǎn)品Sybase SQL Toolset和接口軟件Sybase Client/Server Interface組成,還有著名的數(shù)據(jù)庫應用開發(fā)工具PowerBuilder。
4.DB2
DB2是基于SQL的關系型數(shù)據(jù)庫產(chǎn)品。20世紀80年代初期DB2的重點放在大型的主機平臺上。到90年代初,DB2發(fā)展到中型機、小型機以及微機平臺。DB2適用于各種硬件與軟件平臺。各種平臺上的DB2有共同的應用程序接口,運行在一種平臺上的程序可以很容易地移植到其他平臺。DB2的用戶主要分布在金融、商業(yè)、鐵路、航空、醫(yī)院、旅游等各個領域,以金融系統(tǒng)的應用最為突出。
5.Access
Access是在Windows操作系統(tǒng)下工作的關系型數(shù)據(jù)庫管理系統(tǒng)。它采用了Windows程序設計理念,以Windows特有的技術設計查詢、用戶界面、報表等數(shù)據(jù)對象,內(nèi)嵌了VBA(全稱為Visual Basic Application)程序設計語言,具有集成的開發(fā)環(huán)境。Access提供圖形化的查詢工具和屏幕、報表生成器,用戶建立復雜的報表、界面無需編程和了解SQL語言,它會自動生成SQL代碼。
Access被集成到Office中,具有Office系列軟件的一般特點,如菜單、工具欄等。與其他數(shù)據(jù)庫管理系統(tǒng)軟件相比,更加簡單易學,一個普通的計算機用戶,沒有程序語言基礎,仍然可以快速地掌握和使用它。最重要的一點是,Access的功能比較強大,足以應付一般的數(shù)據(jù)管理及處理需要,適用于中小型企業(yè)數(shù)據(jù)管理的需求。當然,在數(shù)據(jù)定義、數(shù)據(jù)安全可靠、數(shù)據(jù)有效控制等方面,它比前面幾種數(shù)據(jù)庫產(chǎn)品要遜色不少。
DB(Database)數(shù)據(jù)庫,另外,還有常見的DBMS表示數(shù)據(jù)庫管理系統(tǒng)(Database Management System)。
數(shù)據(jù)庫是以某種規(guī)則儲存在一起、能夠與多個用戶共享、具有盡可能小的冗余度、且與應用程序彼此獨立的數(shù)據(jù)集合,可以視為電子化的文件柜,用戶可以對文件中的數(shù)據(jù)進行新增、查詢、更新、刪除等操作。
擴展資料:
數(shù)據(jù)庫類型:
1、關系數(shù)據(jù)庫
關系型數(shù)據(jù)庫,存儲的格式可以直觀地反映實體間的關系。關系型數(shù)據(jù)庫和常見的表格比較相似,關系型數(shù)據(jù)庫中表與表之間是有很多復雜的關聯(lián)關系的。
常見的關系型數(shù)據(jù)庫有Mysql,SqlServer等。在輕量或者小型的應用中,使用不同的關系型數(shù)據(jù)庫對系統(tǒng)的性能影響不大,但是在構建大型應用時,則需要根據(jù)應用的業(yè)務需求和性能需求,選擇合適的關系型數(shù)據(jù)庫。
2、非關系型數(shù)據(jù)庫(NoSQL)
指的是分布式的、非關系型的、不保證遵循ACID原則的數(shù)據(jù)存儲系統(tǒng)。NoSQL數(shù)據(jù)庫技術與CAP理論、一致性哈希算法有密切關系。
NoSQL數(shù)據(jù)庫技術還是具有非常明顯的應用優(yōu)勢,如數(shù)據(jù)庫結構相對簡單,在大數(shù)據(jù)量下的讀寫性能好;能滿足隨時存儲自定義數(shù)據(jù)格式需求,非常適用于大數(shù)據(jù)處理工作。
參考資料來源:百度百科-數(shù)據(jù)庫