Documente Academic
Documente Profesional
Documente Cultură
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
Operatori de asamblare (Reuniunea, Intersecia, Produsul cartezian, Diferena) Operatori unari (Proiecia, Selecia) Operatori de extensie (Compunerea, Diviziunea)
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
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
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
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
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:
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
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
111 S.C. Alfa S.A. 112 S.C. Beta S.A. 112 S.C. Beta S.A.
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 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;
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;
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
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.
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
ntre CodProdus i CodFurnizor nu este o dependen funcional, deoarece un produs poate fi livrat de mai muli furnizori.
1 - Prof.dr. Bogdan IONESCU
NrComand
Cod Produs
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
Nr.factur
Cod Produs
CodProfersor
Cod Carte
DD+RG
1FN 2FN
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
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
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
DD+RG
1FN
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
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)
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
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
DD+RG
1FN 2FN
Pret Unitar 20 25
Denumire Pies P1 P2
01
200
20
P1
DD+RG
1FN 2FN
3 FN
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:
DD+RG
1FN 2FN
3FN
01 02 02
DD+RG
1FN 2FN
3FN
Client(CodClient, DenumireClient)
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
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 ...
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 ...
...
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
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.
3FN
Boyce-Codd 4FN
5FN
MaterialGestiune(Material, Gestiune)
1 - Prof.dr. Bogdan IONESCU
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
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
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
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 NU
Numr Factur
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
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).
NrFact,
CLIENTI FACTURI
CodCli,
Nume, Adresa, Tel
DataFact
PRODUSE
CodProd,
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)
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
CLIENT (CodCli, Nume, Telefon, Fax, Adresa, CodPostal) FACTURA(NrFact, DataFact, CodCli) PRODUS(CodProd, DenProd, PretRef) FACTURAT(NrFact, CodProd, CantFact, PretFact) LOCALIZARE(CodPostal, Localitate)
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
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
.........
.........
CRI
Cod ISBN
.........
CRI
Cod ISBN .........
CONINUT FACTUR
Nr Factur, Cod ISBN .........
FACTURI
Nr Factur .........
AUTORI
CNP autor .........
CRI
Cod ISBN .........
AUTORI CRTI
Cod ISBN, CNP autor
AUTORI
CNP autor .........
Data factura
CNP autor
Denumire client
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
Adresa autor
1
Pret de baza
Numar factura
Stocul tiparit
Data factura
CNP autor
Denumire client
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
........
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
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).
CARTI_APROVIZIONATE(Nr.NRCD, Cod_ISBN, CantitateIntrata, PretAprovizionareFaraTVA, PretAprovizionareCuTVA se calculeaz in tabela) CARTI(Cod_ISBN, .) 1 - Prof.dr. Bogdan IONESCU
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.
CARTI(Cod_ISBN, .)
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.
CARTI(Cod_ISBN, ., ProcentDrepturiAutor,)
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, )
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
Relaie2
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
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
a1
a2
b1
b2
c1
c2
A a1 a2
B b1 b2
C c1 c2
a5
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
Operatorii unari permit decuparea unei relaii pe orizontal : Selecia i pe vertical: Proiecia
1 - Prof.dr. Bogdan IONESCU
Relaia R1 R1 (R;A,B) A a1 B b1
a2
a3
1 - Prof.dr. Bogdan IONESCU
b2
b2
a3
b3
c3
d3
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
R1 Relaia R2 A B
a2
a3
b2
b3
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
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
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
R2
C
c1
c2
B
b1
b2
C
c1 c3 c5
D
d1 d2 d3
E
e1 e2 e3
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
Null Null
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
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
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 ?