Introducere:Istoric
Perioada anterioar anilor 60 (utilizarea Sistemelor
gestiune a fiierelor) de
2.
3.
Manipularea datelor este grea i complicat, fiind necesar expertiza n programare. Programatorul trebuie s cunoasc localizarea fizic a fiierelor,structura fizic a nregistrrilor, modul de acces la aceste fiiere. Orice modificare n structura nregistrrilor(adugarea unui cmp) implic rescrierea tuturor programelor care manipuleaz aceste fiiere.
Introducere:Scurt istoric
n perioada anilor 60 naterea primei generaii de SGBD
Separarea descrierii datelor de programele
Introducere:Istoric
Dou modele cheie : 1. Grupul CODASYL va publica primele sale
specificaii de limbaj pentru modelul de baz de date reea care mai este cunoscut i sub numele de Model de date Codasyl i este bazat pe ideile lui Bachman.
2. Modelul ierarhic utiliza IMS (Information
Introducere:Istoric
Perioada anilor 70 : a doua generaie de SGBD
Modelul Relaional (creat de Edgar Codd) Are la baza o viziune a realitii modelate bazate pe
tabele bidimensionale ntre care se stabilesc legturi logice Modelul Entitate-Asociere (Chen)
Introducere:Istoric
Anii 80-90
A treia generaie este dominat de Modelul Orientat
Organizarea datelor pe suporturi externe se face pe medii magnetice sau optice; Tipuri de organizare a datelor: 1.SECVENIAL nregistrrile sunt dispuse n fiier una dup alta fr nici o ordine prestabilit. Localizarea unei nregistrri se face prin parcurgerea tuturor nregistrrilor anterioare ei (secvenial). 2.Relativ nregistrrile sunt dispuse n fiier una dup alta i numerotate (de ctre sistem) de la 0 sau 1 la cte sunt (numr de realizare) Localizarea unei nregistrri se poate face secvenial sau direct prin numrul de realizare.
3. INDEXAT-SECVENIAL nregistrrile sunt dispuse n fiier n ordine strict cresctoare dup o cheie (face parte din nregistrare). Cheia poate fi unul sau mai multe cmpuri care identific n mod unic o nregistrare. Fiierului i este ataat o tabel de indeci care face legtura ntre valoarea cheii i adresa fizic a nregistrrii. Localizarea unei nregistrri se poate face secvenial dar i direct prin cheie: se compar cheia nregistrrii cutate cu indecii din tabela de index i se localizeaz direct partea fizic a fiierului n care se afl nregistrarea cutat; n partea fizic localizat se face o cutare secvenial a nregistrrii dorite.
Modul de acces la date= modul n care se determin locul ocupat de o nregistrare ntr-un fiier. Tipuri de moduri de acces la date: SECVENIAL = localizarea unei nregistrri se face prin parcurgerea tuturor nregistrrilor care o preced. DIRECT = localizarea unei nregistrri se face cu ajutorul unei chei definite de programator. DINAMIC = la o singur deschidere de fiier se pot localiza, alternativ i repetat, nregistrri n acces secvenial i direct.
O baz de date (BD) este un ansamblu de colectii de date, legate funcional ntre ele, memorate pe suporturi adresabile, ce pot fi accesate simultan de mai muli utilizatori, de o manier selectiv i n timp optim. Gestiunea bazelor de date este asigurat cu ajutorul un ansamblu de programe care constituie un sistem de gestiune a bazelor de date (SGBD). SGBDul este un instrument de asamblare, codificare, aranjare, protecie i regsire a datelor n BD.
10
Nivelurile de reprezentare a datelor Baza de date, ca imagine a unei anumite realiti, trebuie actualizat permanent. Acest lucru nu trebuie s afecteze programele de prelucrare. Pentru atingerea acestui obiectiv este necesar o abstractizare a datelor memorate n BD. n 1975, ANSI/ SPARC (American National Standards Institute/ Standards Planning And Requirements Committee) a propus o norm de reprezentare a datelor n condiiile folosirii SGBD- urilor pe trei niveluri ierarhice. Aceste 3 niveluri de reprezentare i percepie a unei BD sunt: Nivelul extern, Nivelul conceptual Nivelul intern
11
Grup utilizatori
1
Schema extern 1
Schema extern 2 Schema extern n
BD
Nivel extern
Nivel conceptual
Nivel fizic
Nivelul extern de descriere a BD se face de ctre Administratorul aplicaiei, care: definete schema extern definete regulile de coresponden cu schema conceptual Schema extern face referire la datele necesare unui utilizator sau unui grup de utilizatori. Ea este o sub-schem (o imagine) a schemei conceptuale.
La nivel conceptual, analiznd schemele externe i eliminnd redundanele rezult o nou viziune la nivelul ntreprinderii, care se numete schema conceptual. Nivelul conceptual se concretizeaz prin schema conceptual care este exprimat utiliznd conceptele de tabel (relaie), atribute i restricii de integritate Trecerea de la fizic la conceptual se face prin modelare O schem conceptual este complet dac poate furniza date pentru toate schemele externe, adic datele de care au nevoie utilizatorii (unele obinute prin calcul i/sau agregare).
Nivelul intern de descriere a BD se face de ctre Administratorul BD care: definete schema intern de organizare a datelor definete regulile de trecere de la schema conceptual la cea intern
Schema intern implementeaz schema conceptual folosind un SGBD. Se refera la modul de stocare fizic a datelor pe suporturi de date. Schema intern se obine prin descrierea bazelor de date folosind un limbaj de descriere date (LDD). Faptul c utilizatorul vede baza de date folosind o schem extern faciliteaz determinarea drepturilor de acces la baza de date
Schema Externa 1
Schema Externa 2
Nivel Extern
Valoare produs
Valoare TVA Valoare totala pe produs Valoare totala factura Valoare totala generala
Proces modelare
Normalizare
Nivel Conceptual
ProdusFacturat (NrFactura, CodProdus, Cantitate, Pret) Produs (CodProdus, DenumireProdus, UM) Schema conceptuala
Implementare ' Restricii de integritate la nivelul relatiei FACTURA RI1: NrFactura cheia primar ' Restricii de integritate la nivelul relatiei PRODUSFACTURAT RI2: NrFactura si CodProdus cheia primar ' Restricii de integritate la nivelul relatiei PRODUS RI3: CodProdus cheia primar ' Restricii de integritate la nivelul bazei de date RIR1: NrFactura din ProdusFacturat refer NrFactura din FACTURA RIR2: CodPrododus din ProdusFacturat refer CodProdus din PRODUS
Schema fizica
BD
Descrierea datelor Un SGBD trebuie s includ posibilitatea descrierii structurii obiectelor care formeaz baza de date. n cazul bazelor de date relaionale aceasta const n principal n posibilitatea crerii si modificrii structurii tabelelor si constrngerilor de integritate asociate acestora. Limbajul prin care se realizeaz aceste operaii se numeste Limbaj de Descriere a Datelor (LDD) si n cazul primelor sisteme de gestiune el era implementat sub forma unor module separate. n sistemele relaionale bazate pe SQL aceste operaii au fost incluse n limbaj sub forma comenzilor de tip CREATE (pentru creare) sau ALTER (modificare).
Aceste tabele sunt accesate de sistem pentru a regsi informaiile necesare execuiei cererilor dar pot fi accesate si de utilizatori pentru a obine informaii privind structura bazei de date.
Utilizarea datelor
Aceasta funcie include operaiile de lucru cu datele nregistrate intr-o baza de date. Exista patru categorii de operaii principale: Inserarea de noi date. Aceasta se concretizeaz prin adugarea de noi linii n tabelele care formeaz baza de date. Stergerea de linii din tabele. Actualizarea datelor, nsemnnd modificarea coninutului unor linii existente n tabele. Regasirea datelor dup anumite criterii de cutare
Pentru implementarea functiei de utilizare fiecare SGBD are un Limbaj de Manipulare a Datelor (LMD) care poate fi un modul separat sau inclus n limbajul sistemului cum este n cazul SQL.
Integritatea datelor
Majoritatea sistemelor de gestiune permit definirea unor reguli pe care datele stocate trebuie sa le verifice numite constrngeri de integritate. n cazul n care o operaie are ca rezultat violarea acestor restricii aceasta este automat refuzata si nu are efect n baza de date. n felul acesta este asigurata o mai mare sigurana n ceea ce privete corectitudinea datelor.
Exemplu
Sa consideram o baz de date coninnd informaii despre: faculti, studenii nscrii si notele obinute de acetia. Posibile situaii de nclcare a integritii datelor : Introducerea accidental de valori incorecte n baza de date. Exemplu: restricie privind intervalul de valori admisibil pentru note: 0- 10. Lsarea necompletata a unor informaii necesare. Exemplu: numele studentului. Alocarea accidental a aceluiai numr matricol pentru mai muli studeni (restricie de unicitate a valorilor). Introducerea accidental a unui student cu un cod incorect al facultii la care acesta este nscris (integritate referenial). Definirea de constrngeri de integritate nu previne nsa total erorile accidentale de operare: de exemplu introducerea din greeal a unei note de 4 n loc de 5 nu va fi semnalat, ambele valori fiind n intervalul admisibil (lips de fiabilitate).
Confidenialitatea datelor
Accesul la date este permis doar utilizatorilor nregistrai si doar n msura drepturilor de acces alocate. Un utilizator este identificat printr-un nume utilizator si o parola. Fiecrui utilizator i se permite accesul doar la o poriune a bazei de date si doar pentru a efectua anumite tipuri de operaii. Toate aceste informaii relative la ce, cum si de unde poate accesa datele un utilizator reprezint drepturile de acces asociate acestuia Drepturile de acces sunt stocate n cataloagele sistemului. Prin mecanismul de drepturi de acces este asigurata funcia de confidenialitate a datelor. Exemplu: n cazul sistemului informatic al unei organizaii, acces selectiv la salariile angajailor, detalii ale proceselor tehnologice, datele contabile etc.
Accesul concurent la date Un SGBD trebuie s ofere faciliti de blocare a unor poriuni ale bazei de date. Aceasta nseamn ca o execuie a unui program poate cpta un acces exclusiv la o poriune a bazei de date, denumit si articol, moment n care orice alta execuie trebuie sa atepte deblocarea acesteia pentru a continua.
Sigurana n funcionare
Vizeaz acele elemente care exclud sau minimizeaz posibilitatea de pierdere a datelor datorit incidentelor software sau hardware. Este dificil efectuarea unei copii de siguran consistente ale bazei de date n condiiile n care aplicaia ruleaz non-stop i operarea nu poate fi oprit pentru efectuarea salvrii. La distrugerea bazei de date este necesar efectuarea operaiei de restaurare din copie. Multe tipuri de SGBD au posibilitatea de a nregistra toate schimbrile aprute n baza de date sub forma unor fiiere jurnal. n acest fel operaia de restaurare dup incident se face restaurnd ultima copie de sigurana si reefectund toate prelucrrile consistente nregistrate n jurnal dup momentul n care a fost efectuata copia.
Modelul relaional este un mod de organizare i de structurare a datelor sub form de tabele bidimensionale numite i relaii ce pot fi manipulate cu ajutorul unui set de operatori neprocedurali care returneaz alte tabele virtuale. Ansamblul acestor operatori formeaz algebra relaional . Modelul relaional a fost introdus de E. F. Codd n 1970 i se fondeaz pe conceptul de relaie definit n teoria matematic a mulimilor ca fiind o submulime a produsului cartezian al mai multor domenii: R D1 D2 Dn; unde Dn reprezint coloana n a relaiei.
25
domeniu
Cheie externa
Cheie primara
26
O cheie primara este definita ca un ansamblu de N atribute verificand o dubla proprietate: -Unicitatea(valorile cheii primare sunt unice si nenule) -Minimalitatea(nici un atribut ce compune cheia nu poate fi luat fara sa se piarda proprietatea de unicitate)
Numarul tuplurilor dintr-o relatie formeaza cardinalitatea relatiei (exemplu:cardinalitate=4) iar numarul de atribute specifica gradul relatiei
Cod produs Denumire 100 101 102 103 Alfa Beta Gama Delta
Domeniul este ansamblul valorilor permise pentru un atribut.
UM kg Kg T m
27
DE RETINUT! Principiul fundamental al modelului relational: -reprezentarea universului descris sub forma unui tabel bidimensional de valori (numit relatie) Privit prin prisma modelului relaional, baza de date apare ca o colecie de relaii (tabele), n care fiecare coloan reprezint un atribut distinct, iar fiecare rnd, un tuplu distinct, de unde i apelativul tabel bidimensional. -Fiecare coloan a unui tabel relaional ia valori ntr-o multime de valori permise numita domeniu. -Toate atributele unui tabel sunt atomice (nu se pot descompune n alte atribute). -Fiecare linie a unui tabel relaional se numeste tuplu (sau nregistrare). -Fiecare coloan a unui tabel relaional corespunde unui domeniu i se numete atribut. Fiecare atribut posed un nume diferit n raport cu un domeniu. Atributele unei relaii trebuie sa fie diferite. -Un atribut ( sau un grup de atribute ) numit cheie primar va identifica n mod unic fiecare tuplu al unei relaii ( fiecare linie a unui tabel). -Orice alt atribut care ia valori n acelai domeniu de definiie cu al unei chei primare este numit cheie extern. - Modelul relaional permite descrierea unor date ale caror valori variaz n timp, n sensul c pot fi adugate, terse sau modificate ntr-o relaie.
28
Schema unei relaii este format din numele relaiei, structura (atributele) relaiei i restriciile de integritate la nivel de relaie
Schema unei baze de date relationale este definit ca un ansamblu de scheme de relaii (cu restriciile de integritate definite la nivel de atribut si tabel) precum i din restriciile de integritate inter-tabele. Schema unei baze de date(modelul relaional):
Exemple practice : Relaia CLIENTI (CodClient, Nume, Telefon, Fax, Strada, Nr,CodPostal, TipClient) ' Restricii de integritate RI1: CodClient, constituie cheia primar RI2: Dom(TipClient)={Ext, Int} RI3: Val(Nume) diferit de Null RI4: Val(CodPostal) diferit de Null RI5: Val(Telefon) diferit de Null
29
Relaia FACTURI (NrFact, DataFact, CodClient) Restricii de integritate RI1: NrFact, cheia primar RI2: Val(DataFact) ntre <data min> i <data max>
PRODUS(CodProd, DenProd,UM, PretRef) PRODUS_FACTURAT (NrFact, CodProd, CantFact, PretFact) LOCALIZARE(CodPostal, Localitate) n exemplul luat referitor la gestiunea facturilor, se pot defini urmtoarele restricii de integritate la nivelul bazei de date : RIR1: CodClient din FACTURI refer CodClient din CLIENTI RIR2: NrFact din PRODUS_FACTURAT refer NrFact din FACTURI RIR3: CodProd din Produs_facturat refer CodProd din PRODUSE RIR4: CodPostal din Clienti refera CodPostal din LOCALIZARE
30
Restriciile de integritate ale modelului relaional. Structurale = se definesc prin compararea unor valori din tabele: cheie unic = ntr-o tabel nu trebuie s existe mai multe tupluri cu aceeai valoare pentru ansamblul cheie; Integritatea referenial = ntr-o tabel T1 care refer o tabel T2, valorile cheii externe trebuie s figureze printre valorile cheii primare din T2 sau s ia valoarea NULL (neprecizat); Integritatea entitii = ntr-o tabel, atributele din cheia primar nu trebuie s ia valoarea NULL. Pe lng acestea, exist o serie de alte restricii structurale care se refer la dependenele dintre date: funcionale, multivaloare, jonciune etc. (sunt luate n considerare la tehnicile de proiectare BDR). Semantice = se definesc prin comportamentul datelor i in cont de valorile din BD: restricia de domeniu = domeniul corespunztor unui atribut dintr-o tabel trebuie s se ncadreze ntre anumite valori; restricii temporare = valorile anumitor atribute se compar cu nite valori temporare (rezultate din calcule etc.).
31
Intr-o relaie pot exista una sau mai multe chei candidate. Cheile pot s fie formate dintr-un singur atribut (simple) sau din mai multe atribute (compuse).
Se alege din multimea cheile candidate o cheie primara. Criteriul de alegere este, in general, simplitatea.
32