Distribucija, odnosno povezivanje računarskih sistema u računarsko - komunikacione mreže je danas karakteristika gotovo svih informacionih sistema. I celokupna oblast za koju je nekad uobičajen naziv bio informatika, zatim informacione tehnologije, danas se najčešce naziva informaciono-komunikacione tehnologije - ICT. Time se ističe efikasna simbioza računarstva i telekomunikacija koja omogućava razvoj veoma složenih informacionih sistema. Najšire korišćene distribuirane arhitekture su tzv. klijent - server arhitekture u kojima se jasno odvajaju uloge servera i klijenta koji mogu biti u različitim čvorovima neke računarske mreže.
Najjednostavnija distribuirana arhitektura je dvoslojna klijent - server arhitektura u kojoj server sadrži funkcije sistema za upravljanje bazom podataka (server baze podataka), a klijent, po pravilu na drugom računaru, obavlja ostale delove aplikacija i komunikaciju sa korisničkim interfejsom.
Distribuirane baze podataka predstavljaju sasvim drugačiju distribuiranu arhitekturu. Distribuirana baza podataka je virtuelna baza podataka čije pojedine komponente predstavljaju fizičke delove stvarnih baza podataka koje se nalaze u čvorovima neke računarske mreže. U ovakvoj arhitekturi postoji barem dva servera baze podataka, odnosno dva sistema za upravljanje bazom podataka u različitim čvorovima mreže. Ovi serveri podržavaju lokalne transakcije koje se obavljaju nezavisno, ali i distribuirane transakcije koje se zajednički ostvaruju.
U savremenim informacionim sistemima postoji potreba da jedan programski sistem na isti način koristi više različitih baza podataka, bez obzira na način na koji su te baze realizovane. Drugim rečima, pojavljuje se potreba da se različite baze podataka, ili čak opštije, bilo kakvi izvori podataka, integrišu u virtuelno jedinstvenu bazu podataka. Za ovakvu integraciju izvora podataka vezuju se pojmovi federativnih baza podataka ili višestrukih baza podataka (Multi-Database Systems). Potreba za integracijom podataka iz različitih izvora posebno dolazi do izražaja u stovarištima podataka (Data Warehouse) koji su osnova za tzv. OLAP (On-Line Analytical Processing) obradu podataka. Za razliku od transakcione poslovne obrade podataka (On-Line Transaction Processing - OLTP) u kojoj se obrađuje veoma veliki broj relativno jednostavnih transakcija, OLAP sistemi podrazumevaju relativno mali broj veoma složenih upita nad podacima, po pravilu, dobijenim iz različitih izvora. Paralelne arhitekture se ponekad tretiraju kao distribuirane arhitekture. Ovakve arhitekture koriste multiprocesorske mašine i višestruke uređaje za ostvarivanje boljih performansi u operacijama nad bazom podataka. Razlikuju se tri osnovna podtipa ovih arhitektura:
Distribucija se može ostvariti u homogenom ili heterogenom okruženju. U homogenoj distribuiranoj bazi podataka svi serveri baze podataka su zasnovani na istom SUBP. Za ostvarivanje distribucije u heterogenom okruženju od posebnog su značaja standardi. Interakcija različitih proizvoda se ostvaruje omogućavanjem portabilnosti programa i interoperabilnosti pojedinih delova sistema. Termin portabilnost označava mogućnost prenosa programa iz jednog u drugo okruženje.
Portabilnost zavisi od standardizovanja jezika (SQL, na primer) i ostvaruje se u vreme kompilacije. Termin interoperabilnost označava mogućnost interakcije heterogenih elemenata sistema. Interoperabilnost se ostvaruje standardizovanjem različitih komunikacionih protokola i protokola za pristup podacima (ODBC protokol, na primer). Interoperabilnost se ostvaruje u vreme izvršenja programa.
Kao što je rečeno, distribuirana baza podataka predstavlja kolekciju čvorova neke mreže u kojoj u svakom čvoru postoji lokalni sistem za upravljanje bazom podataka, koji zajedno pružaju takav servis da korisnik sa bilo kog čvora može da pristupi podacima u bilo kojoj lokalnoj bazi. U svakom čvoru lokalni SUBP omogućava korišćenje lokalne baze (obrada upita, transakcije, oporavak i slično) kao da ta baza nije deo virtuelne distribuirane baze podataka. Pored toga, lokalni SUBP su prošireni tako da je moguće ostvariti njihovu kolaboraciju za realizaciju virtuelne distribuirane baze podataka. Ovako prošireni lokalni SUBP čine distribuirani sistem za upravljanje bazom podataka (DSUBP). DSUBP se može realizovati kako u lokalnoj (LAN) tako i u globalnoj računarskoj (WAN) mreži.
Principi distribucije u DSUBP
DSUBP treba da zadovolji sledeće osnovne principe distribucije:
Primer principa distribucije
Replikacionu i fragmentacionu transparentnost ilustrovaćemo na primeru sledeće relacione baze podataka:
Radnik(Radnikld,Ime,Starost,StrucnaSprema,Adresa,OrgJedlD)
Organizacija(OraJedID, Vrsta, Naziv, Grad, BrojRacuna)
Organizacije se nalaze u Novom Sadu, Nišu i Beogradu. U svakom gradu postoji jedan server BP. U centrali u Beogradu se čuvaju podaci o svim organizacijama i svi podaci o radnicima iz organizacija u Beogradu i Novom Sadu. U Nišu se nalaze svi podaci o organizacijama iz Niša i radnicima koji rade u tim organizacijama. U Novom Sadu se čuvaju samo podaci o organizacijama iz tog grada i osnovni podaci o radnicima tih organizacija. Formiraćemo sledeće fragmentacije i replikacije:
RadnBgd := SELECT Radnik.* FROM Radnik, Organizacija WHERE Radnik.OrgjedlD = Organizacija.OrgJedlD AND Grad = 'Beograd' and Grad= 'Novi Sad');
{Horiz. fragmentacija} OrgNis := SELECT * FROM Organizacija WHERE Grad = 'Nis';
{Horizontalna fragmentacija}RadnNis := SELECT Radnik.* FROM Radnik, Organizacija WHERE Radnik.OrgjedlD = Organizacija.OrgJedlD AND Grad = 'Nis';
{Horizontalna fragmentacija}OrgNS := SELECT * FROM Organizacija WHERE Grad = 'NS'; { Horizontalna fragmentacija}RadnNS := SELECT Radnikld, Ime, OrgJedlD FROM Radnik, Organizacija WHERE Radnik.OrgjedlD = Organizacija.OrgJedlD AND Grad = 'NS'; {Horizontalna i vertikalna fragmentacija}
Slika 1
Prednosti distribuiranih baza podataka su:
Očigledno je da je u distribuiranim bazama mnogo teže ostvariti osnovne funkcije SUBP: vođenje kataloga baze podataka, optimizaciju upita, upravljanje transakcijama i drugo.
Pored osnovnih funkcija koje ima, katalog centralizovane baze treba da obezbedi transparentnost distribuirane baze podataka u odnosu na distribuciju (lokacije čvorova), fragmentacije i replikacije. Katalog se može realizovati na jedan od sledećih načina:
Kako ni jedan prikazani način organizacije kataloga ne zadovoljava principe distribuiranih baza podataka uz ostvarivanje njegovog efikasnog održavanja i korišcenja, problem se rešava specifičnim načinom imenovanja elemenata distribuiranih baza podataka. Imenovanje elemenata se zasniva na kvalifikaciju imena preko naziva čvora (X.A bi značilo elemenat A na čvoru X).
Međutim, prikazivanje kvalifikovanih imena korisnicima distribuirane baze očigledno bi narušilo transparentnosti distribucije. Zbog toga je neophodno definisati neku transformaciju korisničkih imena u sistemska imena u distribuiranim bazama podataka. Ovde će se prikazati način imenovanja i transformacije koji su primenjeni u IBM-ovom prototipu distribuiranih baza, nazvanom R*. Na sličan način se postupa i u drugim DSUBP.
U sistemu R* korisničko ime se naziva „Printname". Sistemsko ime, jedinstveno ime elementa u celoj distribuiranoj bazi, sastoji se iz sledećih elemenata:
Na primer,
Ana@Beograd.Radnik@Nis
je sistemsko ime za relaciju Radnik koju je kreirala Ana sa čvora u Beogradu u fragmentu baze u Nišu.
Korisnik se elementu obraća preko lokalnog imena (Radnik) ili preko sinonima koji se može kreirati specijalnom R* naredbom:
CREATE SYNONIM Ucesnik FOR Ana@Beograd.Radnik@Nis;
Prvi elemenat kataloga jednog čvora je tabela u kojoj se za svakog korisnika čuvaju elementi baze koje je on kreirao i sinonimi koji su njemu poznati. Pored toga u lokalnom katalogu se čuvaju podaci o svim elementima „rođenim" u tom čvoru (čiji je „Birth Site" posmatrani čvor) i o elementima koji se u njemu trenutno nalaze.
Preko korisničkog imena ili sinonima se nalazi sistemsko ime elementa, zatim se on potraži na originalnoj lokaciji na kojoj je „rođen", gde se pronađe ili se nađe pokazivač čvora na koji je premešten. Ovi pokazivači se ažuriraju zajedno sa odgovarajućim promenama u distribuiranoj bazi. Na taj način se svaki elemenat i nađe iz najviše dva pokušaja, sam katalog je distribuiran i ne postoji nikakav „centralni čvor".