一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

SQL數(shù)據(jù)庫的終結(jié)?

  英文原文:The end of SQL and relational databases?

  作者:David Intersimone

  翻譯:外刊IT評論

  SQL 的發(fā)展起始于 E.F.Codd 博士1970年六月發(fā)表于計(jì)算機(jī)協(xié)會的“通信”上的一篇論文, “大型共享數(shù)據(jù)庫的關(guān)系模型“。當(dāng)時他和他的在IBM工作的同事 Donald Chamberlin 和 Raymond Boyce正在研究一種查詢語言(最初叫做SQUARE, Specifying Queries As RelationalExpressions的首字母縮寫),并于1974年以論文”SEQUEL:A Structured English Query Language“將此成就推向頂峰。從此以后,SQL就成了關(guān)系數(shù)據(jù)庫系統(tǒng)的最主要的語言。近些年,軟件開發(fā)業(yè)內(nèi)出現(xiàn)了一些體系框架和架構(gòu),主要目的是試圖隱藏(或完全放棄)直接使用SQL和關(guān)系數(shù)據(jù)庫,讓開發(fā)人員能夠在應(yīng)用開發(fā)中專注于用戶界面,業(yè)務(wù)邏輯和平臺支持上。同時出現(xiàn)了一批被認(rèn)為是關(guān)系型數(shù)替代品,稱之為”NoSQL”的數(shù)據(jù)庫。難道我們能夠成為 SQL和關(guān)系型數(shù)據(jù)庫終結(jié)的見證人嗎?

  在一個由Mike Riley主持的十二月 DDJ podcast 訪談中,我被問到:“隨著ORMs(Object Relational Mapping對象關(guān)系映射)的流行,有些軟件開發(fā)者們認(rèn)為SQL已經(jīng)失去其價值了。你對這種觀點(diǎn)有什么看法?”我整個新年假期都在想這個問題,思考這個問題所隱含的意義已及ORM的未來,我花一段時間研究了一下像 Ruby on Rails Active RecordHibernate 這樣的框架。這些框架仍然需要開發(fā)人員掌握關(guān)系數(shù)據(jù)的設(shè)計(jì)、開發(fā)和維護(hù)等知識。 Microsoft所開發(fā)的LINQ(.NET Language Integrated Query)也只是減少了編程語言和數(shù)據(jù)庫語言之間的不兼容問題。

  “NoSQL 運(yùn)動”和分布式數(shù)據(jù)存儲(Cloud based data stores)都是致力于徹底的將開發(fā)人員和SQL語言和關(guān)系數(shù)據(jù)庫之間的依存斬?cái)唷R恍┏绦騿T認(rèn)為 NoSQL 運(yùn)動是一種全新的感念。面向?qū)ο笫綌?shù)據(jù)庫(Object databases)最早出現(xiàn)于19世紀(jì)80年代, Ray Ozzie 于19世紀(jì)90年代最早將它商用于Lotus Notes的文檔數(shù)據(jù)存儲業(yè)務(wù)。

  Charlie Caro, 資深軟件工程師,在美國 Embarcadero 開發(fā) InterBase SQL 數(shù)據(jù)庫引擎,他告訴我:“在以前,人們普遍認(rèn)為,不對數(shù)據(jù)的并發(fā)操作進(jìn)行控制的數(shù)據(jù)庫基本不可能被大家廣泛接受。但Ozzie認(rèn)識到,分布式、可復(fù)制性和易于安裝的特征所帶來的好處遠(yuǎn)勝于在管理文檔數(shù)據(jù)和消息時很少能遇到的并發(fā)更新沖突控制所帶來的好處。而且,如果文檔數(shù)據(jù)如果需要確保被正確的修改、不能丟失數(shù)據(jù),我們可以把配置切換到并發(fā)控制狀態(tài)上,這是可選擇的。但缺省狀態(tài)是不考慮更新沖突控制的。”

  NoSQL, 根據(jù) WikiPedia 上的解釋,是 “一種泛稱(umbrella term),指那些非關(guān)系性的、定義不是很明確的數(shù)據(jù)存儲倉庫。“這個術(shù)語最早是 Rackspace 公司 的員工 Eric Evans 發(fā)明的。在他上年十月發(fā)表的博客里出現(xiàn)了 NoSQL (現(xiàn)在普遍認(rèn)為是 Not Only SQL 的意思) 這個詞。這篇博客里真正的閃光點(diǎn)是”我們之所以要尋找一個其它類型的數(shù)據(jù)庫的根本原因是想解決關(guān)系型數(shù)據(jù)庫存在的各種弊端。“ Adam Keys 在他的博客The Real Adam blog post提供了另一個相似的術(shù)語:”Post-Relational”。一些 NoSQL數(shù)據(jù)庫還把消除那種關(guān)系型數(shù)據(jù)庫對計(jì)算機(jī)資源、內(nèi)存占用的問題作為一個目標(biāo)。NoSQL的其他目標(biāo)還包括:弱化與編程語言的關(guān)系,使用Web技術(shù)和RPC調(diào)用方式可訪問,以及可切換的數(shù)據(jù)查詢方式。

  在最近的一篇博客”關(guān)于”NoSQL” 的討論其實(shí)與SQL無關(guān)“里 Michael Stonebraker 教授將 SQL 和 NoSQL 數(shù)據(jù)庫進(jìn)行了對比。SQL 和 NoSQL 數(shù)據(jù)庫可以通過下面的幾個特性和性能進(jìn)行部分或全面比較 (注意:應(yīng)該有更多的特征可以添加到下面的列表里。歡迎在評論里追加你認(rèn)為能夠區(qū)別這兩種數(shù)據(jù)庫的特征):

  • 橫向和縱向擴(kuò)展能力 – 關(guān)系型數(shù)據(jù)庫(傳統(tǒng)的數(shù)據(jù)庫)通常部署在一臺服務(wù)器上,通過增加處理器、內(nèi)存和硬盤來進(jìn)行升級。部署在多臺服務(wù)器上的關(guān)系型數(shù)據(jù)庫通常是依賴相互復(fù)制來保持?jǐn)?shù)據(jù)同步。NoSQL 數(shù)據(jù)庫可以部署在單服務(wù)器上,但更多的是部署成云狀分布式 (NoSQL:分布式和可擴(kuò)展的非關(guān)系型數(shù)據(jù)庫系統(tǒng))。
  • 列,key/value存儲,數(shù)組(Tuples)存儲 – 關(guān)系型數(shù)據(jù)庫通常是有表或視圖里的字段構(gòu)成(固定的結(jié)構(gòu),用各種操作相互關(guān)聯(lián))。NoSQL 數(shù)據(jù)庫通常存儲的是一對鍵值或 數(shù)組式(Tuples) (結(jié)構(gòu)不固定,只是一個有順序的數(shù)據(jù)隊(duì)列)。
  • 數(shù)據(jù)的內(nèi)存和硬盤使用 – 關(guān)系型數(shù)據(jù)庫通常是駐留在一個硬盤內(nèi)或一個網(wǎng)絡(luò)存儲空間里。SQL查詢或存儲過程操作會把數(shù)據(jù)集提取到內(nèi)存空間里。一些 (并不是全部) NoSQL 數(shù)據(jù)庫可以直接在硬盤上操作,也可以通過內(nèi)存來加快速度。
  • 面向文檔型(Document-Oriented), 面向集合型(Collection-Oriented), 面向列型(Column-Oriented);
    面向?qū)ο笮停∣bject-Oriented), 面向有序集合型(Set-Oriented), 面向行型(Row-Oriented)。
    面向文檔型數(shù)據(jù)庫存儲的是文檔、屬性和XML。面向集合型的數(shù)據(jù)集提供了更適合面向?qū)ο缶幊陶Z言的特性。關(guān)系型數(shù)據(jù)庫的特性是用表,行,列(面向列型)來組織數(shù)據(jù)。SQL查詢操作通常返回的是指向包含特定列的某行或某些行的集合的指針。面向?qū)ο蟮臄?shù)據(jù)庫之所以出現(xiàn)是由于面向?qū)ο蟮木幊痰牧餍校壳盀橹梗ㄒ约皩砗芏嗄昀铮╆P(guān)系型數(shù)據(jù)庫仍是數(shù)據(jù)存儲模式里占有霸主地位。面向?qū)ο笮蛿?shù)據(jù)庫也是 NoSQL 數(shù)據(jù)庫嗎? 對象關(guān)系映射(ORM)框架的興起將面向?qū)ο缶幊毯痛蠖鄶?shù)關(guān)系型數(shù)據(jù)緊緊的綁到了一起。 NoSQL 數(shù)據(jù)庫里的數(shù)據(jù)通常是存儲成對象、key/value、或數(shù)組(tuples)形式。 NoSQL 數(shù)據(jù)庫的查詢操作通常由編程代碼或一個接口完成。

  在一次郵件交流里,Charlie Caro 對我說了下面的話:”如果 Facebook 需要去管理 100,000,000個用戶的個人信息,一個分布式的、不依賴于環(huán)境的,key-value形式的存儲模式是最適合不過了。在這樣大數(shù)量的用戶里查詢會沒有問題,但只要一個用戶的更新操作就可能讓傳統(tǒng)的數(shù)據(jù)庫過載宕機(jī)。多用戶讀數(shù)據(jù)時一個用戶更新數(shù)據(jù),這需要并發(fā)控制。在多數(shù)情況下,NoSQL方案之所以能吸引它的用戶群的原因是它的易于安裝和使用的特征,SQL數(shù)據(jù)庫需要較多的運(yùn)行條件(schema 等),但正是這些schema方案給了并行關(guān)系型數(shù)據(jù)系統(tǒng)的高性能。易使用的好處更多的是體現(xiàn)在編程開發(fā)的時候。今天的許多程序員都更傾向于使用腳本語言,而不是相同功能的更安全的靜態(tài)類型檢查的編譯型語言。腳本型語言只是容錯性強(qiáng)和易于上手,有些軟件能把這些腳本程序編譯成.NET/Java字節(jié)碼來提高運(yùn)行性能。” 我和他都認(rèn)為,所有的這一切都是為了讓我們在工作中有更好的工具使用,而且從來都是這樣!當(dāng)有螺絲刀時誰還用錘子去釘螺絲釘。

  在”SQL數(shù)據(jù)庫的終結(jié) – 第二篇(共三篇)“中,我們以同樣的視角來看一看目前已經(jīng)出現(xiàn)的一些開源的或非開源的NoSQL數(shù)據(jù)庫。之后在”SQL 數(shù)據(jù)庫的終結(jié) – 第三篇” 中,我將會告訴大家一些因特網(wǎng)上關(guān)于NoSQL的資料,過去和將要發(fā)生的事件,以及一些相關(guān)指導(dǎo)。

  數(shù)年以后,我估計(jì)我們大多數(shù)還是要依賴于關(guān)系數(shù)據(jù)庫和SQL。我當(dāng)然有愿望,我將會不斷的研究尋找更好的方式去弱化和封裝數(shù)據(jù)訪問操作。一直以來,任何工程決策都是跟用戶和業(yè)務(wù)需求相適應(yīng)的。對于以后的軟件工程來說,我相信,我們一定會找到一個合適的非關(guān)系型數(shù)據(jù)存儲產(chǎn)品。你是否正在使用非關(guān)系型數(shù)據(jù)庫呢?你是否已經(jīng)放棄了SQL和關(guān)系型數(shù)據(jù)庫呢?你是否正在把你的數(shù)據(jù)轉(zhuǎn)移到一個公共的或私有的云數(shù)據(jù)庫里呢?請發(fā)表評論。

  編程就是人生!

it知識庫SQL數(shù)據(jù)庫的終結(jié)?,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 狠婷婷 | 黄色在线观看视频网站 | 国产91精品久久久久久 | 精品久久中文网址 | 国产高清一区二区三区四区 | 久久精品视频亚洲 | 国内精品免费视频自在线 | 欧美 日产 国产动漫 | 欧美精品www | 精品国产一区二区三区免费 | 欧日韩视频777888 | 亚洲人成人毛片无遮挡 | 久草小区二区三区四区网页 | 欧美人体大胆私密视频 | 337p欧美超大胆日本人术艺术 | 国产在线一区二区三区四区 | 国产swag在线 | 天天摸天天爽视频69视频 | 99精选视频 | 欧美日韩国产一区二区三区在线观看 | 精品精品精品 | 亚洲伦乱| 乱人伦一区二区三区 | 四虎国产精品视频免费看 | 免费播放美女一级毛片 | 一级做a爰性色毛片 | 激情网站免费看 | 视频在线观看一区二区三区 | 久久精品国产亚洲综合色 | xxxxxwwww免费视频 | 成人综合在线视频免费观看 | 天天摸天天看天天爽 | 五月婷六月婷婷 | 中文字幕在线观看91 | 国产麻豆91 | 欧美特黄一级片 | baoyu168成人免费视频 | 亚洲精品第一 | 99re6这里只有精品视频 | 日韩三级久久 | 中国女人一级毛片 |