06 Curs5 Curs6&7&8 Modelul de Date Retea&Rrelational

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

description

cvbnm,.

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