Sunteți pe pagina 1din 83

Teoria general a bazelor de date

Baza de date este:


Un ansamblu de date structurate Legate funcional Stocate pe suporturi tehnice adresabile Accesate de mai muli utilizatori de o manier selectiv i ntr-un timp oportun

1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL

Un model de organizare bidimensional a datelor n tabele Implementeaz schema relaional (MRD)

Tabele Relaii ntre tabele Reguli de validare

Algebra relaional (Operatori relaionali)

Operatori de asamblare (Reuniunea, Intersecia, Produsul cartezian, Diferena) Operatori unari (Proiecia, Selecia) Operatori de extensie (Compunerea, Diviziunea)

Un limbaj standard de gestiune a BDR 1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL


Modelul relaional introdus de Edgar Frank Codd n 1970 se fundamenteaz pe noiunea matematic de relaie R(X1,X2,....Xn)

unde, pentru fiecare element Xi se definete un domeniu de valori

Domeniul reprezint mulimea valorilor posibile care definesc o anumit proprietate aferent unui obiect Atributul reprezint mulimea valorilor existente n coloana pe care o desemneaz n cadrul relaiei.
1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL

Relaiile se reprezint prin tabele care sunt supuse urmtoarelor restricii:


n fiecare coloan, toate valorile sunt de acelai tip; Ordinea liniilor (tuplurilor sau nregistrrilor) nu este predefinit; Nu sunt admise nregistrri duplicate; Coloanele sunt identificate prin nume distincte (atribute sau proprieti)

Tuplurile unei relaii se pot identifica de o manier unic prin intermediul valorilor unuia sau mai multor atribute care joac rol de CHEIE PRIMAR a relaiei respective. 1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL

Se numete DOMENIU PRIMAR acel domeniu pe care este definit un singur atribut drept cheie primar CHEIA EXTERN: Fiind dou relaii R1 i R2, cu atributele A1 i A2 chei primare definite pe acelai domeniu primar D, se spune c n relaia R1, A2 este cheie extern dac, utiliznd o parte din valorile ei sau toate, pot fi regsite tuplurile relaiei R2 (altfel spus, un atribut al unei relaii este cheie extern, dac se regsete pe post de cheie primar n alt relaie)

Relaii

R1(A1,B1,C1,D1,A2)
Chei primare

R2(A2,B2,C2,D2)
Cheie extern

1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL


Relaii

R1(A1,B1,C1,D1,A2)
Factura
Nr_factur Data_factur

R2(A2,B2,C2,D2)
Clieni Chei primare
Cod_client Nume_client

Data_scaden
Cod_client

Adres
Localitate

Cheie extern

Factura(Nr.Factura,Data_f,Data_s,Cod client) Clienti(Cod client,Nume_cl,Adresa,Localitate)


1 - Prof.dr. Bogdan IONESCU

Modele de date: modelul RELAIONAL

RESTRICIILE DE INTEGRITATE depind de semantica valorilor domeniilor.

Integritatea entitii prin care valorile cheii primare trebuie s fie diferite de zero; Integritatea referirii potrivit creia valorile unei chei externe trebuie s se refere la tuplurile unei alte relaii

ALTE RESTRICII care se aplic asupra domeniilor (validri prin care se reflect alte corelaii de ordin valoric) SCHEMA unei relaii este format din:

Numele relaiei Atributele relaiei Restriciile de integritate

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date

Normalizarea se bazeaz pe urmtoarele concepte: Proces de normalizare Dependena funcional Diagrama dependenelor funcionale Dependene Inter-Tabele i Multivaloare Forme normale Matricea dependenelor funcionale Etapele proiectrii MR prin normalizare
Exemplul II (facturi ctre clieni) Exemplul III (editur)
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Procesul de normalizare


Normalizarea este un demers ce conduce la construirea modelului relaional al bazei de date
Se descompune o tabel complex n subtabele mai mici i mai uor de manipulat
DD +RG

NORMALIZARE

MRD

SCOP: Normalizarea garanteaz coerena bazei de date n timpul operaiilor de actualizare (CMS) de date, evitnd redundanele REZULTAT: Un model nedecompozabil ce respect regulile de definire semantic i de integritate a datelor
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Procesul de normalizare


O baz de date normalizat trebuie s conin tabele (relaii) n care s nu existe anomalii i pierderi de informaii. De asemenea, o baz de date normalizat trebuie s respecte att restriciile modelului relaional ct cerinele definite de ctre utilizator. Proiectarea unei baze de date relaionale se poate realiza prin urmtoarele metode: 1. Obinerea modelului relaional pe baza unui model conceptual semantic (Merise, Entitate-Asociere) 2. Obinerea modelului relaional utiliznd modelarea obiectuala (OMT, UML .a.) 3. Obinerea modelului relaional prin normalizare
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Procesul de normalizare : ANOMALII


FurnizoriFacturi(SerieFactura, NumarFactura, DataFactura, CodFurnizor, DenumireFurnizor, AdresaFurnizor)
Serie factur A01 A01 A01 Numar factura 1 2 3 Data factur 01/01/2009 12/05/2009 15/05/2009 Cod furnizor Denumire furnizor Adres furnizor Bucureti Braov Braov

111 S.C. Alfa S.A. 112 S.C. Beta S.A. 112 S.C. Beta S.A.

1) Redundan pentru facturile emise de acelai 2) Anomalii la adugare: se refer la faptul c


furnizor; anumite date ce urmeaz a fi adugate, fac parte din tupluri incomplete (nu pot fi adugai furnizori care nu au emis facturi);
1 - Prof.dr. Bogdan IONESCU

Procesul de normalizare : ANOMALII


Serie factur A01 A01 A01 Numar factura 1 2 3 Data factur 01/01/2008 12/05/2008 15/05/2008 Cod furnizor Denumire furnizor Adres furnizor Bucureti Braov Braov 111 S.C. Alfa S.A. 112 S.C. Beta S.A. 112 S.C. Beta S.A.

3) Anomalii la modificare : se refer la faptul c e dificil s se


modifice o realizare, dac ea se repet n mai multe tupluri (dac un furnizor i schimb numele, atunci, acesta trebuie modificat n toate nregistrrile aferente facturilor emise de acel furnizor); 4) Anomalii la tergere : constau n faptul c anumite informaii ce se doresc a fi terse, fac parte dintr-un tuplu ce conine i alte date care sunt utile n continuare (de exemplu, tergerea unei facturi din tabela Furnizori-Facturi, conduce la eliminarea din baza de date a furnizorului emitent). 1 - Prof.dr. Bogdan IONESCU

Dependenele sunt legturi logice, ce se stabilesc ntre


cmpurile modelului relaional.

Dependena funcional : unic

Exist o dependen funcional ntre 2 atribute atunci cnd cunoscnd valoarea luat de ctre un atribut, se furnizeaz sistematic valoarea pentru cellalt atribut : dependen simpl sau unic

A -> B (B depinde funcional de A, dac la orice valoare a lui A corespunde n orice moment o valoare unic a lui B) Tranzitivitate: Exemple de dependene funcionale:

Cod Produs -> Denumire produs Dac A -> B i B -> C, atunci Cod Produs -> Pre de referin A ->C Numr Comand -> Dat Comand Numr Comand -> Cod Client -> Nume Client -> Cod Fiscal

Dac un atribut sau un grup de atribute dintr-un tabel determin funcional celelalte atribute ale tabelului, rezult c atributul sau grupul de atribute constituie cheia primar 1 - Prof.dr. Bogdan IONESCU a tabelului

Dependena funcional : multipl

Dependena multipl: exist o dependen multipl de la A la B (A B) atunci cnd o valoare a lui A determin mai multe valori ale lui B;

Exemple de dependene funcionale multiple:


SerieFactur CodProdus DataFactur NumarFactur

Dac ntre dou atribute A i B exist o dependen multivaloare (A B), atunci ntre A i B exist i o dependen multipl (A B).

Dependena dubl (tripl): se identific o dependen dubl (tripl) acele dependene dintre un lan de atribute;

Exemple de dependene funcionale triple:

SerieFactur CodProdus DenumireProdus

1 - Prof.dr. Bogdan IONESCU

Dependena funcional complet

Se numete dependen funcional complet (elementar, total, deplin), o dependen funcional de forma A B n care B este dependent funcional de A, fr s fie dependent funcional de nici una din componentele lui A.
(NrFactur, CodProdus) Cantitate

NrFactur Cantitate CodProdus Cantitate

ntre grupul de atribute (NrFactur, CodProdus) i Cantitate exist o dependen funcional complet, deoarece cmpul Cantitate depinde funcional doar de (NrFactur, CodProdus) fr s depind funcional de 1 - Prof.dr. Bogdan IONESCU NrFactur sau de CodProdus.

Dependena funcional partial

O dependen funcional A B se numete dependen funcional parial dac i numai dac B este dependent funcional att de A ct i de o parte a lui A.
(NrFactur, CodProdus) CodFurnizor

NrFactur CodFurnizor CodProdus CodFurnizor

ntre CodProdus i CodFurnizor nu este o dependen funcional, deoarece un produs poate fi livrat de mai muli furnizori.
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Diagrama dependenelor funcionale

Reprezentarea grafic a dependenelor funcionale


Cod Produs
Denumire, UM, Pre de referin

NrComand
Cod Produs

Dat comand, Cantitate comandat

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Dependene Inter-Tabele i Multivaloare

Dependene Inter-Tabele (1-1)

Cnd la o valoare a atributului Cheie primar dintr-o tabel, se asociaz o singur valoare a atributului Cheie primar dintr-o alt tabel, se poate spune c exist o dependen funcional ntre tabele, exprimat prin dependena funcional dintre atributele chei primare aferente celor dou tabele

CodProfesor

NumeProfesor

Dependene Multivaloare (1-n) (n-m)


n cazul n care la o valoare a atributului Cheie primar dintr-o tabel, corespund mai multe valori ale altui atribut dintr-o alt tabel, se poate spune c exist o dependen funcional multivaloare

Nr.factur

Cod Produs

CodProfersor

1 - Prof.dr. Bogdan IONESCU

Cod Carte

Normalizarea Bazelor de Date: Dependene Multivaloare


n relaia Lucreaz(CodSectie, NumarInventarMijlocFix, MarcaAngajat) exist dependene multivaloare, deoarece: ntr-o secie lucreaz mai muli muncitori, la mai multe utilaje (mijloace fixe). Dac fiecare muncitor lucreaz la toate mijlocele fixe, atunci exist urmtoarele dependene multivaloare: CodSectie NumarInventarMijlocFix CodSectie MarcaAngajat Deci, dac exist tuplurile (Sectia1, MijFix1, 001) i (Sectia1, MijFix2, 002), atunci vor exista i tuplurile (Sectia1, MijFix1, 002) i (Sectia1, MijFix2, 001).
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date : Formele normale 1, 2, 3

DD+RG
1FN 2FN

Dicionar de date i Reguli de gestiune

1 FN

Potrivit regulilor de gestiune coroborate cu analiza informaional referitoare la aplicaia de informatizat se declar ntr-un tablou toate atributele disponibile (Identificatorul + Denumirea n clar)

3FN

O relaie R este n 1FN atunci cnd atributele sale nu pot fi descompuse n uniti mai mici O relaie R este n 2FN, dac este n 1FN i toate dependenele ntre cheia primar a lui R i celelalte atribute a lui R sunt elementare (atributele nu depind de o parte din cheie) O relaie R este n 3FN, dac este n 2FN i dac sunt eliminate toate dependenele funcionale tranzitive (dac nu exist nici o dependen funcional atributele 1 - ntre Prof.dr. Bogdan IONESCUnon-cheie)

2 FN

3 FN

Normalizarea Bazelor de Date :


1 FN O relaie R este n 1FN dac toate

DD+RG
1FN

atributele sale conin numai valori (realizri) atomice (elementare sau indivizibile);

n general, o valoare este considerat elementar, atunci cnd descompunerea ei nu mai prezint interes pentru utilizatorii finali. Fiecare relaie trebuie s conin un identificator care s o caracterizeze de o manier unic

O relaie R este n 1FN dac conine valori nerepetitive. n acest sens, o list de valori repetitive trebuie nlocuit cu un singur atribut. Atributele descompuse trebuie s fie stabile n timp (de exemplu, este preferabil a se utiliza data naterii, dect vrsta).
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date :

DD+RG
1FN

Persoana(CNP, Nume, Domiciliu) nu respect FN1, dac se dorete dezvoltarea unui sistem informatic n care s se urmreasc evidena persoanelor n funcie de localitate, strad etc.
CNP 1621018400230 2650305503507 Nume Ionescu Ion Popescu Mirela Domiciliu Bucuresti, str. Stefan cel Mare,nr.2
1 - Prof.dr. Bogdan IONESCU

Ploiesti, str. Viitorului, nr.4

Normalizarea Bazelor de Date :


Pentru aducerea relaiei n 1FN

DD+RG
1FN

atributele compuse sunt nlocuite cu atribute elementare

Persoana(CNP, Nume, Domiciliu)

Persoana(CNP, Nume, Localitate, AdresaDomiciliu)


Persoana(CNP, Nume, Localitate, Strada, ..)
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date :

DD+RG
1FN

1 FN

De asemenea, FN1 exclude apariia atributelor sau grupurilor de atribute repetitive n cadrul unei relaii.

De exemplu, relaia : Comenzi(NumrComand, Data, Material1, Material2) nu respect FN1, deoarece conine atribute repetitive. Numar Comand 11 12 13 Data Material1 Material2 Var Balastru Nisip

01/01/2008 Ciment 02/01/2008 Ciment 02/01/2008 Var

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date :


Pentru aducerea relaiei n FN1, se parcurg urmtoarele etape:

DD+RG
1FN

Pentru grupul de atribute repetitive, se formeaz o alt relaie Cheia primar din noua relaie, va fi n vechea relaie, cheie extern.
Materiale (CodMaterial, DenumireMaterial)

Comenzi(NumrComanda, Data, Material1, Material2)

Comand(NumrComanda, Data, CodMaterial)


1 - Prof.dr. Bogdan IONESCU

2 FN O relaie R este n 2FN, dac este n 1FN i

Normalizarea Bazelor de Date :

DD+RG
1FN 2FN

dac orice atribut noncheie se afl n dependen funcional complet fa de cheia primar a relaiei.
FN2 interzice existena dependenelor funcionale pariale ntre atributele cu rol de cheie primar i celelalte atribute

Relaia PieseComandate(NumrComand, CodPies, Cantitate, PreUnitar, DenumirePies) nu se afl n FN2 pentru c ntre (NumrComand, CodPies) i DenumirePies exist o dependen parial:
(NumrComand, CodPies) DenumirePies CodPies DenumirePies Numr CodPies Cantitate
Comand Pret Unitar Denumire Pies

1
1

01
02

100
150 200

20
25 20

P1
P2 P1

1 - Prof.dr. 2 Bogdan IONESCU 01

2 FN : Relaia PieseComandate prezint urmtoarele anomalii: Redunda pentru cmpurile care depind parial de cheia primar. Realizrile cmpului DenumirePies, se repet inutil Anomalii la adugare : nu se pot aduga piese dac nu s-au fcut comenzi pentru acestea Anomalii la modificare : dac se modific denumirea unei piese, atunci trebuie modificate toate nregistrrile care conin denumirea piesei respective Anomalii la tergere : tergerea unei comenzi poate conduce la tergerea definitiv a unor piese Numr CodPies Cantitate
Comand 1 1 01 02 100 150

Normalizarea Bazelor de Date :

DD+RG
1FN 2FN

Pret Unitar 20 25

Denumire Pies P1 P2

1 - Prof.dr. Bogdan IONESCU

01

200

20

P1

Normalizarea Bazelor de Date :


2 FN : Pentru aducerea relaiilor din FN1 n FN2, se parcurg urmtoarele etape: Se identific eventualele dependene funcionale pariale Fiecare dependen funcional parial va genera cte o relaie nou. Relaia nou format va avea ca structur atributele participante n dependena funcional parial. Atributele determinante devin chei externe n relaiile iniiale i chei primare n relaiile nou formate

DD+RG
1FN 2FN

Piese(CodPies, DenumirePies, PreUnitar)

PieseComandate(NumrComand, CodPies, Cantitate, PreUnitar, DenumirePies)


PieseComandate(NumrComand, CodPies, Cantitate)
1 - Prof.dr. Bogdan IONESCU

3 FN

Normalizarea Bazelor de Date :

O relaie verific FN3 dac se afl n FN2 i dac toate atributele noncheie sunt dependente funcional netranzitiv de cheia primar a relaiei (toate atributele care nu aparin cheii primare s nu depind funcional de un alt atribut.

DD+RG
1FN 2FN

3FN

De exemplu, relaia : Comand(NumrComand, Data, CodClient, DenumireClient) nu respect FN3, pentru c ntre NumrComand i DenumireClient exist o dependen funcional tranzitiv:

NumrComand 1 2 Data 01/01/2009 02/01/2009 CodClient 01 02 02 DenumireClient Ionescu Popescu Popescu

3 03/02/2009 1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date :


O relaie care nu respect FN3 prezint urmtoarele anomalii: Redundan pentru atributele determinate funcional tranzitiv Anomalii la adugare: nu se pot aduga clieni care nu au ntocmit comenzi Anomalii la modificare: dac un client i schimb denumirea, atunci trebuie modificate toate nregistrrile n care apare acea denumire de client Anomalii la tergere: tergerea unei comenzi poate conduce la tergerea definitiv a clientului din relaie
NumrComand 1 2 Data 01/01/2009 02/01/2009 CodClient

DD+RG
1FN 2FN

3FN

DenumireClient Ionescu Popescu Popescu

01 02 02

3 03/02/2009 1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date :


Pentru aducerea unei relaii din FN2 n FN3: Se identific eventualele dependene funcionale tranzitive Determinantul noncheie mpreun cu atributul sau atributele determinate funcional de ctre acesta, vor forma o nou relaie Determinantul noncheie devine cheie primar n relaia nou format i cheie extern n relaia iniial

DD+RG
1FN 2FN

3FN

Client(CodClient, DenumireClient)

Comand(NumrComand, Data, CodClient, DenumireClient)

Comand(NumrComand, Data, CodClient)


1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date : Forma normala BC

3FN

Boyce-Codd

Boyce-Codd

O relaie R este n forma BC dac este n 3FN i toate atributele non-cheie nu genereaz dependene funcionale

FNBC trateaz toate dependenele funcionale noncheie, ea fiind de fapt o generalizare a FN2 i FN3. Condiii: Exist mai multe chei candidate ntr-o relaie; O parte din cheile candidate sunt compuse; Cheile candidate compuse au atribute n comun.
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date


Relaia

Student(NrMatricol, CodFacultate, Specializare) nu respect FNBC.


Dac se presupune c un student nu se poate nscrie la mai multe specializri n cadrul aceleiai faculti, dar se poate nscrie la mai multe faculti, iar numrul matricol este stabilit independent n cadrul fiecrei faculti, relaia dispune de dou chei candidate:

(NrMatricol, CodFacultate) Specializare (NrMatricol, Specializare) CodFacultate

De asemenea mai exist i dependena Specializare CodFacultate, n care Specializare nu este cheie candidat (o specializare exist la o singur facultate). NrMatricol CodFacultate Specializare
010 011 ... 011 012 013
...

CIG CIG ... FAB FAB FAB 1 - Prof.dr. Bogdan IONESCU ...

Specializare1Cig Specializare2Cig ... Specializare1Fab Specializare1Fab Specializare2Fab


...

Normalizarea Bazelor de Date


Pentru aducerea unei relaii n FNBC, se parcurg urmtoarele etape: Se identific cheile candidate din cadrul relaiei Se identific determinanii care nu sunt chei candidate Fiecare determinant identificat la pasul 2 mpreun cu atributul determinat, va genera o nou relaie unde va fi cheie primar. n vechea relaie, acesta va deveni i cheie extern. Parcurgnd aceste etape, relaia Student va deveni:
Student(NrMatricol, Specializare)

Student(NrMatricol, CodFacultate, Specializare) Specializari(Specializare, CodFacultate)


1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date : Forma normala 4


4 FN O relaie R este n 4FN, dac este n forma BC i dac nu exist dependene funcionale multivaloare elementare n aceeai relaie (unice)

3FN

Boyce-Codd 4FN

Exemplu: o carte e scris de mai muli autori i fiecare autor scrie la toate capitolele. Adic, exist toate combinaiile posibile ntre CodAutor i NrCapitol. Ca urmare, n relaia Carte(CodCarte, CodAutor, NrCapitol) exist urmtoarele dependene multivaloare: CodCarte CodAutor NrCapitol CodCarte CodAutor/NrCapitol
111 Ionescu 1

111 Popescu
111 Ionescu 111 Popescu
1 - Prof.dr. Bogdan IONESCU ...

2
2 1 ...

...

Normalizarea Bazelor de Date : Forma normala 4

3FN

Boyce-Codd 4FN

Pentru aducerea unei relaii n FN4: Se identific dependenele multivaloare Determinantul dependenei (X) va forma cte o relaie cu fiecare atribut determinat (Y i Z) n relaiile nou formate cheile primare vor fi compuse din determinant i atributul determinat
CarteAutor(CodCarte, CodAutor) Carte(CodCarte, CodAutor, NrCapitol) CarteCapitol(CodCarte, NrCapitol)
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date : Forma normala 5

3FN

5 FN

Boyce-Codd 4FN

O relaie R este n 5FN, dac este n 4FN i trateaz cazurile n care exist mai multe dependene funcionale multivaloare care sunt interlegate ntre ele

5FN

De exemplu, fie relaia : Aprovizionare(Factura, Material, Gestiune). n aceast relaie se manifest dependene multivaloare interlegate (FacturaMaterial, MaterialGestiune, FacturaGestiune), Factura Material Gestiune dac sunt ndeplinite condiiile: F1 M1 G2 F1 conine M1 F2 M2 G1 F1 M2 G1 M1 se depoziteaz n G1 F1 M1 G1 F1 nsoete materialul n G1 F3 M3 G2 1 Prof.dr. Bogdan IONESCU Atunci, F1 conine M1 care va fi depozitat n G1.

Normalizarea Bazelor de Date : Forma normala 5


Etape FN5: Se identific dependenele interlegate Fiecare dependen interlegata se descompune conform proieciilor sale (XYZ = XY * YZ * XZ) Pentru fiecare relaie, cheia primar va fi format din atributele componente.
FacturaMaterial(Factura, Material)
Aprovizionare(Factura, Material, Gestiune)

3FN

Boyce-Codd 4FN

5FN

FacturaGestiune (Factura, Gestiune)

MaterialGestiune(Material, Gestiune)
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Matricea Dependenelor Funcionale

Formalizarea procesului de normalizare este operaional prin Matricea Dependenelor Funcionale:


MDF are pe linie toate atributele dicionarului de date MDF are pe coloan toate atributele sau numai atributele care pot avea rol de cheie primar Se noteaz 1 la intersecia liniei cu coloana pentru care exist dependen funcional Se noteaz cu M dependena multipl Se noteaz 1T dependenele funcionale tranzitive

Liniile care NU AU 1 desemneaz fie atribute care nu sunt dependente funcional de un identificator simplu, fie desemneaz atribute parametru
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE

Inventarierea atributelor (se vor selecta toate atributele referitoare la facturile primite) Numr factur Dat factur Cod furnizor Denumire furnizor Adresa, etc. Se specific regulile de gestiune i algoritmii de calcul asociai (se vor specifica diversele restricii i condiii impuse datelor) O factur este emis de un singur furnizor Codul materialului este unic O factur conine mai multe produse aprovizionate Furnizorii pot fi numai persoane juridice Algoritmii de calcul: (Val_mat_fact=Cant_facturat*Pre_unitar)
1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE

Se ntocmete dicionarul datelor Un atribut poate fi nscris o singur dat n dicionar Se elimin atributele sinonime (de ex. Cod furnizor = Simbol furnizor) Dicionarul datelor nu admite atribute derivate sau calculate (Valoare, TVA)

Nr.crt 1 2 3 4 5

Atribut n clar CodFz Cod Furnizor DenFz Denumire Furnizor AdrFz Adres Furnizor NrFact Numr Factur DataFact Dat Factur 1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE


Se stabilesc dependenele funcionale ntre atribute prin MDF Toate atributele sau grupurile de atribute determinante, devin CHEI CANDIDATE (posibile chei ale relaiei). Cheile candidate aparinnd aceleiai relaii sunt caracterizate prin dependene funcionale reciproce. Se stabilesc CHEILE PRIMARE dintre cheile candidate
CodFz DenFz AdrFz NrFact DataFact CodFz NU DenFz 1 NU 1T AdrFz 1 NU 1T NrFact DataFact

NU

1 - Prof.dr. Bogdan IONESCU

1 NU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE

Sau se stabilesc dependenele funcionale ntre atribute prin DDF


Denumire Furnizor Cod Furnizor

Adres Furnizor Dat Factur

Numr Factur

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE

Pentru atributele izolate se vor cuta grupuri de atribute ce pot constitui determinani ai acestora. Se vor cuta mai nti grupuri de chei primare, apoi grupuri de atribute non-cheie, iar n final, dac va fi cazul, se vor aduga chei surogat. Cu fiecare cheie primar i cu atributele determinate direct (fr tranzitivitate) se formeaz o nou relaie. Se stabilesc CHEILE EXTERNE

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: Etapele procesului de NORMALIZARE

Dac ntre dou chei primare exist o dependen multipl (reciproc), atunci, aceast dependen va genera o relaie. Cheia primar a acestei relaii va fi format din cele dou atribute, care, individual vor avea i rol de chei externe (in alte realtii).

FURNIZOR(CodFz, DenFz, AdrFz) FACTUR(NrFact, DataFact, CodFz)


1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: EXEMPLUL II: Evidena facturilor emise

NrFact,

CLIENTI FACTURI

CodCli,
Nume, Adresa, Tel

DataFact

PRODUSE

CodProd,

DenProd, CantFact, Pret


1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: EXEMPLUL II: Evidena facturilor emise


NrFact, DataFact, CodCli, Nume, Telefon, Adresa, CodProd, DenProd, CantFact, Pret

FN1 Descompunerea atributelor compuse ale dicionarului de date n atribute simple Precizarea identificatorului.

Dicionarul datelor (NrFact, DataFact, CodCli, Nume, Telefon, Adresa, Localitate, CodPostal, CodProd, DenProd, CantFact, PretRef, PretFact)

1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: EXEMPLUL II: Evidena facturilor emise


CLIENTI

FN2
Fiecare atribut non-cheie s depind de ntreaga cheie primar (dependene elementare).
CLIENTI (CodCli, Nume, Telefon, Adresa, CodPostal, Localitate) FACTURI(NrFact, DataFact, CodCli)

FACTURI

FACTURAT

PRODUSE

PRODUSE(CodProd, DenProd, PretRef) FACTURAT(NrFact, CodProd, CantFact, PretFact)


1 - Prof.dr. Bogdan IONESCU

Normalizarea Bazelor de Date: EXEMPLUL II: Evidena facturilor emise


FN3

Eliminarea dependenelor tranzitive

CLIENT (CodCli, Nume, Telefon, Fax, Adresa, CodPostal) FACTURA(NrFact, DataFact, CodCli) PRODUS(CodProd, DenProd, PretRef) FACTURAT(NrFact, CodProd, CantFact, PretFact) LOCALIZARE(CodPostal, Localitate)

1 - Prof.dr. Bogdan IONESCU

EXEMPLUL III: Enun + RG

O editur dorete informatizarea activitii legate de evidena stocurilor de carte produse, a autorilor i a facturilor ctre clieni.

Reguli de gestiune: a. Editura produce mai multe cri anual; b. O carte primete un Cod ISBN la fiecare retiprire; c. Crile sunt scrise de ctre autori. Un autor poate scrie mai multe cri; d. Clienii editurii sunt numai persoane juridice; e. O factur conine cel puin o carte i o carte poate figura pe mai multe facturi; f. Preul de vnzare se stabilete n momentul producerii unei cri, acesta fiind un pre orientativ, rmnnd neschimbat pn la epuizarea tirajului, preul efectiv de vnzare fiind negociat cu fiecare client;
1 - Prof.dr. Bogdan IONESCU

EXEMPLUL III D.A.


1 Cod ISBN Denumire carte Data apariiei Stocul tiprit Preul de baz Numr factur Data factur Cantitatea facturat Denumire Carte facturat Pret Carte factur Valoare Carte factur Total factur Cod Fiscal Client Denumire Client Adresa client Telefon CNP autor Nume Prenume Data naterii Adresa autor

Din studiul activitii editurii au rezultat urmtoarele atribute: Se elimin atributele sinonime i calculate
CRI
Cod ISBN .........

2 3 4 5 7 8 9 10 11 12

? ?

AUTORI
CNP autor .........

13 14 15 16 17

CLIENI
CF client

FACTURI
Nr Factur

18 19 20 21

.........

.........

1 - Prof.dr. Bogdan IONESCU

CRI
Cod ISBN

EXEMPLUL III D.A.


? FACTURI
Nr Factur .........

.........

CRI
Cod ISBN .........

CONINUT FACTUR
Nr Factur, Cod ISBN .........

FACTURI
Nr Factur .........

1 - Prof.dr. Bogdan IONESCU

EXEMPLUL III D.A.


CRI
Cod ISBN .........

AUTORI
CNP autor .........

CRI
Cod ISBN .........

AUTORI CRTI
Cod ISBN, CNP autor

AUTORI
CNP autor .........

1 - Prof.dr. Bogdan IONESCU

Matricea dependentelor functionale

Data factura

CNP autor

Cod fiscal client

Cod ISBN Denumire carte Data aparitiei

Denumire client

Pret carte factura

Nume prenume

Cantitate facturata

Telefon

Data nasterii
1

Adresa client

Cod ISBN Den. carte Data aparitiei Stocul tiparit Pret de baza Numar factura Data factura Cantitate facturata Pret carte factura Cod fiscal client Denumire client Adresa client Telefon CNP autor Nume prenume Data nasterii Adresa autor Cod ISBN + Numar factura CNP + Cod ISBN

1 1

1 1

1 1

1T

1T

1T

1T

1T

1T

1T

1T

1T

1 - Prof.dr. Bogdan IONESCU

Adresa autor
1

Pret de baza

Numar factura

Stocul tiparit

Matricea dependentelor functionale

Data factura

CNP autor

Cod fiscal client

Cod ISBN Denumire carte

Denumire client

Pret carte factura

Cantitate facturata

Nume prenume

Data aparitiei

Telefon

Data nasterii
1

Pret de baza

Adresa client

Cod ISBN Numar factura Cantitate facturata Pret carte factura Cod fiscal client CNP autor Cod ISBN + Numar factura CNP + Cod ISBN

1 1 1 1T 1T 1T

1 1 1

Se observ din matrice, c PretCarteFactura i CantitateFacturat sunt atribute izolate i c nu exist un grup de chei primare sau grup de atribute noncheie care s le determine funcional. Astfel, se identific grupul de atribute SerieFactur, NumarFactura si CodISBN, vor determina funcional cele dou cmpuri izolate. Noua tabela va fi ContinutFactura (NumarFactura, SerieFactura, CodISBN) CantitateFacturat 1 - Prof.dr. Bogdan IONESCU (NumarFactura, SerieFactur, CodISBN) PretCarteFactura

Adresa autor

Numar factura

Stocul tiparit

AUTORI
Nume camp Tip date Number,LI Text, 50 Text, 100 Date/Time Obligatoriu Da Da Da Da <=Data curenta Unic Da Integritate Referentiala Reguli de validare

CNP
Nume prenume Adresa Data nasterii

AUTORI-CRI
Nume camp Tip date Number,LI Text,13,M Obligatoriu Da Da Unic Integritate Referentiala Da Da Reguli de validare

CNP

Cod ISBN

CRI
Nume camp Tip date Text, 13,M Text, 50 Date/Time Currency Currency Obligatoriu Da Da Da Da Da <=Data curenta >0 Unic Da Integritate Referentiala Reguli de validare

CONINUT FACTUR

Cod ISBN
Denumire carte Data aparitiei Stocul tiparit Pret baza

........
Cod ISBN

........

1 - Prof.dr. Bogdan IONESCU >0

FACTURI
Nume camp Tip date Text,5,M Number, LI Number , LI Obligatoriu Da Da Da Da Unic Da Integritate Referentiala Reguli de validare

Serie factura
Numar factura Cod Fiscal

CONINUT FACTUR
Nume camp Tip date Text,5,M Number, LI Obligatoriu Da Da Unic Da Integritate Referentiala Da Da Reguli de validare

Serie factura Numar factura Cod ISBN Cantitate fact Pret factura

Text, 13,M
Number, Int Currency

Da
Da Da

Da
>0 >0

CLIENI
Nume camp Tip date Obligatoriu Unic Integritate Referentiala Reguli de validare

Cod fiscal
Denumire client Adresa Telefon

Number, LI
Text,50 Text,100 Text,20

Da
Da Da

Da
Da

1 - Prof.dr. Bogdan IONESCU

1 - Prof.dr. Bogdan IONESCU

MRD mbuntit prin adugarea de noi reguli de gestiune

APROVIZIONAREA
Editura comand tirajul fiecrei apariii editoriale ce urmeaz a fi tiprit la o tipografie (ce are in acest exemplu calitatea de FURNIZOR). Aceasta livreaza carti editurii, care atunci cnd le recepioneaz ntocmete Nota de Recepie i Constatare de Diferene (NRCD).

FURNIZORI(CodFiscalFz, DenumireFurnizor, Adresa, Localitate, ..)


NRCD(Nr.NRCD, CodFiscalFz, DataAproviz, MijlocTransport, etc)

CARTI_APROVIZIONATE(Nr.NRCD, Cod_ISBN, CantitateIntrata, PretAprovizionareFaraTVA, PretAprovizionareCuTVA se calculeaz in tabela) CARTI(Cod_ISBN, .) 1 - Prof.dr. Bogdan IONESCU

MRD mbuntit prin adugarea de noi reguli de gestiune

GENURI, COLECTII si DOMENII


Editura are ca obiect de activitate editarea de carti si manuale universitare. Crile editate sunt mprite pe tipuri sau genuri (manual, culegere, carte specialitate, etc.). Aceste tipuri sunt utile editurii, la acreditari si in relaiile cu Biblioteca Naional.
Cartile apartin unor colectii tematice (InfoBD, InfoProg, ContaGen), iar colectiile apartin unui domeniu tiinific (sau de interes didactic), cum ar fi : Analiza economica, Audit, Contabilitate, Informatica, Finante, Management, Marketing, etc. GENURI (CodGenLiterar, NumeGenLiterar) COLECTII (CodColectie, Nume Colectie, Cod Domeniu) DOMENII (Cod Domeniu, Nume Domeniu)
1 - Prof.dr. Bogdan IONESCU CARTI(Cod_ISBN, .., CodGenLiterar, CodColectie)

MRD mbuntit prin adugarea de noi reguli de gestiune

COORDONATORI
Cartile pot avea unul sau mai multi coordonatori. Coordonatorii reprezinta autorii unei aparitii editoriale in raporturile juridice cu editura. Coordonatorii pot fi sau nu, autori.

COORDONATORI(CNPCoordonator, NumeCoordonator, Adresa, Localitate, Afiliere, etc) COORDONATORI_CARTI(Cod_ISBN, CNPCoordonator) CARTI(Cod_ISBN, .)


1 - Prof.dr. Bogdan IONESCU

CONTRIBUTIA AUTORILOR LA OPERA (I)


Cartile au mai multe capitole si sectiuni. Se defineste o sectiune ca fiind un interval de pagini ce constituie o contributie cuantificabila a unui autor. Un capitol poate avea mai multe sectiuni. Un autor poate scrie intervale de pagini in cadrul unuia sau a mai multe capitole. Numarul de pagini scrise reprezint procent din opera si este important pentru calculul drepturilor de autor. Problema cuantificarii contributiei ar fi urmatoarea : a) fiecare autor are o contributie totala intr-o carte sub forma unui numar total de pagini, care reprezinta procent din opera

AUTORI(CNP Autor, ..)


CONTRIBUTIE_AUTORI(Cod_ISBN, CNP Autor, Nr.PaginiContributie)

CARTI(Cod_ISBN, .)

1 - Prof.dr. Bogdan IONESCU

CONTRIBUTIA AUTORILOR LA OPERA (II)

b) Fiecare autor isi identific contributia sub forma unui interval de pagini, fie la nivel de capitol (ar mai interveni inca o tabela si ar fi de exemplu : cap IV Ionescu pag 45-56; 73-80; Stanciu pag 23-37, etc), fie la nivel de opera.

AUTORI(CNP Autor, ..) CARTI(Cod_ISBN, .)


CAPITOL_CARTE(NrCapitol, NumeCapitol, Pag.Inceput, Pag.Sfarsit, Cod_ISBN) SECTIUNI_AUTORI(Cod_Sectiune, Nr.Capitol, Cod_ISBN, CNP Autor, Pag.Inceput, Pag.Sfarsit) SECTIUNI(Cod_Sectiune, Nume_Sectiune)
1 - Prof.dr. Bogdan IONESCU

MRD mbuntit prin adugarea de noi reguli de gestiune

DREPTURI AUTOR (I)


Fiecare apariie editoriala este purttoare de drepturi de autor. Drepturile de autor sunt stabilite in forma procentuala din veniturile nete inregistrate de carte la vanzarea sa (din pretul de vanzare, numit si pretul de baza sau catalog se deduce comisionul vanzatorului).

CARTI(Cod_ISBN, ., ProcentDrepturiAutor,)

1 - Prof.dr. Bogdan IONESCU

DREPTURI AUTOR (II)


Se abordeaz problema prin prisma CONTRACTULUI DE EDITARE. Acesta ar specifica procentul drepturilor de autor si care este coordonatorul lucrrii. Coordonatorul reprezint autorii intr-un contract de editare. Rmne de vzut dac se face asocierea dintre fiecare carte si fiecare autor, prin tabela intermediara AUTORI_CARTI sau se abordeaz aceeai problem prin Coordonator(i) carte care ii reprezint pe autori, CARTI(Cod_ISBN, ., )
CONTRACT_EDITARE(Nr.ContractEditare, DataContractEditare, Tiraj Total, Data primei aparitii, (ProcentDrepturiAutor) , Primul tiraj, Cod_ISBN) COORDONATORI_CARTI(Nr.ContractEditare (Cod_ISBN), CNPCoordonator) COORDONATORI(CNPCoordonator, NumeCoordonator, .)
1 - Prof.dr. Bogdan IONESCU

FACTURAREA
Factura este unica la nivel de editura; O factura contine mai multe carti livrate, iar o carte figureaz pe mai multe facturi; Cota de TVA este marcata pe factura, deoarece din punctul de vedere al editurii, continutul facturii este omogen, adica se vand numai carti. Altfel, daca se schimb regula de gestiune si editura livreaza si altceva, cu cote diferite de TVA, atunci se poate trece cota de TVA pe CONTINUT FACTURA. Pe fiecare factura se marcheaz un delegat din partea editurii
CLIENTI(CodFiscalClient, Nr_inreg.RC, )

FACTURI(NrFactura, DataFactura, DataScadentei, Cota_TVA, CodFiscalClient, CNP_Delegat)


CONTINUT_FACTURA(NrFactura, Cod_ISBN, Cantitate, Reducere_comerciala) DELEGAT(CNP_Delegat, CI_serie, CI_numar, ..)
1 - Prof.dr. Bogdan IONESCU CARTI(Cod_ISBN, .)

INCASAREA
Pentru a evidentia platile facute de clienti pentru cartile primite, adica incasarile editurii, putem aborda urmtoarea modelare :
CLIENTI(CodFiscalClient, Nr_inreg.RC, )

INCASARE_CLIENT(TipDoc.Incasare-Nr.Doc.Incasare, , CodFiscalClient)
Iar pentru faptul ca unii clienti platesc partial facturile, se asociaz facturile cu incasarile. FACTURA_INCASATA(NrFactura, TipDoc.Incasare-Nr.Doc.Incasare, DataIncasarii, SumaIncasata) FACTURI(NrFactura, DataFactura, DataScadentei 1 - Prof.dr. Bogdan IONESCU , ..)

Algebra relaional
Algebra relaional poate fi definit ca un set de operatori, care prelucreaz relaii n scopul obinerii altor relaii. Operatorii relaionali se mpart n : operatori de asamblare reuniunea; intersecia; diferena; produsul cartezian operatori unari : proiecia; selecia operatori de extensie : compunerea; diviziunea
1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Asamblare


Operatorii de asamblare sunt operatori binari, care primesc la intrare dou relaii i genereaz la ieire o singur relaie.
Operatori Binari Relaie1 Relaie3

Relaie2

Operatorii de asamblare sunt: Reuniunea; Intersecia; Diferena; Produsul cartezian.


1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Asamblare:R


Reuniunea a dou relaii R i S, cu aceeai structur, unde R
este format din n tupluri i S este format din m tupluri, are ca rezultat o a treia relaie T, avnd aceeai structur cu a relaiilor surs i coninnd m +n tupluri. Relaia T (R reunit cu S) Relaia R Relaia S
A
a1 a2

B
b1 b2

C
c1 c2

A a3 a4 a5

B b3 b4 b5

C c3 c4 c5

A a1 a2

B b1 b2

C c1 c2

a3

b3
b4 b5

c3
c4 c5

Ex. Care sunt furnizorii care au livrat cel puin unul dintre produsele A i B = reuniunea furnizorilor care au livrat A cu fz. care au livrat 1 B- Prof.dr. Bogdan IONESCU

a4 a5

Algebra relaional: Operatori de Asamblare:I


Intersecia a dou relaii R i S cu aceeai structur este o relaie T,
(cu aceeai structur), coninnd tuplurile identice aparinnd att lui R ct i lui S.
Relaia T (R intersectat cu S)
Relaia A a1 a2 a4 B b1 b2 b4

R
C c1 c2 c4 A

Relaia B

S
C

A a4

B b4

C c4

a3
a4 a5

b3
b4 b5

c3
c4 c5

Ex. Care sunt furnizorii care au Ex. Care sunt zilele n livrat i produsul A i produsul B = care au fost cumprate intersecia tabelelor de furnizori care autoturismele A i B auBogdan livrat A cu fz. care au livrat B 1 - Prof.dr. IONESCU

Algebra relaional: Operatori de Asamblare:D


Diferena a dou relaii R i S avnd aceeasi structur (R-S), este
o relaie T, cuprinznd mulimea tuplurilor aparinnd lui R dar neaparinnd lui S. Diferena nu este comutativ. Atributele relaiei diferen (T) sunt cele ale primei relaii (desczutul), iar tuplurile care sunt extrase din relaia desczut, nu se regsesc n relaia scztor Relaia R Relaia S Relaia T R-S
A B C A a3 a4 B b3 b4 b5 C c3 c4 c5

a1
a2

b1
b2

c1
c2

A a1 a2

B b1 b2

C c1 c2

Ex. Care sunt clienii care au cumprat produsul A, fr a-l cumpra pe B

a5

1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Asamblare:PC


Produsul cartezian a dou relaii R i S (RxS) este o relaie T
stocnd mulimea perechilor obinute prin concatenarea nregistrrilor aparinnd lui R cu cele aparinnd lui S.
Relaia R A a1 a2 B b1 b2 C c1 c2 Relaia S D d1 d2 E e1 e2

Relaia T RxS A B C D E a1 b1 c1 d1 e1

a1
a1 a2 a2 a2

b1
b1 b2 b2 b2

c2
c3 c1 c2 c3

d2
d3 d1 d2 d3

e2
e3 e1 e2 e3

c3

d3

e3

1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori Unari


Operatorii unari se aplic asupra unei relaii i genereaz o alt relaie. Operatorii unari opereaz prin restricii.
Operatori Unari
Relaie1 Relaie2

Operatorii unari permit decuparea unei relaii pe orizontal : Selecia i pe vertical: Proiecia
1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori Unari:Pr


Proiecia unei relaii R dup anumite atribute, este relaia R1 cu
structura R1 (Ai1, Ai2, , Aip), ale crei tupluri se obin prin eliminarea valorilor atributelor din R care nu apar n R1 i prin suprimarea tuplurilor identice (dubluri) . Altfel spus, prin intermediul proieciei, dintr-un tabel cu un anumit numr de coloane se obine unul cu un numr mai mic de coloane
Relaia R A a1 a2 B b1 b2 C c1 c2 D d1 d2

Relaia R1 R1 (R;A,B) A a1 B b1

a2
a3
1 - Prof.dr. Bogdan IONESCU

b2
b2

a3

b3

c3

d3

Algebra relaional: Operatori Unari:Sel


Selecia relaiei R fa de criteriul Q este relaia R1 cu aceeai structur ca i R, ale crei tupluri satisfac criteriul specificat.

Altfel spus, prin operatorul de selecie, dintr-un tabel cu un anumit numr de coloane se obine unul cu aceleai coloane, dar cu un numr mai mic de rnduri. Selecia triaz dintr-o tabel numai tuplurile ce satisfac o condiie precizat (printr-un predicat).
Relaia R A a1 a2 a3 B b1 b2 b3
1 - Prof.dr. Bogdan IONESCU

R1SELECTIE(R;A=a2 OR A=a3) R2SELECTIE(R;A=a2 AND B=b2)

R1 Relaia R2 A B

a2
a3

b2
b3

Algebra relaional: Operatori de Extensie


Operatorii de extensie joac un rol foarte important n interogarea bazelor de date relaionale.

Operatorii de extensie sunt: Compunerea (fuziunea / jonciunea); Diviziunea.

1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Extensie: Join


Produsul cartezian era o fuziune necondiionat a dou tabele. COMPUNEREA reprezint fuziunea a dou relaii care au o proprietate comun.

Fie 2 relaii R1(A1, A2, ...., An) i R2(B1,B2,......Bm), care au 2 atribute (comune) Ai i Bj, definite pe acelai domeniu de valori, i ansamblul operatorilor de comparaie {=, >, <, >=, <=, <>}ce pot fi aplicai celor dou atribute Ai i Bj.
Theta-Compunerea relaiei R1, prin Ai, cu relaia R2, prin Bj (R1 R2) este relaia R3 ale crei tupluri sunt obinute prin concatenarea fiecrui tuplu al relaiei R1, cu tuplurile relaiei R2, pentru care este verificat condiia instituit ntre Ai i Bj. Un caz particular al theta-compunerii este echi-compunerea, atunci cnd operatorul de comparaie este =

Echi-comp. pentru care exist o denumire identic a atributelor de legtur dintre cele 2 tabele compunere 1 - Prof.dr. Bogdan IONESCU natural

Algebra relaional: Operatori de Extensie: Join


COMPUNEREA este echivalent unui produs cartezian urmat de o selecie (i eventual de o proiecie). Relaia R1 A a1 B b1 C c1 Relaia R3R1R2 A a1 a1 a1 R1.B b1 b1 b1 C c1 c1 c1 R2.B b1 b2 b3 D d1 d2 d3

Relaia R2 B D

b1
b2 b3

d1
d2 d3

R4=Selecie(R3, R1.B=R2.B) A B C D
1 - Prof.dr. Bogdan IONESCU

a1

b1

c1

d1

Algebra relaional: Operatori de Extensie: Join


Cele 3 tipuri de jonciuni prezentate (theta, echi, natural) sunt de natur intern i prezint 2 extensii: Compunerea extern; Semicompunerea

Compunerea extern include n tabela rezultat i tupluri din una


dintre relaii, sau din ambele relaii, care prezint valori ale atributului de legtur ce nu se regsesc n cealalt relaie n cazul compunerii externe trebuie s se precizeze din care relaie se vor prelua tuplurile fr corespondent n cealalt relaie. Din acest punct de vedere exist:

compunere extern la stnga (left outer join) compunere extern la dreapta (right outer join) compunere extern total (reuniunea celor 2 relaii) 1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Extensie: Join


R1
A
a1
a2

R2
C
c1
c2

B
b1
b2

C
c1 c3 c5

D
d1 d2 d3

E
e1 e2 e3

R3(R1,R1.C=R2.C,R2) A B R1.C R2.C D E


a1 a3 b1 b3 c1 c3 c1 c3 d1 d2 e1 e2

a3

b3

c3

A
a1 a2 a3

B
b1 b2 b3

R1.C R2.C
c1 c2 c3 c1 Null c3

D
d1 d2

E
e1 e2

Left Outer JOIN

Null Null

Right Outer JOIN

A
a1

B
b1 b3

R1.C
c1 Null c3

R2.C
c1 c5 c3

D
d1 d3 d2

E
e1 e3 e2

Null Null

Compunere total

a3

1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Extensie: Join


Semicompunerea a 2 tabele presupune selectarea tuplurilor din
prima tabel care apar n jonciune cu tuplurile din a doua tabel
R1

R2 C
c1 c2

SemiCompunere
E
e1 e2 e3

A
a1 a2

B
b1 b2

C
c1 c3 c5

D
d1 d2 d3

A
a1 a3

B
b1 b3

C
c1 c3

a3

b3

c3

R3(R1,R1.C=R2.C,R2) A
a1 a3

B
b1 b3

R1.C R2.C c1 c3 c1 c3

D
c1

E
d1

d2 e2 1 - Prof.dr. Bogdan IONESCU

Algebra relaional: Operatori de Extensie: Div


R1 A
a1 a2 a3 a1

B
b1 b1 b1 b1 b1 b1 b2 b2

Diviziunea relaiei R1 prin relaia R2 este relaia R3 format din toate tuplurile care, concatenate cu fiecare tuplu din R2, returneaz ntotdeauna un tuplu din R1 (R3 = R1 R2).

R2

a3
a4 a1 a3 a5 a1 a3 a4 a1 a2 a3 a5

b2 b2
b2 b2 b3 b3 b3 b3 b3 b3 b4 b4 b4 b4 b4 b4 b5 b5 b5 b5 b5 b5 b5 b5

R3

b1 b2 b3 b4 b5

A
a1 a3

Care dintre valorile a1, a2, a3, a4 i a5 apar n relaia R1, n tupluri, mpreun cu toate valorile atributului B (mpritor) din R2, respectiv b1, b2, b3, b4, b5 ?

1 - Prof.dr. Bogdan IONESCU

S-ar putea să vă placă și