07 Curs9&10 CompModeleDate&OpAlgRel

11
CURS 9&10 BAZE DATE / AN II TOPICI: Intensiunea si Extensiunea Bazei de Date Relationale Comparatie intre Modelele de Date Limbaje Relationale Operatorii Algebrei Relationale 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, populate (incarcate) cu valorile concrete ale tuturor datelor care trebuie sa fie cuprinse in aceste tabele. Scheme de relatie

description

dfrtgyghbv

Transcript of 07 Curs9&10 CompModeleDate&OpAlgRel

  • CURS 9&10 BAZE DATE / AN II

    TOPICI:

    Intensiunea si Extensiunea Bazei de Date Relationale

    Comparatie intre Modelele de Date

    Limbaje Relationale

    Operatorii Algebrei Relationale

    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, populate (incarcate) cu

    valorile concrete ale tuturor datelor care trebuie sa fie cuprinse in aceste tabele.

    Scheme de relatie

  • CURS 9&10 BAZE DATE / AN II

    ANALIZA COMPARATIVA A MODELELOR DE DATE

    Modele

    Criterii

    Modelul de Date

    IERARHIC

    Modelul de Date RETEA Modelul de Date

    RELATIONAL

    Forme de

    Structurare a

    Datelor

    Tipuri de entitati (inregistrari)

    +

    Legaturi Explicite

    Tipuri de entitati (inregistrari)

    +

    Legaturi Explicite

    Relatii

    Modelul

    Conceptual

    Arbore de definitie Ierarhic

    Graf oarecare

    Schema Relationala

    Reprezentarea

    Legaturilor 1:N

    DA prin conexiuni de tip

    functional

    DA prin conexiuni de tip

    functional

    DA prin mecanismul de

    propagare a cheilor

    Reprezentarea

    Legaturilor N:M

    NU in mod direct, ci doar prin

    multiplicarea inregistrarilor

    NU in mod direct, ci doar prin

    tipuri de legatura dedicate

    DA prin scheme de relatie

    separate (sau tabele de

    legatura)

    Limbajul

    de formulare a

    interogarilor

    Navigational

    Navigational

    Relational

  • CURS 9&10 BAZE DATE / AN II

    Limbaje de Manipulare Date RELATIONALE (LMD Relationale)

    LMD = limbaje pentru formularea interogarilor

    Clasificare LMD: - navigationale (modelul ierarhic si modelul retea)

    - relationale (modelul relational)

    A. Caracteristici LMD navigational:

    - se bazeaza pe utilizarea conceptului de cursor (indica pozitia curenta in baza de date).

    - actiuni utilizator asupra cursorului:

    a1)modificare pozitie cursor

    a2)modificare date din pozitia curenta cursor

    - LMD navigationale exploateaza direct legaturile explicite existente in baza de date rezolvarea

    interogarilor presupune in general navigatia cursorului pe lanturile de legaturi

    B. Caracteristici LMD relational:

    Ceea ce diferentiaza Modelul de Date Relational in raport cu celelalte modele, d.p.d.v. al posibilitatii

    formularii interogarilor: LMD RELATIONAL

    OBS: Celelalte modele permit doar LMD navigational)

    Nota: In MR (Modelul Relational), intre relatii nu exista legaturi explicite pt. realizarea conexiunii intre

    diferite relatii in vederea tratarii interogarilor este necesara cuplarea dinamica a relatiilor (implementarea

    operatiilor de cuplare necesita echipamente de calcul evoluate, dispozitive de memorare de suficient de mare

    capacitate, tehnici avansate de programare si structurare a datelor)

  • CURS 9&10 BAZE DATE / AN II

    Limbaje de Interogare pt. Modelul Relational (grupe principale) :

    A. Limbaje care au la origine Algebra Relationala (interogarile sunt exprimate prin aplicarea unor operatori

    specializati asupra relatiilor)

    Obs: Limbajele derivate se numesc Limbaje Algebrice.

    B. Limbaje care au la origine Calculul Relational (interogarile descriu multimea tuplelor rezultat prin

    specificarea unui predicat pe care aceste tuple trebuie sa-l satisfaca)

    Obs1: predicat = conditie ( in acest context)

    Obs2: Obiecte primitive cu care se opereaza in Calculul Relational:

    (1) tuple ==> Calculul Relational al Tuplelor

    (2) valori din domenii ==> Calculul Relational al Domeniilor

    B.1. Limbaje bazate pe Calculul Relational al Tuplelor

    B.2. Limbaje bazate pe Calculul Relational al Domeniilor

    Obs3: a. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor sunt

    limbaje abstracte (nu sunt implementate ca atare in nici un SGBD existent).

    b. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor servesc ca

    referinta pt. evaluarea limbajelor reale existente in diferite SGBD-uri (care sunt derivate din aceste

    formalisme abstracte); au fost propuse (definite) ca atare de catre CODD; reprezinta facilitatile

    minime pe care trebuie sa le posede orice limbaj de interogare relational, pentru a putea fi

    considerat limbaj relational complet.

    c. Cele trei formalisme (AR, CRT si CRD) sunt echivalente ca putere de expresie ( pt. orice

    interogare, exprimata in cadrul unuia din formalisme, exista interogari echivalente in fiecare din

    celelalte doua).

  • CURS 9&10 BAZE DATE / AN II

    Obs4: Facilitatile suplimentare, necuprinse in formalismele abstracte, de care dispun limbajele reale,

    includ:

    - comenzi de inserare

    - comenzi de stergere

    - comenzi de modificare

    - posib. efect. de calcule aritm.

    - fctii de tiparire a relatiilor de atribuire a acestora unor nume de variabile

    - fctii de agregare care efectueaza diverse operatii: medie, suma, min, max (pe

    valorile unei coloane dintr-o relatie)

  • CURS 9&10 BAZE DATE / AN II

    Limbaje reale derivate din formalismele prezentate (exemple):

    Ex1. ISBL ( Information System Base Language) dezvoltat in cadrul IBM (centrul stiintific din

    Peterlee) = limbaj de interogare bazat pe Algebra Relationala

    Ex2. QUEL = limbaj de interogare al SGBD relational INGRES, dezvoltat la Univ. Berkley

    (California) sub sistem UNIX; este bazat pe Calculul Relational al Tuplelor

    Ex3. QBE ( Query By Example) dezvoltat in cadrul IBM; are la baza Calculul Relational al

    Domeniilor.

    Ex4: SQUARE si SEQUEL (SQL) limbaje intermediare intre Algebra Relationala si Calculul

    Relational; dezvoltate in cadrul IBM (sectia din San Jose) ca limbaje de interogare

    pentru SGBD-ul SystemR

  • CURS 9&10 BAZE DATE / AN II

    ALGEBRA RELATIONALA

    Def. Algebra Relationala =Formalism abstract propus de Codd pentru interogarea b.d. relationale

    Bazat pe : set de operatori folositi ca primitive pt. construirea interogarilor.

    Obs. AR = limbaj abstract de tip procedural (interogarile exprimate cu ajutorul ei sunt de fapt

    secvente de operatori care specifica explicit modul de obtinere al relatiei rezultat)

    Operatorii AR: - operatori unari sau binari care actioneaza asupra relatiilor; rezultatul lor sunt tot

    relatii posibilitatea asocierii si imbricarii pt. a forma interogari complexe

    Grupe de Operatori:

    O1: Operatori pt. Multimi ; O2: Operatori Relationali Speciali

    O1: Reuniune

    Intersectie

    Diferenta

    Produs Cartezian

    OBS: Pt. Operatiile de Reuniune, Intersectie si Diferenta, cele doua relatii operand trebuie sa fie compatibile la reuniune, ceea ce inseamna ca trebuie sa fie de acelasi grad, iar atributele corespondente trebuie sa fie

    derivate din acelasi domeniu.

  • CURS 9&10 BAZE DATE / AN II

    Definitiile Operatorilor pt. Relatii privite ca Multimi (operatorii din categoria O1):

    Reuniunea a doua relatii A si B, notata A B, este o relatie R care contine toate tuplele care apartin relatiei A sau

    relatiei B.

    Intersectia a doua relatii A si B, notata A B, este o relatie R care contine toate tuplele care apartin atat relatiei A

    cat si relatiei B.

    Diferenta a doua relatii A si B, notata A - B, este o relatie R care contine toate tuplele care apartin relatiei A dar nu

    apartin relatiei B.

    Produsul Cartezian a doua relatii A si B, notat A x B, A fiind de gradul m iar B de gradul n, este o relatie R de

    grad m+n, care contine toate tuplele obtinute prin concatenarea fiecarei tuple din relatia A cu fiecare

    tupla din relatia B (exemplificare).

  • CURS 9&10 BAZE DATE / AN II

    Prezentarea si Definitiile Operatorilor Relationali Speciali (operatorii din categoria O2):

    O2.1 Operatori Relationali Speciali Unari:

    - Proiectia

    - Selectia

    O2.2 Operatori Relationali Speciali Binari:

    - Cuplarea (Join)

    - Diviziunea O2.1 :

    Selectia printr-un predicat P a unei relatii A, notata P(A), este o relatie R care contine toate tuplele din

    relatia A care satisfac predicatul P. Predicatul P este o formula (conditie) care poate contine:

    - operanzi ce sunt fie nume de atribute fie constante

    - operatori de comparatie ( =, , , = )

    - operatori logici ( &, | , ! )

    Proiectia pe atributele A1, A2, A3,..., An a unei relatii B de grad m>n si care cuprinde atributele A1, A2, A3,...,

    An , notata A1, A2, A3,..., An(B), este o relatie R de grad n obtinuta din relatia B astfel: Pasul 1: Se elimina din relatia B atributele care nu sunt specificate in lista de proiectie, a.i. raman doar

    coloanele corespunzatoare atributelor A1, A2, A3,..., An

    Pasul 2: Se reordoneaza atributele ramase in ordinea specificata in lista de proiectie A1, A2, A3,..., An

    Pasul 3: Se elimina tuplele duplicat.

    Proiectia unei relatii = o selectie verticala a acesteia (se selecteaza coloanele coresp. atributelor din lista de

    proiectie), urmata de eliminarea tuplelor duplicat si reordonarea atributelor ramase in ordinea

    specificata prin lista de proiectie.

  • CURS 9&10 BAZE DATE / AN II

    O2.2 :

    Cuplarea (Join) :

    Fie un operator aritmetic de comparatie ( =, , , = );

    Fie X un atribut al relatiei A si Y un atribut al relatiei B, X si Y fiind definite pe domenii compatibile;

    Numim - cuplare a relatiilor A si B dupa atributele X si Y , notata

    A 43 B X Y

    o relatie R care contine acele tuple ale produsului cartezian AxB care au proprietatea ca valorile x si y

    corespunzatoare atributelor X respectiv Y sunt in relatia x y.

    OBS:

    A 43 B = X Y (AxB) X Y

  • CURS 9&10 BAZE DATE / AN II

    Diviziunea relatiei A de grad m prin relatia B de grad n , notata A B, este o relatie R de grad m-n, formata

    din multimea tuplelor r cu proprietatea ca pentru orice tupla b din B exista o tupla a in A egala cu

    rezultatul concatenarii tuplelor r si b.

    OBS:

    a) Multimea atributelor relatiei B trebuie sa fie o submultime a multimii atributelor relatiei A. Relatia R

    contine doar acele atribute din relatia A care nu apar in relatia B.

    b) O tupla din relatia A este retinuta in urma operatiei de diviziune numai daca este legata de fiecare tupla

    din relatia B printr-o conditie predefinita.

    c) Relatia obtinuta prin produsul cartezian al relatiilor R si B este inclusa in relatia A (rezulta direct din

    definitie); notand prin Rest multimea tuplelor din relatia A care nu apar in produsul cartezian al relatiilor

    B si R obtinem urmatoarea relatie ( asemanatoare cu teorema impartirii cu rest din aritmetica):

    A = B x R Rest