Sunteți pe pagina 1din 18

Capitolul 4

Modelarea Logică și Fizică a Datelor (M L-F D)


1. Modelul relational este modelul conceptual cel mai des folosit de SGBD-uri, sistemul
care permite gestionarea bazelor de date relationale.
O baza de date relationala este alcatuita din mai multe tabele intre care se pot stabili
relatii. Un tabel contine inregistrari (randuri).
O inregistrare este alcatuita din mai multe campuri (coloane sau atribute).
O cheie este un câmp ce are o valoare unică, corespunzătoare fiecărei înregistrări dintr-un
tabel. Sunt mai multe tipuri de chei, fiecare având propriile caracteristici:
 Cheia candidat - este un atribut sau un set de atribute ce identifică în mod unic un
tuplu dintr-un tabel.
 Cheia primară - reprezintă una dintre cheile candidat desemnate în cadrul unui tabel.
Orice tabel trebuie să aiba o cheie primară. O cheie primară trebuie să fie:
1. Stabilă-valoarea unei chei primare nu trebuie să se modifice sau să devină nulă
pe tot parcursul existenţei unei entităţi.
2. Minimală- cheia primară trebuie să fie alcătuită dintr-un număr minim de
câmpuri ce sunt capabile să asigure unicitatea.
3. Centrată pe date, nu pe informaţii. 4. Definitivă. În momentul introducerii
unei noi înregistrări, trebuie să existe posibilitatea introducerii unei valori. Cheia
primară acţionează ca un mecanism de constrângere suplimentară a entităţii
deoarece nu poate fi introdusă o instanţă a unui tip de entitate dacă aceasta nu are o
valoare permisă în cheia primară.
5. Accesibilă. Oricine doreşte să creeze, citească, sau şteargă o înregistrare trebuie
să poată vizualiza valoarea cheii primare (Whitener, 1989).
 Cheie alternativă - este o cheie candidat ce nu a fost desemnată drept cheie primară.
Ea poate deveni cheie primară dacă cheia primară aleasă iniţial nu mai corespunde la
un moment dat.
 Cheie externă - există doar în situaţia în care se stabilesc două sau mai multe relaţii
între tabelele bazei de date. Un atribut al unui tabel trebuie să existe şi în celălalt
tabel legat de primul printr-o relaţie. Un astfel de model este simplu deoarece el
poate fi descris cu ajutorul unui număr mic de concepte care se referă la relaţii,
rânduri, coloane şi chei.
Baza de date relaţională constă din unul sau mai multe relaţii sau tabele. Principalele
concepte ale modelului relaţional sunt:
1. Atributul – este o coloană ce are un nume propriu şi unic într-o relaţie (câmp).
Fiecare relaţie conţine o listă de atribute (sau coloane) definite pe un anumit
domeniu.

1
Tabela Producator
Cheia primara Atribut
Cod_Producator Nume Prenume CNP Adresa Localitate
101010 Ionescu Ion 1234567891234 Str. M, nr. 2 Reghin
101011 Popescu Bogdan 1234567891011 Str. N, nr. 1 Reghin

Tuplu

2. Domeniul – reprezintă setul posibil de valori pe care îl poate avea unul sau mai
multe atribute. Utilizatorul poate defini domeniul de definiţie, dar numai în anumite
produse îşi poate defini propriile domenii.
3. Tuplu – un rând din cadrul unei relaţii (înregistrare). Un rând dintr-un tabel
reprezintă asocierea dintre seturile de valori. Fiecare relaţie conţine un set de tupluri (sau
rânduri).
4. Gradul – numărul de atribute dintr-o relaţie.
5. Cardinalitatea – exprimă numărul de tupluri dintr-o relaţie.
Exemplu:
Tabela Contracte_achizitie

Nr_contract Cod_producator Data_incheierii Cod_centru Data_initiala Data_expirare


123456 101 10.10.2000 1 10.10.2000 01.01.2001
123457 102 11.10.2000 2 11.10.2000 02.12.2001
123480 101 10.12.2001 1 10.12.2001 09.12.2004

Cardinalitatea relatiei : 3.
Gradul relatiei : 6 .
6. Baza de date relaţională – reprezintă o colecţie de relaţii ce pot fi modificate
(tabele). O astfel de colecţie este descrisă sub forma unui set de scheme de relaţii din
cadrul bazei de date, numite scheme relaţionale ale bazei de date. Relaţiile sunt alcătuite
din două părţi: - instanţa – un tabel cu rânduri şi coloane; - schema – specifică numele
relaţiei împreună cu numele şi tipul fiecărei coloane.
Schema unei relaţii
Tabela Centru_de_colectare
Cod_centr Denumire_centr Cod_producat Responsabil_centr Adres Localitat
u u or u a e
1 Pietris 10101 1010 str. N Pietris
D2
Tabela Responsabil_centru
Marca_angaja Nume_angaja Prenume_angajat
t t

2
1010 Stef Vasile
D1

Unde D2 < sau = cu D1

2. Reguli de trecere de la modelul E-A la schema bazei de date relaţionale

Regula 1

 fiecărui tip de entitate (din modelul EA) îi este asociată schema unei relaţii formată
din toate atributele tipului de entitate;
 identificatorul tipului de entitate devine cheia primară a relaţiei.

Producator
Cod_producator
Nume
Prenume
Producator(Cod_producator,Nume, Prenume, CNP, Adresa, Localitate)
CNP
Adresa
Localitate

Regula 2

 dacă într-o asociere binară A fiecare dintre entităţi prezintă pentru cuplul entitate-
asociere cardinalitatea (0,1) sau (1,1) se adaugă în schema relaţiei R1 corespunzând
entităţii E1 cheia primară a celeilalte relaţii, R2 corespunzătoare entităţii E2
participante la asociere;
 cheia externă va trebui să respecte restricţia de integritate referenţială.

Centru_colectare Angajat
Cod_centru Marca_angajat
Denumire_centru Nume
Prenume
Adresa 1,1 CNP
ARE
Localitate 0,1 Adresa
Cod_producator Localitate
Stare_civila
Nr_copii
Nr_contract_munca

3
Centru_colectare(Cod_centru, Denumire_centru, Adresa, Localitate, Cod_producator,
Marca_angajat)
Angajat(Marca_angajat, Nume, Prenume, CNP, Adresa, Localitate, Stare_civila, Nr_copii,
Nr_contract_munca)

Regula 3
 dacă într-o asociere A există o singură entitate E1 pentru care cardinalitatea cuplului
EA este egală cu (0,1) sau (1,1) se adaugă în schema relaţiei R1, ce corespunde
entităţii E1 cheia primară a relaţiei R2 care corespunde entităţii E2 participante la
asociere;
 acest “transport” al cheii relaţiei R2 în schema relaţiei R1 (unde va juca rolul de cheie
externă) este impus de rolul dominant al primei relaţii asupra celei de a doua;
 când între două entităţi se stabileşte o asociere 1:n înseamnă că entitatea care
prezintă pentru cuplul EA cardinalitatea (1,n) sau (0,n) este dominantă, iar cea de a
doua va fi considerate entitate “fiu” şi va primi drept cheie externă cheia primară a
entităţii “părinte”, iar dacă sunt definite atribute pentru asocierea A ele vor fi
cuprinse în schema relaţiei “fiu”.

Regula 4
 dacă într-o asociere A nu există nici o entitate E pentru care cardinalitatea cuplului
(EA) să fie egală cu (0,1) sau (1,1) se va defini o a treia relaţie cuprinzând în schema sa
cheile primare ale celorlalte două relaţii (corespunzătoare entităţilor participante la
asociere) împreună cu toate atributele definite pentru asocierea A.

TIP ENTITATE ATRIBUT Proprietati/ Tip de date si Reguli


Descriere lungime
PRODUCATOR Cod_producator Nr. unic producator Nr. intreg lung Cheie primara
Nume Nume producator Text (15
caractere)
Prenume Prenume producator Text (15
caractere)
CNP Cod numeric Nr. intreg lung
personal producator
Adresa Adresa de domiciliu Text (30
producator caractere)
Localitate Localitate Text (15
producator caractere)
CONTRACT_ACHIZITIE Nr_Contract Nr. unic contract Nr. intreg lung Cheie primara
Cod_producator Nr. unic producator Nr. intreg lung
Data_incheierii Data incheierii Dată scurtă

4
contractului
Denumire_centru Centrul la care va fi Text (15
colectat laptele caractere)
Data_initiala Data initiala a Dată scurtă
contractului
Data_expirare Data la care expira Dată scurtă
contractul produc.
BORDEROU_ACHIZITI Cod_producator Nr. unic producator Nr. intreg lung Cheie primara
E
Denumire_produs Denumirea Text (15
produsului colectat caractere)
Cantitate_produs Cantitatea de produs Nr. intreg lung
colectata
Pret_achizitie Pretul pe litru al Nr. intreg lung
produsului colectat
Valoare_achizitie Valorarea totala a Nr. intreg lung
produselor colectate
de la producator
PRODUS Cod_produs Nr. unic produs Nr. intreg lung Cheie primara
Denumire_produs Denumirea
produsului colectat
Pret_achizitie Pretul pe U.M al Nr. intreg lung
produsului colectat
Adaos Valoarea adaugata la Nr. intreg lung
pretul de achizitie a
produsului
Pret_vanzare Pretul pe U.M al Nr. intreg lung
produsului vandut
catre client
TVA_facturare TVA la facturare, in Nr. intreg lung
momentul vanzarii
catre client
CENTRU_COLECTARE Cod_centru Nr. unic centru Nr. intreg lung Cheie primara
Denumire_centru Denumirea centrului Text (15
de colectare caractere)
Adresa Adresa centrului de Text (30
colectare caractere)
Localitate Localitatea in care se Text (15
afla centrul de colec. caractere)
Cod_producator Nr. unic producator Nr. intreg lung
NIR Nr._NIR Nr. unic nota de Nr. intreg lung cheie primara
receptie
Data_intocmire Data intrarii Dată scurtă

5
produselor
Cod_producator Nr. unic producator Nr. intreg lung
AVIZ_EXP Nr_aviz Nr. unic aviz Nr. intreg lung Cheie primara
Data_aviz Data intocmirii Dată scurtă
avizului
Denumire_centru Denumire centru de Text (15
colectare caractere)
Data_plecare_av Data la care se face Dată scurtă
livrarea
Ora_plecare_av Ora de plecare Oră fmt. scurt
Data_sosire_av Data la care se preda Dată scurtă
produsele catre
client
Ora_sosire_av Ora de sosire Oră fmt. scurt
Nr_mijloc_transp Nr. unic a mijlocului Text (7
de transport caractere)
FACTURA_VANZARE Nr_fact_vanzare Nr. unic al facturii Nr. intreg lung Cheie primara
emise
Data_fact_vanzare Data la care se emite Dată scurtă
factura
Nr_aviz Nr. unic pentru Nr. intreg lung
avizul care insoteste
produsele la livrare
Denumire_client Denumirea clientului Text (30
caractere)
CLIENT Cod_client Cod unic pentru Nr. intreg lung Cheie primara
client
Denumire_client Denumirea clientului Text (15
caractere)
CUI_client Cod fiscal al Nr. intreg lung
clientului
Adresa_client Adresa sediului Text (30
clientului caractere)
Localitate_client Localitate sediu Text (15
client caractere)
Iban_client Nr. cont bancar Text (30
caractere)
ANGAJAT Marca_angajat Nr. unic angajat Nr. intreg lung Cheie primara
Nume Numele angajatului Text (15
caractere)
Prenume Prenumele Text (15
angajatului caractere)
CNP CNP-ul angajatului Nr. intreg lung
Adresa Adresa de domicliu Text (30

6
caractere)
Localitate Localitatea in care se Text (15
afla domiciliul caractere)
angajatului
Nr_contract_munc Nr. unic contract de Nr. intreg lung
a munca
Stare_civila Starea civila a Text (15
angajatului caractare)
Nr_copii Nr. de copii aflati in Nr. intreg
intretinere ai
angajatului
Nr_Persoane_intre Nr. de persoane Nr. intreg
tinere aflate in intretinere
CONTRACT_MUNCA Nr_contract_munc Nr. unic contract de Nr. intreg lung Cheie primara
a munca
Marca_angajat Nr. unic angajat Nr. intreg lung
Salariu_brut Valoarea salariului Nr. intreg lung
angajatului
Data_initiala Data de la angajare Dată scurtă

Data_expirare Data la care expira Dată scurtă


contractul de munca
INTRARI Id_intrari Nr. unic intrari Nr. intreg lung

Cod_produs Nr. unic produs Nr. intreg lung

Cant_produs Cantitatea de produs Nr. intreg lung


intrata
Pret_achizitie Pretul de achizitie a Nr. intreg
produsului
Valoare Valoarea platita Nr. intreg
pentru produsele
achizitionate
Cod_producator Nr. unic producator Nr. intreg lung

IESIRI Id_iesiri Nr. unic de iesire Nr. intreg lung Cheie primara

Cod_produs Nr. unic produs Nr. intreg lung

Cant_produs cantitatea de produs Nr. intreg


iesita

7
Pret_vanzare Pretul de vanzare a Nr. intreg
produsului
Valoare Valoarea care Nr. intreg
urmeaza sa se
incaseze de la client
Nr_aviz Nr. unic aviz Nr. intreg lung

DOC_INCASARE Nr_document Nr. unic a Nr. intreg lung Cheie primara


documentului de
incasare
Data_document Data la care se Dată scurtă
inregistreaza doc. De
insare
Valoare_incasata Valoarea care se Nr. intreg
incaseaza
Nr_fact_incasata Nr. unic de factura Nr. intreg lung
emisa

3. Tipuri de relații între tabelele bazei de date


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 PRODUCATOR - 1:N 1:N - - - - - - - - - - - -
2 CONTRACT_AC 1:1 - - - - - - - - - - - - - -
HIZITIE
3 BORDEROU_AC - - 1:1 - - - - - - - - 1:N - - -
HIZITIE
4 PRODUS - - - -- - - - - - - - 1:N 1:N - -
5 CENTRU_COLE 1:N - - - - - - - - 1:N - - - - -
CTARE
6 NIR - - - - - - - - - - - 1:N - - -
7 AVIZ_EXP - - - - - - - 1:N 1:N - - - 1:N - -
8 FACTURA_VAN - - - - - - - 1:N 1:N - - - - 1:N -
ZARE
9 CLIENT - - - - - - 1:N - - - - - - - -
10 ANGAJAT - - - - 1:N - - - - - - - - - -
11 CONTRACT_MU - - - - - - - - - 1:N - - - - -
NCA
12 INTRARI - - - - - 1:N - - - - - - - - -
13 IESIRI - - - - - - - - 1:N - - - - - -
14 DOC_INCASARE - - - - - - - - 1:1 - - - - - -
15 DOC_PLATA - - 1:1 - - - - - - - - - - - -

8
Tabelele INTRARI şi NIR care au ca sursă de date documentul „BORDEROU DE ACHIZITIE”.
Tabela INTRARI cuprinde datele din partea comună a documentului cu identificatorul
NR_BORDEROU_ACHIZITIE, iar tabela NIR cuprinde datele din partea în care este
consemnata cantitatea de produse colectate care are a intrat.
Aceleaşi raţiuni au stat şi la stabilirea cheilor primare pentru tabelele FACT_VANZARE şi
IESIRI care au ca sursă de date documentul „Avizul de insotire a produselor ”.

9
10
11
12
13
14
15
16
17
18

S-ar putea să vă placă și