Sunteți pe pagina 1din 24

Proiect Baze de Date:

Realizat de: Chitu Andreea-Elena


Prof.coord : Manca Christian



Facultatea de Matematica si Informatica, Universitatea Ovidius Constanta
1. Introducere

Scopul acestul proiect este proiectarea si implementarea in
sgbd-ul Microsoft Access a unei baze de date.
Am ales pentru acest proiect sa modelez subuniversul unei
firme de tamplarie PVC.















2. Proiectarea si Implementarea
Bazei de Date

Proiectarea bazei de date consta in aplicarea, in aceasta
ordine, a urmatorilor algoritmi:
Diagrame Entitati-Relatii(E-RD - Entity-Relationship
Diagrams) si proiectarea listelor de constrangeri
Algoritmul de transformarea E-RD si a constrangerilor in
schema a Modelului Matematic al Datelor(MDM-
Mathematical Data Model)
Algoritmul de asistenta a gasirii cheilor
Algoritmul de asistenta a gasirii altor tipuri de constrangeri
Algoritmul de gasire si analizare a poligoanelor in E-RD
Algoritmul de transformare a schemelor MDM in scheme ale
Modelului Relational al Datelor(RDM - Relational Data
Model)
Algoritmul pentru traducerea schemelor RDM in baze de
date in Access.








2.1 Diagrame Entitati-Relatii si liste de
constrangeri
2.1.1 Diagrame Entitati-Relatii

















PERSOANE
CNP
SerieCI
Prenume
Nume
ANGAJATI
DataAngajare
CLIENTI
CodClient
NrCI
DataPlecare
CodAngajat
Adresa




















FACTURI
*ValFact
SERVICII
DenServ
PRODUSE_
FACTURATE
NrFact
Data
Pret
Pret
SERVICII_
FACTURATE
Pret
NrFact




















UNITATI _MAS
DenUM
MATERIALE

DenMaterial
MATERIALE_
UTILIZATE
Pret
*pret_brut DenProdus
PRODUSE
Cantitate
ECHIPE_PRODUSE
CULORI

DenCuloare


















PERSOANE
ANGAJATI
CLIENTI
FACTURI
SERVICII
UNITATI _MAS
MATERIALE

MATERIALE_
UTILIZATE
PRODUSE_
FACTURATE
PRODUSE
SERVICII_
FACTURATE
ECHIPE_PRODUSE
CULORI
UM Material Produs
Culoare
Produs
Produs
Factura
Factura
Serviciu
Client
Angajat
Persoana
Persoana

2.1.2 Constrangeri
2.1.2.1 PERSOANE

Constrangeri de domeniu:
R0:Nume,Prenume ascii(255);
R1:CNP [1000101000000, 7991231999999] NAT(13);
R2:SerieCIASCII(2);
R3: NrCINUMBER(6);

Constrangeri de totalitate:
R4: Nume,Prenume,CNP,SerieCI,NrCI obligatorii;

Constrangeri de unicitate:
R5: CNP unic;

2.1.2.2 ANGAJATI

Constrangeri de domeniu:
R6:CodAngajatNUMBER(3);
R7:DataAngajarii,DataPlecariiDate/Time;

Constrangeri de totalitate:
R8: DataAngajarii,CodAngajat,Persoana obligatorii;
Constrangeri de unicitate:
R9: CodAngajat unic ;

2.1.2.3 CLIENTI

Constrangeri de domeniu:
R10:Adresa ascii(255);
R11:CodClientNUMBER(6);

Constrangeri de totalitate:
R12: Adresa,CodClien,Persoana obligatorii ;

Constrangeri de unicitate:
R13: CodClient unic ;

2.1.2.4 FACTURI

Constrangeri de domeniu:
R14:*ValFactNUMBER(6);
R15:NrFactNAT(6);
R16:DataDate/Time;

Constrangeri de totalitate:
R17: *ValFact,NrFact,Data,Client obligatorii ;
Constrangeri de unicitate:
R18:Nu pot exista 2 clienti cu acelasi numar de factura ;

2.1.2.5 SERVICII_FACTURATE

Constrangeri de domeniu:
R19 :PretNUMBER(6);
Constrangeri de totalitate:
R20 : Pret,Factura,Serviciu obligatorii;
Constrangeri de unicitate:
R21 : Nu pot exista mai multe servicii facturate pentru acelasi serviciu pe aceeasi
factura.
2.1.2.6 SERVICII
Constrangeri de domeniu:
R22:DenServ ascii(255) ;
R23 : PretNUMBER(6);

Constrangeri de totalitate:
R24:DenServ,Pret obligatorii ;

Constrangeri de unicitate:
R25: DenServ unic ;

2.1.2.7 PRODUSE_FACTURATE
Constrangeri de domeniu:
R26: PretNUMBER(6);

Constrangeri de totalitate:
R27: Pret,Produs,Factura obligatorii ;

Constrangeri de unicitate:
R28: Factura,Produs unice ;Nu pot exista pe o factura 2 servicii cu aceeasi denumire ;

2.1.2.8 PRODUSE

Constrangeri de domeniu:
R29: *PretBrutNUMBER(6);
R30: DenProdus ascii(255) ;

Constrangeri de totalitate:
R31: *PretBrut, DenProdus obligatorii ;

Constrangeri de unicitate:
R32: DenProdus unic ;

2.1.2.9 ECHIPE_PRODUSE

Constrangeri de totalitate:
R33: Angajat,Produs obligatorii ;

Constrangeri de unicitate:
R34: Un angajat nu poate lucra in acelasi timp la mai multe produse ;

2.1.2.10 MATERIALE_UTILIZATE

Constrangeri de domeniu:
R35 :CantitateNUMBER(6);

Constrangeri de totalitate:
R36: Material,Produs obligatorii ;

Constrangeri de unicitate:
R37: Material,Produs unice ;

2.1.2.11 MATERIALE

Constrangeri de domeniu:
R38:DenMaterial ascii(255) ;
R39: PretNUMBER(6);

Constrangeri de totalitate:
R40: Pret,DenMateriale,Culoare,UM obligatrii ;

Constrangeri de unicitate:
R41: DenMaterial unic ;

2.1.2.12 CULORI

Constrangeri de domeniu:
R42:DenCuloare ascii(255) ;

Constrangeri de totalitate:
R43: DenCuloare obligatorie ;

Constrangeri de unicitate:
R44: DenCuloare unica ;

2.1.2.13 UNITATI_MAS

Constrangeri de domeniu:
R45:DenUM ascii(255) ;

Constrangeri de totalitate:
R46: DenUM obligatorie ;

Constrangeri de unicitate:
R47: DenUM unica ;
2.2 Modelul Matematic Elementar al Datelor (EMDM)

Aplicand algoritmul de traducere din Diagrama Entitati-Relatii si
Lista de Restrictii in Modelul Matematic Elementar al Datelor,
adaugand cheile si celelalte constrangeri, se obtine urmatoarea schema
a modelului EMDM.

2.2.1 Schema EMDM si algoritmul de gasire a cheilor
2.2.1.1PERSOANE

Atribute:
x NAT, total, Cheie primara
CNP [1000101000000,7991231999999] NAT(13), total,cheie(conform R5)
Nume CHAR(255), total
Prenume CHAR(255), total
SerieCI CHAR(2), total
NrCI NAT(6), total

Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
Nume Fals,deoarece pot exista mai multe persoane cu acelasi nume.
Prenume Fals,deoarece pot exista mai multe persoane cu acelasi prenume.
SerieCI Fals,deoarece pot exista mai multe persoane cu aceeasi SerieCI.
NrCI Fals,deoarece pot exista mai multe persoane cu acelasi NrCI.
Nume Prenume Fals, deoarece pot exista mai multe persoane cu acelasi nume si
prenume.
Nume SerieCi Fals, deoarece pot exista mai multe persoane cu acelasi nume si
aceeasi serieCI.
Nume NrCI Fals, deoarece pot exista mai multe persoane cu acelasi nume si
acelasi nrCI.
Prenume SerieCI Fals, deoarece pot exista mai multe persoane cu acelasi prenume si
aceeasi serieCI.
Prenume NrCI Fals, deoarece pot exista mai multe persoane cu acelasi prenume si
acelasi NrCI.
SerieCI NrCI Adevarat,deoarece nu pot exista mai multe persoane cu aceeasi serieCI
si acelasi nrCI.

In consecinta, cheile tabelei PERSOANE sunt CNP si SerieCINrCI.

2.2.1.2ANGAJATI

Atribute:
x NAT, total, Cheie primara
CodAngajat NAT(3), total
DataAngajarii DATE, total
DataPlecarii DATE

Functii structurale:
Persoana : ANGAJATI PERSOANE, total

Chei(Injectivitati minimale):
CodAngajatPersoana : ANGAJATI NAT(3) PERSOANE (conform R9)

Produs Raspuns/Explicatie
CodAngajat Adevarat,deoarece nu pot exista mai multi angajati cu acelasi cod.
DataAngajarii Fals,deoarece pot exista mai multe persoane angajate in aceeasi zi.
DataPlecarii Fals,deoarece pot exista mai multe persoane care pleaca in aceeasi zi.
Persoana Fals,deoarece exista mai multe persoane care nu sunt angajati.
DataAngajarii
DataPlecarii
Fals,deoarece pot exista mai multe persoane care se angajeaza si
pleaca in aceeasi zi.
DataAngajarii Persoana Fals,deoarece pot exista mai multe persoane angajate in aceeasi zi.
DataPlecarii Persoana Fals,deoarece pot exista mai multe persoane care pleaca in aceeasi zi.

2.2.1.3CLIENTI

Atribute:
x NAT, total, Cheie primara
Adresa CHAR(255), total
CodClient NAT(6), total

Functii structurale:
Persoana : CLIENTI PERSOANE, total

Chei(Injectivitati minimale):
CodClientPersoana : CLIENTI NAT(3) PERSOANE (conform R13)

Produs Raspuns/Explicatie
CodClient Adevarat,deoarece nu pot exista mai multi clienti cu acelasi cod.
Adresa Fals,deoarece pot exista mai multi clienti cu aceeasi adresa.
Persoana Fals,deoarece exista mai multe persoane care nu sunt clienti.
Adresa Persoana Fals,deoarece exista mai multe persoane cu aceeasi adresa.



2.2.1.4FACTURI

Atribute:
x NAT, total, Cheie primara
*ValFact NAT(6), total
NrFact NAT(6),total
Data DATE
Client CHAR(255),total

Functii structurale:
Client :FACTURI CLIENTI, total

Chei(Injectivitati minimale):
NrFactClient: FACTURI NAT(6) CLIENTI (conform R18)

Produs Raspuns/Explicatie
*ValFact Fals,deoarece o valoare facturata poate exista pe mai multe facturi.
NrFact Adevarat,deoarece un NrFact nu poate exista de mai multe ori.
Data Fals,deoarece la aceeasi data pot fi mai multe facturi.
Client Fals,deoarece unui client i se pot face mai multe facturi.
*ValFact Data Fals,deoarece in aceeasi zi pot fi facute mai multe facturi cu aceeasi
valoare.
*ValFact Client Fals,deoarece un client poate avea mai multe facturi cu aceeasi
valoare.
Client Data Fals,deoarece un client poate avea mai multe facturi cu aceeasi data.
*ValFact Data Client Fals,deoarece un client poate lua mai multe facturi cu aceeasi valoare
in aceeasi zi.
2.2.1.5SERVICII

Atribute:
x NAT, total, Cheie primara
DenServ CHAR(255), total
Pret NAT(6),total

Produs Raspuns/Explicatie
DenServ Adevarat,deoarece nu pot exista mai multe servicii cu aceeasi
denumire.
Pret Fals,deoarece pot exista mai multe servicii cu acelasi pret.


2.2.1.6SERVICII_FACTURATE

Atribute:
x NAT, total, Cheie primara
Pret NAT(6),total
Factura NAT(6),total
Serviciu CHAR(255), total

Functii structurale:
Factura : SERVICII_FACTURATE FACTURI, total
Serviciu : SERVICII_FACTURATE SERVICII, total

Produs Raspuns/Explicatie
Pret
Fals,deoarece mai multe servicii pot avea acelasi pret.
Factura Fals,deoarece mai multe servicii pot fi pe aceeasi factura.
Serviciu Adevarat,deoarece nu pot exista mai multe servicii cu aceeasi
denumire.
Pret Factura Fals,deoarece mai multe facturi pot avea acelasi pret.
Pret Serviciu Fals,deoarece mai multe servicii pot avea acelasi pret.
Factura Serviciu Fals,deoarece mai multe servicii pot fi pe aceeasi factura.
Factura Serviciu Pret Fals,deoarece pe o factura pot fi mai multe servicii cu acelasi pret.


2.2.1.7PRODUSE_FACTURATE

Atribute:
x NAT, total, Cheie primara
Pret NAT(6),total
Factura NAT(6),total
Produs CHAR(255), total


Functii structurale:
Factura : PRODUSE_FACTURATE FACTURI, total
Produs : PRODUSE_FACTURATE PRODUSE, total


Produs Raspuns/Explicatie
Pret
Fals,deoarece mai multe produse pot avea acelasi pret.
Factura Fals,deoarece mai mai multe produse pot fi pe aceeasi factura.
Produs Adevarat,deoarece nu pot exista mai multe produse cu aceeasi
denumire.
Pret Factura Fals,deoarece mai multe facturi pot avea acelasi pret.
Pret Produs Fals,deoarece mai multe produse pot avea acelasi pret.
Factura Produs Fals,deoarece mai multe produse pot fi pe aceeasi factura.
Factura Produs Pret Fals,deoarece pe o facture pot fi mai multe produse cu acelasi pret.


2.2.1.8ECHIPE_PRODUSE

Atribute:
x NAT, total, Cheie primara

Functii structurale:
Produs : ECHIPE_PRODUSE PRODUSE, total
Angajat : ECHIPE_PRODUSE ANGAJATI, total

Produs Raspuns/Explicatie
Produs
Fals,deoarece mai multe produse pot avea aceeasi denumire.
Angajat Fals,deoarece mai multi angajati pot avea acelasi nume.
Produs Angajat Adevarat,deoarece un angajat nu poate face mai multe produse in
acelasi timp.


2.2.1.9PRODUSE

Atribute:
x NAT, total, Cheie primara
*PretBrut NAT(6),total
DenProdus CHAR(255), total

Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
*PretBrut Fals,deoarece mai multe produse pot avea acelasi pret.
DenProdus Adevarat,deoarece mai multe produse nu pot avea aceeasi denumire.

2.2.1.10MATERIALE_UTILIZATE

Atribute:
x NAT, total, Cheie primara
Cantitate NAT(6), total
Material CHAR(255), total
Produs CHAR(255), total

Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
Cantitate Fals,deoarece pot exista diferite materiale cu aceeasi cantitate.
Material Adevarat,deoarece mai multe material nu pot avea aceeasi denumire.
Produs Fals,deoarece mai multe produse pot fi confectionate din acelasi
material.
Cantitate Produs Fals,deoarece pot exista mai multe materiale cu aceeasi cantitate.


2.2.1.11MATERIALE

Atribute:
x NAT, total, Cheie primara
DenMaterial CHAR(255), total
Pret NAT(6), total

Functii structurale:
Culoare: MATERIALE CULORI, total
UM: MATERIALE UNITATI_MAS,total

Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
DenMaterial Adevarat,deoarece mai multe materiale nu pot avea aceeasi denumire.
Pret Fals,deoarece mai multe materiale pot avea acelasi pret.
Culoare Fals,deoarece mai multe materiale pot avea aceeasi culoare.
UM Fals,deoarece mai multe material pot avea aceeasi UM.
Pret Culoare Fals,deoarece doua materiale de aceeasi culoare pot avea acelasi pret.
Pret UM Fals,deoarece materialele cu aceeasi UM pot avea acelasi pret.
Culoare UM Fals,deoarece materialele cu aceeasi UM pot avea aceeasi culoare.


2.2.1.12CULORI

Atribute:
x NAT, total, Cheie primara
DenCuloare CHAR(255), total

Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
DenCuloare Adevarat,deoarece nu pot exista mai multe culori cu aceeasi denumire.


2.2.1.13UNITATI_MAS

Atribute:
x NAT, total, Cheie primara
DenUM CHAR(255), total


Chei(Injectivitati minimale):

Produs Raspuns/Explicatie
DenUM Adevarat,deoarece nu pot exista mai multe UM cu aceeasi denumire.























2.3 Schema Modelului Relational al Datelor si lista de
constrangeri non-relationale
Aplicand algoritmul de traducere din schema EMDM in schema RDM si lista
de restrictii, au rezultat urmatoarele:

2.3.1 Schema Modelului Relational al Datelor (RDM)
2.3.1.1 PERSOANE(x, CNP )
x Nume Prenume CNP SerieCI NrCI
auton
(5)
ascii
(255)
ascii (255)
[1000101000000,
7991231999999]
NAT(13)
Ascii(255) NAT(6)
Not
Null
Not
Null
Not Null Not Null Not Null Not Null

2.3.1.2 ANGAJATI(x, CodAngajat)
x CodAngajat DataAngajarii
DataPlecarii Persoana
auton (3) NAT(6) DATE
DATE Im(PERSOANE.x)
Not Null Not Null Not Null
Not Null

2.3.1.3CLIENTI(x, CodClient)
x Adresa CodClient
Persoana
auton (3) ascii (255) NAT(6)
Im(PERSOANE.x)
Not Null Not Null Not Null
Not Null

2.3.1.4 FACTURI(x, NrFact)
x *ValFact NrFact
Data Client
auton (3) NAT(6) NAT(6)
DATE Im(CLIENTI.x)
Not Null Not Null Not Null
Not Null Not Null

2.3.1.5 SERVICII_FACTURATE(x, )
x Pret Factura
Serviciu
auton (3) NAT(6) Im(FACTURI.x)
Im(SERVICII.x)
Not Null Not Null Not Null
Not Null

2.3.1.6 SERVICII(x, DenServ)
x DenServicii Pret
auton (3) ascii (255) NAT(6)
Not Null Not Null Not Null

2.3.1.7 PRODUSE_FACTURATE(x, )
x Pret
Factura Produs
auton (3) NAT(6) Im(FACTURI.x) Im(PRODUSE.x)
Not Null Not Null Not Null Not Null

2.3.1.8 PRODUSE (x, DenProdus)
x *PretBrut DenProdus
auton (3) NAT(6) ascii (255)
Not Null Not Null Not Null

2.3.1.9 ECHIPE_PRODUSE(x, )
x Angajat Produs
auton
(3)
Im(ANGAJATI.x)
Im(PRODUSE.
x)
Not
Null
Not Null Not Null

2.3.1.10MATERIALE_UTILIZATE(x, )
x Cantitate Material Produs
auton (3) NAT(6) Im(MATERIALE.x) Im(PRODUSE.x)
Not Null Not Null Not Null Not Null

2.3.1.11MATERIALE(x, DenMaterial)
x DenMaterial Pret Culoare UM
auton (3) ascii(255) NAT(3) ascii(255) ascii(255)
Not Null Not Null Not Null Not Null Not Null


2.3.1.12CULORI(x, DenCuloare)

x DenCuloare
auton (3) ascii(255)
Not Null Not Null

2.3.1.13UNITATI_MAS(x, DenUM)
x DenUM
auton (3) ascii(255)
Not Null Not Null