天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

IBM,DW,NoSQL,數(shù)據(jù)建模

  關(guān)系數(shù)據(jù)庫已經(jīng)統(tǒng)治數(shù)據(jù)存儲(chǔ)30 多年了,但是無模式(或NoSQL)數(shù)據(jù)庫的逐漸流行表明變化正在發(fā)生。盡管 RDBMS 為在傳統(tǒng)的客戶端服務(wù)器架構(gòu)中存儲(chǔ)數(shù)據(jù)提供了一個(gè)堅(jiān)實(shí)的基礎(chǔ),但它不能輕松地(或便宜地)擴(kuò)展到多個(gè)節(jié)點(diǎn)。在高度可伸縮的 Web 應(yīng)用程序(比如 Facebook 和 Twitter)的時(shí)代,這是一個(gè)非常不幸的弱點(diǎn)。

  盡管關(guān)系數(shù)據(jù)庫的早期替代方案(還記得面向?qū)ο蟮臄?shù)據(jù)庫嗎?)不能解決真正緊急的問題,NoSQL 數(shù)據(jù)庫(比如 Google 的 Bigtable 和 Amazon 的 SimpleDB)卻作為對(duì) Web 的高可伸縮性需求的直接響應(yīng)而崛起。本質(zhì)上,NoSQL 可能是一個(gè)殺手問題的殺手應(yīng)用程序—隨著 Web 2.0 的演變,Web 應(yīng)用程序開發(fā)人員可能會(huì)遇到更多,而不是更少這樣的應(yīng)用程序。

  在這期 Java 開發(fā) 2.0 中,我將向您介紹無模式數(shù)據(jù)建模,這是經(jīng)過關(guān)系思維模式訓(xùn)練的許多開發(fā)人員使用 NoSQL 的主要障礙。您將了解到,從一個(gè)域模型(而不是關(guān)系模型)入手是簡化您的改變的關(guān)鍵。如果您使用 Bigtable(如我的示例所示),您可以借助 Gaelyk:Google App Engine 的一個(gè)輕量級(jí)框架擴(kuò)展。

  NoSQL:一種新的思維方式?

  當(dāng)開發(fā)人員談?wù)摲顷P(guān)系或 NoSQL 數(shù)據(jù)庫時(shí),經(jīng)常提到的第一件事是他們需要改變思維方式。我認(rèn)為,那實(shí)際上取決于您的初始數(shù)據(jù)建模方法。如果您習(xí)慣通過首先建模數(shù)據(jù)庫結(jié)構(gòu)(即首先確定表及其關(guān)聯(lián)關(guān)系)來設(shè)計(jì)應(yīng)用程序,那么使用一個(gè)無模式數(shù)據(jù)存儲(chǔ)(比如 Bigtable)來進(jìn)行數(shù)據(jù)建模則需要您重新思考您的做事方式。但是,如果您從域模型開始設(shè)計(jì)您的應(yīng)用程序,那么 Bigtable 的無模式結(jié)構(gòu)將看起來更自然。

  非關(guān)系數(shù)據(jù)存儲(chǔ)沒有聯(lián)接表或主鍵,甚至沒有外鍵這個(gè)概念(盡管這兩種類型的鍵以一種更松散的形式出現(xiàn))。因此,如果您嘗試將關(guān)系建模作為一個(gè) NoSQL 數(shù)據(jù)庫中的數(shù)據(jù)建模的基礎(chǔ),那么您可能最后以失敗告終。從域模型開始將使事情變得簡單;實(shí)際上,我已經(jīng)發(fā)現(xiàn),域模型下的無模式結(jié)構(gòu)的靈活性正在重新煥發(fā)生機(jī)。

  從關(guān)系數(shù)據(jù)模型遷移到無模式數(shù)據(jù)模型的相對(duì)復(fù)雜程度取決于您的方法:即您從基于關(guān)系的設(shè)計(jì)開始還是從基于域的設(shè)計(jì)開始。當(dāng)您遷移到 CouchDB 或 Bigtable 這樣的數(shù)據(jù)庫時(shí),您的確會(huì)喪失 Hibernate(至少現(xiàn)在)這樣的成熟的持久存儲(chǔ)平臺(tái)的順暢感覺。另一方面,您卻擁有能夠親自構(gòu)建它的“綠地效果”。在此過程中,您將深入了解無模式數(shù)據(jù)存儲(chǔ)

  實(shí)體和關(guān)系

  無模式數(shù)據(jù)存儲(chǔ)賦予您首先使用對(duì)象來設(shè)計(jì)域模型的靈活性(Grails 這樣的較新的框架自動(dòng)支持這種靈活性)。您的下一步工作是將您的域映射到底層數(shù)據(jù)存儲(chǔ),這在使用 Google App Engine 時(shí)再簡單不過了。

  在文章“Java 開發(fā) 2.0:針對(duì) Google App Engine 的 Gaelyk”中,我介紹了 Gaelyk ——一個(gè)基于 Groovy的框架,該框架有利于使用 Google 的底層數(shù)據(jù)存儲(chǔ)。那篇文章的主要部分關(guān)注如何利用 Google 的 Entity對(duì)象。下面的示例(來自那篇文章)將展示對(duì)象實(shí)體如何在 Gaelyk 中工作。

  清單1.使用 Entity的對(duì)象持久存儲(chǔ)

def ticket =newEntity("ticket")ticket.officer = params.officerticket.license = params.plateticket.issuseDate = offensedateticket.location = params.locationticket.notes = params.notesticket.offense = params.offense

 

  清單7.查找程序的實(shí)際運(yùn)行

def nrace = Race.findByName("Charlottesville Marathon")assertnrace.distance ==26.2def races = Race.findAllByName("Charlottesville Marathon")assertraces.class== ArrayList.class

it知識(shí)庫IBM,DW,NoSQL,數(shù)據(jù)建模,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 狠狠躁天天躁小说 | 久久精品一卡二卡三卡四卡视频版 | 亚洲视频不卡 | 国产精品久久久精品a级小说 | 含羞草在线| 久久免费看少妇级毛片蜜臀 | 精品AV亚洲乱码一区二区 | 久久久无码精品亚洲欧美 | 欧美日韩亚洲一区视频二区 | 国产99久久| 精品国产乱码久久久久久上海公司 | 亚洲一区高清 | 成人在线观看视频免费 | 久久99AV无色码人妻蜜 | 亚洲国产精品一区二区动图 | 久久国产主播福利在线 | 极品少妇高潮XXXXX | 精品久久综合1区2区3区激情 | 久久99国产精品无码AV | 伊人青青青 | 欧美极限变态扩张video | 久草大 | 国产精品久久久久久人妻香蕉 | 微拍秒拍99福利精品小视频 | 中文字幕a有搜索网站 | 亚洲国产精品久久无套麻豆 | 阿力gv资源 | 高清mv视频免费观看 | 精品国产麻豆AV无码 | xxxjapanese丰满奶水 | 久青草影院 | 国产自啪偷啪视频在线 | 东北老妇人70OLDMAN | 高清 仑乱 一级 a | 68日本xxxxxxxx79 | 被吊起玩弄的女性奴 | AV97最新无码喷水叫床 | 日韩一区二区三区精品 | 秋霞电影网伦大理电影在线观看 | 找老女人泻火对白自拍 | 欧美残忍xxxx极端 |