Documente Academic
Documente Profesional
Documente Cultură
Acest pas presupune transformarea relaţiilor extrase din modelul de date logic global într-o
formă care să poată fi implementată in SGBD ţintă.
Este necesară cunoaşterea funcţionalităţii SGBD ţintă, de exemplu:
- dacă sistemul acceptă definirea cheilor primare, străine şi alternative;
- dacă sistemul acceptă definirea datelor necesare (adică a unor atribute ca fiind NOT
NULL)
- dacă sistemul acceptă definirea domeniilor
- dacă sistemul acceptă definirea constrângerilor întreprinderii
- cum se creează relaţiile de bază.
Pentru fiecare relaţie identificată în modelul de date logic global vom avea o definiţie formată
din:
- denumirea relaţiei
- listă de atribute simple (între paranteze)
- cheia primară (PK), şi după caz, cheile alternative (AK) şi cheile străine (FK)
- constrângerile de integritate corespunzătoare oricărei chei străine (FK) identificate
1
BAZE DE DATE CAP. 8
Proiectul logic iniţial a fost adaptat funcţionalităţii SGBD ţintă (MS-Access). În continuare
sunt prezentate câteva exemple ale acestui proces de adaptare (rafinare):
2
BAZE DE DATE CAP. 8
3
BAZE DE DATE CAP. 8
În cadrul tabelelor:
- se specifică cheia primară
- se setează proprietăţile câmpurilor: field size, format, input mask, caption, default
value, validation rule/text, required.
- Se creează liste de tip „lookup”, ca cea pentru tipul de proprietate:
O dată create toate tabelele proiectate, se realizează relaţiile dintre acestea şi se impune
integritatea referenţială.
4
BAZE DE DATE CAP. 8
Cascade Update Related Fields: modificarea unei valori din cheia primară din tabelul părinte
declanşează automat reactualizarea valorilor corespunzătoare din toate înregistrările legate.
Cascade Delete Related Records: ştergerea unei înregistrări din tabelul părinte duce la
ştergerea tuturor înregistrărilor legate din tabelul copil.
Constrângerile întreprinderii, provenite din lumea reală, pot influenţa reactualizările relaţiilor.
Exemplu: Un angajat nu poate administra mai mult de 10 proprietăţi. Constrângerile trebuie
reproiectate în funcţie de SGBD ales, respectiv invers, SGBD se alege astfel încât să permită
implementarea acestei constrângeri.
Pentru Access implementarea constrângerilor de întreprindere se realizează de exemplu cu
limbajul Visual Basic, care lucrează cu baze de date în Access.
A: realizarea unui raport în care sunt enumerate proprietăţile de închiriat din cadrul fiecărei
filiale
B: crearea şi întreţinerea înregistrărilor referitoare la clienţii din cadrul fiecărei filiale
C: enumerarea vizitelor efectuate de clienţi, cunoscând adresele proprietăţilor vizitate
5
BAZE DE DATE CAP. 8
Figura 1. Harta cu modelul ER simplificat cu numerele estimate de apariţii ale fiecărei entităţi
În colţul din stânga sus al fiecărei entităţi este trecut estimarea numărului total de apariţii ale
acesteia (numărul de înregistrări din tabel). Se indică de asemenea valorile medii şi maxime
ale apariţiilor dintr-o entitate copil, asociate unei apariţii din entitatea părinte.
Astfel:
- În tabelul „Filiala” sunt înregistrate 50 de filiale.
o Unei filiale îi sunt alocate în medie 240 şi maxim 300 proprietăţi de închiriat.
o La o filială sunt înregistraţi în medie 400 şi maxim 500 de chiriaşi.
- În tabelul „Proprietate_de_Închiriat” sunt înregistrate estimativ 12000 proprietăţi (50
filiale x 240 proprietăţi, în medie/filială).
o O proprietate de închiriat este vizitată (apare în „Vizitare”) în medie de 20 şi
maxim de 40 de ori.
- În tabelul „Chiriaş” sunt înregistraţi estimativ 20000 de chiriaşi (50 filiale x 400
chiriaşi în medie/filială)
o Un chiriaş efectuează în medie 10 şi maxim 20 de vizitări.
- În tabelul „Vizitare” sunt înregistrate estimativ 360000 vizitări (12000 proprietăţi de
închiriat x 30 vizitări /proprietate)
6
BAZE DE DATE CAP. 8
În harta b) sunt afişate operaţiile de inserare (I), citire (C), reactualizare (R) sau ştergere (Ş)
împreună cu calea corespunzătoare tranzacţiilor A, B şi C.
A: realizarea unui raport în care sunt enumerate proprietăţile de închiriat din cadrul
fiecărei filiale
Tranzacţia A deci necesită accesarea tabelului „Filiala” şi citirea (C) a datelor din acest tabel.
Prin intermediul atributului Nr_Filială (cheie primară în Filiala şi cheie străină în
Proprietate_de_Închiriat) se citesc (C) proprietăţile de închiriat oferite de fiecare filială.
7
BAZE DE DATE CAP. 8
De asemenea se pot înregistra şi ziua şi ora estimată la care va fi rulată fiecare tranzacţie,
inclusiv momentul sau intervalul de încărcare maximă. Pentru tranzacţiile care accesează
frecvent baza de date, modelul lor de execuţie se documentează ca în cazul exemplului de mai
jos, referitor la tranzacţia D:
Singurele operaţii necesare pentru tranzacţia D sunt de citire (C), documentate în figura de
mai sus. Atributele utilizate ca puncte de acces, de intrare sunt notate cu (P).
În cadrul tranzacţiei D se accesează tabelul „Filiala”, punctul de acces fiind atributul cheie
primară Nr_Filială, care se citeşte (C). Din tabelul „Filiala”, prin mecanismul cheie primară-
cheia străină (Nr_Filiala) se citesc (C) în tabelul „Proprietate_de_Închiriat” datele referitoare
le toate proprietăţile oferite de o anumită filială. Atributul „Tipul” se utilizează ca punct de
intrare pentru interogare (clientul caută un anumit tip de proprietate).
La accesarea unui număr de filială din „Filiala” se accesează tabelul
„Proprietate_de_Inchiriat” de 48 – 300 ori (există minim 48 de proprietăţi din fiecare tip
disponibile la o filială, şi o filială oferă maxim 300 de proprietăţi).
8
BAZE DE DATE CAP. 8
În cazul interogării a mai multe tabele simultan (interogare de tabele multiple) viteza de
interogare poate fi mărită prin indexarea câmpurilor din ambele părţi ale firului relaţiei (din
ambele părţi ale uniunii) şi prin indexarea câmpurilor pentru care se utilizează criterii de
interogare. De exemplu în tabelul „Proprietate_de_Închiriat” se vor indexa câmpurile frecvent
interogate „tipul” şi „zona”.
Este indicat să se creeze numai indexuri care se presupune că vor îmbunătăţi performanţele
sistemului, deoarece întreţinerea indexurilor încarcă suplimentar resursele, ceea ce ar putea
avea ca rezultat final scăderea vitezei sistemului.
9
BAZE DE DATE CAP. 8
Exemplu: Entitatea Personal poate conţine un nou atribut derivat (Nr_Proprietati) care arată
câte proprietăţi administrează fiecare membru al personalului. Valoarea acestui atribut se
derivă din entitatea Proprietate_de_Inchiriat, după atributul NrPer (fig. 1.45).
PROPRIETATE_DE_INCHIRIAT
NrPro Strada Zona Orașul CodP Tipul Camere Chirie Nr_Ptr NrPer NrFil
PA14 1 ABC A1 Bucuresti 1234 Casa 6 650 CO46 SA9 B7
PL94 2 DEF B2 Bucuresti 5678 Apart. 4 400 CO87 SL41 B5
PG4 3 GHI C3 Bucuresti 9101 Apart. 3 350 CO40 SG14 B3
PG36 4 JKL D4 Bucuresti 1112 Apart. 3 375 CO93 SG37 B3
PG21 5 MNO E5 Bucuresti 1314 Casa 5 600 CO87 SG37 B3
PG16 6 PQR F6 Bucuresti 1516 Apart. 4 450 CO93 SG14 B3
PERSONAL
NrPer Prenume Nume Adresa MAN Nr_Fil Nr_Proprietati
SL21 I V AB123 WK442011B B5 0
SG37 A B CD456 WL432514C B3 2
SG14 D F RT789 WL220658D B3 2
SA9 M H GH654 WM532187D B7 1
SG5 S D SD963 WK588932E B3 0
SL41 I L BN741 WA290573D B5 1
Exemplu:
Tranzacţia E: Enumerarea numărului proprietăţii, oraşului, tipului, chiriei şi avansului pentru
închiriere (conform regulilor de afaceri: avansul = 2 x chiria).
Interogarea trebuie să cuprindă toate câmpurile cerute plus un câmp calculat (derivat) pentru
„avans”. Pentru a evita rularea repetată a interogării, se preferă adăugarea unui câmp
suplimentar în tabelul de bază, „Proprietate_de_Închiriat”, câmp numit „Avans”, unde se trece
avansul pentru fiecare proprietate, calculat de operatorul uman la înregistrarea sau
actualizarea proprietăţii respective.
Deci la executarea tranzacţiei E nu mai trebuie calculat (prin rularea interogării) avansul
pentru fiecare proprietate.
10
BAZE DE DATE CAP. 8
Există situaţii în care se dublează anumite atribute sau se grupează relaţii pentru a reduce
numărul de uniuni necesare pentru efectuarea unei interogări.
Astfel la introducerea unei filiale noi nu trebuie de repetat toate informaţiile legate de oraş.
Totuşi se întâmplă rar să dorim să accesăm adresa filialei fără atributele corespunzătoare zonei
şi oraşului. Păstrând atributele oraşului într-o relaţie separată înseamnă că, ori de câte ori
dorim adresa completă a filialei, trebuie de efectuat uniunea celor 2 relaţii.
11
BAZE DE DATE CAP. 8
Pentru a evita rularea interogării de fiecare dată (necesitatea realizării uniunii între cele 2
tabele), în tabelul „Proprietate_de_Închiriat” se introduce o redundanţă controlată, anume
câmpul „Nume” (care există şi în tabelul „Personal”).
12
BAZE DE DATE CAP. 8
Este obligatorie pentru stabilirea performanţelor hardware cerute pentru implementarea bazei
de date. Se determină astfel dacă pe moment sau în viitor este necesare achiziţionarea de
hardware mai performant.
Figurile de mai jos arată vizualizarea de proiectare (Design View) a interogării selective QBE
(Query By Example) şi formularul realizat în baza interogării, formular cu care lucrează
supervizorul.
13
BAZE DE DATE CAP. 8
Privilegiile sunt acţiunile pe care un utilizator are voie să le efectueze asupra unei relaţii de
bază sau vederi.
14
BAZE DE DATE CAP. 8
O dată deschisă BD, toate obiectele (tabele, interogări, formulare etc.) sunt puse la dispoziţia
utilizatorului.
Figura de mai jos ilustrează caseta de dialog pentru definirea grupurilor şi conturilor de
utilizator.
15
BAZE DE DATE CAP. 8
Figura de mai jos ilustrează caseta de dialog pentru acordarea permisiunilor de utilizator şi de
grup. Se reglementează modul în care se lucrează cu fiecare obiect din BD.
Un control mai fin se realizează prin definirea de grupuri (conturi de grup) noi, cărora li se
acordă anumite permisiuni (de grup). Apoi se adaugă utilizatorii care fac parte din acest grup,
care au implicit toate drepturile grupului din care fac parte, dar ale căror drepturi pot fi
modificate individual, astfel încât să fie mai multe sau mai puţine faţă de grup.
16
BAZE DE DATE CAP. 8
Reglarea din mers a bazei de date de către administratorul BD prezintă anumite avantaje:
- se evită necesitatea procurării de hardware adiţional
- se poate micşora configuraţia hard
- timpul de răspuns scade, transferul devine mai eficient
- ca urmare cresc productivitatea întreprinderii, moralul angajaţilor şi satisfacţia
clienţilor.
Orice modificare de reglare poate în acelaşi timp îmbunătăţi o aplicaţie şi strica alta. Este de
dorit să se verifice/testeze întâi modificarea pe o bază de date de încercare, sau atunci când
sistemul nu este complet utilizat (în afara orelor de lucru).
În MS-Access se introduc câmpuri cu tip de date (data type): OLE (Object Linking and
Embedded = legarea şi înglobarea de obiecte). Acestea permit stocarea de date cum ar fi
documente MS-Word sau MS-Excel, figuri, sunete sau alte tipuri de date binare create în alte
programe. Obiectele OLE pot fi legate de sau înglobate într-un câmp dintr-un tabel sau
formular în Access şi pot fi afişate.
Această cerinţă se satisface prin crearea întâi a unui raport adecvat, care să conţină câmpurile
dorite pentru a fi vizualizate în Internet, după care în baza acestui raport se realizează Pagina
de acces la date. Pentru ca pagina de acces la date creată să fie activată, este necesară legătura
la Internet şi un browser adecvat.
17
BAZE DE DATE CAP. 8
Rezumatul capitolului 8
Teste de autoevaluare
18