Download - Baze de date distribuite - notite de curs

Transcript
  • 1. Verteilte Datenbanken - Eigenschaften

    BDD = colectie de BD legate intre ele intr-o retea de calculatoare.

    Datele sunt impartite fizic pe m.m calculatoare, dar aplicatiile nu cunosc aceasta

    impartire vad doar o BD = principiul transparentei.

    SDBD = sistem distribuit de BDate = sistem prin care se pot dezvolta aplicatii cu

    cerinte mari dpdv al prelucrarii datelor.

    Face posibila folosire in acelasi timp a puterii de procesare a m.multor calculatoare

    Alcatuit din BDDistribuite + sistem distribuit de management al bazelor de date

    (SMBD)

    Face impartirea sa fie transparenta

    Avantaje:

    1. Independenta datelor fata de suportul fizic de memorare

    2. Transparenta distributiei in retea u.nu stie detalii distr. date in retea: localizare,

    nume E

    3. Transparenta privind replicarea + fragmentarea datelor

    4. Volum de stocare a datelor crescut

    5. Siguranta de functionare, siguranta de disponibilitate

    6. Date+sistem de gestiune: distribuite in m.multe site-uri => caz defectare un site:

    alte site-uri pot sa continue sa functioneze + u. pot sa acceseze cel putin o parte din

    date

    Dezavantaje;

    1. Complexitate mai ridicata privind: proiectarea, administrarea, intretinerea

    2. Dificultati: necesitate de

    a. prelucrare distribuita a interogarilor +

    b. control al tranzactiilor distribuite

    3. Securitatea necesita mecanisme speciale de protective: autentificare + criptare date

    datorita comunicatiilor prin retea

    4. Dificultati de mentinere a integritatii datelor:

    a. Necesita operatii in retea,

    b. Pot incarca mult capacitatea retelei

  • 2. Verteiltes Datenbanksystem - Schema / Lokale Schema

    BDD = multime de BD stocate pe multiple servere

    O aplicatie:

    o vede o singura BD

    o poate modifica simultan diferite BD in retea

    Fiecare BD din sistem:

    o e controlata de pe un server

    o coopereaza si cu alte BD pentru a mentine consistenta BD Globala

    server de BD = soft pentru administrarea unei BD

    client = aplicatie care da un request pentru informatii de pe server

    Fiecare computer dintr-un sistem (SBDD) este un NOD

    o se comporta precum:

    un client

    un server

    sau amandoua, in functie de situatie.

    Schema locala:

    - fiecare statie poate sa :

    o lucreze cu datele autonomy

    o comunice global cu alte calculatoare

    - schema locala:

    o nu e integral adusa in schema globala, iar autonomia locala e data

    doar partial

    o contine informatii despre:

    nodurile fragmentelor stocate

    alocarea + replicarea fragmentelor relationale

    Transparenta Schemei Locale dicteaza ca toate calculatoarele folosesc acelasi model

    de date si acelasi sistem de gestiune problema: acest lucru nu e posibil cand se leaga

    diferite SMBD-uri.

  • 3. Fragmentierung einer Relation, Fragmentierung: Korrektheits-Anforderungen

    Fragmentare = partitionarea unei relatii globale.

    3 tipuri de F: Orizontala, Verticala, Mixta.

    Fragmentarea Orizontala = F.O presupune multimi de date disjuncte.

    Fragmentarea Verticala = F.V coordoneaza punerea impreuna a A2 cu acelasi mod

    de accesare.

    Fragmentarea Mixta = F.M combina F.O si F.V

    Cerinte de corectitudine: fragmentarea trebuie sa respecte anumite cerinte.

    Reconstructia

    o Este posibila reconstructia relatiei fragmentate, bazandu-ne pe fragmentele

    acesteia.

    Integritatea

    o Fiecare fisier trebuie sa corespunda unui fragment.

    Disjunctivitatea

    o F2 nu se suprapun = un fisier nu poate sa apartina mai multor fragmente.

  • 4. Horizontale Fragmentierung + Abgeleitete H. Fragmentierung

    F.O = tip de fragmentare

    o Presupune impartirea multimii de date pe m.multe tabele

    o Se mai numeste si regionalizare

    o Exemplu: corporatie cu reprezentante in SUA si Europa. Putem fragmenta

    datele prin: memorare date aferente reprezentantelor

    din SUA intr-un server din SUA,

    din Europa pe un server din Franta.

    F.O Derivata

    o este definita pe relatia membru a unei legaturi dupa o operatie de selectie

    specificata de proprietarul legaturii.

    o legatura dintre relatiile proprietar si membru e definite ca un equi-join. Un

    equi-join poate fi implementat cu ajutorul semi-join-urilor.

    Vertikale Fragmentierung = F.V

    F.V = tip de fragmentare consta in separarea dupa coloana

    Fiecare tabel rezultat dintr-o F.V contine o parte din A2 care nu sunt Chei + toate

    A2 Cheie, care sunt repetate in fiecare tabel nou.

    Kombinierte Fragmentierung = F.M

    F.M = tip de fragmentare

    o combina F.O si F.V.

    o consta in aplicarea F.V la un F.O sau invers

    o in practica este bine sa existe cel mult 2 divele de fragmentare

    exemplu: tabelul cu studentii universitatii:

    o dpdv vertical: fragmentarea va imparti datele dpdv al functionalitatii =>

    tabelul cu datele personale StudPers (CNP, nume..)

    tabelul cu datele specifice facultatii StudFac (nr grupa,

    specializare..)

    apartinand celor 2 tabel e: Cheia Primara = numarMatricol

    o dpdv al F.O - putem s fragmentm datele studenilor din tabelul StudFac,

    pentru a memora studenii de la faculti diferite n locaii diferite.

    Astfel am avea o fragmentare mixta.

  • 5. Baumdarstellung der Fragmentierung

    exemplu: tabelul cu studentii universitatii:

    a. dpdv vertical: fragmentarea va imparti datele dpdv al functionalitatii =>

    1.tabelul cu datele personale StudPers (CNP, nume..)

    2.tabelul cu datele specifice facultatii StudFac (nr grupa, specializare..)

    3.apartinand celor 2 tabel e: Cheia Primara = numarMatricol

    b. dpdv al F.Orizontale - putem s fragmentm datele studenilor din tabelul

    StudFac, pentru a memora studenii de la faculti diferite n locaii diferite.

    Astfel am avea o fragmentare mixta.

    Fragmentarea efectuat mai sus poate fi reprezentat astfel:

  • 6. Allokation einer Relation

    Alocarea intr-o baza de date distribuita arata unde sunt salvate datele. Fiind cunoscuta

    alocarea, se pot efectua operatii impotriva redundantei, sau a incorectidudinii datelor,

    deoarece stim unde se afla fizic datele.

    Proiectarea BDDistribuite implica doua activitati specifice, care iau in considerare

    natura distribuita a datelor: fragmentarea si alocarea datelor.

    Problema alocarii resurselor in sistemele distribuite poate fi definita astfel:

    Fiind date un set de Fragmente F= {F1, F2, .., Fn} si o retea formata din mai multe

    Noduri N ={N1, N2, .., Nn}, in care ruleaza un set de Aplicatii A= {A1, A2, .., An}

    Trebuie gasita o solutie optima de distribuire a fragmentelor F pe nodurile N.

    Solutia optima de distribuire poate fi definita prin intermediul a 2 obiective:

    Minimizarea costurilor. Cost total = costuri de comunicatie + costuri de prelucrare a

    operatiilor de interogare si actualizare a fiecarui fragment de pe fiecare nod + costuri

    de stocare a fiecarui F pe fiecare N.

    Maximizarea performantelor. Performante apreciate prin timpii de raspuns aferenti

    operatiunilor de accesare si prelucrare a datelor. Timp de raspuns al unei T = timp de

    transmisie prin retea + timp de accesare locala a datelor + timpul de prelucrare locala a

    datelor.

    Alocare in 2 etape: definirea strategiei de alocare + alegerea metodei de alocare ce va fi

    utilizata.

    Concluzie: alocarea datelor are ca obiectiv gasirea solutiei optime de plasare a fragmentelor

    in conditiile minimizarii costurilor si maximizarii performantelor.

    Atingerea acestui obiectiv impune

    1. Definirea atenta a strategiei de alocare, in functie de care

    2. Se va alege apoi metoda de lucru adecvata.

    Definirea strategiei de alocare implica analiza atenta a cerintelor privind:

    consistenta datelor, ponderea operatiunilor de actualizare in raport cu cele de

    interogare, timpii de raspuns planificati, etc

    in functie de care se poate opta pentru distribuire sau replicare.

  • 7. Transparenz in verteilten Datenbanken

    Un sistem distribuit de gestiune a bazelor de date (SGBDD) este un sistem de

    programe care permite gestionarea bazei de date distribuite i face distribuirea

    transparent pentru utilizatori.

    Obiectivul transparenei este de a face ca un sistem distribuit s apar ca unul

    centralizat. Acesta fiind denumit uneori principiul fundamental al SGBDD.

    Exist trei tipuri de transparen:

    - de fragmentare

    o presupune c utilizatorul vede doar schema global, fr s vad fragmentarea

    sau alocarea.

    - de alocare

    o utilizatorul vede fragmentarea bazei de date, dar nu si alocarea ei.

    - de schema locala

    o utilizatorul vede i fragmentarea i alocarea, vede doar un model de date,

    nefiind vizibil cuplarea mai multor SGBD-uri.

  • 8. Anfragebersetzung und Anfrageoptimierung.

    Algebraische Optimierung, Optimierung bei vertikaler Fragmentierung

    Prelucrarea cererilor = interpretarea i optimizarea cererilor la F.O si F.V

    Interpretarea cererilor = pp. generarea unui plan de evaluare pe fragmente

    Optimizarea cererilor = are rolul de a genera un plan ct mai eficient pe ct posibil.

    Plan eficient ia in calcul:

    o alocarea datelor

    o costurile de tranfer

    o puterea de prelucrare a unitatilor

    n cazul prelucrarii cerinelor, trebuie ct mai multe operaiuni s fie prelucrate local.

    F.Orizontala pp. efort mare de unificare a datelor, de aceea pe ct posibil trebuie evitat o

    reconstrucie global a tabelului.

    n cazul fragmentrii verticale, trebuie nti stabilit ce date sunt necesare pentru ca cererea

    s fie efectuat. Pentru ca algoritmul s fie optim, trebuie selectate cu cat mai puine

    fragmente

  • 9. Join-Auswertung Moeglichkeiten in VDBMS, Join-Auswertung mit Filterung,

    Alternative Auswertungungsplne - Parameter fr die Kosten eines

    Auswertungsplan

    Problema procesrii cererilor este mult mai complex n mediile distribuite. n sistemele

    cu mai multe staii, timpul de raspuns va crete considerabil dac cererea implic operaii de

    tip JOIN pe tabelele de dimensiuni mari. Unul dintre cei mai costisitori costisitori operatori

    relaionali este operatorul join ( compunere ).

    Pentru a optimiza eficient o comanda SQL care utilizeaz operatori join, trebuie s se in

    cont de ordinea de execuie a join-urilor, astfel nct la fiecare pas s fie obinute ct mai pune

    nregistrri ce vor fi utilizate n urmtoarea operaie join. De asemenea, este important i

    alegerea metodei de procesare a join-ului, astfel nct aceasta s fie adecvat numrului de

    tupluri care intr in join.

    Cele mai multe sisteme de baze de date utilizeaz pentru implementarea join-ului diverse

    forme ale algoritmilor Nested Loops, Sort Merge i Hash-Join.

    Procesarea de instruciuni join cu filtrare presupune folosirea operatorului de semijoin

    pentru filtrare. Ideea de baz este trasferul (...) tuplurilor care au un partener-join asociat.

    Problema optimizrii execuiei interogrilor distribuite are scopul de a obine un timp de

    rspuns al sistemului ct mai mic posibil n condiiile minimizrii costului total de execuie.

    Costul total de execuie al unei interogri const n costul de prelucrare (CCPU) + costurile de

    accesare a discurilor (CI/O) + costul comunicaiei ntre noduri.

  • 10. Transaktionskontrolle in VDBMS

    o tranzacie se poate ntinde pe mai multe maini fizice conectate ntre ele => controlul

    tranzaciilor este foarte dificil, pentru a reconstrui datele unei operaiuni care a fost

    ntrerupt.

    Pentru recuperare ( recovery ) exist operaiunile UNDO i REDO.

    Dupa cum spune i numele,

    o UNDO anuleaz schimbrile efectuate, iar

    o REDO repet schimbrile de la capt atunci cnd o tranzacie a fost ntrerupt.

    tranzaciile trebuie sa nu fie executate incomplet => exist operaiuni de tip end-of-

    transaction, precum COMMIT i ABORT.

    o COMMIT presupune ncheierea complet a unei tranzacii, iar

    o ABORT este apelat atunci cnd o tranzacie global este ntrerupt, astfel toate

    prile locale sunt aduse n starea de dinaintea tranzaciei.

  • 11. Zweiphasen-Commit-Protokoll

    protocol care asigur integritatea datelor cu privire la operaia end-of-transaction.

    n acest protocol se presupune c exist un coordonator C i mai muli ageni ( A1, A2,

    ... An) care iau parte la o tranzacie.

    Interaciunea ntre coordonator i ageni se poate urmri n schema urmtoare:

    - C trimite tuturor mesajul PREPARE;

    - agenii primesc acest mesaj i ori trimit napoi READY sau FAILED, dac nu pot face

    COMMIT-ul mai departe.

    - Dac toi agenii trimit rspunsul READY, C trimite comanda COMMIT i asteapt

    confirmarea ACK.

    - Dac nu sunt toate READY sau nu rspund n timpul stabilit, C trimite comanda de

    ABORT i ateapt ACK c au anulat tranzacia.

  • 12. Fehlersituationen des 2PC-Protokolls

    Situatii de erori in 2PC:

    ntreruperea coordonatorului

    - nainte de o comanda tip COMMIT => se trimite un ABORT

    - nainte de trimiterea unei comenzi de tip READY => se blocheaz agenii

    ntreruperea unui agent

    - cnd un agent la o comand de tip PREPARE nu rspunde n timpul stabilit

    nseamn c agentul este deranjat temporar => coordonatorul vede i trimite

    ABORT

    - fiierul log al agentului:

    o nu conine READY => trimite FAILED napoi

    o conine READY dar nu COMMIT => agentul ntreab coordonatorul i

    ateapt comanda COMMIT sau ABORT

    o conine COMMIT => agentul tie c o comunicare este necesar, nu poate

    primi doar aceast comand

    Pierderea unui mesaj

    o Se pierde un mesaj de tip PREPARE sau READY/FAILED. Dup impulsul de

    timeout C trimite ABORT

    o De data asta nu se pierde un PREPARE ci un aget rspunde i nu primete

    niciun rspuns de COMMIT/ABORT => agentul trimite lui C un reminder

  • 13. Mehrbenutzersynchronisation in VDBMS

    Deoarece datele trebuie s fie accesate de mai muli utilizatori n acelai timp, se creeaz

    anumite probleme cu privire la accesul simultan asupra datelor.

    Acest lucru este posibil prin serializare, ns nu ar putea funciona rapid o serializare pe

    fiecare dintre calculatoare, de aceea sincronizarea mai multor utilizatori trebuie s se bazeze

    pe serializarea global.

    Protocolul de blocare n dou faze ( 2 phase locking protocol )

    local

    - pe fiecare calculator tranzaciile locale trebuie s comunice cu propriul administrator

    - tranzaciile locale sunt favorizate, ns recunoaterea aa-numitelor deadlocks este

    mult m??

    global

    - exist un coordonator de blocare central

    - acest coordonator respect autonomia calculatoarelor, ns pentru a avea drepturi de

    blocare, fiecare computer trebuie s le cear coordonatorului central

  • 14. Deadlocks in VDBMS, Zentralisierte Deadlock-Erkennung,

    Deadlock-Vermeidung

    Deadlocks in SGBDD

    Deadlock - descrie o stare n care unul sau mai multe procese ateap eliberarea unor resurse

    care deja sunt ocupate de unul sau mai multe dintre ele.

    Identificarea centralizat a Deadlock-urilor

    Un Deadlock este mai uor de identificat i procesele s fie restartate, dect de prevenit,

    deoarece trebuie doar inute minte alocrile de resurse. ( Astfel cnd se identific un

    Deadlock, procesele sunt restartate pentru a nceta Deadlock-ul. Recunoaterea Deadlock-

    urilor se poate folosi de un graf de ateptate, fie global sau local. ntr-un graf local, se

    consider un nod Extern, n care se duc toate arcele de ateptare ctre alte maini fizice. )

    n acest tip de identificare, se numete un nod de control. Acesta servete ca un hub central

    pentru activitile de detecie a activitilor Deadlock. Activitatea primar a acestui nod de

    control este de a nregistra grafurile de ateptare i de a cuta cicluri tip Deadlock. Restartarea

    proceselor i eliberarea resurselor se poate face doar pe acest nod.

    Transmiterea continu de mesaje pentru meninerea actualitii grafului de ateptare

    presupune un efort de transmisie. O mbunatire la acest algoritm ar fi dac fiecare nod i-ar

    executa propriul graf de ateptare, care doar periodic ar fi trimis nodului de control.

    Evitarea Deadlock-urilor

    Exist algoritmi care se folosesc de date de tip timestamp. Astfel se cunoate care process

    ruleaz de mai mult timp i se poate prioritiza care proces primete acces la resurse i care

    proces ateapt sau este nchis.

    Exist dou tipuri de algoritmi de evitare a unui Deadlock: Wait/Die i Wound/Wait. Dac

    V ar fi procesul vechi i T cel tnr, sistemul s-ar comporta astfel:

    Wait/Die Wound/Wait

    V are nevoie de o resurs de la N V ateapt ( wait ) N - moare

    N are nevoie de o resurs de la V N moare ( die ) N ateapt

  • 15. Synchronisation bei replizierten Daten

    Exist cazuri n care o informaie este repetat n SGBDD.

    O tranzacie de citire necesit doar o copie, ns atunci cnd schimbm ceva, trebuie

    actualizate toate copiile.

    De aici rezult un timp ndelungat de execuie.

    Exist dou tipuri de replicare: activ i pasiv.

    Replicarea activ = procesm aceeai tranzacie la fiecare copie, iar

    cea pasiv presupune c fiecare tranzacie este executat doar pe o singur copie, dup

    care informaia este trasferat celorlalte replici.

    Dac n cazul replicrii pasive se alege o copie central pentru a fi procesat de toate

    tranzaciile, vorbim de o schem primary-backup sau master-slave.

    n cazul opus, cnd orice copie poate procesa cererile, atunci schema este multi-

    primary sau multi-master.

    De obicei ntr-o BDD se folosete relaia de tip master-slave.

    n cazul n care se folosete relaia de multi-master, exist conflicte atunci cnd mai

    multe copii sunt schimbate aproximativ simultan, iar acestea sunt tratate prin dou

    moduri.

    Un sistem ce dorete s previn astfel de conflicturi nu execut commit-uri pn la

    capt i ar renuna la una dintre tranzacii. Un astfel de sistem ar atepta pn la

    resincronizare pentru a actualiza datele i ar alege copia cu timestamp-ul cel mai nou.

  • 16. Phasen des Data Warehouse

    1. Monitorizarea: Aceasta faza presupune tinerea sub observatie a surselor, descoperirea

    schimbarilor de date, care sunt relevante pentru Data Warehouse

    2. Extragerea: Se extrag date din surse diferite. Aceasta selectie de surse de date depinde

    de relevanta acestor date pentru evaluarea planificata, precum si de calitatea datelor.

    3. Transformarea: Este faza in care se integreaza datele, pentru a forma un stoc unitar de

    date, pentru Data Warehouse.

    4. Incarcarea: Exista doua faze de incarcare: initializarea, si actualizarea datelor. Cea

    dintai vizeaza toate datele din Data Warehouse iar actualizarea priveste numai acele

    date din Data Warehouse care au fost schimbate.

    5. Analizarea: Aceasta faza poate fi impartita in Data Access, OLAP si Data Mining

    Un depozit de date furnizeaz o surs integrat i centralizat de date, aparte fa de sistemul

    tranzacional, care conine datele eseniale despre activitatea companiei din multitudinea de

    surse de date existente. Rapoartele obinute pe baza acestor date sunt utilizate ca un

    instrument de analiz strategic i competitiv. Analizele rapide i corecte pot influena deciziile

    privind evoluia organizaiei pe termen mediu i lung.

    un depozit de date este o colecie de date orientate pe subiecte, integrate, istorice i nevolatile

    destinat sprijinirii procesului de luare a deciziilor manageriale William Inmon

    Caracteristici:

    Depozitul de date asigura accsul la datele organizatiei. Acces: imediat, la cerere,

    performant.

    Datele dintr-un depozit trebuie sa fie consistente. Consistenta: atunci cnd dou

    persoane solicit acelai set de informaii s primeasc aceleai date, chiar dac ele au

    fost cerute la momente de timp diferite

    Datele ntr-un depozit de date pot fi separate i combinate pentru a oferi un acces ct

    mai rapid i un timp de rspuns ct mai mic sistemului

    Depozitele de date nu reprezint doar datele, ci i un set de utilitare pentru a interoga,

    analiza, prezenta informaiile

    Datele din depozite sunt utilizate direct n analize, fr alte prelucrri suplimentare.

    Datele nu sunt doar acumulate la un loc i pstrate ci sunt asamblate dintr-o varietate

    de surse, sunt corectate de erori, li se asigur calitatea necesar i abia apoi devin

    utilizabile

    Calitatea datelor din depozitele de date este un factor determinant pentru procesul de

    reculegere a datelor.

  • 17. SQL

  • 18. Maven

    Produs Apache

    Instrument de gestiune a unui proiect software

    Prin gestiune se intelege construirea, raportarea si documentarea proiectului bazata pe

    conceptul de POM (Project Object Management)

    POM unitate fundamentala de lucru in Maven, fisier XML contine informatii

    despre proiect + detalii de configurare.

    Unul dintre cele mai cunoscute builder-e. Capabilitati:

    o Procesare, compilare, impachetare, testare, distributie

    o Ruleaza/ genereaza rapoarte

    o Faciliteaza comunicarea intre membrii unei echipe de lucru

    Un fiier XML descrie proiectul care urmeaz s fie build-uit, dependenele acestuia

    sau alte module i componente de care depinde, ordinea n care se execut build-ul,

    directoarele i plug-in-urile necesare.

    Maven descarc dinamic bibliotecile Java i plug-in-uri necesare, din unul sau mai

    multe repository-uri.

  • 19. Jboss

    JBoss Enterprise Application Platform - o platforma de baza pentru aplicatiile Java.

    face deosebit de facila dezvoltarea, implementarea si administrarea aplicatiilor Java.

    Contine tehnologii de varf open source pentru crearea si gazduirea de aplicatii Java si

    servicii in Service Oriented Architecture.

    face enterprise Java simpla, deschisa si accesibila.

    realizeaza un echilibru intre inovatie si stabilitate. JBoss EAP imbunatateste

    productivitatea dezvoltatorilor, elimina complexitatea dezvoltarii in Java si simplifica

    dezvoltarea aplicatiilor critice.

    Application Platform contine JBoss Application Server, serverul de aplicatii Java si servicii

    web si integreaza: Jboss Hibernate si JBoss Seam.

    Beneficii

    Foloseste standarde open

    Imbunatateste productivitatea utilizatorului

    Inovatie cu stabilitate

    Performanta de nivel enterprise

    JBoss Aplication Server: cel mai folosit server de aplicatii de pe piata.

    O platforma Java certificata pentru dezvoltarea si implementarea de aplicatii

    enterprise.

    Suporta API-urile traditionale cat si Java EE API si contine performanta si

    scalabilitate imbunatatita.

    Contine suport extins pentru facilitate Java EE 5 cum ar fi: EJB, Java Persistence API,

    Servlet, JSP JSP/EL, JSTL, JSF, Java mail, JAF, SAAJ, JTA.

    Sisteme de operare suportate.

    JBoss Rules este 100% Java => interopereaza cu majoritatea sistemelor de operare

    capabile sa ruleze Java Virtual Machine (JVM):

    o Windows, UNIX, Red Hat Enterprise Linux, alte distributii Linux.

    Baze de date suportate.

    JBoss EAP lucreaza cu orice baza de date conforma JDBC:

    o IBM DB2, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, Sybase.

  • 20. EJB + Hibernate

    Hibernate

    Lucrul cu software orientat obiect si baze de date relationale poate fi time-consuming si poate

    cauza diverse erori datorita diferentelor dintre reprezentarea datele in baza de date si

    modelarea lor in obiecte.

    - Este un framework free si open-source pentru limbajul Java, util pentru maparea

    modelului orientat pe obiecte peste bazele de date relationale.

    - ofera o solutie rapida, de inalta performanta, independenta de tipul bazei de date

    folosite pentru modelarea obiectelor unei baze relationale.

    - principala caracteristica: maparea intre clasele Java si tabelele bazelor de date precum

    si intre tipurile de date Java si SQL

    - pune la dispozitie posibilitatea redactarii de query-uri si data-retrieval

    - permite concentrarea asupra obiectelor si particularitatilor (features) aplicatiei, fara a fi

    preocupat de modul in care sunt salvate/ memorate si cum pot fi gasite mai tarziu

    - de ce Hibernate:

    o cost effective

    o se invata f. usor in comparatie cu EJB

    o nu mai este nevoie de JDBC API pentru prelucrarea setului de rezultate

    o migrarea unei aplicatii Java care foloseste Hibernate pentru lucrul cu baze

    relationale la un alt timp de baza(eg. Oracle Postgresql), presupune putine

    schimbari in fisierul de configurare pentru lucrul cu Hibernate.

    - avantaje: aplicatie independenta de BD, este evitat complet JDBC API, generare de

    chei automata, dezvoltare aplicatii in timp scurt.

    - suporta diferite Baze de Date: DB2, MySQL, PostgreSQL, Oracle, SAP DB si altele

    - arhitectura: 3 componente majore Connection Management, Transaction

    Management, Object Relational Mapping (ORM)

    - furnizeaza 3 facilitari de query:

    o Hibernate Query Language

    o Hibernate Criteria Query API

    o Hibernate Native

    - implementare:

    o configurare Hibernate,

    o setare referinte intre BD si clasele Java,

    o build: fisiere xml si java,

    o mapare Obiecte la tabelele din DB,

    o configurare/ setare tranzactie.

  • EJB = Enterprise Java Beans

    Platforma Java EE are o serie de interfete de programare (API) specifice: RMI, JDBC, JNDI,

    Servlets si JSP, JMS (Java Messaging Service), EJB.

    EJB

    - defineste un model bazat pe componente reutilizabile pentru partea de server (business

    logic) a aplicatiilor,

    - implementand automat o serie de servicii si

    - asigurand portabilitatea intre diverse servere de aplicatii.

    Exista EJB sesiune, EJB bazate pe mesaje si entitati de persistenta.

    Arhitectura EJB

    - permite realizarea unor aplicaii distribuite prin combinarea de componente dezvoltate

    independent, de diferii programatori.

    - Componentele se dezvolt o singur dat i pot fi utilizate (instalate) de cte ori e

    necesar.

    n cadrul oferit de EJB se deosebesc 7 roluri pe parcursul ciclului de via al unei aplicaii:

    1. Furnizorul de EJB.

    2. Asamblorul de aplicaii

    3. Instalatorul (Deployer)

    4. Furnizorul serverului EJB

    5. Furnizorul containerului

    6. Furnizorul de persisten

    7. Administratorul de sistem

    Deadlocks in SGBDDIdentificarea centralizat a Deadlock-urilorEvitarea Deadlock-urilor