Sunteți pe pagina 1din 8

Ministerul Educației Culturii și Cercetării Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare Informatică și Microelectronică
Departamentul ISA

Atestarea II Disciplina: BDC

A efectuat :
studentul grupei SI-151 Cucu D.

Chișinau 2018
1.1 Descrierea atributelor

Nr. Cod Nume Descriere atribut Tip


atribut atribut Atribut
A. id_contract Codul de identificare a int
contractului
B. data_semnarii Data adoptării date
contractului
C. termenul Termenul de valabilitate numeric
a contractului
D. strea Starea activa sau nu a var_char
contractului
G. fk_date_pers Cheia externa int
O. fk_conexiune id_conexiune, int
cheieexterne
T. fk_servicii id_servicii, chaeie int
externa
G. id_date_pers id-ul dosarului int
informației despre client
H. IDNP Numarul personal a int
clientului
I. nume Numele clientului var_char
L. prenume Prenumele clientului var_char
M. tel Telefonul de contact al int
clientului
N. adresa Adresa domiciliului var_char
clientului
O. id_conexiune Numarul de int
indentificare a
conexiunii
P. ip Adresa retelei al unui varchar
client anumit
S. switch_name Dispozitivul utilizat varchar
pentru conexiune
T. id_servicii Numarul de int
indentificare a
serviciului
U. tip_servicii Tipul serviciului oferit varchar
V. pachet Pretul lunar numeric
W. nume_pachet Denumirea pachetului varchar
X. id_login Numarul de int
indentificare a
utilizatorului
Y. user_name Numele unic al varchar
utilizatorului
Z. pass Parola unica a varchar
utilizatorului sau admin.
A. fk_contract Cheie externa care int
coincide id_contract

1.2 Stabilirea depedențelor funcționale între atribute

Mulțimea de dependențe funcționale F

id_date_pers -> IDNP, nume, prenume.


tel -> nume, prenume, adresa.
IDNP -> nume, prenume.
id_login -> user_name, pass.
id_login -> id_contract.
id_servicii ->tip_servicii.
tip_servicii -> pachet, nume_pachet.
id_conexiune -> ip, switch_name.
id_contract -> data_semn, termen, starea_contract.
id_contract -> id_date_pers, id_conexiune_id_servicii.
}

Codificarea atributelor
Utilizînd mulțimea de dependențe funcționale din capitolul 1.3 și codarea din capitolul 1.2 primesc:
Sch=(R, F);
R=(A,B,C,D,G,O,T,H,I,L,M,N,P,S,U,V,W,X,Y,Z).
F={ G->HIL, M->ILN, H->IL, X->YZ, X->A, T->UVW, O->PS, A->BCD, A->GOT}.
Sinteza schemei BD
Aplicam algoritmul de sinteza:
1. Transformam mulțimea de dependente funcționale F intr-o acoperire canonica, adica aduc dependențe
funcționale la .

F={ G->H, G->I , G->L, M->I, M->L, M->N, H->I, H->L, X->Y, X->Z, X->A, T->U, T->V, T->W,
O->P, O->S, A->B, A->C, A->D, A->G, A->O, A->T }.

2. Adaug în mulțimea de dependențe funcționale o dependență artificiala de forma , unde R este

mulțimea universala de atribute, iar Q este un atribut care domeniului de interes. Acesta etapa
garantează elaborarea unei scheme care poseda proprietatea joncțiunii fără pierderi :
F={ G->H, G->I , G->L, M->I, M->L, M->N, H->I, H->L, H->N,X->Y, X->Z, X->A, T->U, T->V, T-
>W, O->P, O->S, A->B, A->C, A->D, A->G, A->O, A->T, ABCDGOTHILMNPSUVWXYZ ->Q }.
3. Constuim acoperirea neredundanta pentru mulțimea F
(H)F/{G->H}=<HIL>, Nu apartine
(I)F/{G->I}=<I>, Nu apartine
(L)F/{G->L}=<L>Nu aprattine
(I)F/{M->I}=<I>N
(L)F/{M->L}=<L>Nu aprattine
(N)F/{M->N}=<N>Nu
(I)F/{H->I}=<I>N
(L)F/{H->L}=<L>Nu aprattine
(Y)F/{X->Y}=<Y>
(Z)F/{X->Z}=<Z>
(A)F/{ X->A}=< ABCDGOTHILNUVWPS >
(U)F/{T->U}=<U>
(V)F/{T->V}=<V>
(W)F/{T->W}=<W>
(P)F/{O->P}=<P>
(S)F/{T->S}=<S>
(B)F/{A->B}=<B>
(C)F/{A->C}=<C>
(D)F/{A->D}=<D>
(G)F/{A->G}=<GHILN>
(O)F/{A->O}=<OPS>
(T)F/{A->T}=<TUVW>
(Q)F/{ABCDGOTHILMNPSUVWXYZ ->Q}=< ABCDGOTHILMNPSUVWXYZ >

Rezultatul primit:
F={ G->H, M->I, M->L, M->N, H->I, H->L, H->N, X->Y, X->Z, X->A, T->U, T->V,T->W, O->P,
O->S, A->B, A->C, A->D, A->G, A->O, A->T, ABCDGOTHILMNPSUVWXYZ ->Q }.

4. Realizez transferal mulțimii de dependențe funcționale prin algoritmul reducerii la stînga:


o ABCDGOTHILMNPSUVWXYZ ->Q



Rezultatul primit:

F={ G->H, M->I, M->L, M->N, H->I, H->L, H->N, X->Y, X->Z, X->A, T->U, T->V,T->W, O->P,
O->S, A->B, A->C, A->D, A->G, A->O, A->T, BMX->Q }.

5. Formez clasele de echivalență pentru mulțimea de dependențe F:


F={ G->H, M->I, M->L, M->N, H->I, H->L, H->N, X->Y, X->Z, X->A, T->U, T->V,T->W, O->P, O->S,
A->B, A->C, A->D, A->G, A->O, A->T, BMX->Q }.

G->H =><HILN>
M->I=> <I>,
M->L=> <L>,
M->N=> <N>,
H->I=> <I>,
H->L=> <L>,
H->N=> <N>
X->Y=><Y>,
X->Z=><Z>,

X->A=><ABCDGOTHPSUVWILN>
T->U=><U>,
T->V=><V>,
T->W=><W>,
O->P=><P>,
O->S=><S>,

A->B => <B>,


A->C=> <C>,
A->D => <D>,
A->G=> <GHILN>,
A->O=> <OPS>,
A->T=> <TUVW>
BMX->Q => <BMXYZAILNBCDGOTUVWPSH>

Clasele de Echivalenta pentru F:

F={ G->H, M->I, M->L, M->N, H->I, H->L, H->N, X->Y, X->Z, X->A, T->U, T->V,T->W, O->P, O->S,
A->B, A->C, A->D, A->G, A->O, A->T, BMX->Q }.
6. Construiesc mulțimea J din F, cu determinanții X și Y, unde schimbă mulțimea

schimbă mulțimea și modific mulțimea F:


Rezultatul => Nu exista relatii in F de tipul . Ceia ce ne arta ca schema bazei de date

se gaseste in Forma normala trei.


7. Formez schemele si cheile primare a bazei de date.
R1 = {A,B,C,D,G,O,T}, K={A};
R2={G,H,I,L,M,N}, K={GMH};
R3={X,Y,Z,A}, K={X};
R4={T,W,V,U}, K={TU};
R5={O,P,S}, K={O};

Decodificarea atributelor

DB={
(Contracte(id_contract, data_semn, termen, stare_contract, fk_date_pers, fk_conexiune,
fk_servicii),K={id_contract },

(Date_pers (id_date_pers, IDNP, nume, prenume, tel, adresa),K={ id_date_pers }


(Login(id_login, user_name, pass, fk_contract),K={ id_login },
(Servicii (id_servicii, tip_servicii, pachet, nume_pachet),K={ id_servicii }

(Conexiune (id_conexiune, ip, switch_name ),K={ id_conexiune }