天天躁日日躁狠狠躁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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品免费看网站 | 最新亚洲一区二区三区四区 | 丰满老熟女白浆直流 | 欧洲最大无人区免费高清完整版 | 果冻传媒视频在线播放 免费观看 | 三级黄色一级视频 | 蜜芽在线影片 | 亚州AV中文无码乱人伦在线 | 香港论理午夜电影网 | 99久久久久亚洲AV无码 | 99热这里只有的精品 | 玖玖热视频一区二区人妻 | 嫩B人妻精品一区二区三区 内射一区二区精品视频在线观看 | 男生脱美女内裤内衣动态图 | 国产精品亚洲AV毛片一区二区三区 | 黄瓜视频苹果直接安装 | 免费无码国产欧美久久18 | 理论片午午伦夜理片久久 | 免费一级片网站 | 男生在床上脱美女 胸 | 国产真实夫妇交换视频 | 边做边爱免费视频播放 | 双性将军粗壮H灌满怀孕 | 一本色道久久综合亚洲精品蜜桃冫 | 久欠热视频精品首页 | 肉动漫无码无删减在线观看 | 肉动漫3D卡通无修在线播放 | 动漫美女搞鸡 | 久久成人伊人欧洲精品AV | 日本在线高清不卡免费播放 | 九九热国产视频 | 老师好爽你下面水好多视频 | 欧美大片免费观看 | 娇妻让壮男弄的流白浆 | 久久只精品99品免费久 | 野花香在线观看免费观看大全动漫 | 亚洲国产综合久久精品 | 99久久免热在线观看 | 朝鲜女人性猛交 | 韩国精品韩国专区久久 | 国产在线观看网址你懂得 |