+ Concepte de baza
Reprezentarea datelor;atribu, tuple, relati,cheie primara, cheie strana
— Constrangeri de integrate (integritatea entitati, integritatea relatiei)
+ Constrangeri de integritate
+ Operatori
— PROJECT
— SELECT
— PRODUCT
— UNION
— DIFFERENCE
— INTERSECT
— JOIN
+ Tabele, randuri, coloane
+ SGBDR-F
gulile lui Codd
Concepte de baza
Datele sunt reprezentate sub forma unor structuri bidimensionale,
asemanatoare tabelelor
Modelul relational nu include regulile, structurile, operatiile referitoate la
implementarea fizica a unui sistem de baze de date: utilizatorul poate
obtine datele utilizand un limbaj ne-procedural (declarativ) care ii permite
sa descrie datele in loc sa specifice calea catre date; implementarea
sistemului e complexa, proiectarea, utilizarea, mentenanta aplicatiei este
simpla
Datele sunt reprezentate ca structuri bidimensionale, relatii
O relatie este alcatuita dintr-un numar finit de elemente numite atribute.
Fiecare atribut poate lua valori int-un domeniu finit, numit domeniu,
Numarul de atribute ale unei relatii: aritate (cardinalitate)
Elementele unei relatii: tupluri (tuples) sau inregistrari (records).
Relatie — — Tabel
Imegistrare mp Rand in tabelaExemplu: Relatia Student
Fiecare atribut poarta un nume unic in cadrul relatiei:
Fiecare atribut are doar valor atomice:
Fiecare tuplu este unic intr-o relatie;
Set de atribute care identifica in mod unic un tuplu: eh
Definitii: cheie primara, chei alternative, chei compuse (th. sa fie minimale);
cheie straina: un atribut sau o multime de atribute ale unei relatii R1 care
se gaseste si in relatia R2 si este cheie primara a lui R2; Obs: RI nue in
mod necesar distineta de R)
candidata;
Modelul relational
‘Un exemphu in care relatile RI si R2 sunt identice: modelatea unei relatii ierathice folosind
‘modelul relational
In tabelul de mai jos, coloana manager contine valoarea din coloana cod corespunzatoare
‘managerului personnei de la integistvarea cuenta: astfel Petseseu si Marin au ca manager pe
Ton, pentru ca valoarea din coloana manager pentru Petrescu si Marin este 1. valoarea codului
ppersoanei cu numele Ion. Manager este cheie straina pentru cod, in tabela angajat. Pentru ca
acest mecanism sa functioneze corect, cod trebuie sa identifice in mod unic inregistrarile din
tabela Angajat. Cod este deci cheie primara in tabela angajat. Referinta
angajat
=a Sea
“aConstrangeri de integritate
Integritatea entitatii
Pentru asigurarea integritatii entitatii,
+ Ocheie primara nu poate avea atribute care pot avea valoarea Null;
+O cheie primara trebuie sa fie unica si minimala;
Integritatea referintei
Pentru asigurarea integritati referintei, valoarea unei chei straine trebuie sa fie
+ Null (sau)
+ ovaloare a cheii primare la care face referinta;
Operatori relationali
Operatorii relationali se studiaza in cadrul algebrei relationale. Codd a definit
8 operatori, primii 4 fiind identici cu operatorii traditionali folositi in
operatiile cu multimi:
+ UNION (uniune)
INTERSECT (intersectie)
+ DIFFERENCE (diferenta)
+ PRODUCT (produs eartezian)
Urmatorii 4 operatori sunt specifici operatiilor cu baze de date:
* PROJECT (proiectie)
+ SELECT (selectie)
+ JOIN Goin)
* DIVISION (diviziune)PROJECT
Operatorul de proiectie extrage numai un set restrans de atribute dintr-o tupla
sau mai multe tuple, Este echivalenta unei operatiuni de SELECT.
Observatie: operatiunea de proiectie poate conduce la obtinerea unor tuple
(inregistrari) duplicate, daca prin proiectie se elimina atributul sau
atributele care asigura unicitatea tuplelor (cheia primara).
SELECT C.A SELECT DISTINCT CA,
FROMR: FROMR:
Modelul relational
SELECT
Operatorul de selectie (instructiunea SELECT in SQL) extrage tuple dintr-o
relatie, limitand rezultatul 1a acele tuple (inregistrari) care indeplinese 0
anumita conditie. Select este echivalent unei proiectii cu filtrare, In SQL,
filtrarea se efectueaza prin utilizarea clauzei WHERE.
SELECT CA
FROMR
WHERE A~'x1 or B‘y1";PRODUCT
Produsul cartezian aplicat relatiilor R si $ are ca rezultat o relatie cu un
numar de atribute egal cu suma atributelor celor doua relatii si cu un
numar de tuple egal cu produsul numarului de tuple ale celor doua relatii.
Produsul cartezian este echivalent unui join fara nici o restrictie (care se
poate modela cu un SELECT pentru toate coloanele celor doua tabele si
fara nici o conditie de filtrare).
R Ss RxS
SELECT *
FROMR,
UNION
== == == Caorae
— 2 FROMR
. UNION
R s RUS SELECTCD
FROM S,
DIFFERENCE
SELECTAB
So FS
ae — FROMR
fs—t
— MINUS
R s R-S SELECTCD
FROM SINTERSECT
Operatoru! de interseetie selecteaza acele tuple care apar in ambele relatii
care participa la operatie. In SQL se modeleaza cu operatorul
INTERSECT.
= — E SELECTAB
ise FROMR
R s RAS INTERSECT
SELECTCD
FROMS.
JOIN THETA-JOIN
NATURAL JOIN
OUTER JOIN
NATURAL-JOIN
In SQL, INNER JOIN modeleaza NATURAL JOIN : doua relatii sunt
conectate prin atributele lor comune. Pentru a preveni produsul cartezian,
se foloseste INNER JOIN. Pentru a conecta n tabele (evitand produsul
cartezian) trebuie folosite n-1 INNER JOIN.
a—E_E FS = £
R Ss
SELECTR.A,RB, S.D,SE
FROMR. S|
WHERE RC = SD:OUTER-JOIN
R Ss
SELECT RA, RB, S.D, SE
FROMR, S.
WHERE RC (+)=SD:
THETA-JOIN
—r 4 ahi bah ahr
ies he a beh aha
R Ss
SELECT *
FROMR, S.
WHERE RC < SD:
+ Tabele, randuri, coloane
* SGBDR ~ Regulile lui Codd
Proiectarea bazelor de date relationale
+ Crearea schemei conceptuale
+ Crearea design-ului logic al bazei de date
+ Normalizarea bazei de date
* Prima forma normala (1NF — First Normal Form)
+ A doua forma normala (2NF ~ Second Normal Form)
+ A ueia forma nommala (SNF ~ Third Normal For)
+ Forma nommala Boyce-Codd (BCNF ~ Boyce-Codd Normal Form)
+ A patra forma normala (NF ~ Fourth Normal Form)Tabele, randuri, coloane
Relatii Tabele
Atribute Coloane
Tuple
Inregistrari
Regulile lui Codd
1
3
Regula reprezentarii logice a datelor: Int-0 baza de date relationala, toate datele
sunt reprezentare la nivel logic intr-un singur mod, si anume sub forma de valori
logice in tabele
Regula accesului la date: Toate datele individuale din tabele uebuie sa fie accesibile
prin funizarea numelui tabelului, numelui coloane si valori cheii primare.
Regula reprezentarii valorilor necunoseute: Un sistem relational trebuie sa
permita dectararea si manipularea sistematica a valorilor Null, eu semificatia unor
valori necunoscute sau inaplicabile.
Regulile lui Codd (continuare)
8.
Regula dictionarului de date: Descrierea bazei de date (dictionarul de date) trebuie
sa fie reprezentata la nivelul logie tot sub forma de tabele, astfel incat asupra acesteia
sa se poata aplica aveleasi operati ca si asupra datelor proprit-zise
Regula limbajului de acces: Intr-un sistem relational trebuie sa existe cel putin un
limbaj de accesare a datelor, care sa asigure ummatoarele operati: definirea tabelelos
de baza sia tabelelor virtuale (view-uri, vederi): manipulatea si interogarea datelor
(tat interactiv cat si prin program); definirea restric satitate, autorizarea
accesului la date, delimitarea tranzactiilor.
‘Regula de actualizare a tabelelor virtuale: Un SGBD trebuie sa poata determina
daca o vedere poate sa fie actualizata sau nn.
‘Regula manipularii datelor- Un sistem relational trebuie sa ofere posibilitatea
procesarii tabelelor nu numai in operatile de interogare a datelor cat si in cele de
inserare, actualizare si stergere
Regula independentei fizice a datelor: Aplicatile (1a nivel logic) nu webuie sa
depinda de modul de stocare si acvesare fizica a datelorModelul relational
Regulile lui Codd (continuare)
10,
Mu.
Regula independentei logice a datelor: Programele de aplicatie nu trebuie sa fie
afectate de nici o restrucnuzate logica a tabelelos bazei de date care conserva datele.
Regula independentei datelor din punctul de vedere al integritatii: Regulile de
integritate a bazei de date trebuie sa fie definite in limbajul utilizat de sistem pentru
definirea datelor si nu in cadrul aplicatilor individuale: in plus. aceste reguli de
integritate tebuie stocate in dictionarul de date
Regula independentei datelor din punctul de vedere al distribuiril: Progiamele de
aplicatie nu trebuie sa fie afectate de distribuirea pe mai multe calculatoare a bazei de
date.
.. Regula privind prelucrarea datelor de catre un limbaj de nivel inferior: Daci
sistemul de gestiunea bazelor de date pune la dispozitia utiizatorilor o interfaya de
nivel inferior (la nivel de inregistrare) atunei interfafa nu poate si submineze sistem,
de exemplu, prin nerespectarea tmei constrangeri de integritate sau a unei limita
‘mpuse prin politica de securitae,
Regula de baza: Un SGBD relational trebuie sa fie capabil sa gestioneze baza de date
‘exclusiv pe bazn caracteristicilor sale relationale.
Proiectarea bazelor de date relationale
o Crearea schemei conceptuale
o Crearea design-ului logic al bazei de date
o Normalizarea bazei de dateRaul ML ASO MOCE KB COLLe
Crearea schemei conceptuale a bazei de date
Modelul entitate-relatie
Entitate
Obiect de interes pentru care trebuie sa existe date inregistrate
Exemplu
Increnza la :
Facultate Profesor
Fiecare entitate e denumita
studiaza Ia preda in mod unic
Pentru fiecare entitate se
dao descriere detaliata
tudent Curs
Proiectarea bazelor de date relationale
Irene
face parte din
Profesor J
preda
‘ofera curs
Curs
studiaza la
Student ‘wmenzaProiectarea bazelor de date relationale
este dvr a
Inreza [Profesor j
T
face parte dia
este decan la
Facultate preda
ofera urs
stucinza Ia
Proiectarea bazelor de date relationale
Were Profesor J
face parte din -—
| preda ——_preda
Facultate J Gus
I
face parte din ofera ems
—— Seminar J
face parte din
Grupa ofera seminar.
face parte dinProiectarea bazelor de date relationale
Relatie
Entitatile pot forma relatii intre ele
Relatiile sunt reprezentate prin verbe
Intre doua entitati poate exista mai mult decat o relatie (exemplu)
Cardinalitatea unei relatii: numarul maxim de entitati din fiecare entitate
care participa la o relatie.
Exemple:
Multi la unul (many-to-one N:1) Mo
vir Faculte)
I
Unu la unu (one-to-one 1:1) 1
ain Faculte]
Multi la multi (many-to-many N:M M oN,
Proiectarea bazelor de date relationale
Discutie
Cardinalitate minima/maxima
Atribut al unei entitati, atribut al unei relatii
‘Model entitate-legatura si model relational
O entitate devine un tabel
Un atribut al unei entitati devine o coloana a tabelului respectiv
(O relatie va fi reprezentata fie printr-un tabel special (M:N). fie print-o
cheie straina intr-unul dintre cele doua tabele-entitate, care face
referire la o cheie primara in celalalt tabel-entitate.
Chei primare, Chei naturale si chei artificiale
Avantaje ale folosirii cheilor artificiale:
+ Stabiltatea
+ Simplitaren;
+ Nuprezinta ambiguitai;
+ Elmina valorile Null (accideutale)Proiectarea bazelor de date relationale
Diagrama entitate-legatura
FACULTATE PROFESOR
Imcreaza In| $04 profesor
pretane
cod frculate adresa
tune faculate data_nastere
advesa didactic
studiaza la fr
STUDENT CURS
See cod_curs
deseriere
Proiectarea bazelor de date relationale
Diagrama entitate-legatura — adaugare campuri + tabela relatie M:N
PROFESOR
ccod_profesor
FACULTATE
reane
7 Toonz a Pesan
sin ute data_natere
aes erad_didactc
cod_facultate
studiaza la
STUDENT
urmeaza
student-curs
cod_student smume_curs
snume deseriere
prenume cod_profesor
data_nastere
cod_facultateautour lec mova me mer lpr riser le
Superentitate/subentitate
PERSONAL
ccod_personal
sume
prenume
adresa
data_nastere
PROFESOR
sera didactic
PERSONA!
profesie
Proiectarea bazelor de date relationale
Entitate dependenta/entitate master
cod_curs
dleseriere
‘Modul e o entitate dependent de entitatea curs (un curs e format din mai multe
module), Cardinalitate intre master si detaliu: 1-M, cel putin 1:0 (un curs nu are nti
‘un modul)
Entitate recursivaProiectarea bazelor de date relationale
Crearea design-ului logic al bazei de date
Transformarea entitatilor
+ Entitatle devin tabele
Entitatile dependente devin tabele dependents
Subentitatile devin subtabele (tabele ale earor cheie primara contine cheie straina ce
face referinta la cheia primaza a tabelul superentitate)
‘Transformarea relatiilor
+ Relatiile 1:1 devin chei straine, cheia strana fiind plasata in tabelul eu mai purine
inregistran.
Relatia N:I devine cheie straina plasate in tabelul care se afla in partea “multi” a
rolatiei. Exemplu:o facultate are mai mult student, un student e la 0 sinaura faeulate
+ Oselatie multi-multi NoM se tansforma ints-un tabel asociatv. care ase doua ehei
straine pentru cele doua tabele asociate. Exemplu: mis ml studenti-le ai mate sit
Transformarea atributelor
Atributele simple ale unei entitati devin coloane in tabelul provenit din relatie.
+ Awibutele sepetitive (multivaloare) devin tabele dependente care contin o eheie
strana ce face referinta la cheia primara a entitati si atsiburul multi-valoase.
Atributele simple ale unei velatii M:N vor deveni coloane ale tabelului asociativ
Proiectarea bazelor de date relationale
Normalizarea bazei de date
a VT
ic 5 208
Dependente functionale pentru care determinantul nu este cheie a tabelului:
cod_client > {nume_client, numar_telefon}
cod_comanda
cod_articol -> {mime_articol, cost_atticol}
{data, cod_client, nume_client, nr_telefon}Proiectarea bazelor de date relationale
Datorita dependentelor prezente intre atributele relatiei, pot aparea urmatoarele anomali:
redundante in date;
Anomialit de actualizare
Anomalie la insertie:
Anomalie la stergere:
Anomalie Ia modificare
Anomaliile apar datorita dependentelor din baza de date, dependente pentru care
determinantul nu este cheie a tabelului
‘Normalizarea: procesul reversibil de descompunere a unui tabel relational in tabele cu 0
structura mai simpla, proces care are ca scop evitarea redundantei datelor si evitarea
‘anomaliilor de actualizare
Reversibil: descompunerea se face fara pierdere de informatie.
auetaarlecr Mm orVAd meCMerinm edly le
Normalizarea bazei de date
tPoterca | zxmo0i[c1 ons 208 Pr ino ‘a
[ssteecu—| sore ras 28 3 ——Teses {a0}
. foosame [ar
frase Pe
fosamaxNormalizarea bazei de date
de date
INF First Nosmal Form)
‘+ Normalizarea bai
+ Prim forma nora
+A dows forma normal (2NF— Second Normal Form)
+A trea fora normal (GNF "Third Normal Form)
+ Forma normals Boyee-Codd (BCNF ~ Boyee-Codd Normal Form)
‘+A patra forma normal (NF Fourth Nosmal Form)
Normalizarea bazei de date
Prima forma normala (INF ~ Flrst Normal Form)
Prien forms normal este o form norma wilt in nralizare hazel de date
Incalar ale primei forme normale,
(1) Mal mute valet sermifiatve in acetal camp
wile penn sek inept pars
fe contin n acelin mist
parca fear ir
utile Za
‘ek lneisaiNormalizarea bazei de dateraed
Ny rea bazei de date
‘A doua forma normala 2NF-~ Second Normal Form)
A dou forma aoe
lemon us tabele a fe JepondoatsFaetonl do ttaitatea cei
Dac ul sa a mu: elements sua depsadeatfanctinal mma deo pate a cei pina ate le
‘ec separate table die
aca bela ate occ prima fount din ana un at acc est automat in 2NF (2-4 ona
Exempt fe otabela"C
(Cosa primar este o chai compu fora din ComandalD si RepertD,
ReperNumo dopa aun de RepolD, ms do Conan.
Pett in INF, bell ebuie mex nfl ur
‘Toate atnibetle non shee st (sbi sa Fie) mata indepen,
Bem
Tala Piese de sci, in ar choi pra (si ceie wicaeste Pes de ch
ProducatorTaNINb Acero
Forma normala Boyee-Codd (BCNF — Boyce-Codd Normal Form)
Boyce-Ciad versiune putin mal resis deforma no
Incarul uni forme nmi 3, toate stb depinde deo chee, che i intregie |
(asa sane ajte Codd 2,
rma do chsie
Tabla de mi jos sen 3NF penta toate tbl depn de o chess msi deo sh 8 ote
‘acoso, exis ore, deorece pec cia oer cata) (SI, AT) (82, A2) sade
‘oe dea in ae
Se pt elimina ast de rsdundante dup cam umes: dn tol ntl se elimina colons “cod aod"
se ereoazs un no tbe, c stile "ead sofe”si"cod auto” cu dar? colane, constitind
impeeuns choi primar a nou ako. Talo rezalate sunt ia FNBC (BC
Inexerplal de al jos, car esta
primar este format dia
1 de dist, Peni cass hia
sexist bate noche,
‘nc forma normal america (1. 2 5 on H-C)- Dar dcoaece variate de pizza ofr de
sunt independent ear de ith, exist odunant in abel: pent fecare
atoneaza de 3 ori ea se ofa Tip de piesa “Puos"- De asemenea, daca doi sa
Sebtire™ pent Tip de psa, a Jemy's va trust aig 3 registra, cate
spon care Are de disrbute
Sclts este descompunersa in do abel, separa dependentle si cRestarnt