Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Transakcije i InterBase

[es] :: Baze podataka :: Transakcije i InterBase

[ Pregleda: 3446 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Almedin

Član broj: 5895
Poruke: 425
*.as54.tz.bih.net.ba.



+27 Profil

icon Transakcije i InterBase10.12.2004. u 19:53 - pre 235 meseci
Koliko ja znam transakcije služe zato da se više izmjena u tabelama sigurno spreme u bazu, odnosno da se kod greške ne spremi ni jedna.

Može li se za vrijeme transakcije onemogućiti izmjena podataka od strane drugih korisnika. Vidio sam da npr. kod FlashFillera ide ovako: StartTransactionWith(array of TffTable) i dok transakcija traje ostali ne mogu mijenjati nijednu tabelu koja se nalazi u nizu. Može li se ovako nešto uraditi u IB ili FB? Može li se uopšte zaključati neka tabela?
 
Odgovor na temu

ultraKeen
ultraKeen
Zemun

Član broj: 2396
Poruke: 289
*.35.eunet.yu.

ICQ: 36109339
Sajt: ultrakeen.blogspot.com


+1 Profil

icon Re: Transakcije i InterBase13.12.2004. u 05:17 - pre 235 meseci
naravno da moze... :)

Otprilike svaka SQL baza resava transakcije na svoj nacin, a vecina njih se opredeljuje za pojam "isolation level", pod kojim se smatra nesto kao izolacioni nivo (ne)zavisnosti izmedju razlicitih zahteva nad bazom/tabelom a nad istim podacima (tabele, redove u njima i cak kolone). Recimo AnyWhere ima 5 izolacionih nivoa, gde se zavisno od problematike promena setuje jedan od njih da je aktuelan, a dalje radis kao da si sam nad bazom, ne brines vise ni ocemu... Dakle poenta je apstrahovati poroblem i ne zamarati mnogo sa detaljima o kojoj se tabeli radi, sto je mnogo MNOGO lepo i olaksavjuce i... ma svaka im cast na pristupu; ko se baktao sa "rucnim" zakljucavanjem tabela, zna kolika to muka ume da bude...

Napominjem da problematika nimalo nije naivna, da postoji sledeca zbirka problema: Lost updates, Dirty reads, Non-reproducible reads, Phantom rows, Update side effects - bar onako kako ih je klasifikaovao IB tj. FB... (a sasvim su lepo to odradili).

IB/FB su pokusali da uvedu malo smislene sematike medju te nivoe, pa su ih nazvali prigodnim imenima: SNAPSHOT, SNAPSHOT TABLE STABILITY, READ COMMITED plus jos neke odrednice tipa: PROTECTED READ, PROTECTED WRITE, SHARED READ, SHARED WRITE...

Koncep je sledeci: moras dobro poznavati sta koji nivo izolacije posledicno znaci i moras dobro razumeti svoj problem, pa na osnovu toga odrediti nivo izolacije medju transakcijama koje se potencijalno sudaraju. Najbolje je taj problem imati u vidu vec pri samoj arhitekturi tabela: kasnije se ta "preuranjena" briga jako lepo vrati u pozitivnom smislu i za tebe koji to radis, a pogotovo za korisnike koji nemaju ono cuveno ne-da-boze: "Transakcija nije uspela, pokusajte opet ili se vratite za jedan korak u nazad..."

*

Dakle - treba iscitati jako detaljno SVE o transakcijama... i naravno, imati dve masine koje simuliraju probleme ili dva istovremena boot-a na jednoj pa navali na testove :)

(izvini sto ti nisam mnogo/konkretno pomogao)
postoji samo jedan apsolut u logickoj ravni desavanja/vremena:
SVE je RELATIVNO sem:
- osnovnih konstanti svemira
- logike
...i ove tvrdnje
*
Daniel J. Boorstin: The Discoverers, A History of Man’s Search To Known

Napredak nauke zavisice od covekove spremnosti da poveruje u neverovatno, da prekoraci granicu koju namece zdrav razum.
 
Odgovor na temu

Almedin

Član broj: 5895
Poruke: 425
*.as54.tz.bih.net.ba.



+27 Profil

icon Re: Transakcije i InterBase13.12.2004. u 21:56 - pre 235 meseci
To sam otprilike shvatio ali sam vidio da u IBAccess-u (programčić za pristup firebird bazi, kreiranje tabela i slično) mogu birati isolation level i zahtjev za lock-om određene tabele što bi meni i trebalo ali ne znam kako da to postignem koristeći IBX komponente.
 
Odgovor na temu

ultraKeen
ultraKeen
Zemun

Član broj: 2396
Poruke: 289
*.verat.net.

ICQ: 36109339
Sajt: ultrakeen.blogspot.com


+1 Profil

icon Re: Transakcije i InterBase14.12.2004. u 01:49 - pre 235 meseci
Gde si to video rad sa transakcijama u IBAccess-u?
postoji samo jedan apsolut u logickoj ravni desavanja/vremena:
SVE je RELATIVNO sem:
- osnovnih konstanti svemira
- logike
...i ove tvrdnje
*
Daniel J. Boorstin: The Discoverers, A History of Man’s Search To Known

Napredak nauke zavisice od covekove spremnosti da poveruje u neverovatno, da prekoraci granicu koju namece zdrav razum.
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
217.16.77.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: Transakcije i InterBase14.12.2004. u 13:41 - pre 235 meseci
Citat:
Almedin: Koliko ja znam transakcije služe zato da se više izmjena u tabelama sigurno spreme u bazu, odnosno da se kod greške ne spremi ni jedna.

Može li se za vrijeme transakcije onemogućiti izmjena podataka od strane drugih korisnika. Vidio sam da npr. kod FlashFillera ide ovako: StartTransactionWith(array of TffTable) i dok transakcija traje ostali ne mogu mijenjati nijednu tabelu koja se nalazi u nizu. Može li se ovako nešto uraditi u IB ili FB? Može li se uopšte zaključati neka tabela?


E sada, "skoro" svaka baza podrzava neki vid locking-a, one baze koje ustvari nisu baze (mysql, flashfiller itn ... ) podrzavaju table level locking. Table level locking je najidiotski moguci nacin da garantiras ACID podataka. Prave baze koriste ROW level locking, t.j. samo recorde koje se update-uju se automatski zakljucaju. U principu u FB ne mozes nista uraditi bez transakcije. Jedino sto je malo jednostavnije je kada uradis insert onda dobijes implicitnu transakciju.

Ako koristis IBX, kad postavi IBTransaction, samo double click na ikonicu na formi i dobijes dijalog da izbor izolacije transakcije. Sa prvog pa prema dole, izolation level ti je sve vise serijaliziracki. Read-Write stability == SERIALIZIBLE.
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

Almedin

Član broj: 5895
Poruke: 425
*.bih.net.ba.



+27 Profil

icon Re: Transakcije i InterBase14.12.2004. u 20:36 - pre 235 meseci
Za Riste Pejov:

Hvala

Za ultraKeen:

Konektujem se na bazu. Izaberem jednu tabelu, iz menija izaberem Object->Modify, izaberem tab 'Data' i ima ikona za modifikovanje transakcije.
 
Odgovor na temu

[es] :: Baze podataka :: Transakcije i InterBase

[ Pregleda: 3446 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.