Professional Documents
Culture Documents
2-Poslužitelji&transakcije Big
2-Poslužitelji&transakcije Big
7.10.2010
Klijent-posluitelj arhitektura
Eng. Client server architecture Koncept zahtjev-odgovor Komunikacija se najede odvija preko mree
preko dobro definiranog suelja
API Aplication program interface
Server centric
Arhitektura oslonjena na posluitelja Zaseban jezik za svaku komponentu
Troslojna arhitektra
Klijent
Korisniko suelje
Aplikacijski posluitelj
Sloj poslovne logike Sloj pristupa podacima
Vieslojna arhitektura
Sloj korisnikog suelja
Prezentacijski sloj Sloj upravljanja dijalogom
Posljedice raslojavanja
Pozitivne posljedice
Specijalizacija sklopovske i programske podrke Udruivanje raunalne snage vie raunala
Negativne posljedice
Povedanje konstrukcijske sloenosti Vie potencijalnih uskih grla Veda mogudnost pojave sigurnosnih propusta Tee odravanje integriteta podataka Vedi trokovi instaliranja i odravanja programske podrke
RDBMS?
DB2 Microsoft Access IBM Microsoft Microsoft Sun Microsystems (now Oracle Corporation) Oracle Corporation PostgreSQL Global Development Group 1983 1992 1989 1995 1979 1989 Proprietary Proprietary GPL ili Proprietary Proprietary PostgreSQL licence (Free and Open Source)
Windows
DB2 5 Microsoft Access Microsoft SQL Server MySQL 8 Oracle 4
Mac OS X
Da Ne
Linux
Da Ne
BSD
Ne Ne
UNIX Symbian
Da Ne Ne Ne
Da Da
Da
Da Da
Ne
Da Da
Ne
Da Da
Ne
Da Ne
Ne
Da Da
Ne
Da Ne
PostgreSQL
Da
Da
Da
Da
Da
Ne
Max Min Max Max NUMBER DATE DATE column size value value name size 64 bits 1 9999 128
DB2
512 TB
512 TB
32,677 B
1012
32 KB (32 KiB)
Microsoft Access
2 GB
2 GB
16 MB
255
32 bits
100
9999
524,258 TB
Unlimited
30000
2 GB
2 GB 6
126 bits 2
9999
128
MySQL 5
Unlimited
MyISAM storage limits: 256TB; Innodb storage limits: 64TB 4 GB * block size (with BIGFILE tablespace)
64 KB 3
4096
4 GB (longtext, longblob)
64 KB (text)
64 bits
1000
9999
64
Oracle
8KB
1000
Unlimited
4000 B
30
PostgreS QL
Unlimited
32 TB
1.6 TB
250-1600
1 GB
Unlimited -4713
58748 97
63
UGLAVNOM DBMS?
Set software-skih komponenti koje slue za
Stvaranje Odravanje Upotrebu
Omoguava razliitim aplikacijama upotrebu iste pohranu i dohvat podataka na jasno strukturirani nain. Podrava razliite DB modele
to su to DB modeli?
baze podataka
DBMS
Sastoji se od:
DBMS mehanizma (eng. DBMS engine)
Podsustava za definiciju podataka
Administracijski podsustav
Zadaci DBMS-a
Definiranje i rukovanje podacima Zatita baze od neovlatenog pristupa Spreavanje naruavanja pravila integriteta Osiguravanje obnove podataka u sluaju razruenja Upravljanje istodobnim pristupom podacima Optimizacija upita i sl.
DBMS engine
Storage engine Komponenta sustava za upravljanje bazom podataka (DBMS) koja slui za stvaranje, itanje, promjenu i brisanje podataka iz baze Razlikuju se po nekoliko specifinosti a one na koje se danas najvie obrada panja jesu podravanje transakcija i tzv. full text search
InnoDB
Pohrana na disku, moguca i raw pohrana podrava transakcije Meduspremnik potreban zbog vece pohrane
Memory (HEAP)
Pohrana podataka u memoriji, izuzetno brzi dohvat
TRANSAKCIJE
Transakcija
Jedinica rada nad bazom podataka Sastoji se od jedne ili niza logiki povezanih izmjena Vode se sve ili nita naelom
Svaka jedinica posla provedena nad bazom podataka mora biti provedena u cijelosti ili ne smije biti provedena uopde
Zadade transakcija
Osigurati jedinstvenu i pouzdanu jedinicu iz koje se moe izvesti oporavak baze u sluaju pada baze tijekom provedbe neke operacije nad bazom Osigurati izolaciju podataka kod viestrukog programskog pristupa bazi
Koraci u transakciji:
1. Zaponi transakciju
SET AUTOCOMMIT=0; START TRANSACTION BEGIN WORK BEGIN
2. Izvri upite/izmjene/manipulaciju nad podacima 3. Ako nije bilo greaka pohrani rezultate i zavri
COMMIT WORK ROLLBACK WORK
Ne podrava se opoziv DDL naredbi (Create table, Drop database)
Stanja transakcija
Aktivna (active) tijekom izvoenja Djelomino zavrena (partially committed) nakon to je obavljena njezina posljednja operacija Neispravna (failed) nakon to se ustanovi da nije mogude nastaviti njezino normalno izvoenje Neuspjeno zavrena (aborted) nakon to su poniteni njezini efekti i baza podataka vradena u stanje kakvo je bilo prije nego to je zapoela Potvrena (committed) uspjeno zavrena
Stanja transakcija
Toka potvrivanja (commit point)
U toci potvrivanja otputaju se svi kljuevi
Kod ulaska u transakciju otputaju se sva zakljuavanja ako su pokrenuta (vidi kasnije predavanja koja se bave zakljuavanjima entorke ili relacije) Potvrena izmjena nikad ne moe biti ponitena sustav garantira da de njezine izmjene biti permanentno pohranjene u bazi podataka, ak i ako kvar nastane ved u sljededem trenutku
ACID
Atomicity - atomarnost
transakcija se mora obaviti u cijelosti ili se uopde ne smije obaviti, sve ili nita naelo
Consistency - konzistentnost
Isolation - izolacija
transakcijom baza podataka prelazi iz jednog konzistentnog stanja u drugo konzistentno stanje, kada se paralelno obavljaju dvije ili vie transakcija, njihov uinak mora biti jednak kao da su se obavljale jedna iza druge, ukoliko je transakcija obavila svoj posao, njezini efekti ne smiju biti izgubljeni ako se dogodi kvar sustava, ak i u situaciji kada se kvar desi neposredno nakon zavretka transakcije
Durability - izdrljivost
Primjer transakcije
SET AUTOCOMMIT=0; BEGIN WORK; UPDATE rezervacija SET satservis=1 WHERE sifKvar=33; UPDATE rezervacija SET satservis=1 WHERE sifKvar=32; COMMIT WORK;
Ili
SET AUTOCOMMIT=0; BEGIN WORK; UPDATE rezervacija SET satservis=1 WHERE sifKvar=33; UPDATE rezervacija SET satservis=1 WHERE sifKvar=32; ROLLBACK WORK;
Pogreke
Pogreke koje otkriva sama aplikacija Pogreke unutar transakcije kojima aplikacija ne rukuje na eksplicitan nain (npr. preliv, dijeljenje s nulom) Pogreka u bazi podataka Kvar raunalskog sustava - baza nije fiziki unitena Kvar medija za pohranu - fiziki unitena baza
Pogreke
Pogreke koje otkriva aplikacija
Sluajevi u kojima aplikacija predvia obavljanje naredbe ROLLBACK WORK Ponitavanje efekata transakcije
kao da transakcija nikad nije zapoela s radom
Ponitavanje izmjena - pretragom dnevnika unatrag nova vrijednost zapisa zamjenjuje se sa starom vrijednodu - sve dok se ne done do poetka transakcije - BEGIN WORK
BEGIN WORK; INSERT INTO klijent VALUES(1,'Ja','Ja',10000,10000, INSERT INTO klijent VALUES(1,'Ti','Ti',10000,10000, COMMIT WORK; to de se dogoditi? Obavit de sve SQL naredbe koje moe U tablici klijent de biti zapisano: 1,Ja, Ja . -> potrebno mu je deklarirati eljeno ponaanje u sluaju neuspjeha
Pauza
Za danas