Norfolk Botanical Gardens: Azaleas sa Bloom

Posted on 27 Set 2009 by ideonexus sa Adventuring
Vicky with Azaleas
Vicky na may Azaleas

azalea ay natatanging sa gitna ng uri ng hayop ng rododendro sa na, sa halip na namumulaklak sa tumpok o "stripers" bilang sila ay kilala, ang bawat terminal sanga sa bush azalea gumagawa ng isang bulaklak, na nagreresulta sa ang kahindik nagpapakita dalhin sila sa bawat buwan ng Abril.

Tingnan ang kumpletong Flickr set dito .

Norfolk Botanical Gardens: Rose Garden

Posted on 20 Set 2009 by ideonexus sa Adventuring

Ibinigay ng Dios sa amin ang aming mga alaala na kaya na magkaroon tayo ng mga rosas sa Disyembre. ~ JM Barrie

Norfolk Botanical Gardens Rose Garden
Norfolk Botanical Gardens Rose Garden

Shakespeare wrote, "Ano ang sa isang pangalan? Na kung saan ang tawag namin ng isang rosas
Sa pamamagitan ng anumang iba pang pangalan na nais amoy bilang matamis; "subalit, psychologists ay natagpuan na ito ay hindi totoo, na mga salita na epekto sa paraan maramdaman namin ang mundo . Pag-unawa sa agham ng mga rosas, kung paano sila ay ginawa ng carbon na hinila mula sa hangin, na madalas na sila ay grafted papunta sa mga ugat ng hardier species sa matirang buhay ang labas, at kung paano sila pull ng enerhiya direkta mula sa araw, gumagawa ng mga ito ang lahat ng mas kaibig-ibig sa humanga.

Ito reminds ako ng quote na ito Feynman:

Ang World asta kaya iba't ibang mga pagkatapos ng pag-aaral science.

Halimbawa, ang mga puno ay ginawa ng hangin, lalo na. Kapag sila ay sunog, pumunta sila pabalik sa himpapawid, at sa nagbabaga init ay pinakawalan ang mga siga sa init ng araw na kung saan ay nakatali sa para palitan ang hangin sa punong kahoy. [A] nd sa mga abo ay ang maliit na labi ng bahagi na kung saan hindi dumating mula sa hangin, na dumating mula sa mga solid lupa, sa halip.

Ang mga ito ay magagandang bagay, at ang nilalaman ng science ay kamangha-mangha na puno ng mga ito. Ang mga ito ay tunay nakasisigla, at sila ay maaaring gamitin upang magbigay ng inspirasyon sa iba.

Tingnan ang kumpletong Flickr set dito .

CIS515 Istratehiya para sa mga sistema ng Database: Ang O / R Problema: Mapping Pagitan pamanggit at object-oriented methodologies

Posted on 19 Set 2009 by ideonexus sa Geeking Out - Tags:

Ang isang PDF ng ito Paper ay makukuha dito .

Pagpapakilala

Pamanggit database ay naka-set ng mga talahanayan ng pagtukoy sa mga haligi ng mga hilera naglalaman ang mga ito, na kung saan ay din conceptualized bilang relasyon sa pagtukoy ng mga katangian ng tuples sila store. Pamanggit Database Management System (RDBMS) abstract ang normalized pamanggit istruktura batayan ang sistema ang layo mula sa mga gumagamit, na nagpapahintulot sa kanila upang tumutok sa mga tiyak na data na nais nilang kunin mula sa mga ito. Sa pamamagitan ng mga query, nagbibigay sila ng mga gumagamit ang kakayahan ng mga sumali sa set na relasyon sa mga ulat, transforming ang data sa impormasyon. Sa pamamagitan ng normalisasyon, puksain ang kalabisan sila, tiyakin na may isa lamang ang pinagmulan para sa bawat elemento ng data sa sistema, at mapabuti ang integridad sa pamamagitan ng mga relasyon batay sa mga susi ng data at pagpapatunay (Rob at Coronel, 2009). Kahit na may mga alternatibo upang RDBMS's, ang limang nangungunang database management system para sa 2004-2006 ay ang lahat ng pamanggit (Olofson, 2007).

Bagay orientation ay isang "set ng disenyo at pag-unlad prinsipyo batay sa conceptually nagsasarili istruktura computer na kilala bilang mga bagay." Object-oriented programming (OOP) ay tumatagal ng mga kaugnay na mga sangkap ng data at function, na kilala bilang mga katangian at pamamaraan, at encapsulates ang mga ito sa mga bagay na maaaring makipag-ugnayan may iba pang mga bagay sa pamamagitan ng pagmemensahe o kumilos sa kanilang sarili. diskarte na ito binabawasan kumplikado sa sistema, pagtatago ito sa loob ng mga bagay na mas madaling maintindihan na concepts sa halip na paliwanag ang kanilang mga workings sa loob ng isang morass ng pamamaraan code. Bukod dito, OOP nagtataguyod ng muling paggamit ng coding mga solusyon sa mga klase, na kung saan ay binuo sa isang modelo pangkalahatan set ng mga katangian at mga pamamaraan na ipinatupad sa mga pagkakataon na object, na muling gamitin ang mga klase code. Subclasses magmana ng ari-arian at mga pamamaraan mula sa mga klase ng magulang, at pagkatapos ay mapalawak ang mga ito na may karagdagang mga katangian at pamamaraan, ang pagtaas ng karagdagang code-reusability (Rob at Coronel, 2009).

Sa karamihan ng mga database ng enterprise nakabalangkas sa pamanggit modelo at sa karamihan ng mga wika programming pagpapatupad ng object-orientation, problema arises mula sa mga component system architecture, na dapat makipag-ugnayan sa isa't isa, operating mula sa dalawang natatanging mga paradigms. Bilang isang resulta, ang data na naka-imbak relationally na object-oriented software pangangailangan sa trabaho sa dapat na naka-map sa pamanggit modelo sa mga object-oriented isa, at vice-versa. Database expert Akmal Chaudhri pinagkukumpara ng paggamit ng isang RDBMS sa OOP sa pagkakalag ng sandata ng isang Boeing 747 at pagtatago ng lahat ng mga bahagi nito na magkahiwalay kapag hindi ginagamit, at pagkatapos ay kinukuha ang lahat ng mga bahagi at reassembling mga sasakyang panghimpapawid kapag ang user ay nagnanais na lumipad ito (Leavitt, 2009) . Ang problemang ito ay kilala bilang mga object-pamanggit mismatch impedance, at software developer may wrestled sa mga ito para sa hangga't ang dalawang estratehiya na umiiral.

Ang pagtukoy sa mga O / R Impedance Mismatch

Sa unang tingin, mga pagkakaiba sa pagitan ng dalawang paradigms tila bale-wala, ngunit ang mga nuisances maaaring may malalim na kahihinatnan. Relations ay matibay, ang lahat ng mga hilera sa isang table na dapat magkaroon ng parehong mga patlang, ngunit isang "koleksyon ay maaaring maglaman ng mga bagay ng iba't ibang klase sa pamamagitan ng mana at polymorphism (Qint, 2009)." Classes encapsulate negosyo lohika sa data, pagsunod sa lahat ng bagay sa isang lugar. Related relasyon ay sumali sa pamamagitan ng susi binubuo ng data, habang ang mga bagay ay sumali sa pamamagitan ng mga link. Bagay na identities at estado, na kung saan ay hiwalay at naiiba, habang tuples ay kinilala ng estado ng kanilang mga katangian. Dalawang tuples ng parehong kaugnay na magkaroon ng parehong halaga ng katangian ay itinuturing na magkapareho, ngunit dalawang mga bagay na may parehong halaga ng ari-arian ay hindi magkamukha, sila ang katumbas.

Ang mga dalubhasa, pa mahalagang pagkakaiba sa resulta sa mga dobleng pagmomolde sa software development, isang object-oriented, isa pamanggit, sa paglabag sa mga Huwag Ulitin Yourself (tuyo) Prinsipyo, na emphasizes pagkakaroon ng isa source ng kapangyarihan para sa bawat piraso ng sistema ng kaalaman (Hunt at Thomas, 1999). Kapag ang pagbabago ay ginawa upang ang modelo ng database, ang object model dapat baguhin pati na rin, na, sa maintenance phase, isasalin sa mga pagbabago sa mga database na nangangailangan ng pagbabago sa mga software application, sa paglabag sa mga prinsipyo ng orthogonality, na mga bahagi ay dapat na dinisenyo sa paraan na ang isang pagbabago sa isang bahagi ay may maliit na epekto sa ang magpahinga ng ang sistema. Kapag ang application software ay maluwag kaisa sa database software na ito nakikipag-ugnayan sa, mga pagbabago sa isa sistema ay may minimal na epekto sa ang magpahinga ng ang sistema.

Bagay-pamanggit Mapping Istratehiya

Kasalukuyang mga software developers ay dapat magsikap na matamo ang alinman sa ikatlong partido O / R mapping components at kasangkapan o bumuo ng kanilang sariling mga estratehiya sa paggawa ng mga mapa sa mga in-bahay. Mga application programmers nagtatrabaho off RDBMS's minsan gumastos ng higit sa 25 porsiyento ng kanilang mga coding oras na bagay mapping programa sa database (Leavitt, 2009). May apat na pangunahing pamamaraan para sa Oh / R mapping maaari nangangailangan ng alinman sa isang solong table, maramihang mga talahanayan, o kahit generic database architecture. Ang mga estratehiya ay nangangailangan ng pagbabago ng pamanggit modelo upang gawin itong mas maginhawa para sa object na modelo na bumuo ng off ng database, at hindi harapin ang mga isyu ng maramihang mana, na ito ay posible sa maraming OOP's para sa klase ng isang upang mapalawak at mamanahin mula sa higit sa isa klase, na kung saan karagdagang complicates ang isyu.

Isa diskarte ay upang mapa ang buong object-class hierarchy sa isang solong mesa (Ambler, 2006). Halimbawa, kung ang mga "estudyante" mga klase at "guro" extend ang magulang class "na tao," at pagkatapos ay doon ay isang solong kinalaman sa database, "tao," na humahawak sa parehong mga estudyante at guro na mga hilera. Ang object-modelo ay maaaring makilala kung aling mga hanay sa load sa mag-aaral at guro na bagay sa pamamagitan ng isang hanay ng "category" na nagpapakilala ng bawat tuple naaangkop. Ang problema sa ito diskarte ay dumating na may mga paraan ito epekto database normalisasyon. Estudyante at guro ay mangangailangan ng ibang-iba na katangian, at ang isang solong table na binubuo ng parehong ay isama ang maramihang bahagyang dependencies, tulad student_id para sa mga mag-aaral at employee_id para sa mga guro, sa paglabag sa ikalawang normal form (Rob at Coronel, 2009).

Isa pang diskarte ay upang magkaroon ng isang relasyon sa bawat kongkreto klase (Ambler, 2006). Sa halip na lumikha ng isang solong table na tao na kasama ang lahat ng mga bagay na maaaring magmana mula sa abstract class, dalawang lamesa ay nilikha, "mag-aaral" at "guro", na kumakatawan sa dalawang instantiable klase. Pamamaraan na ito ay sa pagitan sa pagitan ng iisang solusyon table at pagkakaroon ng isang isang-para-isa na relasyon sa pagitan ng mga klase at mga talahanayan. Pagpapatupad ng diskarte na ito ay maaaring humantong sa sakit sa ulo karagdagang down ang pag-unlad na cycle sa kahit isang klase ng magulang ay nabago. Halimbawa, kung ang "tao" class ay mabago upang magdagdag ng isang "DateOfBirth" ari-arian, at pagkatapos ay sa bawat table sa database na sumusuporta sa isang kongkreto class extended mula sa "tao" ay kailangan na may attribute na ito idinagdag sa ito.

Ang pinaka-tapat na pamamaraan ay upang mapanatili ang isang isang-para-isa na relasyon sa pagitan ng mga talahanayan sa database at mga klase sa application (Ambler, 2006). diskarte na ito ay nangangailangan ng maraming mga talahanayan, hindi lamang isa para sa bawat klase, kundi pati na rin mga talahanayan at susi mga katangian na mapanatili ang relasyon sa pagitan ng mga klase, gaya sa kaso ng maraming-sa-maraming mga relasyon sa pagitan ng mga bagay. Kapag ang isang kongkreto class ay instantiated, ang kadena ng mga tapyas na kumakatawan sa mga klase ito inherits mula sa dapat na sumali sa isang query sa matagumpay na manirahan sa klase properties.

Ang hindi bababa sa tapat na pamamaraan, ngunit ang isa na pinaka maluwag Couples ang mga bagay sa pamanggit modelo, ay upang ipatupad ang isang ganap na database generic. Dito, sa halip ng mga relasyon sa pagiging concretely tinukoy sa mga database, ang pamanggit modelo ay nagbibigay-daan para sa mga entry ng anumang uri ng istraktura (Ambler, 2006). Sa ibang salita, sa halip ng isang table "tao" na may mga haligi ng pagtukoy sa mga katangian ng isang bagay na tao, may isang "tao" table na may minimum na halaga ng pagkilala ng data, ang isang "person_attributes" table, kung saan ang mga posibleng mga katangian ay nakalista at isang "person_attributes_values" table, kung saan ang mga halaga para sa mga katangian para sa mga pagkakataon na ang tao ay naka-imbak. Haligi maging hilera sa ito modelo ng database, at bilang mga bagay ay nangangailangan ng bagong mga katangian, ito ay lamang ng isang bagay ng pagdaragdag ng mas maraming mga hilera sa talahanayan sa "person_attributes".

Adopting tulad ng isang pamanggit modelo ay ang bentahe ng paggawa ng mga object-oriented modelo ng kapamahalaan sa mga entidad sa negosyo at relegates ang pamanggit modelo sa pagsuporta sa generic na bagay. Ang problema sa mga tulad ng isang modelo ay ang kanyang pagiging kumplikado sa disenyo at pagpapatupad. Ang "person_attributes_values" table dapat generic sapat na tindahan sa isang iba't ibang mga uri ng data, na nangangahulugan na alinman sa pagtatago ng lahat ng bagay bilang isang VARCHAR at pagkatapos ay pinahiga ang mga data sa DATE, integer, o iba pang mga uri ng data sa isang view o pagsulat ng mga pamamaraan ng database sa loop sa pamamagitan ng mga halaga ng cast sa ninanais datatypes kapag sila ay kailangan sa isang tiyak na pagkakasunod-sunod, mula noong isang MAAYOS NG ay ayusin ang mga petsa '01 / 01/2001 'na nagmumula sa harap '02 / 02/1901' kapag sila ay inihambing bilang mga string ng mga character.

Isa pang isyu na ito diskarte ay ang kasalimuotan ng pagsulat ng mga query SQL sa pull sa ang nais na data mula sa mga istruktura table. Sa bawat katangian na naka-imbak ng isang hilera sa talahanayan sa "person_attributes", maramihang pagsali ay dapat na ginawa sa talahanayan na ito para sa bawat katangian na nais namin na pull mula sa table "person_attributes_values". Pagtanong ukol sa mga database upang panahanan ng mga katangian ng sampung sa isang bagay ay kailangan ng sampung pagsali sa "person_attributes" at "person_attributes_values" table pati na rin ang "tao" table, tulad ng ito:


SELECT
pav1.value AS name
,pav2.value AS address
,pav3.value AS phone
FROM
person p
INNER JOIN person_attributes_value pav1 ON
p.person_id = pa1.person_id
INNER JOIN person_attributes pa1 ON
pav1.attribute_id = pa1.attribute_id
AND pa1.attribute_name = “name”
INNER JOIN person_attributes_value pav2 ON
p.person_id = pa2.person_id
INNER JOIN person_attributes pa2 ON
pav2.attribute_id = pa2.attribute_id
AND pa2.attribute_name = “address”
INNER JOIN person_attributes_value pav3 ON
p.person_id = pa3.person_id
INNER JOIN person_attributes pa3 ON
pav3.attribute_id = pa3.attribute_id
AND pa3.attribute_name = “phone”
WHERE
p.employee_id = 1234;

Halimbawa na ito lamang pulls tatlong katangian, na ibig sabihin ng isang query sa pull sa siyam na mga katangian ay tatlong beses bilang mahaba. Tatlong mesa pagsali sa pull ng data kaya atomic bilang na kumakatawan lamang ng isang attribute sa isa tuple ng isang mas entity-tiyak table maaaring mabilis lusak down sa isang database na may data retrieval, na maaaring humantong sa mga DBA pagkakaroon na bumuo denormalized tapyas-update sa pamamagitan ng mga patakaran. Ang kalagayan ay maaaring karagdagang exacerbated sa pamamagitan ng ang paraan ng generic modelo database obfuscates mga entidad at ang kanilang mga katangian mula sa mga gumagamit na pinupuntahan ang mga database ng direkta, karagdagang pagpapautang sa mga kailangan para sa isang denormalized table na ihayag na ito nakatago na istraktura.

Habang ang maraming ng mga solusyon na mabawasan ang load sa control ang application's-layer sa mapa pamanggit data sa mga bagay, ito ay hindi ilagay ang mga paghihigpit sa database development, nagdidikta sa database arkitekto kung ano ang pinapayagan sa kanilang mga solusyon. Ito ay maaaring maging sanhi ng mga problema dahil ang DBA nagpapatakbo sa ilalim ng isang ganap na magkaibang kaharian ng pangangailangan kaysa sa mga developer ng software. Hindi nila maaaring denormalize tapyas lang na gumawa ng mas madali sa mapa na relasyon sa mga klase, o sila ay dapat magdagdag ng mga haligi sa isang kaugnay na maglingkod walang ibang layunin kaysa upang bigyan ng tuples kaya na kilalanin sila sa mga tiyak na mga klase sa kongkreto. Sa kabilang dulo ng spectrum, na may mga generic database, hindi sila dapat na kinakailangan upang kumuha sa tulad ng kumplikado at pagganap ng epekto sa kanilang mga solusyon lamang upang tumanggap ng anumang mga posibleng object-modelo ang mga software developer sa ngayon.

Mas kapani-paniwala Solutions

Para sa mga maraming mga dahilan, Ted Neward tinatawag na ang O / R Impedance Mismatch ang "Vietnam ng Computer Science" problema, isang pusali na mabilang kulang-palad developer may pakikipagsapalaran sa, lamang upang mahanap ang problema kaya mahirap unawain at nuanced bilang na gumawa architecting isang komprehensibong solusyon imposible , pero dahil kaya marami oras at pagsisikap ay invested sa paglutas ng problema, mga developer ay hindi nais na abandunahin ito. Ayon sa Neward, developer may ang pagpili sa alinman sa aabandunahin OOP, aabandunahin RDBMS, tanggapin pagkakaroon na magsulat at mapanatili ang code sa mapa sa pagitan ng mano-mano object-oriented at pamanggit modelo, tanggapin ang mga limitasyon ng O / R Mapping solusyon software, pagsamahin pamanggit concepts, tulad ng set, sa mga wika programming, o isama pamanggit konseptong sa framework, tulad ng sa pagkakaroon ng bagay encapsulate set ng data na maaaring maayos interact sa mga pamanggit database (Neward, 2006). Jeff Atwood, ng Horror blog Coding, ay gumagawa ng kanyang mga opinyon malinaw sa kung ano siya thinks ay ang tamang solusyon:

Personal, tingin ko ang lamang maisasagawa solusyon sa ORM problema ay upang pumili ng isa o ng iba pang: ang alinman sa aabandunahin pamanggit database, o aabandunahin bagay. Kung magdadala sa iyo sa Oh o ang R sa labas ng equation, hindi na kayo magkakaroon ng isang mapping problema.

Ito ay maaaring mukhang abnoy sa aabandunahin ang tradisyunal na object Customer-o lisanin ang mga tradisyunal na table Customer-ngunit pagpili ng isa o ang iba ay ganap na maliwanag ang isip alternatibo sa putikan ng mga klase, mga bagay, code generation, SQL, at naka-imbak na pamamaraan na ang isang ORM " solusyon "ay karaniwang dahon sa amin sa (diin sa orihinal) (Atwood, 2006).

Atwood goes sa sa sabihin na siya rin ay kumakatawan sa mga pamanggit modelo bilang solusyon ng mga pagpipilian, arguing na "object ay overrated," ngunit ang tagumpay at ampon ng OOP malinaw na naglalarawan ng kanyang pagiging epektibo bilang isang pamamaraan. Kaya bakit hindi ang kabaligtaran? Bakit dapat database mananatiling pamanggit, at hindi magpatibay ng object-orientation, na kung saan ay din na malutas ang O / R problema? Habang ang mga pakinabang object orientation ay ipinagkaloob sa ibabaw ng mundo sa pamamagitan ng programming nabawasan pagsisikap, pinabuting produktibo, at mas higit na posibilidad na pahabain, object-orientation prinsipyo ay nabigo upang kumuha ng ugat sa mga architecture database. Sa kabila ng iba't ibang uri ng Bagay Databases (ODBMS) pagiging magagamit para gamitin, ang ilang mga unang bahagi ng optimismo para sa mga tulad na sistema, at kahit ampon sa merkado, object-oriented database may languished sa mundo ng teknolohiya ng impormasyon.

Kasaysayan ng ODBMS

Ang konsepto ng object-oriented Databases ay nagsimula sa unang bahagi ng 1980s, karamihan sa kapansin-pansin sa mga ORION Research Project sa Microelectronics at Computer Technology Corporation (MCC). Sa pamamagitan ng ang huli 1980s, ang isang iba't ibang mga komersyal ODBMS's ay naging available, tulad ng Matisse, batong pang-alahas, Vbase, at kawalang-kinikilingan / DB. Sa 1991, ang mga Bagay Data Management Group (ODMG) ay itinatag sa limang malaking vendor OODBMS. Ang ODMG nagtrabaho sa buong 1990s na magtatag ng mga pamantayan, tulad ng mga Bagay Query Language (OQL), pero, hindi katulad ng SQL, hindi kailanman ito ay pinagtibay bilang isang pormal na standard sa pamamagitan ng ANSI, ISO, o iba pang mga tanyag na organisasyon. Sa 2000, ang merkado para sa mga produkto ODBMS masakitin sa humigit-kumulang na $ 100,000,000, at pumunta na sa tanggihan pagkatapos. Ngayon ODBMS's matirang buhay lalo na bilang bukas-source proyekto, tulad ng db4o at Orient (Grehand at Barry, 2005); bagaman, komersyal na produkto, tulad ng Versant Bagay Database, mananatili sa produksyon (Versant, 2005).

Sa 1995, isang grupo ng mga mananaliksik mula sa isang iba't ibang mga akademikong institusyon publish "Ang mga object-oriented Database System Manipesto," isang papel na kung saan tinangka upang tukuyin kung ano ang binubuo ng isang ODBMS sa parehong paraan EF Codd tinukoy isang pamanggit database sa labing dalawang mga patakaran sa higit sa dalawang dekada mas maaga (Codd, 1970). Ang Manipesto tumutukoy sa isang listahan ng "mandatory" na katangian na ang isang ODBMS dapat suporta upang masiyahan ang mga pangangailangan ng isang object-oriented sistema pati na rin ng isang database management system. Kabilang sa mga ito sapilitan na katangian ay ang suporta para sa komplikadong mga bagay, tulad ng tuples, mga listahan, at arrays, sa karagdagan sa mga pangunahing mga bagay, tulad ng integers, character, booleans, at babae; itinuturing na mga uri ng data sa isang pamanggit modelo, ang mga ito ay mga bagay sa mga modelo ng OO , instantiable, extendable, at minana (Atkinson, et.al, 1995). Ang ODBMS dapat support identities object, iyon ay, sa halip na pagkilala tuples sa isang table na batay sa pangunahing keys o object properties, na bagay sa kanilang sarili ay may mga identities at maaaring ibahagi o kinopya; tulad ng dalawang tao na kasama sa nais ibahagi ang parehong bagay address (Halpin at Morgan, 2008).

Ang mga ito sapilitan ay kinakailangan, para sa karamihan ng bahagi, andar na ay suportado ng pamanggit database sa kabila ng pagkakaiba sa conceptualizing kanila. Saan ang ODBMS Manipesto draws tunay na distinctions sa pagitan ng kanyang sistema at ang iba ay sa mga kinakailangan para sa computational pagiging kumpleto at pagtitiyaga. Sa panahon ng kanilang pagsusulat, SQL ay hindi isang computationally-kumpleto na wika, at ang Manipesto ay pagtatangka upang dalhin ang kapangyarihan ng OOP sa DBMS. Sa kabilang dulo, ay isang pagtatangka na magdala ng pananatili sa OOP:

kinakailangan na ito ay maliwanag mula sa isang database punto ng view, ngunit ang isang bagong bagay o karanasan mula sa isang punto programming language ng view. Pagtitiyaga ay ang kakayahan ng mga programmer na magkaroon ang kanyang data matirang buhay sa pagpapatupad ng isang proseso, upang tuluyang magamit muli ito sa ibang proseso. Pananatili ay dapat na orthogonal, ibig sabihin, ang bawat bagay, independiyenteng ng kanyang uri, ay pinahihintulutan na maging persistent bilang tulad (ibig sabihin, nang walang tahasang pagsasalin). Ito ay dapat ding maging lubos: ang gumagamit ay hindi dapat magkaroon upang explicitly ilipat o kopyahin ang data sa gumawa ito persistent (Atkinson, et.al, 1995).

daanan na ito ay naglalarawan ng mga pangunahing depekto ng object-oriented programming na ang isang pamanggit database pinunan: ang kailangan upang magpumilit ang estado ng mga katangian ng bagay sa buong session ng gumagamit. Ang isang database management system ay maaaring function nagsasarili, ngunit isang object-oriented na application software ay hindi maaaring umiiral nang walang isang database kung ito pangangailangan pagtitiyaga.

Akda ng Manipesto nagawang umabot sa isang kasunduan sa kung ilang mga tampok ay kinakailangan o opsyonal sa isang ODBMS, tulad ng view kahulugan at mga nagmula data, database administration kagamitan, integridad limitasyon, at schema evolution pasilidad (Atkinson, et.al, 1995 ). Ang mga ito ay mahalaga sa tandaan dahil sila ay mga karaniwang katangian ng modernong RDBMS's, ngunit ito ay mahirap na conceptualize kung paano ang ilan sa mga ito ay ipinatupad sa isang ODBMS. Halimbawa, pamanggit mga modelo ay may mga pamantayan normalisasyon upang masiguro na ang data integridad, ngunit na bagay, sa kanilang maraming mga pagkakataon at paggamit ng mga link sa halip na sa data ng mga key upang kumonekta sa kanila, lalabas sa mga lumalabag sa pangunahing mga prinsipyo ng normalisasyon.

Sa isang 2002 pakikipanayam, David Maier, isang propesor sa Portland State University at mga pangunahing kontribyutor sa ODBMS teorya at pagsasanay, maiugnay ang isang mahusay na pakikitungo ng ODBMS kakulangan ng pagiging popular sa kakulangan ng pagmomolde ng suporta at pamantayan:

tingin ko isa sa mga dahilan na [object-pamanggit database] ay hindi ang malaking hit ay [na] pagkakaroon ng lahat ng mga bagong tampok na sa [mga ORDBMS] ay pinalawak ang [schema] disenyo space, at doon ay hindi isang magandang teorya disenyo ng paraan doon ay [sa] normal na relasyon sa form at iba pa para sa pamanggit database ... Ito ay lumiliko out na object pagmomolde pamamaraan tulad ng UML ay hindi [tunay mabuti] na angkop sa mga object-pamanggit modelo, dahil [sa] modelo ng object na ang mga object- pamanggit [database] magbigay ng hindi lubos na tumutugma sa up [sa kung ano ang nag-aalok ng UML] (Winslett, 2002).

Dr Winslett rin tala ang mahabang panahon ng oras ito kinuha sa tumigas ang standard para sa mga Bagay Query Language (OQL), partikular sa figuring out kung paano i-optimize ang mga query OQL, na nagsasabi, "Yeah, kung kaya kami ay tapos na sa dalawang taon kung ano ang aming ginawa sa sampung, ito ay maaaring may ginawa ng isang malaking pagkakaiba ... ito kinuha proportionally na sa academia upang malaman ng isang pulutong ng mga [optimization query] isyu ... (Winslett, 2002) "

Kahit na nagkaroon ng mga Bagay Data Management Group (ODMG) solidified kanyang mga pamantayan ng mabilis, ito ay hindi kilala kung standard ang gusto ay pinagtibay, bilang, hindi katulad ng Bagay Management Group (omg) Common Request Bagay Broker Architecture (CORBA) (OMG, 2009), ang ODMG's Bagay Data Mangement Standard (ODM 3.0) ay hindi ginawa malayang magagamit sa publiko, ngunit ay magagamit lamang sa pamamagitan ng pagbili ng mga libro "Ang Bagay Data Standard ODMG 3.0," nai-publish lamang bago ang ODMG disbanded (ODBMS 2009).

Din habang OQL ay inilaan upang maging ang standard na pamamaraan para sa mga naghahanap ng mga bagay sa isang ODBMS, ilang, kung anumang mga modernong ODBMS's ay may pinagtibay standard na ito sa kanyang mga iminungkahing format (Leavitt, 2009). Halimbawa, ang Versant ODBMS gumagamit Versant Query Wika 7.0 (VQL) (Versant, 2005) at db4o gumagamit ng Query-by-Halimbawa (QBE) at iba pang mga programming-style pamamaraan (db40, 2009).

Modern ODBMS's

ODBMS's ay buhay na buhay na rin sa modernong mundo ng Information Technology; ay sila lang wala kahit saan malapit na popular na bilang ay hinulaang kapag sila ay naglihi, at ang kanilang paglago sa pag-aampon ay tila may stalled. Organisasyon tulad ng Exxon, CERN, Citibank, at Alcatel gamitin ODBMS's sa mga domain tulad ng manufacturing, siyentipikong pananaliksik, pinansiyal na serbisyo, data Warehousing, at proseso ng control (kawalang-kinikilingan, 2005), pagkuha bentahe ng semantiko relasyon ibinigay. Ang paglipat sa isang ODBMS mula sa isang RDBMS nagpapahintulot sa mga user upang itapon ang application code na kinakailangan para Oh / R mapping. Ayon sa isang papel na puti kawalang-kinikilingan, isa user "literal tinapon isang-ikatlo ng kanyang application" bilang isang resulta ng mga ito (kawalang-kinikilingan, 2005).

Ang pagsusuri ng mga tampok na suportado ng Versant ODBMS nahahanap ang pinaka tampok RDBMS kasalukuyan, tulad ng mga object antas locking (katumbas sa table, page o hilera-level locking sa RDBMS), schema management, pamamahagi sa object na antas (katumbas ng pahalang at vertical piraso sa RDBMS), bawing, seguridad, pagtitiklop at gumagamit management. Bukod dito, ang Versant ODBMS sumusuporta bersyon ng pamamahala sa antas ng object at checking out na mga bagay upang magbigay ng mga lokal na access sa mga gumagamit sa paglipas ng matagal na panahon ng oras na sila ay gumawa ng pagbabago. Komplikasyon babangon sa Verant ODBMS kapag ang paggawa ng mga pagbabago sa isang punong kahoy mana, tulad ng paggawa ng isang pagbabago sa modelo upang magsingit ng isang bagong klase sa isang kadena, na nangangailangan ng pag-back up ang mga klase ng bata at pagkopya ang mga ito sa likod ng chain baguhin upang ang bagong pamunuan ng simbahan ( Versant, 2005).

Hindi lahat ng ODBMS's ay mga tunay na object-oriented. Halimbawa, ang Informix Illustra at UniSQL ODBMS's ay talagang isang OO application layered sa loob ng isang pamanggit database, na humahantong sa ilang upang tingnan ang mga ito bilang "Object-pamanggit" DBMS's (ORDBMS) (kawalang-kinikilingan, 2005). Sa naturang mga kaso, ang OO application ay lamang ng pagkilos bilang isang kasangkapan O / R Mapping, nanghihina na kumuha ng tunay na bentahe ng object-oriented pagmomolde.

Ang isang malaking pagpula ng modernong ODBMS's ay ang kanilang mga kakulangan ng suporta para sa pagkuha ng disparate data at recombining ito sa paraan upang makabuo ng mga bagong relasyon sa isang persistent paraan, tulad ng kapag ang isang user ay lumilikha ng isang pagtingin sa isang pamanggit database:

... Commercial object database kakulangan ng suporta para sa mataas na antas ng programming database application kung saan ang mga pasilidad ay kinakailangan hindi lamang para sa mga persistent storage at pagsasauli ng data, ngunit para sa pamamahala ng mga kumplikadong mga magkakaugnay na mga koleksyon ng data sa paglipas ng matagal na panahon ng oras. Konsepto mahusay na kilala mula sa mga sistema ng database tulad ng mga limitasyon at mga trigger ay karaniwang absent at suporta para sa object at schema evolution minimal sa pinakamahusay na (Norrie et al, 2008).

Kahit na ito ay nawawala na tungkulin na ibinigay, baka ito rin ay ang manipis na manipis kumplikado ng object-oriented na mga modelo na mapigil ito database modelo mula sa pangunahing pag-aampon. A paghahambing ng mga modelo ng database na kasama hierarchical, network, pamanggit, nilalang-relasyon, at object-oriented modelo natagpuan na, habang OO modelo ay ang bentahe ng pagdaragdag ng semantiko ng nilalaman at pagtataguyod ng data integridad sa pamamagitan ng mana, nangangailangan sila ng isang komplikadong sistema nabigasyon, isang matarik aaral ng curve, at mataas na sistema ng overhead na slows transaksyon (Rob at Coronel, 2009). Isinasaalang-alang na ito na likas na kumplikado sa konteksto ng isang napakalaki familyariti sa pamanggit database sa merkado, at maaari naming ipalagay na ang karamihan sa mga organisasyon na ang mga pakinabang ipinagkaloob mula ODBMS's ay hindi sapat na basehan para sa scrapping umiiral RDBMS's (Leavitt, 2009).

Pagpapalagay

Simple at kasanayan ay tampok, at walang mga dramatikong pagkukulang sa pamanggit database na nagbibigay ng kinakailangang lakas para sa paglipat sa isang bagong modelo, lalo na isinasaalang-alang ang kumplikado at adjustment na kinakailangan upang lumipat sa object-orientation. Para sa mga eksaktong parehong dahilan, ito ay hindi magkaroon ng kahulugan para sa programmers upang lumipat ang layo mula sa object-orientation, bilang OOP ay may revolutionized software development at pamanggit-modelo ang hindi nagbibigay ng parehong mga benepisyo sa isang konteksto programming. Sa pamanggit modelo ng pagiging pinaka-ugma para sa realms ng data at object-orientation ang pinakamahusay na solusyon para sa paglinang ng software, mga developer ay patuloy na pakikipagbuno sa mga isyu ng data mapping sa pagitan ng dalawang paradigms. Adhering sa mga prinsipyo ng orthogonality nangangahulugan programmers ay dapat modelo ng kanilang mga software ayon sa pinakamahusay na mga prinsipyo ng mga object-orientation at DBA's ay dapat na arkitekto ang kanilang relasyon ayon sa prinsipyo ng normalisasyon at data integridad. Sa habang panahon, mga developer ay patuloy na gagana sa mas mahusay na mga estratehiya para sa Oh / R Mapping, ang paghahanap sa mga pinakamahusay na kasanayan sa hindi bababa sa, kung hindi isang panghuli solusyon.

Mga sanggunian

Ambler, Scott (2006):. Mapping Bagay na pamanggit Databases O / R Mapping sa Detalye. AgileData.org. Ikinuha mula sa agiledata.org 12 Set 2009 sa: http://www.agiledata.org/essays/mappingObjects.html

Atkinson, Malcolm; Bancilhon, Francois; DeWitt, David; Dittrich, Klaus; Maier, David, at Zdonik, Stanley (1995) Manipesto. Ang mga object-oriented Database System. Carnegie Mellon Paaralan ng Computer Science. Ikinuha mula sa cmu.edu 15 Agosto 2009 sa: http://www.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/Manifesto.html

Atwood, Jeff (2006). Object-pamanggit Mapping ay ang Vietnam ng Computer Science. Coding Horror, Programming at Human kadahilanan. Ikinuha mula sa CodingHorror.com 22 Agosto 2009 sa: http://www.codinghorror.com/blog/archives/000621.html

db4o (2009). db40 Tutorial. db40.com. Ikinuha mula sa db40.com 13 Set 2009 sa: http://www.db4o.com/about/productinformation/resources/db4o-6.3-tutorial-java.pdf

EF Codd (1970). Ang isang pamanggit Model para Large Shared Banks Data. Komunikasyon ng mga ACM, Volume 13, Number 6, (Hunyo 1970), pp 377-387.

Grehan, Rick at Barry, Doug (2005):. Panimula sa ODBMS Maikling Kasaysayan. Bagay Database Management Systems Portal. Ikinuha 15 Agosto 2009 sa: http://www.odbms.org/Introduction/history.aspx

Halpin, Terry at Morgan, Tony (2008). Information Modeling at pamanggit Database. Morgan Kaufmann, Burlington, MA.

Hunt, Andrew at Thomas, David (1999). Ang praktiko Programmer. Addison-Wesley, Pagbasa, MA.

(2009). Leavitt Industriya Trends: Anuman ang nangyari sa object-oriented Databases CA? Leavitt Communications Inc Fallbrook,. Ikinuha mula sa leavcom.com 22 Agosto 2009 sa: http://www.leavcom.com/db_08_00.htm

Neward, Ted (2006). Ang Vietnam ng Computer Science. Blogride, Ted Technical Blog Neward's. Ikinuha mula sa tedneward.com 22 Agosto 2009 sa: http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx

Norrie, Moira; Grossniklaus, Michael; Decurins, Corsin; Spindler, Alexandre; Vancea, Andrei, at Leone, Stefania (2008) db40. Semantiko Data Management para sa. Institute para sa Information Systems, ETH Zurich, Switzerland. Ikinuha mula sa odbms.org 13 Set 2009 sa: http://www.odbms.org/download/042.02% 20Norrie% 20Semantic% 20Data% 20Management% 20for% 20db4o% 20March% 202008.PDF

Kawalang-kinikilingan (2005):. Paghagupit ang pamanggit Wall Isang kawalang-kinikilingan White Paper. Kawalang-kinikilingan, Inc Ikinuha mula objectivity.com 13 Set 2009 sa: http://www.objectivity.com/pages/downloads/whitepaper/pdf/RelationalWall.pdf

ODBMS Portal (2009). Bagay Data Management Group. ODBMS.org. Ikinuha mula sa odbms.org 22 Agosto 2009 sa: http://www.odbms.org/odmg/

Olofson, Carl (2007):. Worldwide RDBMS 2006 Vendor namamahagi Preliminary resulta para sa mga Top 5 vendor. IDC, Framingham, MA. Ikinuha mula sa Microsoft.com 12 Set 2009 sa: http://download.microsoft.com/download/A/B/9/AB93175B-BA6A-4332-AFBF-FE4C3749BBEC/IDC% 202006% 20DB% 20Marketshare% 20206061.pdf

OMG Portal (2009):. Bagay Management Group Karaniwang Bagay Request Broker. OMG.org. Ikinuha mula sa omg.org 22 Agosto 2009 sa: http://www.omg.org/spec/CORBA/

Qint (2009). Bagay vs pamanggit Database concepts. Qint Software, Germering, Alemanya. Ikinuha mula sa reportsanywhere.info 22 Agosto 2009 sa: http://reportsanywhere.info/joria/doc/objectsvsrecords.html

Rob, Pedro at Coronel, Carlos (2009):. Database Systems Design, Pagpapatupad, at Pamamahala, ikawalo Edition. Course Technology, Boston MA.

Versant (2005). VERSANT Database Fundamentals Manual. Ikinuha mula sa versant.com 16 Agosto 2009 sa: http://www.versant.com/developer/resources/objectdatabase/documentation/database_fund_man.pdf

Winslett, Marianne (2002). David Maier nagsasalita Out. ACM SIGMOD serye ng mga interbyu. Ikinuha mula sa sigmod.org 29 Agosto 2009 sa: http://www.sigmod.org/record/issues/0212/maier-oct-16.pdf


Iba pang mga asignatura mula CIS510 Advanced Systems Analysis at Disenyo:

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,706 assignment

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,719 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,726 assignment

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,726 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,731 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,814 assignment

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,814 Disussion

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,823 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,828 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,905 assignment

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,905 Talakayan

CIS515 Istratehiya para sa mga sistema ng Database: 20,090,913 Talakayan

A Letter to Roger Ebert Concerning a Misconception About Evolution

Posted on 10th September 2009 by ideonexus in Ionian Enchantment

Dear Roger Ebert,

In your recent review of “Extract,” you made the comment about the film “Idiocracy” that “those Idiots had the benefit of a few hundred years during which to refute Darwin by evolving less intelligence.” I know that you are a man who appreciates science, and thought you should know that your statement reflects a common misunderstanding of evolution through natural selection: that species are always evolving to better, more advanced states. In fact, there are many examples of animals “de-evolving” to previous states, such as whales, which are descendent of land mammals , but gave up their legs and returned to the seas. Many species of whale still have the remnants of tiny hip bones floating deep inside them and the remnants of finger bones inside their fins.

Vestigial Hip Bones in Whales
Vestigial Hip Bones in Whales
Credit: Moi

The same is true of intelligence. Our big brains have conferred a magnificent survival advantage on us, but they come at a huge cost in energy to fuel them. The Indonesian “hobbit” fossils, homo floresiensis, discovered in recent years tell the story of a species of human that, once geographically isolated on an island with limited resources, adapted by shrinking in stature , including atrophying of the brain. The sea squirt is born with a brain, which it uses to navigate the world until it finds a suitable spot to plant itself, at which point it promptly .

I believe the evidence, in the form of increasing average IQs and other test measures, shows that we are growing more intelligent as a species. The sophisticated cultural environment we have constructed makes increasing demands on our average intelligence in order to survive and be successful; however, the sea squirt and homo floresiensis are cautionary tales that we must remain ever-vigilant. As the evolutionary biologist JBS Haldane said, “The ancestors of oysters and barnacles had heads. Snakes have lost their limbs and ostriches and penguins their power of flight. Man may just as easily lose his intelligence.”

Nang buong puso,

Ryan Somma

http://ideonexus.com

PS – Thank you so much for your recent blog-post about trivia . You so eloquently expressed ideas I have been trying to articulate for years on the subject.

Creative Commons License