Documente Academic
Documente Profesional
Documente Cultură
Office 2010
Unitatea de nvare I
Cuprins
1 BAZE DE DATE - CONCEPTE FUNDAMENTALE ..................................................... 8
1.1 Concepte fundamentale .......................................................................................................................................... 8
1.2 Proiectarea bazelor de date ................................................................................................................................. 10
O baz de date relaional reprezint o colecie de date structurate, dup criteriul omogenitii, n
tabele.
O tabel reunete date omogene, referitoare la un anumit subiect studiat (de exemplu, tabela
Clienti va conine datele privind toi clienii nregistrai ai unei organizaii).
Un cmp reflect o caracteristic a subiectului descris n tabel i este definit prin urmtoarele
elemente principale:
identificatorul sau denumirea cmpului; de exemplu, CodClient, NumeClient;
tipul de dat asociat, indicnd tipul de informaie pe care cmpul l poate conine;
de exemplu, numeric, respectiv text;
Pe lng acestea, se pot stabili, pentru un cmp, i alte proprieti, cum ar fi: dimensiunea sa
(numrul maxim de caractere admise), un anumit format de afiare a datelor etc.
Structura unei tabele reprezint mulimea format din cmpurile sale.
O valoare (sau realizare) a unui cmp este o dat concret atribuit cmpului respectiv. De
exemplu, 1 este o valoare (sau realizare) a cmpului CodClient, iar BETA SA o realizare a
cmpului NumeClient.
Conceptul central din teoria bazelor de date rmne cel de nregistrare sau tuplu (o linie de date).
O nregistrare (un tuplu) dintr-o tabel reprezint mulimea format din cte o valoare (sau
realizare) atribuit fiecruia dintre cmpurile care alctuiesc structura tabelei. De exemplu,
mulimea {1, BETA SA, Bucuresti, 112201, J40 17175/1997} este o nregistrare a tabelei
Clienti (una dintre liniile tabelei).
Prin domeniu al unui cmp se nelege totalitatea valorilor atribuite cmpului respectiv (o coloan
de date).
Cheia primar (sau principal, PK primary key) a unei tabele poate fi format din unul sau
din mai multe cmpuri, cu scopul de a identifica, n mod unic, nregistrrile (tuplurile) tabelei.
Pentru tabela Clienti, cheia primar este cmpul CodClient.
9
MS Access creeaz automat un index pe baza cheii primare, nregistrrile fiind afiate n ordinea
valorilor cheii. Existena indexului faciliteaz regsirea i sortarea nregistrrilor, sporind viteza de
realizare a acestor operaiuni. MS Access utilizeaz indexul pentru a determina locaia unei date
solicitate.
nregistrrile redondante (duplicate) nu sunt permise, astfel nct fiecare tuplu, va fi, aadar, unic
n cadrul tabelei.
Cheia primar a unei tabele servete la stabilirea legturilor logice cu alte tabele.
O condiie esenial pentru realizarea acestor legturi dintre tabele diferite este existena cheilor
externe.
O cheie extern (sau secundar, FK foreign key) dintr-o tabel este reprezentat de un cmp
(sau de un grup de cmpuri), provenit din cheia primar a tabelei cu care se dorete realizarea unei
legturi logice. De exemplu, cmpul CodClient din tabela Facturi este o cheie extern a acestei
tabele, realiznd legtura logic ntre nregistrrile tabelei Clienti (clieni gestionai) i cele ale
tabelei Facturi (facturile emise ctre clieni).
De regul, cheia extern are aceeai denumire i acelai tip de dat ca i cheia primar surs.
Legturile logice dintre tabele fac posibil obinerea de cereri (interogri), formulare, rapoarte,
coninnd date corelate, dar stocate n mai multe tabele diferite.
10
pe o factur sunt nscrise datele de identificare ale clientului (cod client, nume client,
o factur poate fi emis unui singur client, un client poate primi mai multe facturi,
iar o factur poate conine mai multe mrfuri, n timp ce o marf se poate regsi pe mai
multe facturi;
Se cere s se elaboreze modelul logic al datelor (MLD) pentru situaia prezentat.
Soluie
Dicionarul datelor (DD)
Cod client, Denumire client, Localitate, Cod potal, CIF, NrRegComert, Numr factur, Dat
factur, Dat scadent, Valoare factur, Cod marf, Denumire marf, Unitate de msur, Cantitate,
Pre, Procent TVA, Valoare fr TVA
FN 1
Cod client
Denumire client
Localitate
Cod potal
CIF
NrRegComert
Numr factur
Dat factur
Dat scadent
Cod marf
Denumire marf
Unitate de msur
Procent TVA
Cantitate
Pre
Definiie: O relaie (tabel) este n forma normal 2 (FN2) dac este n FN1 i toate atributele
(cmpurile) non-cheie depind funcional complet de cheia primar a relaiei (tabelei). FN 2
Cod client
Denumire client
Localitate
Cod potal
12
Numr factur
Cod client
Dat factur
Dat scadent
Cod marf
Denumire marf
Unitate de msur
Numr factur
Cod marf
Cantitate
Pre
Procent TVA
Definiie: O relaie (tabel) este n forma normal 3 (FN3) dac este n FN2 i au fost eliminate
toate dependenele tranzitive.
Exist o dependen tranzitiv ntre Cod client -> Localitate -> Cod potal
FN 3
Cod potal
Localitate
Cod client
Denumire client
Cod potal
13
14
2.
3.
Care dintre afirmaiile de mai jos reprezint o definiie a unei baze de date relaionale:
a. o baz de date relaional reprezint o colecie de date structurate, dup criteriul omogenitii,
n tabele;
b. orice tabel reprezint o baz de date;
c. o baz de date reunete date omogene, referitoare la un anumit subiect studiat (de exemplu,
clienii nregistrai ai unei organizaii).
4.
5. Cunoscnd c un salariat deine o singur funcie, iar o funcie poate fi deinut de mai muli
salariai, specificai care dintre urmtoarele MLD este corect: a. SALARIAT (MarcaSalariat,
NumeSalariat)
FUNCTIE (CodFunctie, DenumireFunctie)
b. SALARIAT (MarcaSalariat, NumeSalariat, CodFunctie)
FUNCTIE (CodFunctie, DenumireFunctie)
c. SALARIAT (MarcaSalariat, NumeSalariat)
FUNCTIE (CodFunctie, DenumireFunctie, MarcaSalariat)
d. SALARIAT_FUNCTIE (CodFunctie, DenumireFunctie, MarcaSalariat, NumeSalariat)
6. Cunoscnd c un cursant poate opta pentru mai multe module, iar un modul poate fi urmat de mai
muli cursani, specificai care dintre urmtoarele MLD este corect: a. CURSANT
(MarcaCursant, NumeCursant)
MODUL (CodModul, DenumireModul)
b. CURSANT (MarcaCursant, NumeCursant, CodModul)
MODUL (CodModul, DenumireModul)
c. CURSANT (MarcaCursant, NumeCursant)
MODUL (CodModul, DenumireModul, MarcaCursant)
d. CURSANT (MarcaCursant, NumeCursant) MODUL (CodModul, DenumireModul)
CURSANT_MODUL(MarcaCursant, CodModul)
e. CURSANT
(CodModul,
(MarcaCursant,
DenumireModul, MarcaCursant)
16
NumeCursant, CodModul)
MODUL
7. Cunoscnd c de la un furnizor pot fi primite mai multe facturi, iar o factur este emis de un
singur furnizor, specificai care dintre urmtoarele MLD este corect: a. FACTURA (NrFactura,
DataFactura, ValoareFactura)
FURNIZOR (CodFurnizor, NumeFurnizor)
b. FACTURA (NrFactura, DataFactura, ValoareFactura)
FURNIZOR (CodFurnizor, NumeFurnizor, NrFactura)
c. FACTURA (NrFactura, DataFactura, ValoareFactura, CodFurnizor)
FURNIZOR (CodFurnizor, NumeFurnizor)
d. FACTURA (NrFactura, DataFactura, ValoareFactura)
FURNIZOR (CodFurnizor,
NumeFurnizor)
FURNIZOR_ FACTURA (CodFurnizor, NrFactura)
8.
Cod carte, Titlu carte, An apariie, Numr de pagini, Cod autor, Nume autor, Cod domeniu,
Denumire domeniu, Numr de cri existe n domeniu, Cod editur, Denumire editur, Numr
contract, Dat contract, Cod librrie, Denumire librrie, Localitate librrie, Numr de exemplare
contractate, Pre de vnzare.
17
18