Sunteți pe pagina 1din 10

Studiu de caz

Proiectarea unei BD prin normalizare

Exemplul unei societi comerciale


care dorete s-i implementeze o
aplicaie pentru gestiunea
contractelor i a ofertelor puse la
dispoziia clienilor

Dicionar

Nr. crt.

Atribut

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

CUI client
Denumire client
Adresa client
Telefon client
Numr contract
Localitate client
Tara client
Data nceput contract
Data finalizrii contract
Denumire client contract
CNP angajat supraveghere contract
Nume angajat
Prenume angajat
Data angajrii
Adresa angajatului
Telefonul angajatului
Data nceput supraveghere
Data sfrit supraveghere
Cod ofert
Descriere ofert
Tarif baz
Tarif negociat
Data nceput valabilitate ofert
Data sfrit valabilitate ofert
Discount acordat

Reguli de gestiune
n contract se ncheie cu un singur client;
Derularea unui contract este supravegheat de unul sau mai muli angajai.
Un angajat poate supraveghea un contract pe o perioad determinat (ntre
Data nceput supraveghere i Data sfrit supraveghere); Perioada n care un
angajat supravegheaz derularea unui contract nu este aceeai cu perioada
de derulare a contractului;
Dac perioada de derulare a unui contract este mare, nu se poate ca acelai
angajat s supravegheze contractul n mai multe perioade diferite de timp;
Fiecare contract se bazeaz pe o singur ofert de servicii, n urma cruia se
ncheie contractul;
Societatea poate avea n derulare simultan mai multe oferte de servicii;
Serviciile ofertate sunt prezentate sub forma unor descrieri netipizate, n care
sunt prezentate detaliile de execuie ale acestora;
O ofert de servicii este valabil ntr-o singur perioad de timp (ntre Data
nceput valabilitate ofert i Data sfrit valabilitate ofert), nefiind posibil
reactivarea unor oferte mai vechi, pentru alte perioade;
Fiecare ofert de servicii are un tarif fix (Tarif baz), ns n urma negocierilor,
tariful la care se ncheie contractul poate fi diferit (Tarif negociat), datorit
unor factori cum ar fi: durata contractului, fidelizare clieni, etc;
Discount acordat se calculeaz ca fiind diferena ntre Tarif baz i Tarif
negociat;

Matricea dependenelor funcionale

DescriereOferta

TarifBaza

DataInceputValab

CodOferta

DataSfarsitValab
DataContra
ct
TarifNegociat

NrContract

DataFinContra
ct

DenumireCl
AdresaCl
CUICl
TelefonCl

LocalitateCl

TaraCl

NumeAng

CNPAngajat

PrenumeAng
AdresaAng

NrContract, CNPAng

TelefonAng

DataInceput

DataSfarsit

DescriereOferta
TarifBaza

DataContra
ct
TarifNegociat

DataInceputVala
b
DataSfarsitValab

CodOferta

NrContract

DataFinContr
act

LocalitateC
l

DenumireCl
AdresaCl
CUICl
TelefonCl
TaraCl

NumeAng
CNPAngaj
at

NrContract, CNPAngajat

PrenumeAng
AdresaAng
TelefonAng

DataInceput

DataSfarsit

Client
CUICl, DenumireCl, AdresaCl, TelefonCl, LocalitateCl, TaraCl
1
Oferta
CodOfert, DescriereOfert, TarifBaz, DatanceputValab, DataSfritValab
1
Contract

NrContract, DataContract, DataFinContract, TarifNegociat, CUICl, CodOferta


1
Lucreaz
n

CNPAngajat, NrContract, Datanceput, DataSfrit

Angajat
CNPAngajat, NumeAng, PrenumeAng, DataAng, AdresAng, TelefonAng

Model relaional
Client(CUIClient, DenumireCli, AdresaCl, TelefonCl,
LocalitateCl, TaraCl)
Contract(NrContract, DataContract,
DataFinContract, TarifNegociat, CUIClient, CodOferta)
Oferta(CodOfert, DescriereOfert, TarifBaz,
DatanceputValab, DataSfritValab)
Angajat(CNPAngajat, NumeAng, PrenumeAng,
DataAng, AdresAng, TelefonAng)
Lucreaza(CNPAngajat, NrContract, Datanceput,
DataSfrit)

Ri1 CUIClient, cheie primara



Ri9 CNPAngajat cheie externa in tabelul
Lucreaza
Ri10 DenumireClient, minim un character
Ri11 LocalitateClient obligatorie
Ri12 TaraClient obligatorie
.