四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

  關(guān)系數(shù)據(jù)庫(kù)已經(jīng)統(tǒng)治數(shù)據(jù)存儲(chǔ)30 多年了,但是無(wú)模式(或NoSQL)數(shù)據(jù)庫(kù)的逐漸流行表明變化正在發(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ù)庫(kù)的早期替代方案(還記得面向?qū)ο蟮臄?shù)據(jù)庫(kù)嗎?)不能解決真正緊急的問(wèn)題,NoSQL 數(shù)據(jù)庫(kù)(比如 Google 的 Bigtable 和 Amazon 的 SimpleDB)卻作為對(duì) Web 的高可伸縮性需求的直接響應(yīng)而崛起。本質(zhì)上,NoSQL 可能是一個(gè)殺手問(wèn)題的殺手應(yīng)用程序—隨著 Web 2.0 的演變,Web 應(yīng)用程序開(kāi)發(fā)人員可能會(huì)遇到更多,而不是更少這樣的應(yīng)用程序。

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

  NoSQL:一種新的思維方式?

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

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

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

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

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

  在文章“Java 開(kāi)發(fā) 2.0:針對(duì) Google App Engine 的 Gaelyk”中,我介紹了 Gaelyk ——一個(gè)基于 Groovy的框架,該框架有利于使用 Google 的底層數(shù)據(jù)存儲(chǔ)。那篇文章的主要部分關(guān)注如何利用 Google 的 Entity對(duì)象。下面的示例(來(lái)自那篇文章)將展示對(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í)庫(kù)IBM,DW,NoSQL,數(shù)據(jù)建模,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 最佳嫌疑人电影免费观看| 上海东方卫视节目表| 同志电影副歌1080p| 美姐妹| 姬他演过的电视剧和电影| hunger game| 热血高校 电影| 火与剑| 布袋头| 电影喜剧明星演员表| 团结就是力量歌词完整| 女人高潮私密按摩视频| 孕妇能吃杏仁吗| 红灯区1996| 大悲咒朗诵正版念诵| 陈澎| 巴厘岛旅游攻略| 黄影| 不可知难而退的演讲稿| 啊嗯啊嗯| douyincom| 雪天使演员表介绍| 我和我的祖国教案| 我是你舅舅| 李道新| 初夜在线观看| 菊花开| 邪教档案| 吾凰在上动漫在线观看免费| 新民歌| 谍影 电视剧| 美食总动员在线观看完整版免费| 青春残酷物语| 变性手术男变女能怀孕吗| 彭丹露点| 红星闪闪歌词完整版打印| 朱莉娅安| 性的秘密| 刘德华练习歌词| 宁死不屈电影免费观看| 陈芷琰演过哪些电视剧名字|