softver telekomunikacionih sistema - project-benefit · manipulation language - dml) • jezik za...

57
Softver telekomunikacionih sistema Univerzitet u Novom Sadu Fakultet tehničkih nauka Departman za energetiku, elektroniku i telekomunikacije Katedra za telekomunikacije i obradu signala

Upload: others

Post on 15-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Softver telekomunikacionih sistema

Univerzitet u Novom SaduFakultet tehničkih naukaDepartman za energetiku, elektroniku i

telekomunikacije

Katedra za telekomunikacije i obradu signala

Page 2: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sadržaj

• Baze podataka – osnovni pojmovi

• Virtuelizacija baze podataka

• Virtuelne baze podataka

• Maria DB

• Zaključak

Virtuelizacija baza podataka

Page 3: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Baze podataka – osnovni pojmovi

Page 4: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Šta je baza podataka?

• Baza podataka predstavlja skup međusobno povezanih i u određenoj formi organizovanih podataka (tabele ili neke druge strukture).– Podaci su dostupni raznim korisnicima i aplikacijama.– Ne moraju se poznavati detalji fizičkog prikaza, već samo

logička struktura baze.

• Baze podataka se kreiraju sa ciljem da se omogući: – Neredundantno čuvanje podataka izbegavanjem

višestrukog ponavljanja podataka– Istovremeni pristup određenim podacima većeg broja

korisnika– Fizička i logička nezavisnost podataka (Razdvajanje

logičke strukture baze od njene stvarne, fizičke građe i njene logičke definicija od lokalne logičke definicije za jednu aplikaciju).

Page 5: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Logička struktura baze podataka

• Logička struktura baze podataka se definiše u skladu sa modelom podataka odnosno statičkim i dinamičkim pravilima kojima se:

– Definiše struktura podataka (objekti i veze između objekata)

– Ograničenja (pravila koja razdvajaju dopuštena od nedopuštenih stanja objekata)

– Operacije nad podacima (predstavljaju operacije nad strukturom podataka kojima se izražava dinamika realnog stanja objekata).

Page 6: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Upravljanje bazom podataka

• Za funkcionisanje informacionih sistema sa bazama podataka potreban je aplikativni –integrisan softver za upravljanje bazom podataka (eng. Data Base Management System) koji omogućava:

– Automatizovanu administraciju baze podataka

– Korišćenje i kontrolu pristupa na zahtev klijenata

– Održavanje (brine o sigurnosti podataka)

– Oblikuje fizički prikaz na osnovu logičke strukture.

Internet pretraživač

pogled

Model podataka

Baza

podataka

predložakURL

konfiguracija

Page 7: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Od čega zavisi životni ciklus baz podataka?• Analiza potreba i specifikacija informacionih zahteva

• Modelovanje podataka

– Rezultat: logička šema BP (model BP)

• Implementacija (uz pomoć šeme BP i DBMS-a)

– Rezultat: fizička realizacija BP

• Testiranje od strane korisnika

• Održavanje: otklanjanje grešaka (korektivno), promene usled novih zahteva (adaptivno), poboljšanja i optimizacije (perfektivno)...

Page 8: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Jezici za rad sa bazama podataka?

• Jezik za opis podataka (eng. Data Description Language- DDL)

• Jezik za manipulaciju podacima (eng. Data Manipulation Language - DML)

• Jezik za postavljanje upita (eng. Query Language - QL)

• Kod relacionih baza, sva tri jezika objedinjuju se u jedan sveobuhvatni jezik SQL (eng. Structured Querry Language) za opis, manipulaciju i pretraživanje podataka.

Page 9: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Modeli baza podataka?

• Postojeći sistemi za upravljanje bazama podataka podržavaju neki od sledećih modela baze podataka:

– Hijerarhijski model

– Mrežni model

– Relacioni model baza

– Objektni model baza

– Nerelacione baze podataka.

Page 10: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Hijerarhijski model baze podataka

• Hijerarhijski model baza podataka može biti predstavljen jednim stablom ili skupom stabala.– Podaci su hijerarhijski

organizovani u entitete (čvorove stabla) po principu “nadređeni-podređeni” (preslikavanje 1:N)

– Entitet na najvišem hijerarhijskom nivou je koren

– Svaki entitet višeg nivoa povezan je vezama (pokazivači) sa entitetom nižeg nivoa

– Svaki nadređeni entitet ima listu pokazivača do svakog podređenog entiteta.

Fajl sistem na Linuxu

Page 11: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Prednosti i nedostaci hijerarhijskih baza podataka

• Prednosti ovog modela baze podataka:

– Lako se transformiše u linearnu listu.

• Nedostaci ovog modela baze podataka su:

– Ne može se dodati entitet u tabelu podređenih dok se ne uključi u tabelu nadređenog entiteta

– Ne podržava veze tipa M : N

– Za kompleksnije veze se pojavljuju duplikati podataka (što prouzrokuje komplikovano održavanje).

Page 12: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Mrežni model baze podataka

• Mrežni model baze podataka se zasniva na mreži povezanih podataka u kojoj nema nadređenih i podređenih segmenata.

– U mrežu podataka je moguće ući sa bilo kog čvora (entitet).

• Predstavljen je usmerenim grafom u kojem su entiteti povezani pokazivačima koji definišu veze među entitetima.

– Dobro: omogućava veze tipa M : N

– Loše: kompleksanost upotrebe.

Registarski broj Boja karoserije

Tehnički podaci Vlasnik

JMBG

Ime i prezime

Skica podataka o registrovanim vozilima

Page 13: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Relacioni model baze podataka

• Relacione baze podataka se zasnivaju na relacionoj algebri, a podaci i veze između njih prikazuju se dvodimenzionalnim tabelama (poseduju sopstvena imena) sa:

– Kolonama u kojima se smeštaju određene vrste podataka (atributi)

– Redovima u kojima su različiti slogovi (N-torke).

Page 14: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Uloga ključeva u relacionim bazama podataka

• Suština relacionog modela je da se i klase objekata i klase veza između objekata predstavljaju na jedinstven način, tj. preko tabela koje su povezane ključevima.

• Nije bitno gde i kako su smeštene tabele, a informacija se dobija postavljanjem upita.

Page 15: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Karakteristike relacionih baza podataka

• Osnovne karakteristike:– Sve se predstavlja relacijama (tabelama).

– Zasniva se na strogoj matematičkoj teoriji.

– Minimalna redundansa podataka.

– Jednostavno ažuriranje podataka.

– Izbegnute su anomalije ažuriranja.

– Redosled kolona i redova ne utiče na informacioni sadržaj tabele.

– Ne mogu da egzistiraju dva identična reda (rekorda) u jednoj tabeli.

– Svaki red se može jednoznačno odrediti (obavezno postoji primarni ključ).

Page 16: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Objektni model baze podataka?

• Objektni model baze podataka predstavlja skup trajno memorisanih objekata koji se sastoje od svojih internih podataka i “metoda” (operacija) za rukovanje s tim podacima.

• Svaki objekt pripada nekoj od klasa između kojih se uspostavljaju veze nasleđivanja, agregacije i međusobno korišćenje operacija.

Perzistentnost

Skladištenje

Konkurentnost

Oporavak

Upiti

Kompleksni objekt Tipovi i klase

Identitet objekta Klasna hijerarhija

Enkapsulacija Proširivost

Overriding и

overloading

Računarska

kompleksnost

Sistem za upravljanje bazom podataka Objektno-orijentisani model

Page 17: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Koncepti objektnih baza podataka

• Bilo koji sistem se može posmatrati kao skup međusobno povezanih objekata (fizički objekti, koncepti, apstrakcije, bilo šta što ima jasne granice i jasno značenje).

• U objektnom modelu definišu se sledeći koncepti:– Pod objektom se podrazumeva entitet koji je sposoban

da čuva svoja stanja i koji stavlja okolini na raspolaganje skup operacija preko kojih se ta stanja prikazuju ili menjaju

– Literal je u osnovi vrednost, podatak koji se koristi u modelu.

• Literali mogu biti prosti, složeni ili kolekcije. – Brojevi i karakteri su primeri atomskih literala, datum je

primer složenog (struktuiranog) literala, a skup je primer kolekcije.

Page 18: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Osnovni pojmovi iz objektnih baza podataka

• Konkretan objekat se naziva instanca datog tipa, a njegovo stanje se predstavlja vrednostima njegovih osobina. – Pod osobinama objekta se podrazumevaju atributi

objekta i njegove veze sa drugim objektima u sistemu i one se menjaju u vremenu.

• Objekti i literali se kategorizuju u tipove.– Svi objekti, odnosno literali istog tipa imaju jedinstveni

skup stanja (odnosno isti skup osobina) i jedinstveno ponašanje (isti skup operacija).

• Ponašanje objekta se opisuje preko skupa operacija koje on izvršava ili se nad njim izvršavaju. – Svaka operacija ima kao implicitni argument - objekat

kome je pridružena– Operacija može da ima listu ulaznih i izlaznih parametara

definisanih tipova, a može i da vrati tipizovan rezultat.

Page 19: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Nerelacioni model baze podataka

• Nerelacioni model baze podataka (NoSQL) obezbeđuje mehanizam za skladištenje i pretraživanje koji se zasniva na:

– Distribuiranosti (mapiranje između podataka i računara na kojima se podaci čuvaju i obrađuju što se postiže hijerarhijskim heširanjem ključeva)

– Skalabilnosti tj. tabele iz relacionih baza podataka se apstrahuju jednom globalnom tabelom kojoj se pristupa korišćenjem ključeva ili heš tabela

– Korišćenju MapReduce algoritma.

• Postoje sledeći modeli nerelacionih baza podataka:

– Graf model

– Model ključ – podatak (Amazon Dynamo)

– Model BigTable (Google BigTable)

– Document model (MongoDB).

Page 20: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Virtuelizacija baze podataka

Page 21: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Šta je virtuelizacija baze podataka?

• Virtuelizacija baze podataka je proces razdvajanja sloja baze podataka koji leži između storage-a i aplikacionih slojeva unutar aplikacionog steka i prelaz sa fizičke na logičku tj. virtuelnu organizaciju.

Tehnika virtuelizacije baze podataka

Data miningAnalitičar - 1

Data miningAnalitičar - 2

Data miningAnalitičar - N

Homogene, distribuirane funkcije upravljanja bazom podataka

Heterogene, distribuirane funkcije upravljanja bazom podataka

Lociranje transparentnihfunkcija

Isti modelpodataka

Isti proizvođač

Različitmodel

podataka

Različitproizvođač

Geografskadistribuiranost

Улаз Улаз УлазИзлаз Излаз Излаз

Primer:Proizvodi

proizvođača

MySQL

PostgreSQL

SQL сервер

...

Primeri modela podataka

RDB

XMLDB

OODB

...

Primeri geografske lokacije baze

podataka

Токио

Београд

Париз

...

Page 22: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Šta je particionisanje baze podataka

• Prvi korak u virtuelizaciji baze podataka je particionisanje baze podataka koje omogućava paralelizam odnosno proces paralelne upotrebe (istovremeno više aktivnosti za pristup bazi podataka).

– Jedan upit se može razbiti na više zahteva pa se više resursa istovremeni koristi (svaki zahtev koristi različit procesor istovremeno)

– Paralelnim zahtevom se poziva više simultanih mehanizama za čitanje podataka čime se znatno smanjuje proteklo vreme za upite u bazi podataka.

Aplikacija

Direktorijum

particijaParticija 1 Particija 2 Particija N

...

Page 23: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Osnovni tipovi particionisanja

• Postoje dva osnovna oblika particionisanja baza podataka:

– Horizontalno particionisanje: zasnovano na predikciji vrednosti atributa gde se zapisi postavljaju u particiju zavisno od vrednosti jednog ili više atributa

– Vertikalno particionisanje: relacija se deli tako da se jedan atribut postavlja u jednu a drugi u drugu particiju kako bi se omogućilo postavljanje polja kojima se često pristupa na brze uređaje.

Page 24: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Horizontalno particionisanje baze podataka

• Postoje tri osnovne forme horizontalnog particionisanja:

– Round robin (garantuje balansiranje kapaciteta particije i čest pristup particiji, ali ne smanjuje opterećenje)

– Hash based (smanjuje prostor pretrage za mečovane upite, ali i on podrazumeva da su atribut za particionisanje i referenciranje identični)

– Range partitioning (smanjuje prostor za pretragu sa tačke upita i formira opsege upita, ali nije izbalansirana frekvencija pristupa).

Page 25: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Virtuelno particionisanje baza podataka

• Abstrakcija fizičkih podataka putem kreiranja logičkih podskupova za određeni tip aplikativne (poslovne) primene– Upravljanje sa minimalnim resursima jer se malim

particijama efikasnije upravlja i može se primeniti load balancing

– Ne zahteva se reparticionisanje događaja za definisanje dodatnih particija čak i kada se menja hardver.

• Postoje dva pristupa virtuelnom particionisanju baza:– Potpuno deljeni sistemi (eng. Shared All Databases): svi

čvorovi koji izvršavaju sistem za upravljanje baza podataka u klasteru pristupaju jednoj particiji.

– Sistemi bez deljenih particija (eng. Shared Nothing Databases): svi podaci izolovani u interno upravljive particije sa jasnim pozicionim granicama.

Page 26: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Potpuno deljeni sistemi

• Potpuno deljeni sistemi (eng. Shared All Databases) podrazumevaju integraciju svih podataka u zajedničku bazu podataka i definisanje takve šeme baze podataka koja će omogućiti upravljanje od strane različitih aplikacija.

Aplikacija

A

Aplikacija

B

Aplikacija

C

Deljeni

podaci

Page 27: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sistemi bez deljenih particija

• Sistemi bez deljenih particija (eng. Shared Nothing Databases) podrazumevaju da je svaka particija u suštini mini-baza podataka odgovorna za sopstvene podatke, logove, zaključavanje podataka, i drugo.

– Baza podataka sa ovakvom arhitekturom može biti hostovana na jednom serveru sa simetričnim multiprocesorom (SMP). Podaci Podaci Podaci PodaciLog LogLogLog

DB2

particija A

DB2

particija B

DB2

particija C

DB2

particija D

Brzi komunikacioni menadžer

Page 28: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sistemi bez deljenih particija

• Više procesora u jednom serveru sa jednim operativnim sistemom.

Memorija

Tabela

DB2

particija A

DB2

particija B

DB2

particija C

DB2

particija D

CPU CPU CPU CPU

Page 29: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sistemi bez deljenih particija

• Više servera sa jednim procesorom i jednim operativnim sistemom. CPU

Memorija

DB2

particija A

CPU

Memorija

DB2

particija B

CPU

Memorija

DB2

particija C

CPU

Memorija

DB2

particija D

Tabela

Mreže velike brzine

Page 30: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sistemi bez deljenih particija

• Više servera u klasteru, gde svaki server ima više procesora i jedan operativni sistem.

Tabela

DB2

particija A

DB2

particija B

DB2

particija CDB2

particija D

CPU CPU CPU CPU

Memorija Memorija Memorija Memorija

Tabela

DB2

particija A

DB2

particija B

DB2

particija CDB2

particija D

CPU CPU CPU CPU

Memorija Memorija Memorija Memorija

SMP кластер

Mreže velike brzine

Tabela

Page 31: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Prednosti virtuelizacije baza podataka?• Virtuelizacijom baze podataka obezbeđuje se:

– Veća fleksibilnost i agilnost postojeće računarske infrastrukture

– Poboljšanje performansi baze podataka

– Veća granularnost deljenjem (multi-tenancy pristup) ili kombinovanjem računarskih resursa (clustering)

– Jednostavnija administracija i upravljanje

– Veća tolerancija na greške.

Page 32: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Virtuelne baze podataka

Page 33: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Šta je virtuelna baza podataka?

• Virtuelna baza podataka je kontejner za komponente koje se koriste da bi se:

– Integrisali podaci iz više izvora podataka

– Podacima pristupilo preko jednog, uniformnog API-a.

Pretraga podataka Pretraga podataka

Rezultat Rezultat

Analitičar

Sajt A Sajt B

XML

Baza podatak

RDB

Page 34: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

MapServer tehnologija

• Upit i prezentacija podataka iz virtuelnih sistema baza podataka odvija se putem Internet pretraživača i Mapservertehnologije.

• MapServer je razvojno okruženje otvorenog koda za stvaranje geoprostorno osposobljenih internet aplikacija. Može funkcionisati kao a CGI program ili preko MapScript-a koji podržava nekoliko programskih jezika (koristeći SWIG).

Inetrnet

pretraživač

Web server

Integracioni sloj

(middleware)Map server

Sloj pristupa Sloj pristupa Sloj pristupa

Sistem za

upravljanje

bazom podataka

Sistem za

upravljanje

bazom podataka

Fajlovi

Page 35: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Arhitektura virtuelne baze podataka

• Virtuelna baza podataka sadrži modele koji definišu strukturne karakteristike izvora podataka, prikaze i web servise:

– Source model: predstavlja strukturu i karakteristike fizičkih izvora podataka

– View model: predstavlja strukturu i karakteristike apstraktnih struktura koje se prikazuju u aplikaciji.

Page 36: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Source model

• Source model poseduju vezu sa:

– Prevodiocem koji obezbeđuje sloj apstrakcije između VDB engine-a i fizičkog izvora podataka tako što:

Upit pretvara u komandu jasnu za izvor,

Izvršava komandu pomoću adaptera resursa koji je zadužen da obezbedi konektivnost sa izvorom podataka

Rezultat dobijen od fizičkog izvora vraća u oblik koji VDB engine očekuje.

• Adapter resursa obično sadrži sledeće konfiguracione informacije:

– User-id

– Lozinke (eng. Passwords)

– URL adrese fizičkih izvora podataka.

Page 37: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Ime izvora podataka

• Ime izvora podataka (eng. Data Source Name) – je string koji ima svoju strukturu podataka i koji se koristi da opiše vezu sa izvorom podataka odnosno pristup podacima (npr. sa ODBC, JDBC i sl.).

• Atributi imena izvora podataka su:– Ime izvora podataka– Lokacija izvora podataka– Ime drajvera baze podataka koji

može da pristupi izvoru podataka

– User ID i User password za pristup podacima.

Page 38: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

VDB engine

38

Page 39: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

VDB engine

• Virtual database manager (VDB) je u Javi napisan softver koji omogućava:– Da se omogući pristup podacima u realnom vremenu

preko standardnog SQL jezika kroz konvencionalni JDBC drajver

– Da se ne-relacioni podaci predstave u virtuelnom kontejneru bez kopiranja originalnih podataka.

• Podaci su u virtuelnim tabelama koje su virtuelno povezane u nekoj relaciji, a JDBC drajver ih prikazuje kao originalne podatke:– Determiniše najbolji put (najmanji trošak) da se dobiju

podaci

– Povezuje virtuelne tabele sa obaveznim podacima (npr. Jedinstveni identifikator objekta)

– pre-filtriranje i post-filtriranje podataka.

Page 40: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

VDB engine - komponente

• Security Manager je odgovoran za:

– Zaštitu i enkriptovan prenos podataka unutar VDB engine-a

– Upravljanje aplikacijama, korisnicima, grupama, ulogama i domenskim privilegijama koje su povezane sa kreiranjem i manipulacijom VDB podataka i metapodataka.

• Query Manager – napravljen u SQL-u upravlja upitima za objektno orijentisane baze podataka.

• Data Access Drivers je ulazna tačka za servise u VDB-u.

Page 41: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

VDB engine - komponente

• Meta Data Manager – obezbeđuje informacije o entitetima podataka za Query Manager i povezuje eksterne izvore podataka u VDB engine domen i usmerava upite.

• Transaction Manager – obezbeđuje atomnost i konzistentnost transakcija i njihovu međusobnu izolovanost i podršku za OLTP (procesiranje transakcija u realnom vremenu).

• Concurrency Manager – obezbeđuje da klijentske aplikacije i servisi mogu da istovremeno otvaraju više konkurentskih sesija INSERTS, UPDATES, DELETIONS bez redukovanja vremena odziva i ugrožavanja integriteta podataka.

Page 42: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

VDB engine - komponente

• Local Data I/O Manager – obezbeđuje lokalni storage za podatke.

• External Data I/O Manager – upravlja čitanjem podacima i piše na eksterne izvore (implementiran korišćenjem standardnog data access interfejsa ODBC, JDBC, UDBC, OLE-DB ili Native data source interfejsa).

• Replication Manager – upravlja migracijom i sinronizacijom podataka iz jednog ili dva VDB servera u distribuiranom okruženju i koordinira između Local Data I/O Manager i External Data I/O Manager kroz VDB servere.

Page 43: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Maria DB

Page 44: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Maria DB

• Nastala je selidbom iz MySQL i karakteriše je:– Kompatibilnost sa MySQL

– Replikacija i skalabilnost pogodni za rad u oblaku

– Pogodnost za korišćenje u okviru Big data i IoT rešenja

– Mogućnost primene u open source zajednicama.

• Kompatibilnost sa MySQL:– Podaci i fajlovi sa tabelama su kompatibilni sa binarnim

– Klijentski API, protokoli i strukture su identični

– Imena fajlova, putevi i socket-i su isti

– MySQL kontejneri (PHP, Perl, Python, Java, .NET, MyODBC, Ruby, MySQL C) rade nepromenjeno sa Maria DB mysql klijentom i serverom

– Deljene klijentske biblioteke su kompatibilne sa MySQL klijentskim bibliotekama.

Page 45: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Redundansa podataka

• Maria DB koristi numeričke podatke (TINYINT, BOOLEAN, SMALLINT, INTEGER...), stringove, vreme i datum, NULL vrednost, geometrijske podatke (POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION...), AUTO_INCREMENT čija replikacija može biti:

– Asihrona

– Polusinhrona

– Sinhrona.

• Na storage zasnovana redundansa može biti:

– DRBD (eng. Distributed Replicated Block Device)

– SAN (eng. Storage Area Network).

Page 46: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Replikacija podataka

• Vrši se sa jednog ili više master servera na jedan ili više slave servera, a karakterišu je:

– Kontrola nad podacima koji se repliciraju jer se jedna, više ili sve baze podataka ili tabele u okviru njih mogu selektivno replicirati

– Glavni mehanizam u replikaciji je binarni log jer se update baze podataka (manipulacija i definisanje podataka) upisuje u binarni log (bin log događaj) odakle slave server čita informacije da bi pristupio podacima koje treba replicirati

– Odsustvo potrebe za stalnom komunikacijom između master i slave servera jer postoji mogućnost da je server off line ili je isključen sa mreže pa se replikacija nastavlja nakon priključenja na mrežu tamo gde je stao.

Page 47: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Kada se radi replikacija podataka?

• Replikacija podataka radi se u sledećim slučajevima:

– Povećanje skalabilnosti jer se sa jednim ili više slave servera smanjuje opterećenje master servera, a čitanje se širi na više servera

– Analiza podataka se može raditi i na slave serveru kako bi se rasteretio master server

– Backup assistance jer se backup lakše izvršava na serveru na kome se aktivno ne menjaju podaci zato se vrši replikacija na slave koji se onda diskonektuje i sa njega se radi backup

– Distribucija podataka se umesto povezivanja sa udaljenim master serverom lakše radi tako što se repliciraju podaci na slave i onda sa njime lokalno radi.

Page 48: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Asinhrona replikacija

• Asinhrona replikacija – nema garancija u pogledu prenošenja promena sa master na slave server (ispad master servera znači potencijalan gubitak neke od promena).

Klijent Master server Slave server

Potencijalan

gubitak podataka

Page 49: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Sinhrona replikacija

• Sinhrona replikacija – svaka promena na jednom čvoru u klasteru se sinhrono prenosi i na druge čvorove u klasteru.

Клијент Master сервер Slave сервер

Додатна

латенција

Page 50: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

MariaDB Galera klaster

http://www.slideshare.net/skysql/mariadb-enterprise-mariadb-enterprise-cluster-mariadb-webinar-july-

2014

Page 51: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Arhitektura Maria DB cluster-a

• Sinhroni multi-master cluster za MariaDB radi samo pod linux operativnim sistemom i karakteriše ga:– Sinhrona replikacija podataka

– Active-active multi-master topologija

– Read and write funkcija u svakom čvoru cluster-a

– Automatska kontrola čvorova (čvor koji je u grešci ispada iz cluster-a)

– Automatsko pridruživanje novih čvorova

– Paralelna replikacija na nivou redova

– Direktna konekcija klijenata.

Page 52: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Replikacija podataka u cluster-u

• Funkcionalnosti replikacije su implementirane u deljenim bibliotekama koje sadrže:

– wsrep API specifikacije interejsa

– wsrep hooks (wsrep integracija u DBMS engine)

– certification layer (vodi računa o sertifkaciji)

– GCS framework obezbeđuje plugin arhitekturu za komunikacione sisteme.

Page 53: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Load balancing u cluster-u

• Load balancing-om se vrši usmeravanjem konekcija upotrebom sledećih polisa rutiranja:

– Least connected (na server sa najmanje konekcija -default policy)

– Round-robin (na sledeći server na cirkularnoj listi)

– Single (na sever sa najvećom težinom dostupnosti)

– Random (slučajno usmeravanje konekcija između servera)

– Source tracking (usmeravanje prema adresama).

Page 54: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Zaključak

• Virtuelizacijom baza podataka se unutar aplikacionog steka razdvaja sloj baze podataka koji leži između storidža i aplikacionih slojeva i prelazi sa fizičke na logičku tj. virtuelnu organizaciju.

• Virtuelizacijom baze podataka obezbeđuje se:

– Veća fleksibilnost i agilnost postojeće računarske infrastrukture

– Poboljšanje performansi baze podataka

– Veća granularnost deljenjem (multi-tenancy pristup) ili kombinovanjem računarskih resursa (clustering)

– Jednostavnija administracija i upravljanje

– Veća tolerancija na greške.

Page 55: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Zaključak

Page 56: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Razlozi za virtuelizaciju podataka• Virtuelizacija podataka se sprovodi da bi se rešili

problemi:– Kompleksnosti podataka (različite tehnologije i

aplikativna rešenja)– Odvojenih mehanizama pristupa podacima na različitim

lokacijama – Neadekvatne strukture podataka– Prisustva nepotpunih ili duplikata podataka– Kašnjenja.

• Primenom tehnologije virtuelizacije podataka omogućava se:– Napredna analitika podataka – Unapređuje poslovna inteligencija– Pospešuje izgradnja Logical Data Warehouse-a – Vrši integracija sa cloud aplikacijama i uslugama prenosa

podataka

– Primenjuju rešenja vezana za pametnu industriju.

Page 57: Softver telekomunikacionih sistema - Project-Benefit · Manipulation Language - DML) • Jezik za postavljanje upita (eng. Query Language - QL) • Kod relacionih baza, sva tri jezika

Hvala na

pažnji!

University of Novi SadFaculty of Technical SciencesDepartment of Power, Electronic and

Telecommunication Engineering

Chair of Telecommunications and Signal Processing