Professional Documents
Culture Documents
Khoa sau i hc
Lp: CH10CNK1
**************************
ti
Bi tp ln
H Ni, 12/2010
MC LC
Ng cnh
Khng ging c s d liu quan h, thng lm vic vi SQL, mt c s d liu hng i tng lm vic trn mt ngn ng lp trnh c th nh C++, C or Java. Hn na, mt c s d liu hng i tng c th host-specific, hoc n c th c cng mt d liu trn nhiu host,
Rng buc
Vi c s d liu quan h, bn cha thng tin trn cc bng, v sau ly chng bng cc cu truy vn. Vi c s d liu hng i tng, phn mm gi hm d liu ti illustration, nhng cc i tng khoogn c to trn b nh cho n khi cn. Thay vo , chng s c c cha trong c s d liu. Khi mt i tng thay i, c s d liu c th m thm vit cc thay i vo c s d liu, to nn mt phin bn d liu, khi c yu cu lu tr, tt c cc ng dng s commit giao tc hin thi. Vic lp trnh khng cn quan tm n nh dng file l tr.
Truy cp d liu
Hu ht ng dng s dng mt c s d liu hng i tng truy cp d liu bng navigation: trong C hoc C++ l cc con tr, v trong Java chng l cc tham chiu. V d trong C++ bn c cu trc mt cy, class Tree { private: int Value; Tree *LeftChild; Tree *RightChild; public: Tree *Tree(int Value, Tree *Left, *Right) { this->Value = Value; this->LeftChild = Left; this->RightChild = Right; return this;
4
Ti d liu vo b nh i tng
Gi s mt on code m c s d liu nh x mt string v mt i tng. Tc l, bn bind mt chui vo i tng; bn c th to li i tng trong nhng ln sau t chui ni trn. Mt s c s d liu s a ra cnh bo nu bn binding hng ngn hoc hng triu i tng. Trong thc t, bn ch cn bind nhng i tng mc trn l .
Truy vn
Truy vn, bn c th t c hiu sut cao nht nu s dng nhiu cn tr cho mt vi truy . khng c ngn ng truy vn chun cho cc c s d liu hng i tng. Mt s nh cung cp phn mm s dng Object Query Language (OQL) c cung cp bi Object Database Management. Ty theo mc ch s dng, bn c th ci t mt phng thc sort trnh by d liu. Mt s h thng cung cp cc truy vn nhng trong bng m C hoc C++ v cho php truy vn thi gian chy. y l mt v d ca truy vn OQL theo chun cng cng ODMG 2.0. N thc s ging vi mt truy vn SQL. select c.address from Persons p, p.children c where p.address.street="Main Street" and count(p.children) >= 2 and c.address.city != p.address.city Gi s rng i tng Person cha mt tham chiu n mt con (children) tr n mt thc th Person khc. Truy vn s yu cu database server (hoc th vin) tm kim mi thc th n ca mt Person kim tra xem n c hai con v a ch ti Main Street, v a ch thnh ph ca con khc vi a ch thnh ph ca cha. Truy vn ny c th yu cu mt b nh ln trong vic ci t. N c th yu cu ti mi i tng Person vo b nh. Nu bn c th xy dng ch mc trn trng Persons.address.street; r rang l bn c cn quan tm n vic thit k cc i tuonwgj nh th no lm vic vi c s d liu m bn ang s dng. Vic chuyn i ht thng ny sang h thng khc c th to ra nhiu iu khng mong. Bn cn m bo rng bn n vic ci t cc rng buc nhiu nht c th. Lu rng, php ton khc, "!=", c th s dng a ch ca i tng thnh ph thay v gi tr ca n. Trong cc h thng nh C++, cc phng thc np chng nn c s dng inh ng nht cc i .
Giao tc
Ging nh relational database, mt transaction l mt tun tc thc thi d liu m ch chp nhn cng thnh cng hoc cng tht bi. Nu mt trong s chng tht bi, chng trnh s gi phng thc abort ddeer hy b ton b thao tc khc. Mt s c s d liu c th kha cc tin trnh ang c truy cp v d liu m ang c thay i bi cc giao tc khc; iu c ngha l c th xy ra hin tng deadlock, khi nhiu tin trnh cng ch i nhau. c t ODMG khng cho php nested transactions, mc d mt s nh cung cp th h tr chng; vic ny c th to nn cc deadlock, nhng n s lm n gin ha vic thit k v lp trnh. Nu bn c nhiu tin trnh trong mt ng dng, mi tin trnh c th c mt giao tc, bn c th gii hn mt giao tc duy nht cho mt ng dng. Giao tc c th rt phc tp khi ci t v chng c th hn ch vn hiu nng. iu ny cng ng vi c s d liu quan h. S dng giao tc nu bn cm thy cn cc thao tc undo (roll back) mt tp tun t cc thc thi; nu bn loi b bic truy cp thi gian ngn, bn nn tm mt c ch kha n gin hn v nhanh hn. Nhiu ng dng, cho php nhiu u c nhng ch cho php mt u ghi, mt s thi iu tt c c cc u c s ch cho u ghi hon thnh tc v. Nu bn c nhiu tc v ghi d liu nh, v tc v c th rt nhiu, bn nn s dng chin lc trn, tc l tc v ghi cho php xen tc v c.
Cc i tng phn tn
Mt s c s d liu hng i tng rang buc i tng vo cc migrate t mt database server n cc server khc. Thng th, cc server c th chy trn cc h iu hnh khc nhau, vi cc kin trc khc nhau CPU, v c s d liu vit cc i tng nu cn thit. iu ny c th lm t ng, c th bng mt b qun l m cc b, hoc c th yu cu i tng t xa mt cch r rng.
M hnh ho cc i tng
i tng (Object): B su tp cc yu t DL c cu trc, c ng nht bi mt tham chiu duy nht. Mi i tng u c c trng bng mt tn duy nht, gi l OID (Object Indentifier). Hai i tng l ng nht (O1==O2) nu chng c cng OID. Hai i tng l bng nhau (O1=O2) nu chng c cng gi tr.Cc i tng c trng bi cc tnh cht . Tnh cht (Property): c trng ca mt i tng c ch nh bng mt tn c th ng vi mt thuc tnh, mt hm hay mt i tng con thnh phn. V d: Thuc tnh n: tn ca mt ngi,... Hm: Hm tui (ca mt ngi),... Thuc tnh kp: cc con ca mt ngi,...
Lp: Cc i tng c cng tnh cht, c c trng bi mt cu trc v tp cc php ton tc dng ln cc i tng ca lp bng cch che du cu trc. Vic c t tin trin ca cc lp i tng lm thnh mt CSDL hng i tng, cho php m hnh ho hnh vi chung ca cc i tng mt cch n th v m rng c. Phng thc: thao tc lin kt vi mt lp, x l hay a tr li trng thi ca mt i tng hay mt phn ca i tng thuc lp. Mt i tng c thao tc bi phng thc ca lp v c thy qua cc phng php: nguyn l bao gi. Phng thc c th p dng c cho nhiu i tng thuc cc lp khc nhau: a lp dng m hnh ho cc mi lin kt gia cc lp. Thng ip: cc i tng trao i (giao lu thng tin) vi nhau bng thng ip. Thng ip gm tn ca mt phng php v cc tham s ca n. Khi tham s cho php bng vic gi i dn gi mt phng php cng cng ca mt i tng. i tng phn ng li mt thng bo bng cch thc hin phng php lin kt v a tr v cc tham s kt qu ca phng php. Khi qut ha: lin kt phn cp gia hai lp xc nh rng cc i tng ca lp trn tng qut hn cc i tng ca lp di, cc i tng ca lp di c cc tnh cht y v tinh t hn.
10
11