06 Curs5 Curs6&7&8 Modelul de Date Retea&Rrelational
-
Upload
gabriela-ivan -
Category
Documents
-
view
216 -
download
2
description
Transcript of 06 Curs5 Curs6&7&8 Modelul de Date Retea&Rrelational
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
MODELUL DE DATE
RETEA
DBTG = Data Base Task Group
Infiintare: in 1971 , la Conferinta de Normalizare a Limbajelor pentru Baze de Date
CODASYL (COnference on DAta SYstems Language)
Standardul actual al modelului de B.D. de tip RETEA a fost emis de catre DBTG
Raportul initial: 1971 Prima Specificare in detaliu a unui SGBD avand la baza
modelul de date RETEA
Modificari: 1973, 1976, 1977, 1978
Definitia Modelului de date RETEA:
Modelele de date de tip retea sunt modele bazate pe tabele si grafuri
corespunzatoare pentru cele doua forme de structurare a datelor, anume
tipul de inregistrare si legaturile explicite, avand urmatoarele caracteristici
specifice:
o nodurile grafului corespund tipurilor de entitati (reprezentate in format extins prin tabele)
o arcele grafului corespund relatiilor dintre multimile de entitati, fiind reprezentate sub forma de legaturi intre tabele (v. formatul extins)
o configuratia diagramei structurii de date este de graf oarecare (un anumit tip de entitate poate fi legat la mai multe entitati de tip parinte,
sau chiar prin mai multe arce la aceeasi entitare de tip parinte)
o arcele sunt etichetate (in mod obligatoriu)
Elementele de definire model specifice DBTG:
- Intensiunea b.d. retea = modelul conceptual = reprezentare prin intermediul unei diagrame a structurii de date care este un graf oarecare
- Arcele etichetate ale grafului poarta denumirea de Tip de Set; reprezinta legaturi logice intre doua tipuri de inregistrari:
(a) tipul de inregistrare proprietar
(b) tipul de inregistrare membru
- Arcele sunt orientate dinspre tipul (a) spre tipul (b)
- Numele Tipului de Set este chiar eticheta arcului corespunzator
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
OBS.1:
Tipul de Set reprezinta conceptul central al filozofiei bazelor de date de tip
retea, fiind o forma de reprezentare in cadrul b.d. de tip DBTG a unei legaturi functionale
intre doua tipuri de entitati: tipul proprietar si tipul membru. Sensul functionalitatii
(subordonarii) este: de la tipul membru la tipul proprietar.
OBS.2:
Un Tip de Set poate fi folosit pentru reprezentarea legaturilor de tip 1:1 sau 1:N,
dar nu poate fi folosit pentru reprezentarea directa a legaturilor de tip M:N
Denumiri echivalente pt. Tipul de Set: fan-set sau Set DBTG
EXEMPLU:
I. Modelul conceptual (Intensiunea) B. D. Facultate
II. Extensiunea unei baze de date de tip retea consta din:
instantieri ale tipurilor de inregistrari si instantieri ale tipurilor de set.
FACULTATE
PERSONAL PROFESOR SALA
STUDENT
NOTE
Angajati Cadre Sali
Note acordate
Note primite
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
OBS.3: Extensiunea unui tip de set DBTG poate fi reprezentata ca o colectie de arce
intre tabele reprezentand tipul de inregistrare proprietar si tipul de inregistrare
membru
Instantierea unui Tip de Set DBTG este formata din colectia de arce care
leaga o inregistrare proprietar de zero sau mai multe inregistrari membru
Un set DBTG este reprezentarea unei legaturi functionale (de tip 1:1 sau 1:N) intre o
inregistrare a unui tip proprietar si una sau mai multe inregistrari de tip membru.
Proprietatile Seturilor si ale Tipurilor de Set:
P1: Fiecare tip de set are un tip de inregistrare proprietar
P2: Fiecare instantiere a unui tip proprietar este proprietarul unui set (instantiere de tip
set); un set nu include in mod necesar si inregistrari membru
P3: Fiecare tip de set include cel putin un tip de inregistrare membru; unele tipuri de set
pot incluhe mai mult de un tip membru (cazul tipurilor de set multi-membru)
P4: Un tip de articol nu poate fi si proprietar si membru al aceluiasi tip de set.
P5: Nici o instantiere de inregistrare nu poate participa la mai mult de o instantiere a unui
tip de set.
Implementarea software a seturilor:
(a) lanturi de pointeri (b) matrici de pointeri
Seturile implementate prin lanturi de pointeri (de tip (a)) = liste circulare avand cap de
lista o inregistrare a tipului
proprietar
Tipuri de pointeri utilizabili de catre DBADMIN ( pt. inlantuirea inregistrarilor dintr-un set ):
(1) Pointeri de tip NEXT
(2) Pointeri de tip PRIOR
(3) Pointeri de tip OWNER
DEFS:
(1) utilizati pt. inlantuirea simpla inainte a inregistrarilor; prezenta pointerilor de tip NEXT este obligatorie in orice set
(2) - utilizati pt. inlantuirea inapoi a inregistrarilor; acesti pointeri sunt optionali
(3) leaga o inregistrare de tip membru cu proprietarul setului; acesti pointeri sunt optionali
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
Combinatii de tipuri de pointeri:
(C1) Structura cu pointeri NEXT:
- structura cea mai simpla si mai economica - permite accesul secvential unidirectional la membrii setului, pornind de la
inregistrarea proprietar
- Dezavantaje: pt. stergerea membrului Mi , actualizarea lantului de legaturi necesita accesarea membrului Mi-1, ceea ce in absenta pointe-
rilor de tip PRIOR se poate realiza numai prin parcurgerea lantului cu
incepere de la pozitia curenta in lant sau de la inregistrarea proprietar,
pana la membrul Mi-1; in mod evident, aceasta operatie poate fi destul de
costisitoare, mai ales pt. valori mari ale indicelui i.
(C2) Structura cu pointeri NEXT si PRIOR:
- lista circulara dublu inlantuita - permite accesul inainte si inapoi la membrii setului - Dezavantaje: implica un consum mai mare de memorie si costuri
suplimentare pt. actualizarea pointerilor
- Avantaje: structura este utila in situatia in care sunt frecvente operatiile de stergere (permite accesul mai direct la membrul Mi-1, de la orice pozitie
din lista)
(C3) Structura cu pointeri NEXT si OWNER
- utila in situatiile in care trebuie accesat in mod frecvent proprietarul, pornind de la inregistrarile membru
P
Mn M2 M1
P
M1 M2 Mn
P
M1 M2
Mn
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
(C4) Structura cu pointeri NEXT, PRIOR si OWNER
- lista circulara triplu inlantuita structura cea mai completa - implica cele mai ridicate costuri, de aceea este necesar sa se analizeze
atent oportunitatea de a folosita numai in mod foarte bine justificat
Descriere minimala a structurii unei b.d. de tip RETEA:
A. Descrierea Tipurilor de Inregistrari
(nume tip inregistrare, nume si dimensiuni ale campurilor)
B. Descrierea Tipurilor de Set (nume tip set, precizare tip proprietar si a tipului membru)
Instrumentul pentru descrierea structurii unei b.d. retea:LDD
P
Mn M2 M1
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
Ex. de descrierea a structurii b.d. de tip retea a Facultatii, prin LDD :
RECORD NAME IS Facultate
CodF TYPE IS FIXED 2
Nume TYPE IS CHARACTER 15
Adresa TYPE IS CHARACTER 20
RECORD NAME IS Personal
Nume TYPE IS CHARACTER 15
Functie TYPE IS CHARACTER 10
Salar TYPE IS FIXED 5
RECORD NAME IS Profesori
Nume TYPE IS CHARACTER 15
Functie TYPE IS CHARACTER 10
Disciplina TYPE IS CHARACTER 20
RECORD NAME IS Sala
Numar TYPE IS FIXED 3
Adresa TYPE IS CHARACTER 20
Capacitate TYPE IS FIXED 3
RECORD NAME IS Note
Nota TYPE IS FIXED 2
RECORD NAME IS Student
Nume TYPE IS CHARACTER 15
Incadrare TYPE IS CHARACTER 5
Sit_scolara TYPE IS CHARACTER 1
An TYPE IS FIXED 1
Sex TYPE IS CHARACTER 1
SET NAME IS Angajati
OWNER IS Facultate
MEMBER IS Personal
SET NAME IS Cadre
OWNER IS Facultate
MEMBER IS Profesori
SET NAME IS Sali
OWNER IS Facultate
MEMBER IS Sala
SET NAME IS Note_acordate
OWNER IS Profesori
MEMBER IS Note
SET NAME IS Note_primite
OWNER IS Student
MEMBER IS Note
FACULTATE
PERSONAL PROFESOR SALA
STUDENT
NOTE
Angajati Cadre Sali
Note acordate
Note primite
FACULTATE
PERSONAL PROFESOR SALA
STUDENT
NOTE
Angajati Cadr
e
Sali
Note acordate
Note primite
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
MODELUL DE DATE
RELATIONAL
- Aparut relativ tarziu in teoria si practica Bazelor de Date, ca rezultanta a atingerii unui anumit nivel de performanta a echipamentelor de calcul
- Reprezinta:
(a) instrument de studiu valoros in teoria bazelor de date
(b) punct de pornire in realizarea de SGBD-uri competitive d.p.d.v. al performantelor
Primul model de date bazat pe tabele si relatii: E.F. CODD (1970)
Principiile de baza : teoria matematica a relatiilor extinsa in mod logic pt. satisfacerea
cerintelor activitatii de gestionare a datelor
OBS: Modelul de date relational sta la baza majoritatii SGBD-urilor comerciale care
exista si care apar la ora actuala.
Atuuri ale modelului relational si ale b.d. relationale:
Dispun de limbaje pt. manipularea datelor (LMD) de nivel inalt,
simple dar f. puternice, numite Limbaje Relationale.
Carecteristici ale LR :
- capabilitatea de a permite definirea de relatii noi pe baza unor relatii existente
- permit dezvoltarea, in cadrul SGBD-urilor relationale, a unor interfete flexibile si prietenoase, cu posibilitate de exploatare directa a b.d. de catre
categorii mult mai largi de utilizatori decat cei ai b.d. retea si ierarhice.
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
Codd's Rules
Un SGBD Relational (RDBMS= Relational DataBase Management System) trebuie sa-si gestioneze datele stocate in baza de date utilizand numai si numai capabilitatile sale relationale
Regulile se adreseaza in primul rand producatorilor de RDBMS-uri, avand valoarea de cerinte de implementare adresate acestora.
Unele dintre aceste reguli au impact si asupra proiectarii aplicatiilor propriu-zise de Baze Date, menite a rula sub control RDBMS
1. Information Rule (Regula Informatiei) toate datele dintr-o baza de date relationala trebuie sa fie reprezentate intr-un singur mod, anume ca valori in tabele.
2. Guaranteed Access Rule (Regula Accesului Garantat) toate valorile stocate intr-o baza de date relationala (inclusiv cele atomice) sunt garantate a fi accesibile la nivel logic prin intermediul unei combinatii de nume de tabela, nume de coloana si valoare de cheie primara
3. Systematic Treatment of Null Values (Tratamentul sistematic al valorilor nule) valorile nule sunt suportate in RDBMS-urile total relationale pentru a reprezenta valorile lipsa, indiferent de tipul acestora
4. Dynamic Online Catalog (Regula Catalogului Dinamic On-line) descrierea bazei de date este reprezentata la nivel logic in acelasi mod in care sunt reprezentate datele obisnuite, adica in tabelele Catalogului Dinamic, care este organizat ca o baza de date ce contine metadate (metadata = date despre date)
5. Comprehensive Data Sublanguage Rule (Regula Sublimbajului Comprehensiv de Date) sistemele relationale pot suporta anumite limbaje si sublimbaje dedicate trebuie sa existe macar un limbaj sau sublimbaj care sa suporte: definirea datelor, definirea vederilor, manipularea datelor, constrangerile de integritate, autorizarea accesului, delimitarea tranzactiilor
6. View Updating Rule (Regula Actualizarii Vederilor) toate vederile dintr-o BD relationala sunt, teoretic, actualizabile
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
7. High-Level Insert, Update, and Delete (Regula Inserarii, Actualiza-rii si Stergerii la Nivel Inalt) capabilitatea de a manipula o relatie fundamentala sau derivata ca un singur operand, este aplicata la regasirea datelor, inserarea, actualizarea si stergerea acestora
8. Physical Data Independence (Regula Independentei Fizice a Datelor) programele de aplicatie cat si activitatile la terminale (terminal activities), raman neafectate, la nivel logic, indiferent de schimbarile efectuate la nivelul reprezentarii structurilor fizice de stocare sau a metodelor fizice de acces la date
9. Logical Data Independence (Regula Independentei Logice a Datelor) programele de aplicatie cat si activitatile la terminale (terminal activities), raman neafectate, la nivel logic, indiferent de schimbarile efectuate la nivelul reprezentarii structurilor logice de stocare sau a metodelor logice de acces la date
10. Integrity Independence (Regula Independentei Integritatii) constrangerile de integritata trebuie sa poata fi definite in sublimbaje dedicate structurilor de date relationale, trebuind sa fie stocabile in cataloage, nu la nivelul aplicatiilor
11. Distribution Independence (Regula Independentei Distributiei) sublimbajele de manipulare date trebuie sa permita programelor de aplicatie (aplicatiilor) cat si activitatilor de la terminale (terminal activities), sa ramana neafectate din punct de vedere logic, indiferent daca datele din baza de date sunt centralizate sau distribuite
12. Nonsubversion Rule (Regula Nonsubversiunii) daca sistemele relationale suporta limbaje low-level, aceste limbaje nu pot fi utilizate in scop subversiv relativ la regulile sau constrangerile de integritate
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
RELATII
Definitie generala: Fiind data o colectie de multimi D1 , D2 , Dn (nu neaparat
distincte), spunem ca RRR este o relatie pe aceste nnn multimi, daca este o multime de n-tuple ordonate de forma (d1 , d2 , dn) astfel incat:
d1 D1 , d2 D2 ,, dn Dn .
Multimile D1 , D2 , Dn sunt domeniile relatiei RRR... Valoarea nnn este gradul sau aritatea relatiei RRR...
Definitie matematica: Definim produsul cartezian D1 x D2 x x Dn al multimilor
D1 , D2 , Dn ca fiind multimea tuturor n-tuplelor ordonate de
forma (d1 , d2 , dn) astfel incat:
d1 D1 , d2 D2 ,, dn Dn .
O relatie RRR peste multimile D1 , D2 , Dn este o submultime a produsului cartezian D1 x D2 x x Dn .
Proprietati derivate din caracterul de multime:
Nerepetabilitatea n-tuplelor
Ordinea arbitrara de insiruire a n-tuplelor
DOMENII SI ATRIBUTE
Definitie:
Domeniu = Ansamblu de valori admisibile pentru o componenta a
unei relatii
OBS1: Domeniile sunt multimi de elemente mai mult sau mai putin
omogene, din care anumite obiecte semnificative si proprietatile lor
pot lua valori in timp.
Exemple de domenii:
1. Domeniul numelor de orase 2. Domeniul numelor de persoane 3. Domeniul notelor ce pot fi acordate (multimea {1,2,3,4,,10})
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
Domenii compatibile (definitie)
OBS2: Doua domenii identice sau aflate in relatie de incluziune sunt
compatibile
OBS3: Orice operatie de cuplare a doua relatii sau de comparare a unor
valori din doua domenii are sens numai daca cele doua domenii sunt
compatibile
Definitie:
Atribut = Un domeniu cu nume sau o utilizare sub un nume oarecare
a unui domeniu.
OBS4: Din acelasi domeniu pot fi derivate mai multe atribute cu nume
diferite; intr-o relatie pot exista mai multe atribute derivate din
acelasi domeniu.
CHEI
Definitie:
Numim cheie a unei relatii RRR un subset KKK al atributelor relatiei care satisfac proprietatile:
1) Identificare unica fiecare tupla a relatiei RRR este identificata in mod unic de valorile atributelor care compun cheia K.
2) Neredondanta subsetul K este minimal in sensul ca eliminarea oricarui atribut din K duce la pierderea proprietatii 1).
Notiuni aferente notiunii de cheie a unei relatii:
Atribut prim = orice atribut al unei relatii R, care face parte din cel putin o cheie.
Cheie primara = aceea dintre cheile unei relatii care este folosita de SGBD in identificarea unica a tuplelor; statutul de cheie primara este
stabilit de utilizator si comunicat SGBD-ului prin intermediul LDD.
Chei candidate = toate celelalte chei ale relatiei, care nu sunt cheia primara.
-
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
INTENSIUNEA SI EXTENSIUNEA UNEI B. D. RELATIONALE
(Definitii)
Intensiunea unei baze de date relationale = o schema relationala care consta
din una sau mai multe scheme de relatie schema relationala este
modelul conceptual al bazei de date relationale.
- o schema de relatie cuprinde numele relatiei si atributele acesteia.
- schemele de relatie sunt folosite atat pentru reprezentarea
tipurilor de entitati cat si a legaturilor dintre ele, in contextul
modelului relational.
Ex. de reprezentare a intensiunii b.d. Facultati, aferent modelului
relational al acesteia:
Schema relationala este urmatoarea:
Facultate (CodF, Nume, Adresa)
Personal (CodF, Nume, Functie, Salar)
Profesori (CodF, Nume, Functie, Disciplina)
Sala (CodF, Numar, Adresa, Capacitate)
Student (Nume, Incadrare, Sit_scolara, An, Sex)
Note (Nume_profesor, Nume_student, Nota)
Extensiunea unei baze de date relationale = totalitatea tabelelor bazei de
date relationale, umplute cu valorile concrete ale tuturor datelor care trebuie
sa fie cuprinse in aceste tabele.
Scheme de relatie