Ne referim la proiectarea conceptuala si logica. O problema principala pentru o relatie – alegerea schemei relatiei, din mai multe posibile. Ideea centrala in alegerea schemelor de relatie: dependenta datelor. Dependenta datelor este o restrictie asupra relatiilor ri care pot constitui valoarea curenta a unei scheme de relatie R. Exemplu de dependenta: un atribut determina in mod unic un alt atribut, ca in cazul ADRESA=f(nume). Dependenta functionala va fi reprezentata prin notatia specifica NUME›ADRESa.
Fie schema de relatie: FURNIZORI(Numef, Adresaf, Articol, Pret). Probleme aici:
1. redundanta – repetarea adresei;
2. inconsistenta potentiala (anomalii de actualizare);
3. anomalii de inserare;
4. anomalii de eliminare (invers cu 3)) – daca eliminam toate articolele livrate de un furnizor, putem pierde urma adresei sale (intrucat perechea de atribute Articol, Numef formeaza o cheie a relatiei FURNIZORI).
Problemele dispar daca relatia unica FURNIZORI este descompusa in urmatoarele doua relatii:
FD(Numef, Adresaf)
FAP(Numef, Articol, Pret)
Deci: FURNIZORI›FD, FURNIZORI›FAP.
Prin descompunere nu mai exista problema redundantelor la adrese. Putem introduce adresa unui furnizor chiar daca la un moment dat nu livreaza nimic. Dezavantaj al descompunerii de mai sus: daca dorim adresele furnizorilor unui anumit articol, trebuie efectuata mai intai o jonctiune, ceea ce este scump. Cu relatia unica FURNIZORI – o selectie, apoi o proiectie.