[ zorrome @ 18.06.2005. 12:22 ] @
Što su to triggeri u bazama podataka, a kakav je to Cascade Update, odnosno što nam omogućava? Isto tako, što je to Cluster ? |
[ zorrome @ 18.06.2005. 12:22 ] @
[ dragancesu @ 18.06.2005. 16:28 ] @
Trigger ili okidac se izvrsava kad se desi neki dogadjaj. To je na neki nacin programiranje baze. Pogledaj u uputstvu pa ces videti da svaka baza podrzava mnogo dogadjaja, recimo INSERT, UPDATE, DELETE, ali i kombinaciju sa PRE-, POST-, ON-, ... skupi se bar 200 kombinacija, a negde i vise
Pogledaj primere pa ces videti da se recimo na INSERT odradi i neko izracunavanje. [ madamov @ 18.06.2005. 18:52 ] @
Trigger je okidač koji se okida pri nekom dogadjaju. Od konkretnog RDBMS alata zavisi implementacija i to na koje će dogadjaje da reaguje. Na primer, ja u 4D-u imam četiri vrste dogadjaja za triger:
- on saving new record - on saving existing record - on loading record - on deleting record Tako ako za odredjenu tabelu uključim prvi mogu PRE nego što se novi rekord snimi u bazu da intervenišem na njemu tako što ću odbiti da ga snimim ako je duplikat po nekom uslovu, a to radim tako što moja rutina koju sam napisao u trigeru vrati grešku. Kaskade su kada imaš nekoliko trigera u nizu. Na primer, imaš tabele Stavke->Podgrupe->Grupe (nisam mogao da smislim pametniji primer, izvini) koje su sve many to one ovako kako sam ih napisao, tj. jedna grupa ima više podgrupa, jedna podgrupa više stavki. Recimo da imaš polja za sumiranje u svakoj od njih koja zavise od sadržaja nekog polja u tabeli Stavke. Sve tri tabele imaju aktiviran triger, snimaš promenjeni rekord u tabeli stavke i krećeš da ažuriraš odgovarajući rekord u tabeli podgrupe, snimaš njega a to pokreće njegov triger iz kojeg ažuriraš parent Grupu a to pokreće njegov triger itd. Nadam se da sam bio jasan, ako nisam, reci da nadjem bolji primer. [ madamov @ 18.06.2005. 19:02 ] @
Citat: Isto tako, što je to Cluster ? Možda se to svuda ne zove isto, ali ono što ja smatram clusterom u bazama podataka je unapred snimljeni rezultat nekog kompleksnog pretraživanja. E sad, implementacija opet zavisi od alata. Jednostavnosti radi pretpostavimo da imaš bazu u kojoj je tabela koja se relativno retko menja i da imaš ogroman broj rekorda u njoj. Takodje, pretpostavimo da imaš neke predefinisane kriterijume za query. Sada ću preći malo na to kako se to implementira u 4D-u u nadi da ćeš shvatiti generalni princip. 4D ima skupove i komande za rad sa njima. Tako da kada obavim neki query tabela ima neku selekciju rekorda u njoj, a query traje dugo, pa su mi potrebni clusteri. Da bih to ubrzao, napravim skup ( Code: ), ubacim set u BLOB (svaki rekord zauzima samo jedan bit u setu, tj. postoji informacija o tome da li je rekord u setu ili ne i ništa više), snimim BLOB u Cluster tabelu. Kada mi ponovo zatreba query po zadatom uslovu, ne pretražujem tabelu, već odmah pronalazim odgovarajući BLOB u cluster tabeli, ubacujem ga u set i sa CREATE SET([Tabela]) Code: komandom odmah dobijam selekciju.USE SET Sve je to super kada se podaci ne menjaju ili se relativno retko menjaju u tabeli, jer kada se doda ili obriše odredjeni slog treba sve setove ažurirati u tabeli clustera (tu ti dobro dodje trigger), a to možda duže traje od onog inicijalnog queryja koji smo hteli da ubrzamo. [ Alter Ego @ 19.06.2005. 02:42 ] @
Klaster može da znači svašta. Termin se koristi za kolekciju kataloga baze podataka - svi katalozi i šeme koje korisnik koristi (SQL 2 standard). Koristi se i za fizičko grupisanje podataka kojima se pristupa (klaster, klasterovanje) - nešto slično ovome što je madamov opisao. U data miningu klaster označava grupu podataka koji su slični po nekom kriterijumu što u stvari potiče iz statistike.
Cascade update je jedna od mogućih akcija koje se izvršavaju prilikom narušavanja referencijalnog integriteta. Označava prenošenje promena koje se vrše na n-torkama bazne tabele na tabele čiji spoljni ključ referencira tu tabelu. [ Riste Pejov @ 19.06.2005. 23:46 ] @
Naziv cluster, kako deo naziva cluster index oznacava index prema kojem je fizicki raspored u na disku. Prema ovome cluster index moze biti samo jedan po tabeli, i selectovanje po cluster indexu je mnogo brze nego po drugim indexima.
[ zorrome @ 20.06.2005. 19:41 ] @
Ok! Hvala svima!
Radim bazu u Accessu i aplikaciju u VB-u, kako ja npr. mogu tu i na kojem mjestu napraviti trigger ili cluster. [ goranvuc @ 20.06.2005. 23:16 ] @
U Accessu nikako!
[ madamov @ 21.06.2005. 10:06 ] @
Citat: Radim bazu u Accessu i aplikaciju u VB-u, kako ja npr. mogu tu i na kojem mjestu napraviti trigger ili cluster. Menjaj alat ili zaboravi na njih. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|