Par dotazu:
1/ udrzuji si objekty informace o zmenach jednotlivych atributu a jsou do DB posilany pro UPDATE jen atributy u kterych doslo ke zmene nebo je vzdy prepsan cely objekt ulozeny v DB?
2/ lze provadet UPDATE jen na zaklade znalosti PK bez nutnosti cely objekt nejdrive vyzvednout z DB pak zmenit a nasledne ulozit?
3/ Nejake odkazy o dalsich implementacich (C/C++, Perl, Python)?
Názory k článku
Jakarta OJB
efektivita update
celé vláknoRe: efektivita update
celé vláknoA jde v OQL udelat neco jako
UPDATE emploees SET salary=1.1*salary WHERE job='programer' ?
nebo si nejdriv musim vyzadat vsechny odpovidajici objekty (nebo aspon jejich PK, viz predchozi dotaz) a pak je aktualizovat po jednom?
Nekdy je to prakticke, na druhou stranu je to proti objektovemu pristupu (modifikujeme data "bez vedomi" prislusnych objektu)
Re: efektivita update
celé vlákno1) udrzuji
2) ano
Co se tyce toho dalsiho prispevku, samozrejme, ze staci poslat objekt s vyplnenym PK, nemusi se posilat cely.
...jeste: strom objektu
celé vláknoJeste mne napadla otazka, jeden sam o sobe jsouci objekt naplnit, udrzovat a pripadne ulozit do DB neni nic svetaborneho. Jak je to v pripade, ze objekt obsahuje (ukazuje) na dalsi objekty. Napriklad objekt "rodina" slozeny z objektu tata, mama a deti. Lze neco takoveho definovat jako celek a jako z celkem zachazet? Napriklad pridat dite, zmenit vahu u objektu "mama" a cele to pak commitnout? Pochopitelne v DB by to melo byt ulozeno tak, aby to vyhovovalo zakladnim relacnim pouckam. Dik.
Re: ...jeste: strom objektu
celé vláknoPrave ty odkazy jsou na tom nejhezci - pouzijete treba OQL dotaz na ziskani jednoho objektu a pak uz pouzivate standardni odkazy a ostatni objekty se automaticky "dotahuji" z DB.
Stejne tak nemusite explicitne rikat co bude ulozeno v DB (funguje to trosku jak GC collector) -> dokud existuje alespon jeden odkaz na objekt, tak ten objekt bude v databazi, jakmile ten odkaz zrusite, odkaz bude smazan. Pro pridani do DB zase staci vytvorit objekt a udelat na nej link z objektu, ktery uz je v DB ulozen.
Je fakt, ze mam zkusenosti s jinou ODMG (http://www.poet.com/en/) databazi, ale tohle by melo byt snandardni chovani.
perl a Class::DBI
celé vláknochtel bych upozornit na perlovsky modul Class::DBI, ktery dela SQL abstrakci - vy odvodite svou tridu od Class::DBI a reknete, ve ktere tabulce jsou objekty teto tridy a jake sloupecky ta tabulka ma, a na oplatku zdedite funkce jako create_new, delete, retrieve_all, search a rovnez pristupove metody pro vsechny atributy zaznamu.
modul rovnez zvlada cizi klice, pri pristupu k atributu ktery nekam ukazuje je z DB nacten cilovy objekt, umi triggery - perl funkce ktere budou spusteny pri urcite modifikaci objektu, dale umi 'client-side' transakce - zmeny si drzi v pameti, a az kdyz commitnete tak zmeny zapise do DB a spustu dalsiho..
Jakarta OJB vs. Castor
celé vláknoV sucasnosti pouzivam na prepojenie DB-Java projekt Castor. Castor umoznuje aj prevod Java-XML. Cele mapovanie (DB-Java-XML) sa da nakonfigurovat v jedinom XML-subore. Zaujimalo by ma, ci aj Jakarta OJB poskytuje moznost prevodu Java-XML, pripadne rovno DB-XML. Dakujem.

