Sisteme de baze de date Structura cursului SBD 1. Sisteme de BD - concepte fi fundamente 2. Sistemul Oracle - aspecte evoluate 3. SBD orientate obiect & Oracle obiectual - concepte - arhitecturi - avantaje si limite - extensia OO din PL/SQL 4. Integrarea unor tehnologii informatice in Oracle - platforma Java si JDeveloper - web si Oracle WebLogic - GIS si Oracle Spatial - Grid Computing si Oracle Grid Control 5. Tratarea volumelor mari de date - depozite de date, Oracle Discoverer - extragerea de date si Oracle Miner 6. SBD distribuite & Oracle distribuit - fundamente - distribuirea datelor - avantaje si limite - Oracle distribuit
Aspecte fundamentale privind SBD Concepte • In contextul dezvoltarii societatii informationale actuale, numeroase notiuni din domeniul informaticii, altdata cunoscute doar de specialisti, au devenit familiare tuturor: SBD, BD, SGBD, aplicatie informatica. • Desi in limbajul curent ele pot fi confundate ca semnificatie, pt specialisti fiecare dintre aceste concepte trebuie sa fie delimitat, tinand cont ca fac parte din acelasi domeniu al informaticii. • O aplicatie informatica presupune un ansamblu de elemente intercorelate functional pt culegerea, transmiterea, stocarea si prelucrarea datelor cu ajutorul calculatorului. • Sistemul de BD = ansamblu de elemente interconditionate care contribuie la realizarea si exploatarea unei aplicatii cu BD. • Elementele care fac parte din acest ansamblu se refera la: date, software, alte resurse necesare. • Datele sunt structurate si stocate in calculator, atat in memoria interna cat si in cea externa cu ajutorul unor produse software si intr-un anumit context de lucru. Arhitecturi de SBD • Arhitectura unui SBD = o prezentare grafica a elementelor sistemului, a legaturilor dintre ele, evidentiindu-se si legatura cu exteriorul. • In mod frecvent se folosesc 2 tipuri de arhitecturi de SBD, in functie de ceea ce se evidentiaza grafic: - arhitectura pe componente - da o imagine asupra elementelor constitutive ale unui SBD si a interdependentei dintre ele - din aceasta arhitectura rezulta componentele unui SBD: date, software, elemente auxiliare - arhitectura pe niveluri - structureaza un SBD pe 3 niveluri de abordare si da o imagine despre modul de organizare al acestuia: 1. Nivelul conceptual este dat de viziunea administratorului BD asupra SBD
1
2. Nivelul logic este dat de viziunea programatorului asupra datelor 3. Nivelul fizic este dat de viziunea analistului/inginerului de sistem asupra datelor
Tipuri de SBD evoluate
1. SBD paralele - rezultatul integrarii tehnologiei BD cu cea a prelucrarii paralele pe sistemele de calcul si retele de calculatoare - caracteristicile sunt determinate de tehnologia procesarii paralele, in special de urmatoarele aspecte: • Resursele de calcul disponibile • Operatiile de prelucrare necesare 2. SBD mobile - aplicatii cu BD destinate echipamentelor mobile - conectate la microcalculatoare portabile si la o retea de comunicatie - un astfel de sistem presupune: • Hardware specific • Software care sa lucreze cu astfel de echipamente • Un mod de stocare si transmitere a datelor intr-un context mobil • Considerente suplimentare privind protectia datelor - Caracteristicile principale: • Timp de raspuns mic de la distante mari pt utilizatori, care sunt conectati in retea • Costul crescut al comunicatiei in raport cu operatiile de intrare - iesire si cu operatiile de procesare in memoria interna (CPU) • Transmisia-receptia datelor trebuie sa tina cont de schimbarea constanta a localizarii utilizatorului • Durata de utilizare limitata (bateriile etc) • Nu se poate lucra cu tranzactii centralizate ci doar distribuite ceea ce inseamna ca mecanismele corespunzatoare vor fi cele de la SBD distribuite 3. SBD spatiale - au rezultat prin integrarea, avand ca suport tehnologia BD, a sistemelor geografice (cu harta de memorare si informatia asociata) cu sistemele de proiectare asistata ( cu informatia stocata pt asistarea unui proces de proiectare) - organizarea datelor se face cu modelul de date spatial - reprezentarea datelor prin modelul de date spatial este o extensie fie a modelului relational, fie a modelului OO pt BD - Principalele caracteristici se refera la: • Datele spatiale • Cererile spatiale • Indexarea spatiala • Tipurile de aplicatii cu SBD spatiale 4. SBD multimedia - stocheaza si prelucreaza, in context de BD, atat date clasice (text, grafica) cat si multimedia (imagine, audio, video) - Caracteristcile principale: • Stocheaza date de dimensiuni foarte mari • Accepta regasirea similara pt: - imagini, care pot fi diferite dar insesizabile pt utilizator - audio, adica voce care seamana cu ceva stocat in sistem - scrisul de mana, adica o semnatura citita se compara cu cele existente in sistem - accepta date media continue, cum ar fi sunet si video - accepta diferite formate de date - tipurile de aplicatii cu SBD multimedia sunt cele care presupun:
2
• Regasiri bazate pe continut: “toate imaginile similare cu una data” • Utilizarea obiectelor foarte mari individuale: “o secventa audio” • Necesitatea datelor video: “un clip video” Exemplu: Oracle InterMedia este o componenta care extinde functionalitatea SBD Oracle cu facilitati privind stocarea, gestiunea si regasirea datelor multimedia intr-o maniera integrata cu tipurile de date clasice. 5. SBD pentru SSD - sunt produse software complexe care folosesc date online pt fundamentarea deciziilor si pt asistarea procesului decizional - caracteristici - obiective - componente functionale - Tipuri de SSD evoluate: • Orientate pe date (Data Driven) • Orientate pe modele (Model Driven) • Orientate pe comunicare si de grup (Communication Driven and Group) • Bazate pe Web (Web Based)
Sistemul Oracle
1. Oracle SGBD evoluat - respecta in totalitate teoria relationala, presupunand respectarea a 2 cerinte minimale: • A implementa modelul de date relational pt BD • A implementa un limbaj de programare relational (SQL) - respecta regulile lui Codd - versiunea 12c -> infrastructura pt BD pe Internet - pe parcursul evolutiei sistemului Oracle, au fost adaugate noi facilitati, rezultate atat din noul context informatic, cat si din cerintele utilizatorilor, date de dezvoltarea societatii informationale. In mod continuu, noi tehnologii informatice au fost implementate in sistem: • Lucrul cu BD distribuite • Abordarea OO • Facilitati multimedia • Gestionarea BD pt Internet • Afaceri electronice • Inteligenta afacerii • Grid computing 2. Oracle SGBD relational - tinand cont de criteriile rezultate din teoria BD, dar si din teoria relationala, urmatoarele elemente confirma statutul Oracle ca SGBD relational: • Indeplineste functiile unui SGBD: - descriere - manipulare - utilizare - administrare Acest lucru este realizat prin LDD, LMD, pachetele software de interfete si instrumente specializate (Developer Suite, Application Server, Enterprise Manager) • Indeplineste obiectivele unui SGBD: - independenta datelor - redundanta minima si controlata - facilitate de utilizare - securitatea datelor - integritatea datelor - partajabilitatea datelor
3
- legaturile intre date - performantele globale - administrarea si controlul datelor Obiectivele sunt indeplinite prin colaborarea tuturor componentelor sistemului Oracle. • Implementeaza modelul de date relational sub toate cele 3 aspecte ale sale: - structurarea datelor se face cu ajutorul notiunilor: domeniu, tabela (relatie), tuplu, atribit, chei, schema relatiei -restrictiile de integritate se implementeaza prin LDD. Acestea sunt unicitatea cheii (unique, primary key), referentiala (FK), entitatii (not null) si de domeniu (check) - operatorii relationali implementati provin din algebra relationala: selectie, proiectie, jonctiune, reuniune, intersectie, diferenta. Toti operatorii sunt implementati prin clauze specific in comanda SELECT • Implementeaza limbajul relational SQL, care este bazat pe transformarea relationala si imbina puterea calculului si algebrei relationale. In Oracle este implementat o varianta extinsa de SQL standard numita SQL*PLUS. Pt a suplini lipsa facilitatilor procedurale din SQL, Oracle are si un limbaj imperativ/procedural propriu, denumit PL/SQL. • Functioneaza in arhitectura client-server cu procese corespunzatoare. La instalarea sistemului Oracle sunt componente pt server si componente pt client. Desi procesele client si server din Oracle pot fi rulate concomitent pe acelasi calculator, este mai eficient ca ele sa fie rulate pt masini (noduri de retea) diferite.
Facilitati oferite de sistemul Oracle - a evoluat de la un SGBD relational spre o infrastructura de BD pt internet - Facilitati: • A initiat trecerea de la arhitectura client-server spre arhitectura NC (network computing). Versiunile actuale de Oracle pot functiona in ambele arhitecturi • Ofera o mare deschidere atat el ca sistem, cat si pt aplicatiile cu BD evoluate • Pune mare accent pe tot felul de optimizari privind utilizarea resurselor de calcul (timpul si spatiul) • Pune accent mai mare pe analiza - proiectare (modelare - functionalitate) fata de programare, inclinand balanta in favoarea primei activitati. • A implementat primul sistem de BD pt internet in lume si apoi a dezvoltat acest conceput cu o multime de servicii performante • A implementat pt prima data in lume tehnologia Grid Computing pt BD si continua sa o dezvolte • A devenit o platforma multipla, de mare complexitate, cu portabilitate ridicata, care accepta: orice calculator, orice sistem de operare, orice date, orice aplicatie, orice utilizator • Ofera o mare diversitate de interfete pt dezvoltarea aplicatiilor cu BD: - bazate pe modelare ( designer, developer, application server) - bazate pe componente (platforma java) - bazate pe HTML (navigatoare, editoare web, XML) - bazate pe servicii (Service oriented architecture-SOA) - prin programare (fraze SQL, proceduri stocate PL/SQL si java, obiecte standard CORBA, obiecte ODBC, obiecte JDBC)
Oracle Grid Computing • = Tehnologie introdusa de Oracle ce presupune utilizarea coordonata a mai multor servere mici, care actioneaza impreuna ca un singur sistem foarte puternic • Se realizeaza un progres tehnologic de la Internet la Grid Computing datorat aparitiei unor componente tot mai puternice si mai ieftine • Facilitati: 1. virtualizarea pe fiecare nivel - se pot adauga sau inlatura discuri de stocare, cu pastrarea on-line a aplicatiilor Performantele serverelor sunt puse la dispozitia mai multor aplicatii cu baze de date, intr-o structura eficienta de tip cluster. Resursele serverelor se aloca in functie de necesitatile organizatiei si folosind tehnici speciale: se urmareste incarcarea diferitelor echipamente din retea si masina cu cele mai putine procese active va primi o noua sarcina
4
2. Platforma ieftina - Oracle poate rula pe platforme diverse, inclusiv servere si alte echipamente de stocare a datelor la un cost redus, oferind aceleasi functionalitati indiferent de platforma aleasa 3. Scalarea - pt exploatare, se poate porni initial de la o aplicatie cu 2 niveluri, pe un grup de servere cu un cost redus, continuandu-se apoi cu includerea unor noi aplicatii si a altor echipamente 4. Sisteme informatice integrate - componenta Oracle Streams ofera functionalitati multiple pt realizarea unei solutii de sistem informatic integrat, cu eliminarea redundantei datelor. 5. BD distribuite - Oracle a introdus conceptul de rulare a unei singure BD, integrate logic, pe multiple servere folosind tehnologia Real Application clusters (RAC). Practic mai multe servere sunt folosite optim de mai multe aplicatii, reducandu-se nr de echipamente si licente necesare. Tehnologia de tip cluster nu trebuie sa fie achizitionata de la un producator diferit, introducandu-se componenta Oracle Portable Clusterware, care permite folosirea facilitatilor de tip cluster pe orice tip de hardware. 6. Managementul tip grid - Oracle a introdus un instrument special pt managementul tip grid, denumit Oracle Grid Control, pe care adm BD il poate folosi pt monitorizarea si intretinerea intregii infrastructuri de BD, care include resurse eterogene distribuite geografic. Resursele aplicatiilor cu BD nu mai sunt administrate individual, asa cum se realiza in mod traditional, ci grupat, prin utilizarea unui navigator Web 7. Securitatea - Oracle Enterpise User Security este o componenta de management centralizat al privilegiilor de acces a utilizatorilor. Practic, un utilizator este creat o singura data, putand avea acces la multiple BD existente in arhitectura, conform drepturilor sale de acces • Conceptele fundamentale GC implementate in aplicatiile dezvoltate cu Oracle: - partajarea resurselor : resursele aflate la distanta, necesare unei aplicatii sunt utilizate in comun (schimb de fisiere, acces direct la date si alte aplicatii etc ) - accesul sigur: pt a avea acces partajat la anumite resurse se impun anumite restrictii: politica de acces, autorizarea, autentificarea - accesul in timp util: indiferent de nr de resurse existente, utilizatorul va avea uneori de asteptat. Mecanismele de alocare si cele de acces au rolul de a rezolva eficient cozile de asteptare - disparitia distantelor: performantele mereu crescande ale mediilor de comunicatie in retea fac acum posibila conectarea unui nr foarte mare de utilizatori si transmisia unui volum urias de date - standardele: pt ca tehnologia GC sa fie recunoscuta si utilizata la nivel global este nevoie sa fie standardizate cat mai multe elemente. Exista organisme de standardizare si o propunere de arhitectura standard numita Open Grid Services Architecture - OGSA - sistemul deschis: proiectele GC sunt construite pe baza unor protocoale si servicii standarde, ca o infrastructura de sistem deschis (open-source) capabila sa preia din mers schimbarile care apar
BD orientate obiect • • • •
Limitele sistemelor relationale -> evolutia spre sistemele orientate obiect Prima aparitie - sfarsitul ’80 Dpdv al BD - o noua generatie de modele logice de date: cel orientat obiect Orice model logic de date pt BD este format din 3 elemente fundamentale: 1. Structura 2. Operatorii 3. Restrictii de integritate
Modelul orientat obiect 1. Definirea structurii modelului OO - consta in definirea obiectelor si a legaturilor dintre ele A. Definirea obiectelor - clasa de obiecte • Concepte utilizate: - clasele (tipurile) de obiecte - obiectele - metoda - mesajul - instanta - caracteristici
5
A. Definirea legaturilor intre obiecte se realizeaza implicit prin modul de construire (definire) al obiectelor Tipuri de legaturi: - ierarhice - de referinta 2. Operatorii modelului OO - au rolul de a actiona asupra obiectelor din BD - actualizarea metodelor - actualizarea proprietatilor - actualizarea claselor - legaturile intre clase - actualizarea instantelor 3. Restrictiile de integritate ale modelului OO asigura coerenta modelului: • Caracterizarea generala: - a treia generatie de BD - probleme foarte mari si complexe - toate domeniile de activitate - limite - exemple: O2 (Franta), Jasmine (SUA) - BD orientata obiect
BD orientate obiect - BDOO • Definire • Aparitia si dezvoltarea - favorizeaza incepand cu ’90 de: un nou context informatic, noi tipuri de aplicatii, evolutia limbajelor de programare • Tehnologia OO - in totalitatea conceptelor, metodelor, proceselor si instrumentelor utilizate pt constructia sistemelor bazate pe obiect • Aplicarea tehnologiei OO la SBD: avantaje privind imbunatatirea structurii de date (modelul OO) si a celorlalte componente ale sistemului • Caracteristicile cele mai importante ale BDOO rezulta din implementarea modelului de date OO si din tehnicile de proiectare utilizate: - Tehnici de implementare: • Gestiunea mediului limbajului de programare • Reprezentarea obiectelor • Gestiunea persistentei - se descriu si manipuleaza datele permanente ( persistente), in acelasi mod cu cele temporare • Gestiunea memoriei • Extensibilitatea • Distribuirea • Gestiunea versiunilor • Gestiunea obiectivelor traditionale ale unei BD
Sisteme de gestiune a BD OO SGBDOO • Abordarea notiunilor de obiect si SGBDOO s-a facut din mai multe puncte de vedere, pt ca mai multe domenii ale informaticii (limbajele de programare, BD, sistemele informatice, inteligenta artificiala) au contribuit la dezvoltarea conceptelor din tehnologia OO • Directii de cercetare pt SGBDOO: - accentul pe limbajele de programare ( functionale - LISP; imperative - Pascal C; OO Smalltalk, C++, Java) - accentul pe date (modelul OO) Printr-un compromis al celor 2 directii de cercetare s-a ajuns la SGBDOO • In tehnologia OO, datorita directiilor de cercetare diferite, exista mai multe nuante de exprimare privind sistemele dezvoltate: - sisteme orientate pe clase/tipuri, folosesc drept notiune fundamentala “clasa/tipul de obiecte”
6
- sisteme orientate pe obiecte - folosesc drept notiuni fundamentale atat “clasa de obiecte” cat si obiectul - sisteme bazate pe obiecte - folosesc notiunea de “obiect” pt care nu se implementeaza 3 caracterisitici (mostenirea, incapsularea, abstractizarea) Ex limbaje tip “scenarii - script” - sisteme obiectuale - folosesc alte notiuni fundamentale dar trateaza si obiecte/clase de obiecte Ex : sistemele relational - obiectuale cum ar fi Visual Foxpro, Oracle etc • rezulta ca mai corect ar fi sa spunem, atunci cand ne referim in mod generic, sistem OO, care ar fi acoperitor pt variantele de mai sus • La definirea minimala a unui SGBDOO se au in vedere 3 principii
Caracteristici ale SGBDOO 1. Manipularea obiectelor complexe 2. Identitatea obiectelor 3. Incapsularea obiectelor 4. Ierarhiile de clase/tipuri 5. Suprapunerea 6. Extensibilitatea 7. Completitudinea 8. Persistenta 9. Gestiunea memoriei 10. Concurenta in exploatare 11. Tranzactiile lungi 12. Gestiunea versurilor 13. Modele diferite
Arhitectura unui SGBD OO Pentru SGBDOO exista mai multe tipuri de arhitecturi: - functionale - operationale - distribuite
Arhitectura functionala: • intr-o arhitectura functionala, un SGBDOO este descris in termenii componentelor sale logice si ai modulelor din care este compus sistemul (software) • Componentele unui SGBD sunt structurate pe 3 niveluri de functionalitate, necesare pt dezvoltarea aplicatiilor cu BD: 1. Instrumente utilizator 2. Gestionarul de obiecte 3. Serverul de obiecte Avand in vedere arhitectura functionala a unui SGBDOO, componetele unui astfel de sistem pot fi grupate in 3 categorii corespunzatoare celor 3 niveluri functionale: I. Componentele destinate utilizatorilor - se refera in principal la : - limbajele de programare - la interfetele de dezvoltare II. Componetele gestionarului de obiecte au rolul de a asigura: - prelucrarea mesajelor - realizata in mai multi pasi - prelucrarea schemei BDOO - care asigura suport pt o serie de activitati III. Componentele serverului de obiecte se ocupa de: - gestiunea tranzactiilor - gestiunea stocului rezident de obiecte - protectia obiectelor
Avantajele si limitele SGBDOO Avantajele folosirii solutiilor informatice cu SGBDOO - se preteaza bine pt aplicatii tip multimedia, care genereaza obiecte mari, complexe, multidimensionale
7
- implementeaza modelul de date OO care permite reprezentarea obiectelor mari, complexe si dinamice - pot fi stocate si prelucrate volume foarte mari de date, de o mare complexitate si de orice tip - produc aplicatii cu BD deschise, cu avantajele care rezulta din caracteristicile implementate pt obiecte - mostenirea, incapsularea, persistenta, reutilizarea, identitatea etc - asigura cresterea productivitatii in programare prin implementarea caracteristicii de reutilizare, precum si noi tehnici de programare specifice tehnologiei OO, alaturi de tehnicile clasice - se asigura independenta totala a datelor in programe, atat la nivel fizic cat si logic - trateaza tranzactii foarte lungi si realizeaza cooperarea intre tranzactii prin mecanisme specifice - distributia si reutilizarea obiectelor se aplica atat la nivel de date - partea de proprietati din clasele de obiecte, cat si la nivel de programe - partea de metode din clasele de obiecte Dezavantajele folosirii solutiilor informatice cu SGBDOO: - piata de utilitare ramane redusa - nu au o fundamentare teoretica suficient de solida care sa le asigure robustete mare - nu au interfete de dezvoltare suficient de performante pt proiectarea asistata a BDOO - nu au limbaj de programare standard, propriu, unanim acceptat (asa cum este de ex SQL pt relational), dar exista incercari: OQL - obiect query language, ObjectSQL etc) - interogarea se face, de multe ori, greoi, cu un mare consum de resurse de calcul - nu exista reguli clare care sa permita evaluarea unui SGBDOO
Oracle obiectual • nativ - un sistem relational, dar se incadreaza acum in categoria de SGBD relationale extinse cu facilitati din tehnologia OO -> relational obiectuale • Facilitati: - clasele de obiecte sunt denumite tipuri de obiecte - se face deosebirea intre tipuri (clase) de obiecte si instanta obiectului respectiv - Oracle poate utiliza limbajele SQL si PL/SQL pt a descrie si manipula atat datele relationale cat si obiectele - pt a se putea lucra cu tipurile de obiecte in Oracle este necesar ca optiunea Objects sa fie activa la instalarea sistemului - sistemul trateaza distinct notiunea de tip de obiecte si pe cea de obiect
Tipul de obiecte • Similar dpdv al constructiei cu un subprogram PL/SQL de tip pachet: parte declarativa si corp • caracteristici: - declararea : CREATE OR REPLACE - corpul: intre BEGIN si END - metodelor li se pot atasa restrictii prin PRAGMA RESTRICT_REFERENCES - actualizarea unui tip de obiecte se face prin instructiunea ALTER si DROP si consta in adaugarea, modificarea sau stergerea unor proprietati sau metode
Obiectele • Se aseamana cu variabilele din PL/SQL • caracteristici: - declararea prin instructiunea DECLARE - initializarea: cu un constructor prin operatia de atribuire - obiectul curent se poate specifica prin cuvantul rezervat SELF - Oracle lucreaza cu obiectele in 2 moduri: in BD sau in LMD - obiectele in BD sunt persistente si se stocheaza in tabele relationale cu randuri sau coloane - obiectele in LMD sunt tranziente, adica locale unor blocuri PL/SQL
8
Baze de date distribuite Sisteme distribuite - aspecte fundamentale = ansamblu de calculatoare conectate in retea si echipate cu sisteme software care lucreaza distribuit • Resursele dintr-un sistem distribuit sunt: hardware, software, datele • Caracteristici : 1. Suport pt partajarea resurselor - se realizeaza prin cel putin 2 modele: - modelul client-server - modelul bazat pe obiecte 2. Deschiderea 3. Concurenta si paralelismul 4. Scalabilitatea 5. Toleranta la accidente 6. Transparenta Exista mai multe tipuri de transparenta pe care le poate asigura un sistem distribuit: - transparenta accesului - transparenta localizarii - transparenta concurentei - transparenta replicarii - transparenta accidentelor - transparenta migrarii - transparenta performantelor - transparenta scalarii
Obiectivele realizarii sistemelor distribuite 1. Cerintele proiectarii Pentru realizarea unui sistem distribuit proiectantul va tine cont de urmatoarele aspecte tehnice: • Numele globale • Comunicatia • Structura software • Alocarea functionala • Mentinerea consistentei 2. Cerintele utilizator Pentru realizarea unui sistem distribuit proiectantul va tine cont de urmatoarele aspecte legate de utilizarea sistemului: • Functionalitatea • Reconfigurarea • Performanta service
BD distribuite = ansamblu de colectii de date memorate, conform unui model de date, in diferite locuri - noduri ale unei retele de calculatoare, colectii legate logic, adica integrate astfel incat sa constituie o BD unica, tratata in mod unitar • O BDD implementeaza toate aspectele fundamentale ale unei BD, unele particularizate pt mediul distribuit si in plus o serie de caracteristici specifice • acestea rezulta din modul de realizare a unei BDD si da o imagine asupra modului de utilizare a ei
Caracteristici specifice ale BDD: • • • • •
Organizarea datelor Manipularea datelor Criteriile de distributie a datelor in nodurile retelei Multiplicarea datelor Accesul concurent
Structurarea unei BDD: Modelul logic de date implementat de o BDD este unul dintre cele 4 fundamentale adaptat la mediul de lucru retea de calculatoare.
9
A. Nivelurile de referinta intr-o BDD Componentele unei BDD pot fi grupate si reprezentate structural pe 2 niveluri de referinta: 1. Global 2. Local Din cele 2 => componentele unei BDD, care sunt structurate prin adaptarea componentelor oricarei BD astfel: - nivelul global: - schema conceptuala globala - schema externa globala - schema interna globala - nivelul local: - schema conceptuala locala - schema externa locala - schema interna locala B. Tipurile de BDD • Se folosesc mai multe criterii in vederea clasificarii BDD • Dpdv al modului de amplasare a datelor pe calculatoarele din retea: - BDD centralizate - BDD multiplicate - BDD partitionate C. Cererile distribuite intr-o BDD - utilizatorul poate formula, intr-o BDD, cereri de regasire care se prelucreaza prin accesarea unor date situate si pe alte noduri decat cel de unde s-a formulat cererea - pt rezolvarea unei astfel de cereri de regasire se realizeaza o serie de pasi, tinand cont de cele 2 niveluri de structurare ale unei BD
Sisteme de gestiune ale BDD • Definirea SGBDD • Necesitatea (rolul) SBD distribuite • Componentele software: - SGBD locale - comunicatia - SGBDD Obiectivele unui SGBD distribuit: 1. Redundanta minima si controlata 2. Facilitatile de utilizare 3. Securitatea datelor 4. Integritatea datelor 5. Partajabilitatea datelor 6. Administrarea si controlul datelor Regulile lui Date • R1. Autonomia locala • R2. Server central • R3. Continuitatea • R4. Transparenta localizarii • R5. Independenta fragmentarii • R6. Independenta replicarii • R7. Interogari distribuite • R8. Tranzactii distribuite • R9. Independenta fata de hardware • R10. Independenta fata de software • R11. Independenta fata de retea • R12. Independenta fata de SGBD
10
Arhitectura SGBD distribuite 1. Arhitectura ANSI pe 2 niveluri: Nivel global: - schema globala - schema de fragmentare - schema de alocare Nivel local: -schema locala - SGBD local - BD locala 2. Transparenta distributiei datelor • Asigurata prin unul dintre obiectivele unui SGBDD • Arhitectura tip ANSI asigura transparenta distributiei pe 3 niveluri - transparenta la nivel de fragmentare - transparenta la nivel de alocare - transparenta la nivel local Distribuirea datelor de baza: • Tehnicile prin care un SGBDD, asigura distribuirea datelor de baza sunt: 1. Fragmentarea = operatia de descompunere logica a colectiilor globale in parti disjuncte numite fragmente, utilizand operatori speciali - pt a realiza fragmentarea SGBDD respecta: A. Reguli: - competitudinea - reconstructia - disjunctia B. Metode - orizontala -verticala - mixta 2. Replicarea = operatia de stocare a unor potiuni dintr-o BD, sun forma de copii, pe mai multe calculatoare (noduri) dintr-o retea - daca un utilizator actualizeaza o copie locala atunci SGBDD actualizeaza automat toate copiile acelor date - Metode ce pot fi utilizate la replicare: 1. Date ne-replicate 2. Date replicate partial 3. Date replicate total 3. Mixta = operatia de aplicare succesiva a fragmentarii si replicarii pt aceeasi colectie globala de date - aceasta tehnica preia avantajele celorlalte 2 dar este mai greu de implementat 4. Incarcarea = operatia de copiere periodica a intregii BD centralizate sau a unei portiuni din ea pe noduri locale - tehnica este cea mai simpla si se foloseste atunci cand datele sunt stabile sau atunci cand nu toti utilizatorii trebuie sa aiba acces la datele de ultima ora
Distribuirea datelor din catalog • Se realizeaza in 2 situatii • Metode de distribuire a catalogului: - catalogul replicat - catalogul local - catalogul centralizat - catalogul mixt
11
Avantaje: • Structura organizatorica • Fiabilitate crescuta • Partajabilitate ridicata • Performante imbunatatite • Extensibilitatea Dezavantaje: • Investitia initiala • Complexitatea • Protectia • Standardele • Proiectarea
Depozite de date Definirea depozitelor de date: - sprijina prelucrarea informatiilor pt analiza - furnizeaza o platforma solida de consolidare a datelor istorice - depozitul de date - definire in sens larg - depozitul de date - definire in sens W.Inmom Scopul DD: - stoc central de date - optimizare - accesul la datele organizatiei - utilitare - consistenta datelor Caracteristicile principale: - dimensiune foarte mare - organizat - cereri de regasire ad-hoc - surse de date variate - modele de date multidimensionale - colectia de date - necesitatea
12
Tipuri de depozite: Dupa modelul de date implementat: 1. DD relationale 2. DD multidimensionale Dupa aria de cuprindere: 1. Depozit de intreprindere 2. Data mart 3. Depozit virtual Arhitectura DD Exista mai multe modele de arhitectura: A. Pe componente
B. Pe 3 niveluri
1. Nivelul de jos (bottom-tier) e constituit din serverul DD si este in multe cazuri, un sistem de BD relationale. In cadrul acestui nivel datele sunt extrase, curatate, transformate si incarcate in DD. - daca din BD operationale si din sursele externe sunt extrase utilizand programe de aplicatii tip interfata cunoscute sub numele de “gateways” - un gateway este sprijinit de SGBD-ul de baza si permite programelor client sa genereze cod SQL pt a fi executat de server ex gateways: ODBC (open database connection), OLE-DB (open linking and embedding for database) la Microsoft, JDBC (java database connection) - trebuie luata in considerare si modalitatea de improspatare a datelor din depozit, pe masura trecerii timpului Daca, de exemplu, dimensiunea timp are structura luna, trimestru, an, inseamna ca la sfarsitul fiecarei luni, a fiecarui trimestru sau a fiecarui an datele din sistemul operational trebuie sa improspateze DD
13
2. Nivelul mediu (middle-tier) bazat pe un server OLAP care e implementat in mod obisnuit, utilizand fie un : - model relational OLAP (ROLAP) = extensie a unui SGBDR care mapeaza operatiunile pe date multidimensionale la operatiunile relationale standard - fie un model multidimensional (MOLAP) este dedicat si implementeaza direct descrierea datelor si a operatiunilor multidimensionale 3. Nivelul superior (top-tier) = nivelul client care contine instrumente pt generarea interogarilor si a rapoartelor, instrumente de analiza si/sau instrumente data mining (ex: analiza trendului, predictii etc) C. Oracle
• Orice sursa. Datele colectate in DD Oracle pot proveni dintr-o varietate de surse, atat operationale (interne) cat si externe - in mod obinuit datele din DD provin sin sisteme operationale interne - totusi, sursele externe de date (demografice, economice, internet) devin tot mai populare si in curand vor furniza tot mai multe date pt DD - sursele int si ext trebuie combinate pt a furniza utilizatorilor finali acces la ambele tipuri de date • Orice date. Datorita profilului utilizatorilor DD, proiectantii de sisteme sunt pusi in fata unui set divers de cerinte. - accesul la date trebuie sa fie rapid, direct si intuitiv - majoritatea utilizatorilor necesita interogari directe si analize in detaliu, in timp ce alti utilizatori au cerinte de analize complexe - sursele de date trebuie sa fie capabile de manevrarea a noi formate de date: audio, video, texte si spatiale. Mai mult, cerinte de volume de date istorice mari pot conduce la BD foarte mari (VLDB = very large databases). Pt a satisface aceste cerinte, Oracle furnizeaza atat solutii relationale (Oracle) cat si multidimensionale (express server) • Orice acces. Oracle ofera o suita de instrumente ce permite tuturor utilizatorilor accesul la date inclusiv: interogari si raportari ad-hoc , analiza in detaliu, modelare, previziune si analize de tip “ce se intampla daca” - majoritatea utilizatorilor necesita instrumente intuitive ce permit accesul rapid la date pt luarea deziciilor - o categorie separata de utilizatori necesita instrumente sofisticate de analiza pt stabilirea strategiilor pe termen lung. Luate impreuna, necesitatea de accesare a informatiilor se regaseste in intreaga organizatie. DD tind sa se extinda de la domeniul analistilor la o categorie mai larga de utilizatori. In acest context, decizia asupra instrumentelor ce vor fi folosite devine critica.
14
BigData si BD NoSQL Paradigma Big Data • Analiza volumelor mari de date, Big Data = una dintre cele mai noi tendinte in domeniul sistemlor de BD evoluate, integrarii sistemelor si a inteligentei afacerii • Poate fi folosita de diverse tipuri de organizatii in diverse domenii pt a obtine un avantaj competitiv sau pt a imbunatati calitatea deciziilor • Big data - definire
BD NoSQL = Not OnlySQL • Constituie un mecanism de stocare si accesare a datelor, ce permite acces rapid la date, scalabilitate si flexibilitate • Prin expresia “nu numai SQL” se specifica faptul ca se aduc imbunatatiri BD SQL traditionale • Folosesc tipuri de structuri de date diferite de structura de date relationala. Aceste structuri contin date semistructurate sau nestructurate Teorema CAP • Consistenta • Disponibilitate • Toleranta la partitionare Trasaturi & caracteristici ale BD NoSQL - conform def date de Rick Cattel BD NoSQL prezinta 6 trasaturi (caracteristici ) de baza: 1. Ignora principiile RDBMS 2. Nu au o schema de date fixa 3. Lipsa necesitatii de normalizare a datelor 4. Utilizeaza scheme de date extensibile slab tipizate 5. Scalare orizontala 6. Persistenta datelor Stocarea datelor in BD NoSQL • O caracteristica importanta a BD NoSQL o constituie modalitatea de memorare a datelor semistructurate si nestructurate • Au aparut in timp diverse tipuri de stocare a acestor date cum sunt: 1. Stocarea bazata pe grup de coloane Ex: Hadoop/HBase, Cassandra, Hypertable, Accumulo, Amazon Simple DB, Cloudata, Cloudera 2. Stocarea bazata pe structuri de tip chei-valoare
15
- tabela de dispersie - date arbitrare neinterpretate Ex: MongoDB, Oracle NoSQL Database, Tarantool, Tokyo Cabinet 3. Stocarea de tip documente - conceptul principal in acest caz este documentul - JSON, BSON, XML, PDF, XLS Ex: Couchbase, MongoDB 4. Stocarea datelor bazata pe graf - concepte: noduri, muchii, proprietati Ex: Allegro, Neo4J, OrientDB, Virtuoso, Stardog Avantaje: scalabilitate, flexibilitate, adecvate POO
Sistem de BD NoSQL Sistem de BD NoSQL = sistem de BD care este: - distribuit - ar putea sa nu necesite scheme fixe pt tabele - evita de obicei operatiile de tip join - este in mod tipic scalabil pe orizontala - nu pune la dispozitie o interfata de interogare SQL - este open source Uneori termenul este folosit cu sensul de sistem complet nerelational.
• Tranzactiile in BD NoSQL nu indeplinesc cerintele ACID: • Pt acest tip de BD tranzactiile trebuie sa fie BASE - Basically Available = sistemul garanteaza disponibilitatea datelor asa cum este ea definita in teorema CAP. Oricare cerere va primi un raspuns. Dar spre deosebire de SBD relationale, raspunsul poate fi si afirmarea incapacitatii temporare de a furniza datele cerute - datele pot fi la momentul respectiv intr-o stare inconsistenta sau in curs de modificare - soft state = la fel ca Basically Available - eventual consistency = sistemul va deveni cu siguranta consistent dupa un interval in care nu mai au loc operatii de scriere. Datele se vor propaga mai devreme sau mai tarziu in toate punctele in care ar trebui sa se propage, dar sistemul va continua sa primeasca operatii de scriere si nu va verifica pt consistenta la fiecare tranzactie inainte de a trece la urmatoarea tranzactie ( asa cum se face in SBD relationale) • In functie de modul in care sunt structurate datele, SBD NoSQL pot fi clasificare in urmatoarele categorii: - Document stores (acumulari de doc) alese cand: - se doreste organizarea datelor fara o schema generala - tipurile valorilor din “campurile” individuale pot fi diferite de la o “inregistrare” la alta - un “camp” poate avea mai multe valori (vector) - “inregistrarile” pot avea o structura imbricata (inregistrare in inregistrare in inregistrare ..) Ex: MongoDB, CouchDB, Couchbase, Marklogic, RavenDB, Cloudant, Gemfire, OrientDB, Rethink DB, Datameer - Wide - column stores (acumulari de campuri de dimensiuni mari) - alese cand: - fiecare “inregistrare” poate contine un nr foarte mare de “campuri” (milioane, miliarde) a caror dimensiune si denumire poate fi schimbata in mod dinamic Ex: Cassandra, Hbase, Accumulo, Hypertable, Sqrrl - Key-value stores - alese cand: - structura foarte simpla - diverse valori sunt stocate impreuna cu o cheie de cautare - nu sunt adecvate pt aplicatii complexe - porivite pt sisteme embedded - potrivite pt subsisteme de mare viteza
16
Ex: Redis, Memcached, Riak, DynamoDB, Ehcache, Hazelcast, Berkeley DB, SimpleDB, Coheremce, Oracle NoSQL • Alte categorii de BD NoSQL cu utilizare de nisa: RDF stores (acumulari de informatii Resource description Framework), BD graf, BD pt motoare de cautare, BD multivaloare, BD native XML, BD de evenimente, BD de continut, BD de navigatie etc
17