650 likes | 916 Views
Introducere in BAZE de DATE Concepte i ntroduc tive. Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA. Argument.
E N D
Introducere in BAZE de DATEConcepte introductive Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA
Argument • Implementarea diverselor sisteme ICT necesita BD ca parte componenta specifica, BD – solutia optima pentrustocareasimanipulatreainformatiei PERSISTENTE. • Ca dezvoltator de sistem (arhitect) sunt necesare o serie de cunostinte • Interogarea/ actualizarea BD – SQL si algebra relationala necesare extragerii datelor din BD existente • Programarea aplicatiilor cu BD – limbaje necesare accesului la BD in mod programatic cu scopul procesarii tranzactiilor (modificariidatelor) sau generarii de rapoarte • Proiectarea BD – conceperea unei noi aplicatii necesita proiectarea celei mai potrivite BD • Noitehnologii de organizare/acces la date – structuri XML, frameworkuriobiectuale de acces la date (Hibernate Fw, Entity Fw), baze de date nonrelationaleutilizatemasiv de gigantiiactualiaidomeniului ( Google, Yahoo) -Mongo DB…..
..Argument • Date electronicecresc exponential – costulstocariilorscade drastic • Seturile de date cresc in diversitatesivolum: bibliotecidigitale, video interactiv…structuri cu bilioane de inregistrari • Integreazaconcepte diverse din stiinta calculatoarelor : limbaje, algoritmi, logica… • Datelesuntpretioase…. – maipretioasedecat SW, necesitamanagement eficient(stocare, interogare, protectie) • Datelenecesitastructuralitatepentru a fi utile • Domeniulbazelor de date– contributiiremarcabile in domeniulstiinteicalculatoarelor … • O serie de tehnologiipentru SGBD comerciale , cu largaraspandire (... MySQL, Oracle, Postgresq, MS-SQL, Dbforge)
..Aplicabilitate • Sisteme de gestiune • Sistemebancaresi de trading ( London stock exchange -1 mil trades/day) • Sisteme de rezervari online • Comert electronic, GIS, BD stiintifice • Biblioteci /arhivedigitale - archive.org(150 mil pages) , open.library.org (23 mil books) Tipuri de BD • De uz general • BD multimedia, BD GIS (Geographic Information Systems) • Sisteme Data Warehouses & Online Analytical Processing (OLAP) • BD timp real, active – inteligente…… Importanta • Nu existăaplicaţie realăfără BD ( Google,Amazon, E-bay, …Web) • Pe piaţa software există unnumăr mare de SGBD-uri, pentru toate tipurile de sisteme de calcul, sisteme de operareşi tehnologii de acces la date • SGBD-urileaparîn topuripelocul 3, din listacelor mai vânduteproduse
Organizatoric • Curs – Miercuri 12-14, amf.40 • Activitati practice – regulament ftp • Resursebibliografice (bibliotecaUTCN/Departament, Internet, ftp://ftp.utcluj.ro/pub/users/civan • Evaluare • Laborator – 20% =4 temeobligatorii, realizate individual • Proiect – 30% - individual, din lista de sugestii/ideiipropriiacceptate • Examen final – 50% • Optional – temasuplimentara/ REFERAT • toatecomponentele (L+P si E) suntobligatorii, nota de trecerepentrufiecare, in caz de nepromovare se va reface componenta • nu se poate intra in examinareafinalafara “ filtreleanterioare”
Obiective • Model relational /algebra relationala • Limbaj specific domeniului BD- SQL • Interogari SQL simple/complexe a datelordintr-o BD • Elemente de proiectarea datelorrelationale (diagrame EER, UML) • Intelegereamecanismelor/ instrumentelornecesareconstruiriiaplicatiilor cu baze de date • Generarea de rapoarteasupradatelorpersistate • Introducere in concepteavansatedin domeniulbazelor de date – securitate, tranzactii, structuri XML siobiectuale • Familiarizarea cu tooluriutilizate in domeniulbazelor de date (My SQKL Workbench, Microsoft SQL Server)
Asteptari • Studiu individual ( bibliografie, Internet.. ) • Dezvoltarea/implementareaunuiproiect • alegerea/implementarea unui domeniu de interes • Analiza/proiectareauneibaze de date EER/UML • Cod SQL pentruinterogare/actualizare BD • Dezvoltareauneiinterfeteutilizator (Java, JavaScript/JSP, HTML, PhP) de acces la date
Referintebibliografice • Note de curs/lab/materiale (RO) la adresa web - ftp://ftp.utcluj.ro//pub/users/civan/BD TEXTBOOK la marile universitati (MIT, Berkeley, UCL...) • Thomas Connoly, Database systems a practical approach to design, implementation and management, Addison Wesley, ed 4 … ed5 (2009) – txt book la diverse mariuniversitati SUA/Anglia – ftp, complexa, viziuneinginereasca (modelare UML, abordaredomenii de aplicabilitate BD) • 3. R.Elmasri and S. Navathe, Fundementals of Database Systems, Benjamin/Cummings Pub. Company, 2010 …… extrem de multelucrari in domeniu, trateazaconcepteleteoretice cat siaplicabilitateapracticagenerata de SGBD utilizat. Multematerialepe site-urileproducatorilor de SGBD-uri. INTERNETUL – resursaimensa de referinte- vezi selectie IBD_plan de lucru
CURSURI online (2) J Widom,L. Ullman, Introduction to database systems concepts, 2011 ( Internet) Stanford University ……autotestare https://class.stanford.edu/courses/DB/2014/SelfPaced/about ....nu reprezintacertificarepe un anumoit SGBD tip Microsoft, Oracle..!!!!
Terminologie • Atomicitate • Atribut • 1NF/2NF/3NF/4NF • Chei • Concurenta • Cardinalitate • Consistenta • DDL/DML • Proceduristocate • Tranzactii • Data Mining • Data Warehouse • Diagrame ER • Index • Izolare • Join • Metadate • Query • Replicare • Vederi (View)
Continut curs • Introducere in BD : Baze de date , SGBD , utilizatori de BD, componenteSGBD,conceptespecificesiarhitecturi • Limbajerelationale (SQL) si algebra relationala-tool pentruverificareacorectitudiniiformularilor de acces la date (interogari) • Constrangeriasupradatelorrelationalesiexprimarealor • Modelareadatelor– ModelulRelational,EER /UML • Elemente de proiectare a BD relationale- normalizarea • Nivelulfizic. Stocaresiindexareadatelor. • Elemente de administraresi de securitate a datelor • Procesareatranzactiilorsicontrolulconcurentei • Aplicatii cu BD ( interfete de programare) • Tendinte/evolutie SGBD… BD-OO, noSQL…
Continut curs I • Utilizari ale sistemelor de baze de date • Caracteristici ale sistemelorbazatepefisiere. Problematica • Definitii : BD - baza de date, SGBD – Sistem de gestiune a bazelor de date • Istoriculdezvoltariisistemelor cu baze de date • Avantajesidezavantaje ale utilizarii SGBD • Functiileunui SGBD • Componentemajore ale unui SGBD • Arhitecturi de sisteme cu baze de date
Istoric • 1950-1960: • Procesare de date cu stocarepebenzimagnetice – accessecvential, aparmodeleprerelationaleierarhicsiretea • 1970: • acces direct la date • Largutilizatemodeleleierarhicsiretea • Ted Codddefinestemodelul de date relational siconceptul de abstractizare a datelor, regasit in sistemele de cercetare • IBM Research - System R prototype • UC Berkeley - Ingres prototype • SGBD initial evoluate din sisteme de procesarebazatepefisiere, vizualizareadatelorapropiatamoduluilor de stocare (modeleleierarhicsiretea) • … Wikipedia Modelul de date relational
1980: • Cercetarilebazatepeprototipurirelationale au evoluat in sistemecomerciale => SQL standard industrial • Sisteme BD Paralelesidistribuite,sisteme cu BD OR si OO • 1990: • Arhitecturi client server a sistemelor cu BD • Aplicatiispecifice : sistemelesuportdecizionalsipentru data – mining, data warehouses (terabyte ) • Standardul SQl99, Comert electronic (~2000), • >2000: • Arhitecturipetreiniveluri a sistemelor cu BD • StandardeXML – Xquery, BD OO si in WWW largraspandite • Noicapabilitatipentrunoiclase de aplicatii (multimedia, timp real). BigTable, Hadoop • SGBD comercialebazatepemodelul relational cunosc o largaraspandire : Microsoft SQL Server, Oracle , Sybase Adaptive Server, DB2 • > industrie de >10 billion $ • evolueaza SGBD open source performantesi din ce in cemailargutilizate- MySQL, PostgreSQL…. • SGBD/BD in Cloud, abordari noSQL
BD- definitie • Baza de date • O colectielarga , integrata, de date corelate logic sistocatepentru a mentine info si a oferisuportpentruanaliza (consultare/interogare). • Bazele de date permit • Modelarealumiireale : entitatisirelatii • Date - fapteinregistrabile din lumearealaceposedasemnificatieintrinseca • domeniul BD acoperălargisursededate, cu multe concepte noi. • Căutare Web • Data mining • Baze de Date stiinţificeşimedicale
SGBD - definitie • SGBD – sistem software - colectie de programedestinatcrearii, stocariisimanagementuluibazelor de date • Ofera un mediuconvenabilsieficient de utilizare • Gestioneaza diverse aspecte de proiectare/implementare a sistemelor cu BD • PermitecreareaBD , specificareaschemeisale • Oferasuportpentruinterogareasimodificareaeficienta a datelor • Mentinesecuritateadatelor la accidentesauaccesneautorizat • Controleazaaccesulconcurentla date ROL : reducerea dependenţei aplicaţiilor în raport cu structura datelor
SGBD - functionalitati Definirea bazei de date - tipuri de date, structuri, constrangeri Construirea/incarcarea continutului initial de date Manipularea bazei de date regasire – interogare, generare de rapoarte modificare – inserare/stergere si actualizare continut accesarea BD - aplicatii desktop/web Partajarea continutului – utilizatori concurenti, simultan Mentenanta, protectie/securitate a datelor, prezentare si vizualizare date.....
Ceeste un model de date? • Model de date – colectie de conceptepentrudescriereadatelor : structuri, relatii, semanticasiconstrangeri de consistenta • Ofera o reprezentareabstracta, ascundedetaliile de niveljos ( specificeimplementarii) • Descriestructura BD: tipuri de date, relatii, constrangeri • Ofera o vizualizareconceptualaa datelor
Modele de date Conceptuale – nivel inalt, semantic – ofera concepte apropiate de modul in care utilizatorii percep datele Fizice – nivel jos, intern – ofera concepte ce descru detaliile modului in care datele sunt stocate in sistem De Implementare – reprezentationale – ofera concepte interemdiare, folosite der SGBD comerciale (de ex. Relational)
Modele de date • Modelul relational Colectie de tabele ( relatii) cecontininregistrari • Modelul ER ( entitateasociere) Reprezintaobiectele de baza ( entitati) sirelatiile/asocieriledintreacestea, largautilizare in proiectareaconceptuala a bazelor de date • Modelulbazatpeobiecte Introduce identitateobiectelor, incapsularesimetode de acces • Model de date semistructurat nu asigura o separareclaraintre date si schema de date (date autodescriptive) Articole de date de acelasi tip pot aveaatributediferite!?! XML – largautilizare in reprezentareadatelorsemistructurate
Sistem de fisiere –limitari (1) • Redundantadatelorsiinconsistenta • Formate multiple de fisiere, duplicareainformatiei in fisiere multiple , stergerisiactualizaridificile ale datelor • Dificultate in accesul la date • Pentruoricenou task de acces la date = >un nou program • Cautareadificila a datelor • Pentruoriceinterogare cod distinct • Nu asiguraatomicitateaactualizarilor • Caderi in sistemdeterminainconsistente in BD, actualizaripartiale, intrerupte
Sistem de fisiere – limitari (2) • Nu oferaaccesconcurentmaimultorutilizatori • Nu existacontrolulconcurentei, datelenecesitaprotectiedatoritautlizatorilormultiplii • Probleme de securitate • Dificil de oferitaccesdiferentiatdoar la anumitecategorii de date / utilizator • anumite date pot fi pierdute, operatiineterminatecomplet • Nu exista API/GUI accesevoluat la datelepersistate • Nu permitemodelaricomplexe • S fisiere – unidimensional vs SBD - multidimensional
Argumente PRO • Controlulredundanteidatelor • Restrictionareaaccesuluineautorizat • Structuri de stocareadecvate • Procesareinterogarieficienta • Suportpentru Backup & Recovery • Interfetemultiutilizator • Reprezentarea de relatiicomplexeintre date • Specificarea de constrangeri de integritate • permiteinterferentesiactiunibazatpeseturi de reguli • Suportpentrustandardizare • Reducereatimpului de dezvoltare a aplicatiilor • Disponibilitateainformatiei • CONTRA • Investitieinitialaridicatain hardware, software , training • Generalitateaoferita de SGBD pentrudefinireasiprocesareadatelorestepestenivelulcerintelor • Complexitateindusa de securizare, controlulconcurentei, recuperare la caderi
Pro - contra • CandSEutilizeaza BD • Este necesararezolvareapersistenteidatelor • Volume mari de date persistate • Date structurate • Accesconcurentsi/saudistribuit pt mai multi useri • Integritatea datelor • Securizarea accesului • CandNU SEutilizeaza BD • Investitie mare - costuri • Aplicatia e simpla ,definitasinemodificabila • Nu e necesaraccesmultiutilizator • Solutiealternativa – colectie de fisieregestionate de programe de acces
Cum… • sa …. gestionamvolume maride date persistente, omogenesistructurate , utilizate in mod partajat de catremai multi utilizatori/procesesipentru care trebuiementinutaintegritateaiaraccesultrebuiesecurizat in mod controlat • SOLUTIE – dezvoltarea de aplicatii cu baze de date – colectii de date siprogramece permit manipulareacorectasieficienta a datelormasive • O astfel de aplicatieesteimplementataeficientfolosind un sistem de gestiune a bazei de date siinterfete de acces la date dintr-un limbaj de programare de nivelinalt.
Interfete de acces la BD • User friendly – bazate pe meniuri, forme, grafice • Stand-alone – interfete SQL interactive • Interfete de program – DML incapsulat in limbaj de programare • Browser Web – interfata uzuala actual • Voce -.... • Interfete parametrice - ... Bancar • Specifice DBAdmin – creare conturi, administrare, parametrizare sistem, modificari scheme si cai de acces la date. • INTERFETE de PROGRAM - SQL embedded, SQLJ, JDBC.ODBC, PL/SQL...
Ceeste o schema de BD ? • Schema unei BD – descriereauneicolectiiparticulare de date folosind un anumitmodel de date • Reflectaanumiteaspecte: numele , tipularticolelor de date, anumiteconstrangeri • Este specificata la definireauneinoibaze de date, se modificarelativrar • Meta-date = date despre date , saucatalogulbazei de date • Diagramaschemei : conventie de reprezentare a schemei • Schema bazei de date utilizează un limbaj de definire a datelor (DDL – Data Definition Language). • Manipulareadatelorînbaza de date (inserare, ştergere, actualizare, saurecuperare de valori de date) se poate face cu ajutorullimbajului de manipularedatelor (DML – Data Manipulation Language
Schema fizică Schema fizica- specificădetalii suplimentare legate de stocarea datelor ( tip, dimensiune , structura de fisiere, mod de organizarea acestora) • Menţionează modul în care tabelele (la modelul relaţional) descrise prin schema conceptualăsuntstocatepe dispozitive suport secundar ( hard disk…) • Descrie tipul fişierelor pentrustocare pe suport secundarşicrearea unor structuriauxiliare dedatenumiteindecşiîn scopul regăsirii mai rapide a datelor
Schema conceptuală • Schemălogică (conceptuala) , descriedatele stocate în BDîn termenii (conceptelesiabstractiunile) specifice modelului dedateal SGBD-uluiutilizat. Ex. Pentru un SGBDrelaţional, schema conceptualădescrietoate tabelele(relaţiile)stocate în BDsimodul de relationare • Limbajul folosit pentrudefinireadatelor conform schemeiconceptualese numeşte Limbaj de Descriere a Datelor (LDD)... CREATE, ALTER.....
User User User Vedere 1 Vedere 2 Vedere n ... Designer BD Nivel Conceptual Nivel fizic Administrator BD Niveluri de abstractizare • Nivelfizic (intern) : descriemodul in care suntstocatedatele(fisieresiindecsi) • Nivel logic (conceptual) : descriedatelestocate in BD sirelatiiledintreacestea. • Nivelulvederi (extern): descriemodul in care utilizatorii / programelevaddatele • ofera o modalitateprin care pot fi ascunse, detaliilereferitoare la tipuldatelor, informatiilespecifice de securitate.. • Mai multevederi, • o SINGURA schema conceptualasifizica • DUALITATE concepte din aplicatie- conceptespecifice BD • Schema ANSI -SPARC
Independentadatelor • Independenta - abilitatea de a modifica un nivel in arhitectura BD, fara a afectacelelalteniveluri ale schemei BD • Independentalogica – capacitatea de a modifica schema conceptualafara a afectavedereaexterna (programele de aplicatie, necesareaccesului la date) • Vederile (view în modelul relaţional/tabelă virtuală/schema externă) asigură posibilitatea modificării structurii datelor (schema conceptuală), acest lucru fiind ascuns aplicaţiilor ce acceseaza datele • Independentafizica – abilitatea de a modificaschema internafara a modificavedereaconceptuala • Schema conceptuală asigură posibilitatea modificării aranjării datelor pe suport secundar sau a indecşilor, acest lucru fiind de asemenea ascuns aplicaţiilor • Celmai important avantaj al utilizariiunui SGBD : aplicaţiile sunt IZOLATE faţă de modificările la nivel conceptual sau la nivel fizic prin cele trei nivele de abstractizare
Abordare BD-SGBD SEPARARE program-date = INDEPENDENTA DATELOR CONTROLUL REDUNDANTEI – SGBD cotroleaza redundanta si permite evitarea datelor inconsistente ( .. daca doar una din copii este actualizata....) ABSTRACTIZAREA DATELOR – utilizarea unui model de date pentru a ascunde detaliile de stocare si a oferi utilizatorilor o vedere conceptuala asupra Bazei de date SUPORT pentru VEDERI MULTIPLE – fiecare user poate vedea in mod diferit Baza de date, doar cu datele proprii de interes PARTAJAREA datelor si Tranzactii MULTI-USER - useri concurenti, subsistem de recovery la caderi, OLTP AUTODESCRIPTIV - catalogul SGBD reține tipurile de date, structurile, constrangerile=METADATE ... SGBD poate lucra cu diferite aplicatii de acces la BD
Funcţiile SGBD • Transformarea datelor • Datele introduse de utilizator nu au întotdeauna structura identică cu cea definită în baza de date (conversii automate de tip de date la tipulsuportat de SGBD) • Gestiunea aplicaţiilor (crearea de aplicatii de acces la date) • Limbaj de descriere a datelor ( LDD) – structura de date • Limbaj de manipulare a datelor (LMD) – accesul/utilizarea datelor
Funcţiile SGBD (2) • Importul şi exportul datelor • Conversia datelor pentru prelucrarea cu alt SGBD sau cu aplicaţii terţe (de ex. Excel, CSV, MS-SQL to MySQL…. Etc.) • Controlul securităţii datelor • Care sunt utilizatorii ce au acces la date • La ce date are acces fiecare utilizator • Ce operaţii se pot efectua de fiecare utilizator cu datele la care are acces
Funcţiile SGBD (3) • Asigurarea integrităţii datelor • Restricţii de integritate, de ex. SGBD-ul poate asigura că vârsta unei persoane la introducerea în BD este cuprinsă între x si y(tip CHECK) • Controlul accesului concurent la date • Fiecare utilizator are impresia că lucrează de unul singur (serializarea operaţiilor de acces la date) • Gestiunea copiilor de siguranţă şi a recuperării datelor(pentrusituatii de cadere in sistem– exista solutii de tipbackup/restore de date )
DDL • Limbaj de definire a schemeibazei de date (DDL) - specificastructura de stocaresimetodele de accesutilizate • Compilatorul DDL genereaza un set de tabelestocate indictionarul de date • Un dictionar de date continemetadate(date despre date) • Schema BD ( si cheile primare) • Constrangeri de integritate( tip de date, domeniu de valori) • Constrangeri de domeniu • Integritatereferentiala (constrangeriaplicabilereferintelorintretabele) • Asertiuni ( declaratii de valori permise)asupra datelor • Autorizari de accesla date
DML • Limbajpentrua accesasimanipuladateleorganizate conform unuianumitmodel de date (cunoscut sub numele de limbaj query - de interogare a datelor) • Clase de limbaje DML : • Nivelinalt (nonprocedural - SQL) • Declarativ – suntspecificatedateleceruteinsafara a specificamodul de acces • Permit Operatii cu BD complexe • Niveljos (procedural) • Utilizatorulspecificace date suntcerutesi cum pot fi accesate • Integrat in limbaje de programare de uz general(ex. JDBC Java database acces connectivity – in Java)
Actori in sisteme cu BD Utilizatoridiferentiatiprinmodul in care interactioneaza cu sistemul • Programatorii de aplicatii– interactiuni cu sistemulprinapeluri DML ( SQL, SQL incapsulat in Java…JSP,ASP..) • Utilizatorisofisticati– formuleazainterogariperformanteintr-un limbajspecializat – SQL • Administrator de baza de date – gestioneazaaspecte legate de mentinereabazei de date (schema, securizareacces, modificari de nivelfizic – indexare…) • Utilizatori de sistem – invocaprogramele de aplicatii • Ex : acces la BD din Web , sisteme ATM
Administratori de BD • Coordoneazaactivitatile la nivelulintreguluisistem software cu BD, cunostintespecificedespresistemulinformatic al intreprinderii, resurse, cerinte. • Responsabilitati: • Definireaschemeiconceptualesifizice a BD • Specificareaconstrangerilor de integritate • Definireastructurii de stocaresi a metodelor de acces la date • Modificari in schema siorganizareafizica a datelor • Asigurareaaccesuluisecurizatpentrudiversiutilizatoriai BD (politici de securitatesiautorizare) • Monitorizareperformante, responsabilitati in schimbareadiverselorcerintepemasuracebazele de date evolueaza – (“database tuning”)
Proiectarea BD • Identificareaentitatilorsi a relatiiloracestorala nivel de aplicatiealaturi de informatiadespreacesteentitati • constrangerile de integritatesiregulile de business necesar a fi implementate: diferiteaplicatii au cerinte/perspective diferiteasupradatelor Procesul de proiectare a structuriigenerale a BD: • Proiectarelogica – Deciziicereferaschema BD . • Proiectareapresupune o colectieoptima de scheme de relatii • Decizii de business – ceatribute se impun a fi inregistrate in BD? • Deciziispecificedomeniului– ce scheme de relatiisuntnecesaresi cum vor fi distribuiteatributele la niveluldiverselor scheme de relatii • Proiectarefizica – Deciziecevizeazaorganizareafizica a BD
Proiectarea BD- Redundanta Procesul de proiectare presupune determinarea tabelelor, schemelor acestora si a relatiilor dintre ele. SCOPUL proiectarii BD – evitarea redundantei REDUNDANTA este prezenta daca informatia este stocata de mai multe ori Redundanta conduce la anomalii de actualizar/ stergere a datelor si la date inconsistente SCOP proiectarea corecta si NORMALIZAREA datelor = eliminarea redundantei REDUNDANTA Controlata – daca este permisa duplicarea informatiei si aceasta este CONTROLATA de catre SGBD
Controlulconcurentei • Executiaconcurenta a programelor– a accesuluila date esteesentialapentruperformantaSGBD • (accese la disc frecvente, relativlente =>estenecesaramentinereaocupata a procesorului, prinprocesareaconcurenta a maimultorprogrameutilizator…) • Intretesereaincorecta a actiunilordiverselorprogramepoate conduce la inconsistentein date => SGBD asiguraprinmanagerul de control al concurentei , controlulinteractiunilorintretranzactiileconcurentepentru a asiguraconsistentabazei de date ( CONTINUT CORECT)
Managementultranzactiilor • Tranzactie - colectie de operatiiceefectueaza o singurafunctielogicaintr-o aplicatie cu BD • o secventaatomica de actiuniasuprauneibaze de date (citiri/scrieri) • FiecaretranzactieexecutataCOMPLETlasa BD intr-o stare consistenta,dacaaceasta a fostintr-o stare consistenta la inceputultranzactiei • Managerul tranzactiilor– componentaceasiguraca BD saramanaintr-o stare consistenta, corectaindiferent de caderi in sistem (tensiune, SO sau de nefinalizareaexecutieiuneitranzactii) • Proprietatileuneitranzactii : • Atomicitate ,Consistenta,Izolare,Durabilitate…
Recuperareadatelor • SGBD – asiguraatomicitatea (all or nothing),chiardacasistemul cade in mijloculuneitranzactii • Solutieabordata : se mentine o ISTORIE a actiunilor SGBD la executiaunui set de tranzactii (.log) • Inainteaoricareimodificariasupra BD se vasalva in mod corespunzator o intrare in fisierul .log (exista un protocol specializat, relativ complex…. ) • Dupa o cadere in sistem , efecteleunortranzactiipartiale pot fi anulate (folosindacestfisier .log)
Arhitectura unui SGBD “Ramakrishnan, Database systems”
Cum funcţionează? • SGBD-ul acceptă comenzi SQL generate de ovarietatedeinterfeţe utilizator • SGBD-ul produce planuri de evaluare a interogărilor, pe care le execută asupra datelor din BD, şi returnează răspunsuri • Un utilizator emite o interogare, aceastaeste analizată decatre SGBD şi este prezentatăunuioptimizator, care foloseşteinformaţiadespre felul în care sunt stocatedatelepentru a produce un plan de execuţieeficient • Unplandeexecuţieeste o reprezentaresub formă de arbore de operatii(cu adnotaţiice conţin informaţiidetaliate suplimentarelegate de metodelede acces la date, ordineaevaluariiexecutiei, ş.a.)
Codul ce implementează operatorii arborelui operatorstădeasupra stratului “File and Access Methods” • Nivelul “File and Access Methods” suportă o structurade pagini neordonate, sauindecşi, urmăreşte cum sunt aranjatepaginileîn fişier şi organizeazădateleîn interiorul uneipagini • Nivelul“buffer manager” este responsabil cu aducereapaginilor de pe discînmemoria internă • Nivelul “disk space manager” este cel mai de jos strat al unui SGBD şi se ocupă de administrarea spaţiuluipe suport extern, unde sunt stocate datele • Nivelurile“TransactionManager”, “LockManager” şi “Recovery Manager”asigurăaccesul concurent şi recuperarea datelor în caz de incidente Prin implementarea unor protocoale de blocare a accesului , prin planificarea cu atenţie a cererilor utilizatorilor şi prin păstrarea într-un jurnal a tuturor modificărilor asupra BD
Clase de arhitecturi • Arhitectura cu server de fisiere • Arhitectura client server two tier ( pe doua niveluri) • Arhitectura client server three tier ( treiniveluri) • Arhitecturi N tier • Arhitecturi P2P