Sunteți pe pagina 1din 12

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

FACULTATE
Angajati

PERSONAL

Cadre

PROFESOR
Note acordate

NOTE
Note primite

STUDENT

II. Extensiunea unei baze de date de tip retea consta din:


 instantieri ale tipurilor de inregistrari si
 instantieri ale tipurilor de set.

Sali

SALA

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 pointerilor 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.
P

M1

M2

Mn

(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)

M1

M2

Mn

(C3) Structura cu pointeri NEXT si OWNER


- utila in situatiile in care trebuie accesat in mod frecvent proprietarul,
pornind de la inregistrarile membru

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

M1

M2

Mn

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

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

FACULTATE

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

Angajati

PERSONAL

PROFESOR

NOTE

RECORD NAME IS Note


Nota TYPE IS FIXED 2

Note primite

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

STUDENT

FACULTATE

SET NAME IS Angajati


OWNER IS Facultate
MEMBER IS Personal
Angajati

SET NAME IS Cadre


OWNER IS Facultate
MEMBER IS Profesori

SET NAME IS Note_acordate


OWNER IS Profesori
MEMBER IS Note
SET NAME IS Note_primite
OWNER IS Student
MEMBER IS Note

SALA

Note acordate

RECORD NAME IS Sala


Numar TYPE IS FIXED 3
Adresa TYPE IS CHARACTER 20
Capacitate TYPE IS FIXED 3

SET NAME IS Sali


OWNER IS Facultate
MEMBER IS Sala

Sali

Cadr
e

PERSONAL

Cadre

PROFESOR
Note acordate

NOTE
Note primite

STUDENT

Sali

SALA

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, Actualizarii 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 R
R este o relatie pe aceste nn 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 R
R..
Valoarea nn este gradul sau aritatea relatiei R
R..
 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 R
R 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 R
R un subset K
K al atributelor relatiei care
satisfac proprietatile:
1) Identificare unica fiecare tupla a relatiei R
R 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)
Scheme de relatie
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.