Documente Academic
Documente Profesional
Documente Cultură
CUPRINS
PREFA ............................................................................................................................... 3
3
CAPITOLUL I
INTRODUCERE N TEORIA BAZELOR DE DATE
DIN CUPRINS:
I.1 DEFINIII I APLICATIVITATE
I.2 CATEGORII DE PERSONAL
I.3 NOIUNI SPECIFICE BAZELOR DE DATE
I.4 MODELAREA DATELOR
I.5 MODELAREA FIZIC
I.6 ARHITECTURA BAZELOR DE DATE
I.7 REZUMATUL CAPITOLULUI
I.8 TERMENI SPECIFICI
I.9 APLICAIE PROPUS
I.10 TEST-GRIL
Baze de date_________________________________________________________________
Ci dintre noi au folosit o baz de date sau mai precis ci dintre noi au beneficiat de
serviciile unui server de baze de date? n prezent, aproape n toate activitile se acceseaz o
baz de date, pentru gestionarea persoanelor, serviciilor sau a obiectelor cu care se lucreaz.
Orice aplicaie online are n spate o baz de date. Dac folosii un program de mesagerie,
primul pas este acela de autentificare. Numele de utilizator i parola de acces pe care le
introducei sunt comparate cu datele dumneavoastr personale stocate n baza de date de pe
serverul de autentificare. Dac ai fcut vreodat cumprturi online, datele dumneavoastr ca
i client exist deja n baza de date a magazinului online. De asemenea, orice activitate
administrativ sau financiar desfurat de diverse instituii (serviciul de eviden a
populaiei, direciile de taxe i impozite, ageniile de asigurare, aplicaiile online de plat a
facturilor etc.) utilizeaz baze de date care permit organizarea eficient a informaiilor i
accesul rapid, sigur, local i de la distan la acestea.
Baza de date (BD, Database - DB) constituie o aplicaie fundamental n toate domeniile de
activitate, civile sau de aprare: financiar, administrativ, educaional, informaional, de
comunicaii i, nu n ultimul rnd, cel al calculatoarelor.
Sistemele de baze de date, ca aplicaii software, reprezint poate cea mai important realizare
din domeniul ingineriei programrii pe calculator.
Prin baz de date se nelege orice colecie partajat de date, ntre care exist relaii logice,
care conine descrierea datelor i este proiectat pentru a satisface necesitile
informaionale ale unei organizaii sau ale unui grup de utilizatori.
6
___________________________________________________________Luminia Scripcariu
n prezent, orice activitate de gestiune din orice domeniu de activitate implic folosirea unei
baze de date, cu acces local sau de la distan, cu caracter public sau privat. Orice BD este
gndit ca o resurs unic, utilizat simultan de mai muli utilizatori.
Complexitatea i dimensiunea BD evolueaz rapid, determinnd reproiectarea algoritmilor de
stocare i acces al fiierelor i chiar schimbarea unor principii de administrare a acestora.
Avantajele utilizrii bazelor de date sunt numeroase. BD asigur independena program-date,
sunt scalabile, flexibile, portabile i permit controlul accesului i al manipulrii datelor.
BD stocheaz datele, eliminnd redundanele, i, prin prelucrarea acestora, furnizeaz
informaii.
n funcie de aplicaia pe care o deservete, BD pot fi centralizate sau distribuite n reea, iar
modalitile de gestionare difer de la caz la caz. Sistemul de programe software care permite
crearea, administrarea i accesarea bazei de date este numit sistem de gestiune a bazei de
date (SGBD).
De exemplu, pentru BD cu un volum mic sau mediu de date se pot folosi ca SGBD
programele MS Access, Visual Fox, Dbase, FoxPro iar n cazul BD care stocheaz un volum
mare de date sunt recomandate programele produse de compania Oracle.
7
Baze de date_________________________________________________________________
Securitatea unei aplicaii de baze de date are n vedere stabilirea drepturilor de acces la
BD, a drepturilor de citire, scriere, modificare sau tergere a obiectelor i datelor din baza
de date i chiar a ntregii baze de date.
8
___________________________________________________________Luminia Scripcariu
O entitate este un obiect distinct inclus n BD asociat unei persoane, firme, unui loc,
document sau concept etc.
Un atribut este o proprietate care descrie un anumit aspect al unui tip de entitate.
Atributele pot lua valori unice sau multiple, pot fi impuse sau opionale, pot avea caracter
volatil sau nu, i de asemenea pot juca un anumit rol n descrierea unui tip de entitate, numit
cheie.
Cheia este un atribut sau un grup de atribute care identific n mod unic o entitate.
9
Baze de date_________________________________________________________________
Pentru un tip de entitate, pot fi mai multe atribute de tip cheie, dar un singur atribut sau set de
atribute este folosit la un anumit moment pentru identificarea unic a entitilor nregistrate
ntr-un tabel din BD i acela se numete cheie primar (PK Primary Key).
Celelalte chei sunt denumite chei alternative sau chei candidat.
Proiectarea unei baze de date ncepe cu identificarea entitilor i a atributelor care vor fi
folosite pentru modelarea datelor. Proiectarea este n general fcut de o echip cu mai multe
persoane care trebuie s pun cap la cap, ntr-o aplicaie unic, ceea ce a realizat fiecare n
parte. Este posibil ca pentru acelai obiect sau atribut s se foloseasc denumiri diferite. De
exemplu, pentru entitatea student, unul dintre proiectani poate folosi atributul numr
matricol, altul cod_student, altul id_student, toate acestea avnd de fapt acelai rol, acela de
identificare fr echivoc a fiecrui student n parte. Este necesar ca atunci cnd se reunesc
entitile i atributele create de toi membrii echipei de proiectare, s se defineasc n mod
unic toate elementele din BD i descrierea lor s apar n clar n dicionarul de sistem. De
asemenea, este util stabilirea unor convenii de lucru, care s permit proiectarea ntr-un
mod unitar a BD de ctre toi membrii echipei.
ntre diferitele tipuri de entiti, se stabilesc relaii care descriu interaciunile dintre obiectele
reprezentate n BD.
10
___________________________________________________________Luminia Scripcariu
Orice BD este creat cu scopul de a manipula datele prin operaii specifice (introducere,
extragere, tergere, modificare) i de a extrage informaiile eficient, folosind un limbaj de
manipulare a datelor (DML Data Manipulation Language).
prenume
CNP
nume
STUDENT
numr specializarea
matricol
studiaz
An de Titular
studiu DISCIPLINA de curs
Codul denumire
disciplinei
STUDENT
numr matricol
nume
prenume
CNP
specializarea
Crearea structurii n care sunt stocate datele se realizeaz cu ajutorul unui limbaj de definire
a datelor (DDL Data Definition Language). Acesta permite denumirea entitilor BD i a
relaiilor logice dintre acestea n schema bazei de date, cu specificarea tipurilor i
structurilor de date, precum i a modurilor de vizualizare personalizate.
11
Baze de date_________________________________________________________________
Acea parte a unui limbaj DML utilizat pentru regsirea datelor n BD se numete limbaj de
interogare (Query Language).
DDL i DML sunt considerate sublimbaje de date care pot fi ncorporate ntr-un limbaj de
nivel nalt denumit i limbaj gazd.
SQL Structured Query Language este limbajul specific bazelor de date.
Prima aplicaie de baze de date a fost creat de compania Oracle n anii 80, iar limbajul SQL
(Structured Query Language) a devenit limbajul de programare standard pentru aplicaiile cu
baze de date.
SQL este un limbaj de interogare a BD, neprocedural, care constituie limbajul standard
pentru SGBD relaionale. SQL include comenzi de definire a structurii BD, de manipulare a
datelor precum i de securizare a accesului la BD prin stabilirea i/sau revocarea drepturilor
utilizatorilor.
Un alt limbaj de manipulare a datelor din BD este limbajul QBE (Query by Example).
SQL i QBE sunt limbaje din a patra generaie (4GL Fourth Generation Language) care
definesc ce trebuie fcut i nu cum se procedeaz. Limbajele din generaia a treia sunt
procedurale i complicate sintactic.
Limbajele 4GL sunt de mai multe tipuri:
limbaje de prezentare (de interogare, generatoare de rapoarte, generatoare grafice
etc.)
limbaje de specialitate (de exemplu, pentru calcul tabelar)
generatoare de aplicaii (care construiesc aplicaii folosind datele din BD)
limbaje de nivel foarte nalt (care genereaz codul-surs al aplicaiei).
Utilizatorii BD sunt n general persoane cu interese diferite referitoare la informaiile care pot
fi extrase din BD. De aceea, este necesar s se creeze aa-numite vederi din BD, n mod
distinct pentru fiecare categorie de utilizatori n parte.
Modelarea datelor reprezint etapa de nceput a proiectrii unei baze de date. Operaia de
modelare include stabilirea entitilor i a atributelor acestora precum i a relaiilor dintre ele.
14
___________________________________________________________Luminia Scripcariu
PROFESORII: n care sal se ine cursul de la disciplina pe care o predau? Care este lista
studenilor dintr-o grup? Unde scriu notele obinute de studeni la examen n BD? Ce medie
are o grup la examen? Care sunt studenii restanieri?
SECRETARELE: Care este adresa de domiciliu a studentului X? La ce numr de telefon
poate fi gsit un student? Ce vrst are un student?
Observm din acest exemplu c sunt mai multe categorii de beneficiari sau utilizatori ai bazei
de date respective, cu cerine diverse i drepturi diferite.
Identificarea entitilor din BD i a atributelor lor se va face astfel nct BD s poat oferi
rspuns la toate ntrebrile utilizatorilor.
Se adopt o anumit strategie de definire a entitilor i atributelor acestora, precum i de
creare a tabelelor asociate lor, lund n considerare att vederile externe care vor fi create, ct
i cerinele de securitate ale aplicaiei.
n dezvoltarea aplicaiei respective se vor avea n vedere aspectele de securitate, nc din faza
modelrii datelor.
Cerinele informaionale ale organizaiei care solicit realizarea unei bazei de date trebuie s
fie corect i complet reflectate de modelul ER creat pentru acea aplicaie.
Figura I.3 prezint o parte din diagrama ER asociat modelului conceptual creat pentru baza
de date a unei faculti.
n acest caz, s-au avut n vedere cerinele personalului de la secretariatul facultii de a putea
citi din baza de date informaii specifice despre fiecare student, precum i de a cunoate
componena fiecrei grupe i mprirea lor pe specializri.
15
Baze de date_________________________________________________________________
Este esenial analiza n detaliu a modelului creat, pentru eliminarea tuturor redundanelor i
a elementelor care pot crea ambiguiti i erori n prelucrarea sau acualizarea datelor.
Primul model pentru baze de date a fost creat de E.F. Codd n anii 1970-1972, pentru bazele
de date relaionale.
O baz de date relaional depoziteaz datele n tabele, ntre care se stabilesc anumite
conexiuni.
n 1976, P. Chen propune un model avansat pentru baze de date i anume modelul entitate-
relaie (modelul ER Entity-Relation model), care separ nivelul fizic de cel logic, model
care va deveni ulterior referina n domeniul proiectrii bazelor de date.
Este indicat ca numele tabelului s sugereze tipul de entitate i mai precis s corespund
formei de plural a denumirii entitii. De exemplu, se va crea tabelul cu denumirea studeni
pentru entitatea de tip STUDENT.
16
___________________________________________________________Luminia Scripcariu
O linie din tabel reprezint un set de valori ale atributelor unei entiti.
La intersecia unei linii cu o coloan din tabel, se gsete un cmp sau o celul n care este
nscris valoarea atributului definit pe acea coloan, corespunztoare nregistrrii din linia
respectiv.
Valoarea unui atribut dintr-o celul poate s lipseasc, situaie n care spunem c atributul
poate fi NULL.
n cazul n care nu se admite lipsa valorii unui atribut, trebuie s se specifice n linia de
comand opiunea NOT NULL pentru acea coloan.
De exemplu, admitem c pentru un student din anul I, cmpul specializare rmne
necompletat, n timp ce din cmpurile nume, prenume, nrmatr valorile nu pot s lipseasc.
De aceea, n formularele de introducere a datelor n BD, unele cmpuri sunt marcate ca fiind
obligatorii iar altele ca opionale. n plus, dac toate cmpurile obligatorii nu sunt completate,
atunci formularul nu poate fi trimis (submit) i apare un mesaj de eroare care l ntiineaz pe
utilizator ce mai trebuie scris. Dac aplicaia nu este corect realizat i utilizatorul trimite un
set de informaii incomplet, atunci n BD nu se poate face nregistrarea datelor dac lipsete
17
Baze de date_________________________________________________________________
valoarea unui atribut pentru care s-a menionat opiunea NOT NULL. Ca urmare, datele
nscrise n formular vor fi pierdute.
Dac nu este permis ca valorile unui atribut s se repete, atunci trebuie specificat opiunea
UNIQUE pentru a evita unele erori la introducerea datelor n BD. De exemplu, valorile
atributului cnp sunt unice.
Atributele care joac rolul de chei ale entitilor trebuie s aib valori unice.
n BD, datele sunt integrate mpreun cu o descriere a lor. Definirea coloanelor din tabelele
BD include i specificarea tipului de date folosit pe fiecare coloan. De exemplu, coloanele
nume i prenume vor conine date de tip caracter, n timp ce numrul matricol va fi exprimat
prin date de tip numeric. Dimensiunile cmpurilor sunt de asemenea specificate acolo unde
este cazul.
Trebuie menionat i calitatea de cheie primar a unui atribut sau set de atribute, precum i
eventualele referine care se fac ntre tabelele BD. Un atribut care este cheie ntr-un tabel dar
apare i n alt tabel, pentru a face legtura dintre cele dou tabele, se numete cheie strin
(FK - Foreign Key).
Este esenial s se lucreze cu o dublare minim a datelor, n scopul reducerii redundanei i al
meninerii coerenei lor. n principiu, orice informaie trebuie s apar ntr-un singur loc din
BD. De exemplu, nu nscriem n locuri diferite din BD gradul didactic al unei persoane,
pentru ca la o eventual promovare a acesteia, s nu fie necesar modificarea lui n mai multe
locuri. Dac totui l scriem de mai multe ori, exist riscul s se omit unele valori i avem n
acest caz de a face cu o eroare de actualizare cauzat de dublarea datelor i de redundana
BD, concretizat n pierderea coerenei BD.
Descrierea datelor, prin tipul i dimensiunea datelor, opiuni i alte specificaii, reprezint
metadatele, care sunt stocate n catalogul de sistem.
Limbajul de definire a datelor (DDL) este un limbaj descriptiv cu comenzi specifice,
utilizat pentru denumirea entitilor BD i a relaiilor logice dintre acestea, pentru
specificarea tipurilor i a structurilor de date, precum i a modurilor de vizualizare
personalizate. Prin compilarea instruciunilor DDL rezult setul de tabele al BD i astfel se
creeaz structura BD i catalogul de sistem.
Urmeaz ca aceast structur s fie populat cu date. Coninutul BD de la un anumit moment
constituie o instan a BD. Prin manipularea datelor, rezult noi instane ale acesteia.
18
___________________________________________________________Luminia Scripcariu
Iniial grupul DBTG (Data Base Task Group) a propus o arhitectur a sistemelor de BD cu
dou nivele:
schema BD - reprezint nivelul inferior, de implementare i ntreinere
subschema BD este nivelul superior, folosit pentru realizarea vederilor
utilizatorilor.
Aceast arhitectur are dezavantajul c nu permite generarea vederilor externe independent
de schema intern a BD. Orice modificare a acesteia din urm conduce la schimbarea vederii
externe.
Personalizarea acestor vederi n sistemele multiutilizator este posibil prin introducerea unui
al treilea nivel, intermediar, care s separe detaliile de implementare de cele impuse la
vizualizare. De aceea, institutul ANSI (American National Standards Institute) i comitetul
SPARC (Standards Planning and Requirements Committee) au propus arhitectura cu trei
nivele ANSI/X3/SPARC sau ANSI-SPARC, care include:
nivelul intern
nivelul conceptual
nivelul extern.
n figura I.4 sunt reprezentate cele trei nivele ale arhitecturii ANSI-SPARC pentru BD, cu
toate elementele componente.
Nivelul extern este format din vederile utilizatorilor, fiecare incluznd anumite entiti,
relaii i atribute, eventual cu reprezentri diferite ale acelorai date, cu combinaii ale
acestora sau cu atribute derivate, pe baza unor scheme externe. Pe acest nivel, se lucreaz cu
19
Baze de date_________________________________________________________________
Nivelul conceptual reprezint o vedere general a BD i descrie datele i relaiile care sunt
stocate n BD, ntr-o structur logic denumit i schem conceptual. Aceasta nu depinde
nici de modul de implementare a BD, nici de cerinele de vizualizare ale utilizatorilor.
Schema conceptual cuprinde toate entitile, atributele, relaiile i constrngerile datelor,
informaiile semantice despre date, normele de securitate i regulile de integritate. Pe acest
nivel se realizeaz modelul conceptual, bazat pe obiecte. Cele mai utilizate modele
conceptuale sunt:
modelul Entitate-Relaie (ER)
modelul orientat pe obiecte, care ia n considerare i comportamentul entitii, pe
lng atributele care descriu starea ei.
Nivelul intern reprezint implementarea fizic a BD, pe baza unei scheme interne
cuprinznd structurile de date i de organizare a tabelelor i fiierelor asociate. Acest nivel
este responsabil de alocarea spaiului de stocare a datelor i a indexurilor, de descrierea i
plasarea nregistrrilor n spaiul alocat, de codarea i compresia datelor.
Pe nivelul intern se folosesc modele fizice ale BD care descriu modul de stocare a datelor n
memoria calculatorului, structurile, ordinea i cile de accesare ale nregistrrilor.
Nivelul intern interacioneaz direct cu nivelul inferior, cel fizic, gestionat de sistemul de
operare.
20
___________________________________________________________Luminia Scripcariu
dicionar de sistem
sistem de gestiune a bazei de date (SGBD)
tip de entitate
entitate
atribut
relaie
diagrama Entitate-Relaie
cheie primar
cheie alternativ
cheie candidat
cheie strin
model de date
model conceptual
reguli de afaceri
normalizare
limbaj de manipulare a datelor
limbaj de definire a datelor
limbaj de interogare
schema bazei de date
subschema bazei de date
tabel
tranzacie
vedere extern
baze de date relaionale
NULL
NOT NULL
UNIQUE
22
___________________________________________________________Luminia Scripcariu
I.10 TEST-GRIL
1. Cum se definete o baz de date?
Colecie de date
Colecie partajat de date
Colecie partajat de date, ntre care exist relaii logice
Colecie partajat de date, ntre care exist relaii logice, mpreun cu descrierea datelor
3. Null-ul reprezint:
Caracterul SPACE
Valoarea ZERO
Un ir de caractere zero
Lipsa valorii dintr-un cmp
23
Baze de date_________________________________________________________________
24
CAPITOLUL II
ELEMENTELE SPECIFICE BAZELOR DE DATE
DIN CUPRINS:
II.1 ENTITATE
II.2 ATRIBUT
II.3 RELAIE
II.4 DIAGRAMA ENTITATE - RELAIE
II.5 CARDINALITATEA UNEI RELAII
II.6 VEDERE
II.7 REGULILE LUI CODD
II.8 TRANZACIA
II.9 REZUMATUL CAPITOLULUI
II.10 TERMENI SPECIFICI
II.11 APLICAIE PROPUS
II.12 TEST-GRIL
Baze de date_________________________________________________________________
II.1 ENTITATE
O baz de date poate fi descris n termenii fundamentali de entitate, instan, atribut, valoare,
identificator, relaie i tranzacie.
Orice baz de date folosete entiti pentru a clasifica obiectele pe care le gestioneaz.
Prin definiie, entitatea este un obiect distinct inclus n BD, asociat unei persoane, firme,
unui loc, document sau concept etc.
Atunci cnd se dorete folosirea unei baze de date pentru organizarea unei activiti, trebuie
puse n eviden elementele eseniale ale acesteia i clasificate, folosind entiti. De exemplu,
pentru baza de date a unei faculti este nevoie s folosim entitile STUDENT, PROFESOR,
DISCIPLIN, SAL DE CURS i altele.
Putem asocia entitatea unui grup de elemente de acelai fel, care pot fi niruite ntr-o list.
Numele entitii este ntotdeauna un substantiv, care semnific persoane, obiecte, evenimente.
Entitile au instane, adic valori particulare, care sunt asociate cu o singur apariie a
entitii respective n activitatea curent.
Studentul POPESCU ION va fi nregistrat n aceast baz de date ca o instan a entitii
STUDENT.
Studenta IONESCU ANA va fi nregistrat ca fiind o alt instan a entitii STUDENT.
Dac se asociaz un tabel entitii STUDENT, atunci n acest tabel vor aprea dou linii
corespunztoare celor doi studeni amintii.
ATENIE! Unul i acelai substantiv poate desemna ntr-o baz de date o entitate, iar n alt
baz de date o instan a unei entiti.
De exemplu, n baza de date cu animale, n entitatea ANIMAL poate s apar instana pisic,
alturi de altele precum cine, cal, tigru. n alt baz de date care descrie rasele de animale,
fiecare dintre acestea va constitui o entitate aparte, cu un set de nregistrri cu rasele
specifice. De exemplu, n al doilea caz vom include entitatea PISIC, cu rasele siamez,
persan, albastru de Rusia etc.
26
___________________________________________________________Luminia Scripcariu
II.2 ATRIBUT
O entitate este caracterizat printr-un set de atribute care permite identificarea, clasificarea
sau cuantificarea instanelor sale.
Numrul de atribute ale unui tabel sau relaii reprezint gradul relaiei.
Un atribut are o singur valoare pentru fiecare instan, la un anumit moment de timp. O
valoare a unui atribut se poate schimba n timp, prin modificarea sau actualizarea datelor.
De exemplu, atributul anul naterii al studentului POPESCU ION are valoarea 1990, n
timp ce adresa de domiciliu a acestuia, exprimat ca ir de caractere Iai, bd. Independenei,
nr. 10, bl. T, et.3, ap.12, este considerat tot o valoare unic. n acest caz, putem selecta
27
Baze de date_________________________________________________________________
studenii nscrii n BD i nscui ntr-un anumit an, dar nu putem face selecia dup
localitatea de domiciliu, pentru c localitatea apare doar ca o poriune dintr-un ir i nu ca un
atribut independent. Este important s se stabileasc de la nceput la ce ntrebri trebuie s
rspund BD pentru a alege corect toate atributele necesare penrtu descrierea unei entiti.
Atributele pot fi de dou tipuri:
volatile, cu valori care se schimb automat n timp, precum vrsta studentului, sau n
timpul activitii, de exemplu stocul de produse al unui magazin.
nevolatile, cu valoare fix, cum este anul de natere al studentului.
Chiar i unele atribute care se schimb foarte rar i atunci numai prin modificare direct,
dictat de administrator, vor fi considerate nevolatile. Este cazul, de exemplu, al atributului
numr de telefon. Dac o persoan i schimb numrul de telefon, poate solicita
administratorului BD s actualizeze valoarea cmpului respectiv. Avem de a face cu un
atribut nevolatil, care se schimb n anumite condiii i nu n mod automat.
Recomandare: Folosii atribute nevolatile i evitai, dac este posibil, atributele volatile.
Atributele volatile pot fi deduse din cele nevolatile i, n general, sunt folosite la afiarea unor
informaii specifice, precum vrsta unei persoane.
Valoarea unui atribut poate fi un ir de caractere, un numr, o dat calendaristic, o valoare
de timp, o imagine, un fiier audio etc. Toate acestea reprezint tipul sau formatul datelor.
Fiecare atribut este descris prin tipul de date folosit pentru exprimarea valorilor lui.
Metadatele includ tipul datelor pentru fiecare atribut din catalogul de sistem.
Valoarea unui atribut care nu este cunoscut la un anumit moment sau nu este aplicabil
reprezint un null.
28
___________________________________________________________Luminia Scripcariu
O alt caracterizare extrem de important a atributelor este aceea dat de unicitatea valorii
acestuia. Acele atribute folosite pentru identificarea unic a nregistrrilor dintr-un tabel din
BD trebuie s aib o valoare unic (opiunea UNIQUE) i nu valori repetate. De exemplu,
codul numeric personal este unic dar anul naterii unei persoane poate avea aceeai valoare n
mai multe nregistrri.
Exerciiu propus: Alegei o entitate dintr-o BD i enumerai cteva atribute ale ei. Specificai
pentru fiecare atribut caracterul pe care l are: obligatoriu/opional, volatil/nevolatil,
unic/repetitiv. Facei cteva nregistrri n tabelul asociat, cu valori specifice.
Recomandare: Definii mai multe atribute similare atunci cnd estimai posibilitatea
apariiei de valori multiple.
nregistrrile dintr-un tabel din BD sunt difereniate printr-un identificator unic (UID
Unique IDentifier) care poate fi un atribut sau un grup de atribute ale entitii asociate
tabelului, numit cheie sau supercheie.
O supercheie pentru care nici un subset de atribute nu este o supercheie se numete cheie
candidat.
Se pot gsi mai multe chei candidat pentru aceeai relaie, dar una singur este aleas, la un
anumit moment, ca UID i aceea este numit cheie primar (PK Primary Key). Cheia
primar se scrie subliniat n lista atributelor entitii, realizat n limbaj descriptiv, sau
precedat de caracterul diez #. Celelalte chei se numesc chei alternative. n mod firesc,
setul tuturor atributelor unei entiti, constituie un UID i o cheie. O cheie format din mai
multe atribute se numete cheie compus.
Uzual, se aleg ns acele chei cu ct mai puine atribute componente, de preferat unul singur,
cu redundan nul. Se obinuiete chiar s se defineasc un atribut abstract de tip
identificator, cu autoincrementare la fiecare nou nregistrare, asemenea numerelor de ordine
29
Baze de date_________________________________________________________________
folosite n tabele, care s fie cheia primar a entitii descrise i s fie format dintr-un singur
atribut.
Exerciiu propus: Deducei din setul de atribute al entitii STUDENT cheile posibile i
alegei cheia primar.
Atributul este asociat cu o coloan a unui tabel, avnd o denumire proprie, distinct. Ordinea
atributelor sau a coloanelor din tabel nu este important.
Domeniul este mulimea valorilor pe care le poate lua un atribut. Cnd vorbim de valori, nu
trebuie s ne gndim numai la valori numerice. De exemplu, putem avea valori de tip ir de
caractere sau de tip dat-timp i s impunem anumite restricii asupra acestora. Dac
nscriem codul numeric personal al unei persoane, este util s restricionm lungimea irului
i tipul caracterelor, adic s fie introduse exact 13 caractere i toate de tip cifr, de la 0 la
9.
Faptul c oricrui atribut i se dau valori dintr-un anumit domeniu reprezint o constrngere
de domeniu.
Alte reguli impuse de utilizatorii sau de administratorii unei BD se numesc constrngeri de
ntreprindere.
De exemplu, dac regulile afacerii specific moneda n care se exprim preurile produselor
unui magazin spunem c lucrm cu o constrngere de ntreprindere.
II.3 RELAIE
ntre entitile folosite pentru modelarea unei baze de date, se stabilesc o serie de relaii.
De exemplu, profesorul pune note studenilor. Studenii de la o specializare frecventeaz
orele de curs de la anumite discipline. Un profesor este titular la una sau mai multe discipline.
Toate aceste relaii pe care le identificm n scenariul bazei de date a unei faculti, pot fi
descrise prin anumite atribute de legtur. De exemplu, relaia EXAMEN STUDENT va fi
descris de atributul nrmatr, n relaia EXAMEN - DISCIPLIN intervine atributul
cod_disciplin i aa mai departe.
Relaia dintre dou entiti, privit ntr-un sens, poate avea fie caracter sigur, fie opional. De
exemplu, la o disciplin sigur se d mcar un examen dar este opional studiul unei discipline
de ctre un student, aceasta depinznd de specializarea la care acesta este nscris. Prin
30
___________________________________________________________Luminia Scripcariu
convenie, relaiile sigure sunt reprezentate grafic, cu o linie continu, n timp ce relaiile
opionale se reprezint cu o linie ntrerupt (Figura II.1).
Anumite atribute se vor repeta atunci cnd se implementeaz baza de date, de exemplu n
limbaj SQL, tocmai pentru a evidenia relaiile dintre entiti.
Dac atributul de legtur este cheie ntr-un tabel, atunci, n tabelul n care este folosit pentru
relaionare, el se numete cheie strin (FK Foreign Key). De exemplu, atributul care
exprim numrul grupei, nr_grupa, care este cheie primar a entitii GRUPA, apare ca i
cheie strin n setul de atribute al entitii STUDENT.
Setul de atribute care constituie o cheie candidat a altei relaii se numete cheie strin.
Avem de a face aici cu o dublare aparent a datelor dar prin referina care se face ntre tabele,
datele se introduc o singur dat, n tabelul principal, urmnd s fie nscrise i actualizate
automat n tabelul relaionat cu primul.
Nici un atribut dintr-o cheie primar a unei relaii de baz nu poate fi null (lips valoare),
aceasta reprezentnd regula sau constrngerea de integritate a entitilor.
Valoarea unei chei strine trebuie s fie egal cu valoarea unei chei candidat din relaia sa de
baz sau un null. Aceast condiie reprezint regula de integritate referenial.
Se observ c este greu de descris n cuvinte scenariul pe care se va construi baza de date i,
de aceea, se prefer s se reprezinte grafic entitile, atributele i relaiile dintre acestea, sub
forma unei diagrame Entitate Relaie.
Exerciiu propus: Exprimai n cuvinte relaiile dintre entitile folosite n baza de date a unui
magazin (cea propus n paragraful I.9) i identificai atributele de legtur.
31
Baze de date_________________________________________________________________
De exemplu, n figura II.1 este reprezentat succint (fr atribute) diagrama ER a BD a unei
faculti.
d
STUDENT
este inclus n
este dat EXAMEN
include
se d
pred TITULAR
GRUP are
include
studiaz
SPECIALIZARE
32
___________________________________________________________Luminia Scripcariu
Exerciiu propus: Completai diagrama ER din figura II.1 cu atributele asociate entitilor i
eventual cu noi entiti, care sunt necesare pentru ca BD s rspund la anumite ntrebri.
Scriei pe fiecare linie linie de legtur dintre entitile relaionate, care este atributul prin
care se exprim acea relaie.
Diagrama ER este realizat cu scopul de a cuprinde ntr-o structur simpl i bine organizat
toate datele care sunt necesare organizaiei beneficiare.
Regul: Informaiile trebuie s apar ntr-un singur loc din BD, adic s nu se repete.
Descrierea unei relaii dintre entiti, se face i prin numrul de participani la o relaie. De
exemplu, ntr-o relaie DISCIPLIN TITULAR, un singur titular pred ntr-un an o
disciplin, la o anumit specializare. Totui un titular poate s predea mai multe discipline n
acelai an universitar. Vorbim n acest caz de o relaie unul-la-muli, notat simplu 1:M.
Numrul de participani la o relaie, exprimat n ambele sensuri, reprezint raportul de
cardinalitate al relaiei.
Raportul de cardinalitate este impus prin regulile de afaceri ale activitii decrise n BD.
33
Baze de date_________________________________________________________________
1:M M:M
include
d
GRUP STUDENT EXAMEN
este dat
este inclus n
Atributul care exprim o relaie 1:1 poate fi ales din setul de chei al oricrei din cele dou
entiti implicate n relaie.
34
___________________________________________________________Luminia Scripcariu
n cazul relaiilor 1:M, atributul de legtur trebuie ales numai de la entitatea cu participare
singular la relaie. Dac s-ar alege pentru exprimarea relaiei un atribut cheie de la entitatea
cu participare multipl, atunci n tabelul celeilalte entiti vor aprea valori multiple pentru
acel atribut.
n relaiile M:M, indiferent din care parte a relaiei se alege atributul de relaionare, acesta va
avea valori multiple.
n general, nu se admit atribute cu valori multiple i de aceea nici relaiile M:M nu sunt
acceptate. Relaiile M:M trebuie eliminate din diagrama ER prin definirea de noi entiti.
II.6 VEDERE
O relaie (tabel) produs la cererea unui client pe baza relaiilor existente n BD se numete
vedere (view).
Putem considera vederea extern din BD ca fiind o relaie virtual, adic se genereaz un
tabel virtual, afiat n vederea extern, pe baza datelor existente n tabelele reale din BD. Acel
tabel din vederea extern nu exist de fapt n BD.
Pentru a diferenia tabelele din BD, n care stocm datele, de cele create n vederile externe,
vom folosi termenul de relaie de baz pentru tabelele interne.
O relaie cu o anumit denumire, corespunztoare unei entiti din schema conceptual a BD,
ale crei tupluri sunt stocate fizic n BD, se numete relaie de baz.
Trebuie s se fac distincie ntre datele stocate intern, n tabelele din BD, i informaiile care
sunt afiate n vederile externe.
Conform arhitecturii ANSI-SPARC, nivelul extern este complet separat de cel intern, i de
aceea structura intern a unei BD nu poate fi dedus din vederile externe. De aceea spunem
c vederile se genereaz n mod transparent. Informaiile care se afieaz pot fi toate citite sau
derivate din diferite date, stocate n unul sau mai multe tabele.
De exemplu, dac se dorete afiarea notelor obinute la examene de studenii unei grupe la
toate disciplinele dintr-un semestru, atunci se vor citi datele din relaiile de baz
corespunztoare entitilor STUDENT, GRUP, EXAMEN, DISCIPLIN, relaionate prin
atribute abstracte de tip nrmatr, nr_grup, cod_disciplin, urmnd ca afiarea listei s se
realizeze cu etichete sugestive de genul Numele i prenumele, Grupa, Denumirea disciplinei,
Not.
35
Baze de date_________________________________________________________________
Exerciiu propus: Reprezentai capul de tabel al unei vederi externe prin care s se afieze
lista disiciplinelor i a titularilor care predau la o specializare, generat pe baza diagramei
ER din figura II.1, cu denumiri de coloan ct mai sugestive. Din ce relaii de baz se culeg
datele pentru aceast vedere extern? Care sunt atributele folosite?
36
___________________________________________________________Luminia Scripcariu
n prezent, cele mai utilizate sunt bazele de date relaionale (BDR). Accesul la acestea i
gestionarea lor se face cu un sistem de gestiune a bazelor de date relaionale (SGBDR, n
englez RDBMS Relational Database Management System).
Codd a enunat o regul fundamental i 12 reguli specifice pentru SGBDR:
Regula fundamental
Orice sistem care pretinde sau i se face reclam de a fi un SGBDR trebuie s fie capabil s
gestioneaze n ntregime bazele de date prin capacitile sale de relaionare.
Cnd vorbim de relaionare, ne referim la relaiile dintre atributele unei entiti, n cadrul unui
singur tabel, dar i la relaiile care se stabilesc ntre mai multe entiti, prin atributele de
legtur. Capacitatea de a relaiona informaiile se refer la o funcionare perfect, fr erori,
a SGBD. Dac datele sunt dublate n BD i pot s apar erori de acualizare, considerm c
acel SGBD nu gestioneaz corect datele. Dac nu exist anumite legturi ntre entiti, atunci
este posibil ca unele raportri s fie eronate, prin urmare avem de a face cu un SGBD
imperfect.
1. Reprezentarea informaiilor
La nivelul logic, toate informaiile dintr-o BD relaional sunt reprezentate explicit ntr-un
singur mod prin valorile din tabele (relaii de baz).
2. Accesul garantat
Se garanteaz faptul c orice element (dat) dintr-o BDR este accesibil din punct de vedere
logic prin apelarea la o combinaie de nume de tabel, valoare a cheii primare i nume de
coloan.
37
Baze de date_________________________________________________________________
6. Reactualizarea vederilor
Toate vederile care sunt teoretic reactualizabile, pot fi reactualizate de ctre sistem.
38
___________________________________________________________Luminia Scripcariu
De-a lungul timpului regulile lui Codd au fost strnit multe controverse, dar se pare c ele
sunt utile pentru analiza caracterului relaional al oricrui SGBD. Un SGBD care nu le
ndeplinete este cu siguran nerelaional.
II.8 TRANZACIA
Operaiile realizate ntr-o tranzacie, ca un tot unitar, pot s fie de citire, scriere, tergere,
creare i se pot efectua asupra datelor dar i asupra structurii de date. Este important ca s se
efectueze integral i corect succesiunea de operaii propus, nu parial. n cazul n care o
tranzacie este incomplet, din diferite cauze (defeciune tehnic, eroare de program etc.), BD
trebuie s revin la starea iniial, pe care o avea nainte de iniierea tranzaciei (Figura II.3).
Spunem c BD trebuie s fie permanent ntr-o stare stabil, coerent sau consistent.
Tranzacia efectueaz transformri consistente asupra strii sistemului, meninnd consistena
acestuia.
39
Baze de date_________________________________________________________________
BD n stare
BD n stare intermediar BD n stare
instabil consistent
consistent
40
___________________________________________________________Luminia Scripcariu
Entitate
Instan
Entitate tare
Entitate slab
Entitate tangibil
Entitate intangibil
Atribut
Atribut volatil
Atribut nevolatil
Atribut derivat
Valoare
Valoare obligatorie
Valoare opional
Valoare unic
41
Baze de date_________________________________________________________________
Valori multiple
Tipul datelor
Identificator unic (UID)
Cheie primar (PK)
Cheie candidat
Cheie alternativ
Cheie compus
Cheie strin (FK)
Diagrama Entitate Relaie
Raportul de cardinalitate
1:1
1:M
M:M
Constrngere de domeniu
Constrngere de integritate
Constrngere de cardinalitate
Constrngere de participare
Regula de integritate referenial
Regulile lui Codd
Relaie de baz
Relaie virtual
Vedere
Tranzacii de regsire
Tranzacii de reactualizare
Tranzacii mixte
42
___________________________________________________________Luminia Scripcariu
II.12 TEST-GRIL
43
Baze de date_________________________________________________________________
7. O entitate are o cheie primar, dou atribute de tip NOT NULL i trei atribute opionale.
Care este gradul relaiei asociate entitii?
1
2
3
6
8. ntre dou entiti ale unui magazin, CUMPRTOR i PRODUS, ce fel de relaie se
stabilete?
1:1
1:M
M:M
10. Un set de operaii care trebuie efectuate ntr-o BD, toate n bloc, se numete:
cheie
instan
tranzacie
vedere
44
CAPITOLUL III
DIAGRAMA ENTITATE-RELAIE
DIN CUPRINS:
III.1 ALEGEREA SETULUI DE ENTITI I ATRIBUTE
III.2 CONCEPTELE MODELULUI ENTITATE-RELAIE
III.3 REPREZENTAREA GRAFIC A DIAGRAMEI ER
III.4 CAPCANE DE CONECTARE
III.5 INTERPRETAREA DIAGRAMEI ER
III.6 MATRICEA RELAIILOR
III.7 NORMALIZAREA
III.8 REZUMATUL CAPITOLULUI
III.9 TERMENI SPECIFICI
III.10 TEST-GRIL
Baze de date_________________________________________________________________
Alegerea identificatorului unic (UID) i a cheii primare ai unei entiti nu este o chestiune
foarte simpl. UID poate fi ceva foarte natural precum numele unei strzi sau ceva artificial,
creat special pentru a face diferena ntre mai multe instane (codul potal). Se poate folosi ca
UID un singur atribut sau un set de mai multe atribute. Clasificm astfel identificatorii unici
ai entitilor n simpli i compui. Dintre toi UID posibili ai unei entiti, trebuie ales cel mai
potrivit UID ca i cheie primar, pe care l numim UID primar. Ceilali UID se numesc
identificatori unici secundari sau chei candidat. De exemplu, pentru entitatea CLIENT
descris mai sus, se pot folosi mai muli UID: cod_client, cnp, adres_de_email care sunt
fiecare n parte identificatori simpli, sau se poate folosi un UID compus (nume, prenume,
adres). Alegerea cheii primare dintre toi aceti UID rmne la latitudinea proiectantului
care l va alege pe cel mai potrivit din perspectiva clientului precum i din a cea a aplicaiei.
Nu sunt deocamdat exprimate relaiile ntre entiti, dar formulnd eventuale interogri ale
BD vom putea stabili anumite legturi.
De exemplu, s presupunem c managerul magazinului dorete s interogheze BD pentru
aflarea ncasrilor dintr-o lun. Dac nu exist o entitate asociat vnzrilor, cu un atribut
46
___________________________________________________________Luminia Scripcariu
Exerciiu propus: Pentru BD descris n modelul anterior, stabilii noi entiti i atribute
necesare realizrii interogrilor referitoare la vnzri i profit, descrise anterior. Transcriei
n limbaj descriptiv noul set entiti-atribute.
Relaionarea entitilor seamn cu un joc de puzzle. De obicei avem multe entiti, cu multe
atribute i chiar reprezentarea grafic a diagramei poate fi dificil i greu de urmrit.
Diagrama ER trebuie analizat cu atenie pentru a nu avea relaii lips. Optimizarea
diagramei implic i mai multe aspecte, de aplicare a unor reguli de normalizare, care permit
eliminarea riscurilor de apariie a unor erori sau omisiuni, la folosirea propriu-zis a bazei de
date. Acestea sunt de regul greu observabile n procesul de proiectare a BD i odat
implementat aplicaia cu BD, ele nu mai pot fi corectate.
De aceea este util s abordm sistematic procesul de reprezentare, analiz i de prelucrare a
diagramei ER.
Modelul conceptual Entitate-Relaie (ER), dezvoltat iniial de Chen n 1976, descrie structura
BD i tranzaciile de regsire i reactualizare a datelor. Modelul ER se realizeaz independent
de SGBD i de platforma hardware pe care se va rula aplicaia BD.
S ne reaminitim c modelul ER include urmtoarele concepte:
47
Baze de date_________________________________________________________________
Tip de entitate obiect (fizic) sau concept (abstract) inclus n BD, cu existen
independent.
Entitate instan a unui tip de entitate, unic identificabil.
Tip de entitate slab tip de entitate a crei existen depinde de alte tipuri de entiti.
Tip de entitate tare tip de entitate a crei existen nu depinde de alte tipuri de entiti.
Tip de relaie asociere ntre tipuri de entiti.
Modelul ER poate fi reprezentat grafic sub forma unei diagrame ER n care se aplic regulile
urmtoare, ale aa-numitei convenii n stea (Figura III.1):
49
Baze de date_________________________________________________________________
50
___________________________________________________________Luminia Scripcariu
Relaia se reprezint cu un capt ramificat, n trei (talpa gtei), dac o entitate are o
participare multipl la acea relaie.
Exerciiu propus: Redesenai diagrama din figura III.2, folosind convenia n dreptunghi.
Dac mai multe persoane folosesc acelai set de entiti i atribute pentru a desena diagrama
ER, este posibil s se obin diferite reprezentri, n funcie de amplasarea n plan a
dreptunghiurilor prin care reprezentm entitile. De aceea, s-a stabilit regula de orientare a
diagramei ER care impune sensul n care trebuie reprezentat i citit aceasta: de la stnga
la dreapta i de sus n jos. Putem interpreta aceast regul astfel: colul de pornire este cel
din stnga-sus, iar cel de finalizare a diagramei este cel din dreapta-jos (Figura III.3).
Capcanele de ntrerupere sunt cauzate de absena reprezentrii unor relaii n modelul ER.
De exemplu, n modelul din figura III.5 lipsete relaia direct dintre entitile Departament i
Proprieti, necesar identificrii departamentului care se ocup de o anumit proprietate.
Introducnd-o (Figura III.6), se creeaz o anumit redundan, preferabil n unele situaii.
52
___________________________________________________________Luminia Scripcariu
Revenind diagrama ER, pentru a o urmri ca i continuitate, este util s exprimm n cuvinte,
cursiv, relaiile dintre entiti, pentra a fi siguri c sunt logice, asemntor modului n care se
exprim relaiile de rudenie, de colegialitate sau de prietenie dintre mai multe persoane. De
exemplu, eu sunt prietena Cristinei, sora lui Radu, colegul tu de grup.
53
Baze de date_________________________________________________________________
Este util s exprimm adecvat opionalitatea relaiei (sigur sau probabil) i cardinalitatea
ei (mai multe entiti sau doar una singur intr n relaie), la ambele capete ale unei
conexiuni.
Pentru fiecare relaie din diagrama ER, vom formula cte dou fraze de forma:
Fiecare ENTITATE de tip 1 sigur sau poate - se relaioneaz cu una sau mai multe
ENTITI de tip 2.
S nu uitm c relaia trebuie interpretat n ambele sensuri, prima or n sensul de la stnga
la dreapta sau de sus n jos.
S descompunem fraza de mai sus n elementele sale componente:
1. Fiecare
2. ENTITATE de tip 1
3. sigur sau poate (OPIONALITATEA)
4. se relaioneaz cu (NUMELE RELAIEI)
5. una sau mai multe (CARDINALITATEA)
6. ENTITI de tip 2.
Opionalitatea i cardinalitatea unei conexiuni dintre entiti pot s difere de la un capt la
altul.
S citim, de exemplu, diagrama din figura III.5.
Fiecare proprietate este sigur supervizat de un singur membru al personalului.
Fiecare membru din personal poate s supervizeze mai multe proprieti.
Fiecare membru al personalului sigur este alocat unui singur departament.
Fiecare departament sigur include mai muli membri.
n general, ceea ce citim din diagrama ER, regsim n descrirea sau scenariul aplicaiei,
adic n regulile de afaceri ale acesteia. De aceea, este util s se compare aceste reguli, cu
relaiile citite din diagrama ER, pentru a identifica eventualele relaii care lipsesc din
diagram sau pe cele care nu corespund regulilor afacerii. De asemenea, pot s existe
neclariti n interpretarea diagramei i n astfel de cazuri se pot cere lmuriri reprezentanilor
beneficiarului, pentru a formula regulile n cauz i a elimina ambiguitile.
Exerciiu propus: Interpretai diagrama ER din figura III.2, exprimnd de fiecare dat
opionalitatea i cardinalitatea relaiei.
54
___________________________________________________________Luminia Scripcariu
Exerciiu propus: Pentru BD a unui cabinet medical, stabilii setul de entiti i atribute pe
care le considerai necesare a le folosi la cteva interogri specifice i facei asocierile
dintre entiti, atribute i interogri. Dup aceasta, formulai o nou interogare i vedei
dac modelul BD creat rspunde i la aceasta. Dac nu, identificai elementele lips.
55
Baze de date_________________________________________________________________
Odat stabilit setul de entiti i atribute, trecem la analiza relaiilor dintre entiti.
Care sunt informaiile pe care BD vrem s le furnizeze? Aceasta este ntrebarea de la care
plecm atunci cnd facem analiza relaiilor. Ce elemente lipsesc din modelul de date
construit? Acestea pot s treac uor neobservate dac nu exist o comunicare permanent
ntre proiectani i reprezentanii beneficiarilor BD.
Util este s reprezentm diagrama ER, fr atribute, cu relaiile identificate iniial, mai ales
dac numrul de entiti i atribute cu care lucrm este foarte mare. Analiza relaiilor dintre
entiti o putem face urmrind pas-cu-pas interogrile la care vrem s rspund BD, sau n
mod sistematic, folosind matricea relaiilor.
Matricea relaiilor permite identificarea n mod sistematic a tuturor relaiilor dintre entiti,
dac o citim pe linii i pe coloane, inclusiv a acelor relaii n bucl.
S urmrim ca exemplu modelul de date pentru un cabinet medical (Figura III.7).
Exerciiu propus: Completai matricea relaiilor pentru BD a unei faculti, care cuprinde
entitile STUDENT, GRUP, AN DE STUDIU, PROFESOR, DISCIPLIN, SAL, OR,
EXAMEN, TIP DE ACTIVITATE.
III.7 NORMALIZAREA
Modelul de date creat pentru o aplicaie de BD trebuie optimizat pentru a elimina anumite
aspecte nedorite, precum redundana datelor sau unele dependene pariale dintre atribute,
astfel nct s nu mai apar erori n procesele de selecie sau de actualizare a datelor i, n
general, la utilizarea BD. Acest proces de optimizare a modelului BD poart numele de
normalizare.
57
Baze de date_________________________________________________________________
erori de inserare de noi date sau nregistrri cauzate de incoerena unor relaii din
schema relaional. De exemplu, dac se definete o relaie (tabel)
personal_departament, n care sunt inclui toi membrii de personal din agenie i
fiecare departament apare de mai multe ori n tabel, cu toate atributele sale, atunci pe
rndurile corespunztoare reprezentanilor si, se produce o dublare a datelor
referitoare la departamente (denumiri, adrese, numere de telefon). n cazul n care se
dorete nfiinarea unui nou departament care iniial nu are angajai, este necesar
introducerea de null-uri n cheia primar a relaiei ceea ce nu este admis. Dac se
angajeaz un nou membru de personal trebuie s introducem corect datele referitoare
la departamentul n care va fi repartizat, aa cum apar ele i n celelalte nregistrri ale
personalului aferent aceluiai departament. Reprezentarea distinct a tipurilor de
entiti n dou relaii personal i departament elimin aceast dublare a datelor i
anomaliile de inserare. Fiecare membru de personal este asociat numai cu numrul de
identificare al departamentului, atributele acestuia fiind incluse n alt tabel.
erori de modificare sunt cauzate de dublarea datelor n tabele. De exemplu,
modificarea unui atribut al unui departament, impune schimbarea valorii datelor din
mai multe rnduri. Dac nu se reactualizeaz toate nregistrrile corespunztoare, se
vor genera rapoarte incorecte, cu aa-numite date depreciate.
erori de tergere determin pierderea unor date din BD. De exemplu, dac n relaia
personal_departament se elimin singurul membru al unui departament, se terg i
datele referitoare la acest departament.
Pentru a evita erorile de actualizare este necesar descompunerea unor relaii n mai multe
relaii, cu seturi pariale din atributele iniiale, astfel nct s nu mai existe date dublate n nici
o relaie.
Normalizarea se realizeaz prin analiza i testarea relaiilor, pe baza cheilor primare i a celor
candidat, i aplicarea anumitor reguli de normalizare.
Procesul de normalizare se realizeaz n mai multe etape, numite forme de normalizare:
Prima form de normalizare (First Normalized Form 1NF) are ca scop eliminarea
atributelor cu valori multiple i se obine atunci cnd, la intersecia fiecrei linii cu
fiecare coloan din orice relaie a schemei BD, apare numai o singur valoare.
De exemplu, s presupunem c ntr-un tabel din BD se scriu disciplinele la care se in
ore ntr-o anumit sal. Firete c pentru un anumit amfiteatru sau un laborator
58
___________________________________________________________Luminia Scripcariu
Dependena funcional dintre atribute semnific faptul c unul sau mai multe
atribute sunt determinate n mod unic de un alt atribut sau set de atribute, care
constituie determinantul.
De exemplu, toate atributele unei relaii sunt dependente funcional de cheia primar,
cu excepia atributelor care o formeaz.
Dependena funcional total apare atunci cnd atributul dependent nu depinde de
un subset de atribute al unei chei i eliminarea oricrei componente din determinant
59
Baze de date_________________________________________________________________
O relaie cu cheie primar singular (cu un singur atribut) este automat n 2NF.
Pentru o relaie cu cheie primar compus, trecerea n 2NF se face prin eliminarea
dependenelor funcionale pariale. Pentru aceasta, fiecare atribut dependent
funcional parial este copiat ntr-un nou tabel, mpreun cu o copie a determinantului.
De exemplu, n BD a unei companii telefonice, sunt incluse entitile ABONAT i
JUDE. Pentru apelare, trebuie combinat numrul abonatului cu prefixul de jude,
pentru c acelai numr de telefon poate s apar la mai muli abonai, din judee
diferite. n figura III.9, este reprezentat barat relaia dintre cele dou entiti.
Dac s-ar folosi o singur entitate cu cheia primar compus (cod_abonat, cod_jude)
i atributele specifice judeului (denumire, prefix) ar fi nscrise toate n entitatea
ABONAT, atunci ar exista o dublare a datelor iar la schimbarea prefixelor de jude, ar
trebui fcute modificri identice pe foarte multe linii din tabel. ntr-o astfel de
reprezentare, atributele de jude depind parial de cheia primar prin atributul
cod_jude. Separarea entitilor i reprezentarea din figura de mai sus, rezolv aceast
problem i trece BD n forma a doua de mormalizare.
S considerm un alt exemplu. n modelul de date al unei agenii imobiliare, ntr-o
relaie clieni_proprieti care are ca UID, cheia primar compus (cod_client,
cod_proprietate), mai multe atribute (nume_client, telefon, adres) depind parial de
cheia primar deoarece depind numai de atributul cod_client, dar nu i de atributul
cod_proprietate. Dac un client, care ofer spre nchiriere mai multe proprieti, i
60
___________________________________________________________Luminia Scripcariu
schimb numrul de telefon sau adresa de contact, atunci trebuie modificat valoarea
din mai multe nregistrri din tabel i este foarte posibil s se omit unele linii.
Deoarece n tabel apar valori repetitive, redundante, exist riscul apariiei unor erori
de actualizare. De aceea este necesar trecerea n forma a doua de normalizare care
asigur absena valorilor repetitive din tabelele bazei de date. n exemplul dat, pentru
normalizarea n 2NF, se definete o nou relaie clieni n care se includ toate
atributele clienilor mpreun cu determinantul cod_client ca i cheie primar, iar n
relaia iniial clieni_proprieti atributul cod_client rmne ca atribut simplu, cu rol
de cheie strin, care nu mai face parte din cheia primar a acestei relaii.
A treia form normalizat (Third Normalized Form - 3NF) se obine prin eliminarea
aa-numitelor dependene tranzitive dintr-un model aflat n 1NF i 2NF. Dar mai nti,
ce semnific dependena tranzitiv?
nclcarea formei a treia de normalizare apare atunci cnd un atribut din fara cheii
primare (atribut non-UID) depinde de un alt atribut non-UID.
De exemplu, dac BD a unui cabinet medical include n aceeai entitate i n acelai
tabel pacieni toate datele despre pacieni, inclusiv datele din fiele lor medicale, a
61
Baze de date_________________________________________________________________
celor despre consultaiile fcute i despre asistentele medicale care asist la consultaii
sau realizeaz tratamente, atunci exist sigur o dependen tranzitiv ntre atributul
cheie primar cod_pacient (A), cel de identificare a medicului cod_medic (B) unic
determinat de A i nume_medic (C), determinat de B. Dac se schimb numele unuia
dintre medici, atunci foarte multe nregistrri trebuie modificate n BD.
Dependenele funcionale tranzitive dintre atributele unei relaii pot cauza erori de
actualizare.
O relaie aflat n 1NF i 2NF se gsete i n 3NF dac nici un atribut din afara cheii
primare nu este dependent tranzitiv de cheia primar, prin intermediul altui atribut
care nu intr n componena cheii primare. Altfel spus, nici un atribut non-UID nu
poate avea propriile sale atribute deoarece el devine determinantul acestora i creeaz
dependene tranzitive n afara cheii primare.
regul, agentul prezint proprietatea numai unui singur client la un anumit moment.
Cheia primar este compus (cod_proprietate, cod_client). n relaie, apar mai multe
dependene funcionale care sunt admise de 3NF, dac determinantul lor este cheie
candidat. Atributele data_vizitei, ora_vizitei, cod_agent, nr_nmatriculare,
marca_auto, nr_locuri, comentarii sunt determinate funcional total de cheia primar,
deci relaia respect regula 2NF. Dar atributele marca_auto, nr_locuri depind de
atributul nr_nmatriculare, dependent funcional de setul de atribute (data_vizitei,
ora_vizitei, cod_agent) care constituie o cheie candidat. Prin urmare, exist o
dependen tranzitiv de cheia candidat. Relaia este n 3NF, nu i n BCNF. Pentru a
trece la forma BCNF trebuie eliminat dependena tranzitiv de cheia candidat i, n
acest scop, este necesar crearea unei noi relaii AUTOVEHICULE, cu atributele
specifice (nr_nmatriculare, marca_auto, nr_locuri) i se elimin atributele
dependente tranzitiv de cheia candidat din tabelul iniial VIZITARE_PROPRIETI.
Pentru a sistematiza procesul de analiz a dependenelor tranzitive, este util s se
realizeze o matrice cu toate atributele entitii analizate, scrise att pe linii, ct i pe
coloane (asemenea matricii relaiilor) i s se marcheze dependenele dintre ele. Pe
aceasta, o vom numi matricea dependenelor. Aceast matrice este util i la
normalizarea n 2NF, precum i n 3NF i n BCNF.
Prin analiza tuturor dependenelor din relaie, se stabilete dac aceasta este sau nu n
forma de normalizare dorit.
A patra form normalizat (4NF) se obine din forma BCNF prin eliminarea
dependenelor funcionale multivalorice (MVD) netriviale (nu determin integral
tabelul), care apar n procesul de generare a primei forme de normalizare din cauza
relaiilor de tip 1:M independente dintre tipurile de entiti. De exemplu, exist astfel
de relaii 1:M ntre entitile DEPARTAMENT i PERSONAL respectiv ntre
DEPARTAMENT i PROPRIETI (Figura III.5). ntr-o relaie
DEPARTAMENT_PERSONAL_PROPRIETI exist o singur cheie candidat
(cod_departament, cod_agent, cod_proprietate) deci relaia este n forma BCNF.
63
Baze de date_________________________________________________________________
A cincea form normalizat (5NF) se obine din 4NF prin descompunerea unei
relaii n dou sau mai multe relaii independente care elimin dependenele de tip
uniune fr pierderi i care garanteaz faptul c prin uniunea natural a mai multor
tabele rezultate din descompunerea altuia nu se genereaz date sau corespondene
false. De obicei, raportrile din BD se fac prin reunirea datelor din mai multe tabele.
ntre acestea trebuie stabilite clar relaiile i atributele de legtur (cheile strine),
astfel nct selecia valorilor s se realizeze corect.
De exemplu, dac BD a unei librrii, conine tabelele EDITURI, CRI, FURNIZORI,
fr a se face relaiile corecte dintre acestea, prin atributele cod_editur, cod_furnizor,
cu referine ntre cele trei tabele, atunci o interogare prin care se reunesc informaiile
din tabelele EDITURI, FURNIZORI prin care se caut lista furnizorilor unei edituri,
va genera toate combinaiile posibile dintre edituri i furnizori.
64
___________________________________________________________Luminia Scripcariu
66
CAPITOLUL IV
ASPECTE PARTICULARE ALE MODELRII
DATELOR
DIN CUPRINS:
IV.1 RELAII REDUNDANTE
IV.2 REZOLVAREA RELAIILOR M:M
IV.3 RELAII IERARHICE. RELAII RECURSIVE
IV.4 TRANSFERABILITATEA RELAIILOR
IV.5 SUBTIPURI I SUPERTIPURI
IV.6 MODELAREA ISTORICULUI UNUI ATRIBUT.
MODELAREA TIMPULUI
IV.7 MODELAREA GENERIC
IV.8 MODELAREA FIZIC
IV.9 REZUMATUL CAPITOLULUI
IV.10 TERMENI SPECIFICI
IV.11 APLICAIE PROPUS
IV.12 TEST-GRIL
Baze de date_________________________________________________________________
Modelul ER al unei BD include mai multe entiti, cu atributele proprii, i relaiile dintre
acestea.
Relaiile dintre entiti se analizeaz dup criteriile de opionalitate (sigur sau posibil) i de
cardinalitate (1:1, 1:M, M:M).
De exemplu, BD a unui magazin cuprinde date despre clieni, angajai i produse:
ntre aceste trei entiti, se stabilesc mai multe relaii pe care le putem descrie astfel:
Exerciiu propus: Pentru BD descris n modelul de mai sus, reprezentai diagrama ER,
folosind convenia n dreptunghi i punnd n eviden opionalitatea i cardinalitatea
fiecrei relaii.
68
___________________________________________________________Luminia Scripcariu
Se observ n diagrama ER crearea unui triunghi, prin relaionarea celor trei entiti. Putem
afirma n acest caz c avem relaii redundante, n sensul c una din cele trei relaii din
triunghi poate fi nlocuit cu celelalte dou. De exemplu, un angajat deservete unul sau mai
muli clieni (relaia 1) care cumpr unul sau mai multe produse (relaia 3), prin urmare din
aceste dou relaii tim care sunt produsele vndute de un angajat (relaia 2). Nu este nevoie
s folosim toate cele trei relaii dintre entiti, ci numai dou. Problema care apare se refer la
modul n care alegem cele dou relaii pe care le pstrm n diagram i pe care o eliminm.
n cazul n care analizm relaiile dintre entiti, lum n considerare urmtoarele reguli:
R1. Nu se admit relaii M:M deoarece cresc riscul erorilor de actualizare a datelor din BD.
R2. Nu se admit relaii 1:M care creeaz capcane n evantai.
R3. Se pstreaz cu prioritate, relaiile de tip 1:1.
R4. Se pot pstra unele relaii redundante dac prin aceasta se elimin riscul apariiei unei
capcane de ntrerupere.
n baza acestor reguli, n exemplul BD a unui magazin, una dintre relaiile (2) i (3) trebuie
eliminat iar cealalt care este tot de tip M:M tebuie rezolvat. De exemplu, eliminm n
prima faz relaia (2), dintre entitile ANGAJAT i PRODUS, care este redundant i de tip
M:M, deoarece ea poate fi nlocuit de celelalte dou relaii (1) i (3).
Rmne s rezolvm relaia M:M, n modul prezentat n paragraful urmtor.
Relaiile muli-la-muli (M:M) sunt des ntlnite n primele etape ale modelrii datelor.
Practic, o astfel de relaie se traduce prin apariia aceleiai valori pe mai multe linii dintr-un
tabel, ceea ce ar crea probleme la reactualizarea datelor. De exemplu, un produs este
comandat de mai muli clieni, prin urmare n tabelul PRODUSE pe mai multe linii apare
acelai produs, cu cte un alt client cumprtor specificat pe fiecare linie (pentru a nu avea
69
Baze de date_________________________________________________________________
valori multiple n cmpul client), i n situaia modificrii codului produsului, este nevoie s
se fac actualizarea codului n toate liniile respective.
Este necesar s se nloicuiasc relaiile M:M cu relaii 1:1 sau 1:M. Modelul ER final nu
trebuie s conin relaii M:M.
Rezolvarea unei relaii M:M dintre dou entiti se face prin intersectarea mulimilor
atributelor lor i definirea unei noi entiti de intersecie, cu atributele rezultate din operaia
de intersecie.
n exemplul anterior, se intersecteaz entitatea CLIENT cu entitatea PRODUS i denumim
entitatea nou rezultat COMAND. Este evident faptul c un client lanseaz una sau mai
multe comenzi, dar o comand este asociat unui singur client, deci ntre cele dou entiti
apare o relaie 1:M. De asemenea, o comand include un singur produs, dar un produs apare
n una sau mai multe comenzi i din nou rezult o relaie 1:M (a nu se confunda comanda
unui produs, lansat prin butonul CUMPR asociat produsului, cu coul de
cumprturi al clientului, n care se nscriu toate comenzile fcute de client la o vizitare a
site-ului magazinului online). Entitatea COMAND va avea atributele rezultate din intersecia
entitilor (cod_client, cod_produs) precum i un atribut propriu cu rol de UID,
cod_comand. Se poate folosi i o cheie primar compus din cele dou coduri de client i de
produs, ceea ce ar crea aa-numitele relaii barate dintre entitatea de intersecie i entitile
iniiale. Pe lng acestea se vor folosi i alte atribute (numr_buci, data_lansrii_comenzii,
data_livrrii_produsului). Astfel, relaia M:M se nlocuiete cu dou relaii 1:M, fr a
aprea o capcan n evantai.
Exerciiu propus: Rezolvai relaia M:M dintre entitile STUDENT i DISCIPLIN, din BD
a unei faculti. Reprezentai diagrama ER modificat.
De obicei, entitatea de intersecie are un atribut opional de stare, care exprim o etap a unui
proces, identificabil n mod unic.
De exemplu, o agenie de turism organizeaz mai multe excursii, cu mai muli prestatori de
servicii (de cazare, de transport local, de transport internaional etc.) astfel nct relaia dintre
excursii i prestatorii de servicii este evident de tip M:M. Dar pentru o anumit destinaie i la
o anumit dat, participarea celor dou entiti la intersecie este singular, adic un singur
transportator internaional deservete grupul de excursioniti, cazarea unui turist, ntr-o
70
___________________________________________________________Luminia Scripcariu
noapte se face la un singur hotel etc. Intersecia respectiv devine un eveniment clar,
identificat unic prin dat, timp, locaie.
De multe ori entitatea de intersecie are un caracter artificial, cum ar fi un contract de prestri
servicii, dar rolul ei este clar n rezolvarea unei relaii M:M tocmai prin participarea singular
a cel puin unei entiti n fiecare din relaiile nou-create. Relaia M:M este nlocuit cu relaii
1:1 sau cel mult 1:M.
Se observ c identificarea unei camere din campus, nu se face doar prin numrul camerei, ci
prin toate cele trei chei primare: numr_cmin, numr_etaj, numr_camer, ceea ce se
reprezint prin relaii barate ntre entitile din ierarhie.
71
Baze de date_________________________________________________________________
Relaia este barat la captul corespunztor entitii determinate. De exemplu, fiecare camer
a unui hotel poate fi identificat doar dac se tie pe ce etaj se afl. Entitatea CAMER este
determinat de entitatea ETAJ. Relaia dintre ele este barat la captul dinspre entitatea
CAMER.
Bineneles c se poate defini o singur entitate cu toate atributele entitilor din ierarhie dar
este foarte posibil ca aceasta s nu respecte formele de normalizare a BD (apar de exemplu,
dependene funcionale pariale de cheia primar, care se rezolv tot prin definirea mai multor
entiti normaliznd entitatea respectiv).
Folosirea relaiilor ierarhice este recomandat n toate cazurile n care se modeleaz anumite
ierarhii ale instanelor unei entiti.
Recursivitatea relaiilor apare n multe cazuri n care entitile sunt modelate ierarhic,
ndeosebi atunci cnd entitile n cauz reprezint persoane.
De exemplu, n ierarhia militar, gradele militare se subordoneaz unele altora, pn la cel
mai nalt grad. Reprezentarea n BD a persoanelor din cadrul unei uniti militare poate fi
fcut fie cu mai multe entiti ierarhizate, fie printr-o singur entitate cu o relaie n bucl,
numit relaie recursiv.
De asemenea, dac se modific persoana cu rang de comandant dintr-o unitate, atunci este
necesar modificarea numelui su n mai multe nregistrri din tabel ceea ce poate s
conduc la erori de actualizare. De aceea, este preferat reprezentarea ierarhic, n care orice
dat este stocat ntr-o singur locaie din BD.
Reprezentarea ierarhic a entitilor corespunde unei structuri fixe, iar completarea ei se face
cu diferite persoane, care se pot schimba la un anumit moment, fr ca aceasta s afecteze
schema n sine (Figura IV.3).
Transferabilitatea este o noiune care exprim posibilitatea schimbrii unor asocieri dintre
instanele a dou entiti relaionate ntre ele.
De exemplu, n BD a unui cabinet medical, un pacient este asociat cu un anumit medic de
familie. ntrebarea care se pune este aceea dac pacientul poate s i schimbe medicul de
familie? Rspunsul poate fi i da, i nu, acesta depinznd numai de regulile de afaceri ale
cabinetului respectiv. Un rspuns afirmativ reflect transferabilitatea relaiei dintre medic i
pacient, permis de politica aplicat n acel cabinet.
Reinei c analiza unei relaii din modelul ER se face referitor nu numai la opionalitatea i
cardinalitatea relaiei, ci i la transferabilitatea acesteia.
Modelul de date creat pentru o aplicaie de BD conine de foarte multe ori atribute i relaii
care nu se pot schimba i pe care le numim netransferabile.
De exemplu, ziua, luna i anul naterii unei persoane sunt atribute cu caracter permanent,
imuabil.
Aceste aspecte particulare trebuie s fie clarificate prin regulile de afaceri, n documentaia
bazei de date, i s fie asigurat aplicarea lor n momentul implementrii BD n limbaj de
programare. Neaplicarea caracterului imuabil al unor atribute sau relaii poate s creeze
condiii favorabile fraudelor informatice, prin falsificarea unor informaii de identificare, n
procesul de accesare a BD.
n multe modele de date se folosete un numr foarte mare de entiti, ceea ce face deosebit
de greu de reprezentat i de urmrit diagrama ER.
De exemplu, n BD a unui magazin de mbrcminte, se folosesc entitile BLUZ, FUST,
ROCHIE, CMA, PANTALON, PALTON, JACHET, COSTUM, pe lng celelalte
CLIENT, ANGAJAT, FURNIZOR, ACHIZIIE, VNZARE, PLAT. Primele opt entiti au
fost definite separat deoarece fiecare reprezint un articol de mbrcminte cu atribute
specifice. Totui acestea au n comun multe atribute (cod, mrime, material, productor,
culoare) i ar putea fi incluse toate ntr-un aa-numit supertip sau superentitate ARTICOL.
Astfel numrul de entiti este simitor redus. Pe lng atributele comune, se disting i
atribute care le difereniaz. De exemplu, o bluz poate avea mnecile scurte sau lungi, n
timp ce la o fust vom fi interesai de croiala acesteia iar la rochii ne vor interesa diferite
modele (de mireas, de sear, de plaj etc.) Spunem c entitile componente ale entitii
supertip sunt subtipuri ale acesteia. Un subtip se mai numete i subentitate.
n viaa de zi cu zi, avem de multe ori de a face cu subtipuri, pe care le denumim categorii, i
modelarea lor pentru o BD ne oblig s le identificm corect pe toate i s le difereniem prin
aspectele lor particulare.
Exerciiu propus: Dai trei exemple de entiti supertip i punei n eviden subtipurile
acestora.
Subtipurile sau subentitile sunt reprezentate grafic toate n acelai dreptunghi creat pentru
supertip (Figura IV.5).
75
Baze de date_________________________________________________________________
Atributele comune subtipurilor se enumer unul sub cellalt, sub numele supertipului, n timp
ce atributele particulare, specifice fiecrui subtip se nscriu n caseta aferent acestuia.
Astfel un subtip are toate atributele supertipului i este implicat n toate relaiile acestuia cu
alte entiti. Un subtip poate s aib la rndul su alte subtipuri.
Exerciiu propus: Completai diagrama din figura IV.5 cu atribute comune i atribute
specifice subtipurilor identificate n modelul BD al unui parc auto.
trebuie complet refcut, ci numai regndite subtipurile entitii PLAT. Este dificil de
introdus un nou subtip dar este mai simplu de adaptat numele i atributele subtipului generic
ALTELE pentru a nregistra plile cu card.
Exerciiu propus: Reprezentai diagrama ER, cu supertipuri i subtipuri, pentru BD a unui
magazin, n care includei toate entitile (BLUZ, FUST, ROCHIE, CMA,
PANTALON, PALTON, JACHET, COSTUM, CLIENT, ANGAJAT, FURNIZOR,
ACHIZIIE, VNZARE, PLAT), cu atribute comune i atribute specifice subtipurilor.
Constrngerea de exclusivitate mutual se aplic uneori i relaiilor dintre entiti, nu numai
subtipurilor unei superentiti, caz n care relaiile respective sunt marcate cu un arc.
De exemplu, s considerm BD pentru planificare activitilor din slile de sport ale unui
club, care pot gzdui fiecare meciuri de baschet, handbal, fotbal sau concursuri de
gimnastic. Bineneles c la un anumit moment, doar un singur tip de competiie se
desfoar ntr-o sal, ceea ce impune exprimarea constrngerii de exclusivitate mutual
(exclusive OR) asupra relaiilor dintre entitile SAL i MECI_DE_BASCHET,
MECI_DE_HANDBAL, MECI_DE_FOTBAL, CONCURS_DE_GIMNASTIC i
reprezentarea acestei constrngeri n diagrama ER se face cu un arc ce cuprinde toate relaiile
implicate (Figura IV.6).
77
Baze de date_________________________________________________________________
Trebuie fcut distincia ntre regula de exclusivitate mutual a subtipurilor unei entiti i
constrngerea de exclusivitate mutual aplicat unor entiti distincte, care nu pot fi
considerate de acelai tip.
n multe aplicaii cu BD, valorile unor atribute se modific n timp i este nevoie s se
pstreze istoricul acestora, pentru a se observa evoluia lor, pentru a face anumite rapoarte i
comparaii, precum i pentru a lua anumite decizii.
De exemplu, managerul unui magazin dorete s analizeze evoluia pe o perioad de un an a
preului unui produs. Dac folosim entitatea PRODUS cu atributul pre_de_vnzare, atunci
nregistrarea din BD va reda la un anumit moment preul curent al produsului, nu i valorile
anterioare. Acestea sunt terse la fiecare actualizare a preului. Pentru a pstra toate valorile
preului produsului, este nevoie s se defineasc o nou entitate ISTORICUL PREULUI
care s nregistreze evoluia preului, data de la care se aplic un anumit pre i data de la care
acesta nu mai este valabil (Figura IV.7). Relaia dintre cele dou entiti este 1:M pentru c
aceluiai produs i corespund n timp mai multe valori ale preului. n plus, relaia dintre cele
dou entiti este barat pentru c identificatorul unic al preului se compune din id_produs i
data_aplicrii preului deoarece la aceeai dat, se stabilesc preurile la mai multe produse.
nregistrarea modificrilor suferite n timp de unele atribute ale unor entiti din model, se
poate face folosind atribute de tip dat timp sau entiti de timp separate.
n exemplul anterior n care se modela evoluia preului n timp, se folosesc atribute de timp.
De nenumrate ori dorim ca BD s pstreze i nregistrrile mai vechi, pentru a putea face o
comparaie ntre ele i valorile curente, pentru a observa anumite tendine i pentru a lua
decizii optime de eficientizare a proceselor (de producie, de vnzare, de tratament etc.)
Modelarea timpului ca entitate separata este util n multe aplicaii de planificare a
activitilor. De exemplu, pentru programarea orelor de curs i de laborator pe grupe de
studeni, se impun anumite constrngeri sau condiionri temporale. O nou activitate a
unei grupe (curs, laborator, seminar) nu poate s nceap nainte ca o alt activitate s nu se fi
ncheiat. Exprimm aceast constrngere prin impunerea ca ora de nceput a unei noi
activiti s fie programat dup ora de sfrit a altei activiti. Dac la orar apare pentru
fiecare activitate ora_de_nceput i ora_de_sfrit, atunci ntre aceste atribute apar anumite
condiionri. Realizarea orarului folosind o baz de date trebuie s se fac respectndu-se
unele constrngeri temporale. Chiar i o sal n care se desfoar anumite activiti didactice
trebuie reprezentat cu aceste condiionri temporale. Nu se pot planifica activiti simultane
de seminar, cu grupe disctincte, n aceeai sal. Adic ora de nceput a unui nou seminar
trebuie s fie egal sau dup ora de sfrit a oricrui alt seminar, programat n aceeai sal.
De asemenea, nu se pot face modificri n orar referitoare la o activitate, dup ora de ncepere
a acelei activiti. Este un alt tip de condiionare temporal a tranzaciilor din BD. Spunem c
ntre entitile SAL i GRUP apare o non-transferabilitate condiionat.
Reprezentarea entitilor cu unele atribute de timp poate s cauzeze nclcri ale regulilor de
normalizare a BD.
79
Baze de date_________________________________________________________________
De exemplu, ntr-o sal de festiviti, nu se pot programa simultan mai multe spectacole.
Adic ora de nceput a unui nou spectacol trebuie s fie dup ora de sfrit a altui spectacol.
Se descrie entitatea SPECTACOL prin atributele cod_spectacol (cheie primar), tip, titlu,
cod_echip, data, ora_de_nceput, ora_de_sfrit. Atributele de timp depind de atributul
data, sau altfel spus, atributul data are atribute proprii, dei nu este cheie primar. Nu putem
vorbi independent de ora 20, fr a specifica i ziua la care facem referire. De aceea spunem
c apare dependena de atributul data. Apare astfel o dependen tranzitiv care ncalc forma
a treia de normalizare (3NF). Este necesar separarea atributului care determin dependena
tranzitiv ntr-o entitate de sine stttoare DAT_TIMP, cu atributele id_dat_or, data,
ora_de_nceput, ora_de_sfrit, astfel nct s se rezolve condiionarea temporal impus de
regulile de afaceri. Entitatea iniial va apela numai la cheia primar a entitii de timp nou
create.
ntr-un alt exemplu, s considerm cazul modelrii unei BD a unei faculti, n care entitatea
ACTIVITATE are, printre altele, atributele cod_activitate, numr_grup, cod_profesor,
cod_sal, cod_disciplin, zi, ora_de_nceput, ora_de_sfrit. ntruct n aceeai sal nu se
pot programa simultan mai multe activiti, atributele de timp se condiioneaz n funcie de
codul slii, care la rndul su depinde de cheia primar, cod_activitate. De asemenea,
atributele de or nu sunt independente ci trebuie relaionate cu atributul zi pentru a exprima
corect intervalul n care se desfoar o activitate. Avem de a face aici cu o dependen
tranzitiv, care ncalc regula formei a treia de normalizare a BD (3NF).
ntrebare: Care sunt condiionrile de timp din exemplul de mai sus? Cum se procedeaz
pentru a trece entitatea n forma 3NF?
n cazul n care regulile afacerii se schimb foarte des, este relativ dificil de anticipat i de
modelat entitile bazei de date. De exemplu, pentru BD a unui magazin de produse de
anticariat este dificil de tiut de la nceput toate tipurile de produse care se vor comercializa i
nici toate atributele specifice acestor categorii. n astfel de situaii, cu evoluii nepredictibile
ale afacerii, se poate folosi cu succes un model generic.
Modelarea generic a BD este avantajoas din mai multe motive:
80
___________________________________________________________Luminia Scripcariu
FUST 01 40 stof 50 70
82
___________________________________________________________Luminia Scripcariu
Modelul generic prezentat stocheaz informaiile despre produse ntr-un singur tabel, cu
foarte multe nregistrri, greu de urmrit, i este necesar sortarea pe mai multe nivele a
datelor pentru separarea informaiilor despre un anumit tip de produs.
De aceea, n unele cazuri se recurge la folosirea unor relaii recursive care s permit stocarea
informaiilor despre diferite categorii de obiecte, n tabele diferite.
Pentru exemplul anterior, n care se modeleaz BD a unui magazin, n loc de dou entiti
generice (TIP_PRODUS, VALOARE_ATRIBUT), se pot considera mai multe entiti, cu
atribute i valori specifice:
TIP_PRODUS (# id_tip_produs, * nume)
PRODUS (# id_produs, * id_tip_produs, * nume)
ATRIBUT (# id_atribut, # id_tip_produs, * nume)
VALOARE_ATRIBUT(# id_produs, # id_atribut, # id_tip_produs, * valoare)
Relaiile dintre aceste entiti (PRODUS i VALOARE_ATRIBUT, TIP_PRODUS i
ATRIBUT, respectiv VALOARE_ATRIBUT i ATRIBUT) sunt barate, n sensul c fiecare
instan a entitii ATRIBUT se identific prin id_atribut i id_tip_produs iar valoarea
atributului va fi identificat n mod unic prin combinaia cheilor primare ale entitii
PRODUS i ATRIBUT (id_produs, id_atribut, id_tip_produs). Altfel spus, atributul cu
numrul 2, al tipului de produs FUST, este interpretat ca mrime iar valoarea sa difer de la
un produs la altul, n funcie de productor, model etc.
Exerciiu propus: Refacei modelul generic al magazinului, descris prin tabelele IV.1 i IV2
i reprezentai grafic diagrama cu noile entiti. Completai cele patru tabele asociate noului
model generic, cu valori specifice tuturor categoriilor de produse din exemplul anterior.
Acest model generic generalizat este deosebit de flexibil, n sensul c permite adaptarea
numrului de atribute la diferitele tipuri de produse sau de entiti, n general. Spre deosebire
de primul model generic care considera un numr maxim prestabilit de atribute, invariabil de
la un tip la altul, modelul generalizat poate include un numr variabil de atribute pentru
diversele tipuri considerate. Modelul poate fi uor modificat n timp, pe msur ce se extimde
83
Baze de date_________________________________________________________________
activitatea descris n BD. Numrul de coloane din tabelele asociate este fix, n timp ce
numrul de nregistrri (linii) din tabele va crete.
Prin realizarea unor modele de date generice, se prelungete durata de via a BD i se
simplific munca administratorilor de date. Totui complexitatea i costurile de implementare
a unei BD pe baza unui model generic sunt considerabil crescute.
Transpunerea modelului conceptual ntr-un model care s descrie structurile bazei de date
reprezint faza de modelare fizic a datelor. Acest proces mai este denumit i mapare
(mapping).
Proiectarea logic consta n rafinarea modelului conceptual (prin normalizare) i
transpunerea acestuia ntr-un model de date logic, cunoscnd tipul de SGBD int (relaional,
ierarhic, n reea sau orientat-obiect). Ea viza obinerea unui model al BD complet, care s
permit definirea tuturor vederilor utilizatorilor i meninerea integritii BD. Prin integrarea
n modelul logic a schemelor externe pentru vederile utilizatorilor, respectiv a modelelor de
date logice locale, se obine modelul de date logic global. n aceast etap se elimin acele
probleme care apar atunci cnd se utilizeaz aceiai termeni pentru obiecte diferite sau
termeni diferii pentru aceleai obiecte.
A treia etap de proiectare, proiectarea fizic a BD, const n descrierea sub forma unui
model fizic, a modului de implementare a BD, a structurilor de stocare n capacitatea de
stocare secundar i a metodelor de acces la date.
n cazul bazelor de date relaionale, din modelul de date logic global se obin modelele
tabelelor relaionale, se deduc constrngerile impuse datelor i necesitile de securitate ale
sistemului.
Mai precis, fiecrei entiti i se asociaz un tabel, numit i relaie, pe care l descriem prin
capul de tabel. Denumirea tabelului este dat, n general, de forma de plural a numelui
entitii. De exemplu, entitatea STUDENT se asociaz cu tabelul studeni.
Fiecare tabel va avea tot attea coloane cte atribute are entitatea respectiv.
n modelul tabelului se nscriu pe lng denumirile atributelor, constrngerile de opionalitate
i caracterul de cheie al fiecrui atribut.
84
___________________________________________________________Luminia Scripcariu
Este util ca n modelul fizic s se foloseasc denumiri prescurtate ale atributelor, astfel nct
transcrierea modelului fizic n limbaj de programare, s se fac mai simplu. n acest caz, n
modelul fizic este necesar s se includ i o descriere a fiecrei denumiri prescurtate.
De asemenea, n modelul fizic se mai pot include tipul datelor pentru fiecare atribut i
dimensiunea dorit, opiuni de tranzacionare, valori implicite (DEFAULT) i diferite
condiionri.
De exemplu, s considerm entitatea CMIN din figura IV.1. Aceasta are patru atribute care
definesc cele patru coloane ale tabelului cmine. Modelul fizic la tabelului este urmtorul:
care fiecare ofer are repartizat a anumit main, relaia dintre oferi i maini este 1:1 iar
cheia strin poate fi fie id_ofer inclus n setul de atribute al fiecrei maini, fie id_main
inclus n lista atributelor entitii OFER. De regul, cheia strin se pune n tabelul care va
avea mai puine nregistrri, pentru a salva spaiu de memorie.
Exerciiu propus: Realizai modelul fizic pentru diagrama ER corespunztoare BD a unui
magazin, cu relaiile descrise n paragraful IV.1.
Regula M3: O relaie barat dintre dou entiti determin apariia unui nou atribut n setul
de atribute al entitii determinate cu rol de cheie primar sau de component a acesteia,
respectiv de cheie secret, cu referire la tabelul entitii determinante. De exemplu, n BD a
unei universiti, relaia dintre facultate i catedre este una barat, n sensul c identificatorul
catedrei trebuie asociat cu identificatorul facultii, pentru a identifica unic o anumit catedr
din universitate. Prin urmare, atributul id_facultate este i cheie strin, i component a cheii
primare.
Exerciiu propus: Realizai modelul fizic pentru diagrama din figura IV.7.
Regula M4: Un supertip cu mai multe subtipuri este transformat ntr-un singur tabel dac are
mai multe atribute comune dect cele specifice fiecrui subtip. n acest caz, subtipurile sunt
difereniate n modelul fizic, printr-un singur atribut, cu caracter obligatoriu, care specific
subtipul. Relaiile supertipului se mapeaz conform regulilor anterioare. Relaiile subtipurilor
se mapeaz ca i chei strine opionale. Atributele subtipurilor devin opionale, urmnd ca la
completarea tabelului, s se nscrie date doar n coloanele corespunztoare atributelor unui
singur subtip. Apare aici o constrngere de tip XOR, care se exprim printr-o condiionare de
forma (de exemplu, considerm dou subtipuri, cu cte un atribut):
CHECK (atribut_1 is NOT NULL AND atribut_2 is NULL) OR (atribut_1 is NULL AND atribut_2
is NOT NULL)
Exerciiu propus: Realizai modelul fizic pentru modelul conceptual din figura IV.5
corespunztor parcului auto al unei societi de transport.
Regula M5: Dac un supertip are mai multe subtipuri care au mai multe atribute distincte
dect comune, atunci fiecare subtip este transformat ntr-un tabel, n care se includ i
atributele comune pe lng cele specifice subtipului. Cheia primar a supertipului devine
86
___________________________________________________________Luminia Scripcariu
cheie primar n fiecare tabel de subtip. Cheile unice ale supertipului rmn chei unice n
toate tabelele subtipurilor. Orice relaie a supertipului se marcheaz printr-o cheie strin n
toate tabelele subtipurilor. O relaie a unui subtip se mapeaz doar n tabelul acestuia, cu
opionalitatea original. De exemplu, ntr-un supermarket se pot comercializa produse
alimentare, produse de mbrcminte i nclminte, cri, produse electrocasnice.
Subtipurile entitii PRODUS sunt foarte diferite i atunci este indicat s se realizeze tabele
distincte pentru subtipuri. n acest caz i reprezentarea grafic sugereaz folosirea mai multor
tabele, iar marcarea cu un arc a mai multor relaii trebuie s se traduc, n modelul fizic i n
programare, ntr-o constrngere de exclusivitate a subtipurilor (CHECK). Relaia dintre
supertip i o alt entitate devine relaie dintre fiecare subtip i acea entitate, deci relaia se
multiplic i se exprim printr-o cheie strin corespunztoare fiecrui subtip. Aceste chei
strine au caracter opional prin regula de exclusivitate a subtipurilor.
Exerciiu propus: Reprezentai modelul fizic pentru diagrama ER a BD prin care se planific
activitile dintr-o sal de sport (figura IV.6).
n acest capitol, sunt prezentate aspecte mai puin comune i mai dificile ale modelrii
datelor, precum:
identificarea i soluionarea relaiilor redundante sau de tip M:M din diagrama ER
posibilitile de reprezentare ierarhic sau recursiv a unor relaii i entiti
reprezentarea unor constrngeri referitoare la netransferabilitatea unor relaii
avantajele definirii unor subtipuri de entiti
modaliti de modelare a istoricului unor variabile i a timpului n modelul de date
87
Baze de date_________________________________________________________________
Relaii redundante
Relaii M:M
Intersecia entitilor
Relaii ierarhice
Relaii recursive
Relaii barate
Transferabilitate
Relaii netransferabile
Subtip/Subentitate
Supertip/Superentitate
Regula de exhaustivitate
Regula de exclusivitate mutual
Constrngere de exclusivitate mutual
Istoricul atributului
Modelarea generic
Modelarea fizic
Reguli de mapare
88
___________________________________________________________Luminia Scripcariu
IV.12 TEST-GRIL
1. ntre entitile STUDENT, DISCIPLIN, NOT i PROFESOR se pot stabili mai multe
relaii. Care dintre urmtoarele relaii considerai trebuie c este redundant i trebuie
eliminat?
DISCIPLIN - NOT
DISCIPLIN PROFESOR
NOT - PROFESOR
STUDENT - NOT
2. Pentru BD a unei faculti, care dintre relaiile urmtoare este de tip M:M?
DISCIPLIN PROFESOR
DISCIPLIN - SAL
NOT - PROFESOR
STUDENT - DISCIPLIN
3. Care dintre urmtoarele relaii sunt netransferabile?
client-chitan
student-grup
oper-autor
autovehicul-proprietar
4. Care dintre urmtoarele entiti admite subtipuri? Menionai-le acolo unde este cazul.
autovehicul: ...........................................................................................................................
construcie: ............................................................................................................................
program software: .................................................................................................................
carte: ......................................................................................................................................
89
Baze de date_________________________________________________________________
7. Pentru maparea unei relaii 1:M dintre dou entiti A i B, se poate folosete:
cheia primar a lui A ca i cheie primar a lui B
cheia primar a lui A ca i cheie strin a lui B
cheia primar a lui B ca i cheie primar a lui A
cheia primar a lui B ca i cheie strin a lui A
10. Se mapeaz n dou tabele, subtipurile entitii CLIENT, respectiv PERSOAN FIZIC
i PERSOAN JURIDIC. Entitatea CLIENT are o relaie cu entitatea COMAND.
Subentitatea PERSOAN JURIDIC are o relaie cu entitatea BANC. Care dintre
urmtoarele afirmaii este adevrat?
Atributele comune ale subtipurilor entitii client apar n fiecare tabel de subtip.
Atributele specifice ale fiecrui subtip sunt incluse ca opionale n tabelul CLIENI.
Relaia cu entitatea COMAND se mapeaz ca i cheie strin n ambele tabele ale
subtipurilor.
Relaia cu entitatea BANC se mapeaz ca i cheie strin n ambele tabele ale
subtipurilor.
90
CAPITOLUL V
FINALIZAREA PROIECTRII BAZEI DE DATE
DIN CUPRINS:
V.1 ANALIZA CRUD
V.2 SECVEN, INDEX, ROL
V.3 TRANZACII
V.4 ETAPELE CICLULUI DE VIA AL UNEI APLICAII
CU BD
V.5 REZUMATUL CAPITOLULUI
V.6 TERMENI SPECIFICI
V.7 TEST-GRIL
Baze de date_________________________________________________________________
92
___________________________________________________________Luminia Scripcariu
Analiza CRUD a modelului urmrete ca asupra oricrei entiti din model s se poat
efectua cele patru operaii pentru a nu avea aspecte nemodelate ale aplicaiei.
Testarea cu un set complet de date de test, care s creeze toate situaiile reale tipice, din
perspectiva tuturor tipurilor de utilizatori ai BD i a tuturor regulilor de afaceri, precum i
corectarea aspectelor nedorite ale BD, va finaliza proiectarea acesteia.
Secvena este un alt obiect al BD, cu caracter partajat, care permite mai multor utilizatori s
atribuie identificatori unici pentru unul i acelai obiect, asupra cruia se efectueaz operaii
de inserare de date de ctre mai multe persoane. Este extrem de util o secven de numere
unice, de exemplu, de nregistrare a candidailor din locaii diferite, la un concurs de admitere
la o universitate, care are sedii n mai multe orae. Pentru a nu se crea confuzii, fiecare
candidat trebuie s aib un numr unic de nregistrare, indiferent unde s-a nscris.
Pentru bazele de date distribuite n reea, generarea secvenelor unice de nregistrare este
esenial pentru corectitudinea procesului de gestiune a datelor prin intermediul bazelor de
date.
O secven este generat independent de tabelele din BD, cu valori minime i maxime, cu un
anumit pas de incrementare, cu posibilitatea memorrii unui set de valori iniial n memoria
cache i cu riscul pierderii acestora la o problem tehnic a sistemului precum i cu opiunea
de ciclare a secvenei, n sensul relurii procesului de generare a valorilor pornind de la
valoarea minim, dup ce s-a ajuns la valoarea maxim.
Exerciiu propus: Dai trei exemple, de situaii concrete n care este esenial crearea i
folosirea secvenelor n BD.
Indexul este un alt element specific BD, prin care se accelereaz procesul de cutare i de
extragere a informaiilor din tabelele BD. Crearea unui index implic ocuparea unui spaiu de
memorie suplimentar i, de aceea, este indicat s se creeze un index doar ntr-un caz bine
justificat. Indexul nu ia n considerare dect valorile nscrise ntr-o coloan, nu i null-urile.
93
Baze de date_________________________________________________________________
Securizarea BD impune acordarea de drepturi i revocarea lor pentru diferii utilizatori sau
pentru diferite grupuri de utilizatori. Utilizatorii din acelai grup sunt asociai cu un aa-numit
rol, un obiect creat distinct n structura BD (ROLE) pentru a specifica n mod unitar
drepturile de accesare a BD i de manipulare a datelor pentru utilizatorii cu acelai rang.
Administrarea conturilor utilizatorilor BD se face mai rapid i mai eficient prin definirea
acestor roluri, dect individual, pentru fiecare utilizator n parte.
V.3 TRANZACII
Tranzacia este o unitate logic de lucru care conine una sau mai multe comenzi SQL, care
se execut ca o singur funcie logic.
Iniierea tranzaciei poate fi fcut de ctre o persoan sau un program, printr-o comand de
iniiere de tip SELECT, INSERT, UPDATE.
Pn la completarea tranzaciei, efectele ei nu sunt vizibile.
Tranzacia las BD ntr-o stare coerent (Fig. V.1). Dac, dintr-un anumit motiv, una sau mai
multe operaii din cadrul unei tranzacii eueaz, atunci toate operaiile efectuate pn la acel
pas, n cadrul acelei tranzacii, sunt anulate i BD revine n starea coerent, n care se gsea
nainte de lansarea tranzaciei. De fapt, pe toat durata efecturii tranzaciei, excluznd pasul
de finalizare a acesteia, BD nu i modific starea.
Scriere - citire (WR): a doua tranzacie citete un obiect scris anterior de prima
tranzacie.
Citire - scriere (RW): a doua tranzacie scrie un obiect de date citit anterior de ctre
prima tranzacie.
Scriere scriere (WW): a doua tranzacie scrie un obiect de date scris anterior de
prima tranzacie.
Lipsa unui control asupra ordinii de execuie a operaiilor din tranzacii concurente poate s
genereze mari erori n coninutul BD.
De exemplu, s presupunem, c simultan un contabil efectueaz majorarea salariilor cu 20 %
iar alt contabil nscrie n BD bonusurile acordate salariailor pentru ultima lun. Pentru un
salariat, cu un salariu de 2000 RON, cruia i se acord un bonus de 500 RON, n ordinea
specificat a tranzaciilor, venitul ncasat va fi de 2900 RON. Dac ns se nregistreaz mai
nti bonusul i abia apoi se aplic majorarea de 20 %, salariatul va ncasa 3000 RON, pentru
c majorarea se va aplica i bonusului, ceea ce ncalc regulile aplicaiei.
Este foarte important s fie gestionate corect tranzaciile concurente i, pentru aceasta, se
folosesc aa-numitele lacte (LOCK), operaii de blocare a accesului, aplicate obiectelor
din BD care sunt folosite ntr-una din tranzacii, astfel nct nici o alt tranzacie s nu poat
s le citeasc sau s le modifice pn la finalizarea primei tranzacii. Lactele asigur acces
exclusiv la anumite obiecte din BD pentru o tranzacie, pentru o anumit perioad de timp.
Lactele pot fi de mai multe tipuri:
de blocare a accesului la obiect: interzice accesul altor tranzacii la acel obiect,
prevenind rezultatele incorecte.
de citire a obiectului (shared/read lock) obiectul poate fi citit, dar nu modificat.
de scriere a obiectului (exclusive/write lock) tranzacia care deine lactul, poate s
citeasc i s scrie obiectul pe care este aplicat acesta.
SGBD gestioneaz, prin componenta sa de management a lactelor, ordinea de acordare a
acestora pentru diferitele tranzacii.
De exemplu, s presupunem c tranzacia 1 (T1) este cea de majorare cu 20% a salariilor
nscrise n tabelul A iar tranzacia 2 (T2) este cea de acordare de bonusuri (tabelul B) i se
aplic pe acelai tabel din BD. S urmrim modul de rezolvare a conflitului dintre tranzacii,
prin folosirea lactelor:
T1 T2
1 Begin-transaction
96
___________________________________________________________Luminia Scripcariu
2 Write-lock(A) Begin-transaction
3 Read(A) Write-lock(A)
4 A=A*1.20 Wait
5 Write(A) Wait
6 Unlock(A) A=A+B
97
Baze de date_________________________________________________________________
Alegerea unui SGBD adecvat, care s accepte aplicaia de tip BD, se poate face ntre
fazele de proiectare logic i conceptual a BD. Se au n vedere costurile de achiziii
software i hardware, cele de instruire a personalului, precum i performanele
sistemului.
Proiectarea programelor de aplicaie pentru utilizatori, cu interfee prietenoase i
eficiente, cu posibiliti de accesare a datelor i efectuare a tranzaciilor n BD, se
face n paralel cu proiectarea propriu-zis a BD.
Realizarea unui prototip al BD este o etap opional dar avantajoas, ntruct pe
baza unui model de lucru simplificat, cu costuri reduse, se testeaz funcionalitatea
aplicaiei BD, se identific eventualele probleme dar i caracteristici noi care trebuie
implementate.
Implementarea BD i a aplicaiilor const n realizarea fizic a proiectelor acestora
folosind diverse limbaje. Implementarea BD se face pe baza unui limbaj de definire a
datelor (DDL). Instruciunile DDL sunt compilate pentru a crea schema BD. Vederile
utilizatorilor sunt definite n aceast etap. Programele-aplicaie sunt implementate
cu ajutorul altor limbaje, DML, sau de nivel nalt Java, C, C++, Delphi, cu meniuri,
formulare, rapoarte i cu reguli de securitate i de integritate.
Conversia i ncrcarea datelor const n transferul n BD a datelor existente, cu
eventuala conversie de format, folosind un utilitar de ncrcare n BD a fiierelor deja
existente.
Testarea aplicaiei BD const n executarea programelor de aplicaie cu scopul
depistrii erorilor de funcionare, pe baza unor strategii de testare. ntreinerea
operaional se face prin monitorizarea continu a aplicaiei, remedierea erorilor de
funcionare prin reorganizarea BD i eventual, implementarea unor cerine noi. Este
indicat folosirea noilor aplicaii de tip BD n paralel cu cele vechi, dac acestea
exist, pentru o anumit perioad de timp (de regul, ase luni) n care s se observe
i s se rezolve disfuncionalitile noului sistem.
98
___________________________________________________________Luminia Scripcariu
Analiza CRUD
Secven
Index
Rol
Tranzacie
Conflict
99
Baze de date_________________________________________________________________
Lact
Tipuri de lacte
Checkpoint
Crash recovery
Ciclu de via
V.7 TEST-GRIL
4. Rezolvarea conflictelor dintre tranzaciile concurente care pot s apar n BD, se face prin
definirea unor:
indexuri
lacte
roluri
secvene
[1] Thomas Connoly, Carolyn Begg, Anne Strachan, Baze de date Proiectare,
Implementare, Gestionare, Editura Teora, 2001
[2] Hugh Darwen, An Introduction to Relational Databases Theory, Hugh Darwen &
Ventus Publishing ApS, 2010
[3] Ramez Elmasri and Shamkant B. Navathe, Fundamentals of Database Systems, 5th
Edition, Addison-Wesley, 2007
101