Documente Academic
Documente Profesional
Documente Cultură
1
1 Analiza bazei de date
1.1 Formele normale ale tabelelor
Una din cerinele ce trebuie s le indeplineasc o baz de date este aceea de amenine
datele corecte. Aceasta const n a avea date precise i actualizate. Pentru a ndeplini
aceast cerin trebuie minimizat redundana datelor. Redundana apare cnd aceeai
informaie este memorat n mai multe locuri n baza de date. Dac datele redundante nu
sunt actualizate n toate locurile baza de date devine incoerent. Tabelele ce conin date
care se repet n unul sau mai multe cmpuri se impart n mai multe tabele ntre care
exist legturi. Acest proces se numete normalizare.
2
astfel: nu exist niciun atribut din R care nu este atribut primar care s fie parial
dependent de o cheie oarecare.
Notm cu P mulimea atributelor primare. Atributele ce nu sunt primare sunt date de
mulimea R P.
Pentru a arta modul de transformare al unei relaii n a doua form normal, vom
considera relaia din Figura 1. In aceast figur, atributele primare sunt marcate cu *.
3
Figura 3. Dependena tranzitiv.
In acest caz spunem c atributul C este tranzitiv dependent de atributul A. Dependena
tranzitiv este reprezentat grafic n Figura 3. Dependena funcional A C rezult din
relaiile de dependen funcional A B i B C.
Dac aceste dependenele funcionale nu exist, atunci spunem c atributul C nu este
tranzitiv dependent de atributul A.
4
Figura 5. Transformarea relaiei din Figura 4 n a treia form normal.
ORE_EXECUTATE
5
ANGAJATI
ORE_EXECUTATE
ANGAJATI
Fie tabela ANGAJATI. Ea nu este n a treia form normal deoarece exist dependena
funcional DPT_ANG SAL_ORA, salariul orar depinde de departamentul n care
salariatul este angajat i nu de cheie. Celelalte condiii sunt ndeplinite, adic nu exist
dependenele funcionale DPT_ANG ID_ANG i SAL_ORA ID_ANG. Pentru a
transforma tabela se vor reine dependenele funcionale ntre atibutele care nu sunt
primare i cheie. Conform figurilor de mai sus vom crea dou noi relaii (tabele):
ANGAJATI(ID_ANG, NUME_ANG, DPT_ANG),
SALARIU(DPT_ANG, SAL_ORA).
Aceste noi tabele sunt artate mai jos.
6
ANGAJATI
In a doua tabel atributul DPT_ANG a devenit cheie primar aa cum este cerut de
figura de mai sus.
SALARIU
DPT_ANG SAL_ORA
Informatica 60
Suport 40
Documentare 25
7
Figura 9. Aplicaia Table Analyzer, pasul I.
Figura 10 prezint pasul al doilea al aplicaiei Table Analyzer. Se prezint modul de
rezolvare a problemei. Aplicaia genereaz noi tabele n care informaia este memorat o
singur dat.
8
Figura 10. Aplicaia Table Analyzer, pasul II.
La pasul urmtor din Figura 11 se selecteaz tabela de analizat.
9
Figura 11. Aplicaia Table Analyzer, pasul III, selectarea tabelei de analizat.
La pasul urmtor din Figura 12 se poate decide dac divizarea cmpurilor n tabele se
face de ctre aplicaie sau manual.
10
Figura 12. Aplicaia Table Analyzer, pasul IV.
In Figura 13 se arat cele dou tabele create de aplicaie. Aplicaia genereaz nume
standard pentru tabelele create: Table1, Table2, etc. Se arat legtura ntre tabele. Cheia
extern din tabela Table1 are numele standard Lookup to Table2. Aplicaia a stabilit cheia
primar doar pentru tabela cu numele Table2. Menionm c putem schimba att numele
tabelelor ct i cheile primare.
Numele tabelelor se pot schimba astfel:
1. se selecteaz tabela generat la care vrem s schimbm numele,
2. clic pe butonul Rename Table, , care afiaz o caset de dialog n care
introducem numele dorit.
11
Figura 13. Tabelele create de Table Analyzer i relaia ntre ele.
In final, tabelele create de aplicaia Table Analyzer i legtura ntre ele sunt cele din
Figura 14.
12
Figura 14. Modificarea numelui tabelelor create de Table Analyzer.
In caseta din Figura 15 sunt artate tabelele cu noile nume. Se pot alege sau modifica
acum cheile primare pentru tabelele create.
13
Figura 15. Relaia creat de Table Analyzer.
Se alege cheia primar a tabelei PROIECTE_ANGAJATI. Se selecteaz cele dou
cmpuri, ID_PRJ i ID_ANG ce vor constitui cheia primar a tabelei, i clic pe butonul
Primary Key, . Rezultatul este cel din Figura 16. Pentru tabela SALARIU aplicaia a
ales ca i cheie primar cmpul SAL_ORA. Alegerea cmpului DPT_ANG ca cheie
primar era mai semnificativ.
14
Figura 16. Alegerea cheii primare n tabela PROIECTE_ANGAJATI.
In ultima etap, din Figura 17 se creaz o interogare ce corespunde tabelei originale.
15
Figura 17. Crearea unei interogri a tabelelor create.
Tabela rezultat a interogrii este cea din Figura 18.
16
In final prezentm cele dou tabele generate de Access. Tabela cu date
PROIECTE_ANGAJATI este cea din Figura 19. Cheia extern Lookup to SALARIU
creat de aplicaie ne permite s vedem legtura cu tabela SALARIU.
17
Tabela cu date SALARIU este artat n Figura 22. la un clic pe butonul se expandeaz
nodul corespunztor i se vd toate nregistrrile din tabela PROIECTE_ANGAJATI ce
au ca cheie extern cheia primar corespunztoare din tabela SALARIU, vezi Figura 23.
18
Figura 25. Proiectarea tabelei PROIECTE.
PRODUSE_FURNIZORI
Se cere:
s se proiecteze tabela,
s se analizeze tabela cu aplicaia Table Analyzer.
19
1.4 Intrebri de control
1. Care este definiia primei forme normale a unei tabele?
2. S se enune definiia celei de a doua forme normale a unei tabele i algoritmul de
trecere la a doua form normal,
3. S se enune definiia celei de a treia forme normale a unei tabele i algoritmul de
trecere la a treia form normal.
20