Documente Academic
Documente Profesional
Documente Cultură
Sa se proiecteze o baza de date pentru un aeroport international GNU Airlines, care face transport de pasageri in diferite tari,ofera confort ,facilitati si discount in cele mai multe din cazuri
sa se retina toate avioanele pe care compania le are in posesie sa se retina toti angajatii companiei cu rangurile pilot , copilot sa se retina toate zborurile (numai plecare si destinatie , ora
plecare si ora sosire) sa se retina biletele care au fost taiate , pentru ce cursa si ce persoana sa se retina biletele care au fost cumparate online sau cash
Regulile structurale sunt determinate de entitatile: angajat, zbor,bilet, avion,program,servicii si legaturile dintre acestea.
ANGAJAT_ZBOR
ANGAJAT
# id *nume *prenume *CNP *adresa *nr_telefon *functie *salariu O id_manager
ZBOR # nr_zbor o oras_sosire o oras_plecare o ora_sosire *durata *data_plecare *data_sosire o escala o durata_escala *poarta *pista AVION #id *model *locuri *firma
ERD-Diagrama entitate-relatie
ERD-ul este modelul conceptual al bazei de date. In ERD exista 3 tipuri de relatie: *1:1 *1:m *m:m Relatiile in ERD pot fi mandatorii sau obligatorii. Caracteristicile unei relatii sunt optionalitatea si cardinalitatea. 1.Optionalitate-desemneaza daca fiecarei relatii din tabela A ii corespund sau nu instante din tabela B 2.Cardinalitatea unei relatii de la entitatea A catre entitatea B. Intervin 3 situatii: - cardinalitate 1:1 - cardinalitate 1:m - cardinalitate m:m
ZBOR
# nr_zbor o oras_sosire o oras_plecare o ora_plecare *durata *data_plecare *data_sosire o escala o durata_escala *poarta *pista
are
ANGAJAT
# id *nume *prenume *CNP *adresa *nr_telefon *functie *salariu O id_manager
m:m 1:m
1:m
are
AVION
#id *model *locuri *firma
ANGAJAT
# id *nume presteaza *prenume *CNP *adresa este *nr_telefon prestat *functie m:m *salariu O id_manager
SERVICII
#id_a *cnp
respectat de
PROGRAM
*data *ora_i *ora_s
ANGAJAT
# id *nume *prenume *CNP *adresa *nr_telefon *functie *salariu O id_manager
1:m
are
1:m
urmeaza
are
ondus de
conduce
Avand in vedere faptul ca fiecare angajat poate fi condus de un alt angajat sau fiecare angajat poate conduce un alt angajat se poate realiza o relatie recursiva de la angajat catre angajat ca in figura de mai sus.
ISTORIC_ZBOR ZBOR
# nr_zbor o oras_sosire o oras_plecare *poarta *pista
are
este asociat
ZBOR
# nr_zbor o oras_sosire o oras_plecare *poarta *pista are
ISTORIC_ZBOR
# zbor o ora_sosire o ora_plecare *durata *data_plecare *data_sosire o escala o durata_escala
apartine
PROGRAM
*data *ora_i *ora_s
are
are
1:m
are
1:m
este respectat
condus de
1:m
urmeaza
SERVICII
are realizeaza
conduce
AVION
#id *model *locuri *firma
#id_a *cnp
ONLINE *site
CASH *ag_tur
este platit
ONLINE *site
CASH *ag_tur
Se observa ca peste cele 2 relatii care pornesc din entitatea BILET s-a trasat un cerc. Acesta desemneaza faptul ca un bilet fie este platit ONLINE, fie este platit CASH.
- fiecare atribut memoreaza o valoare singulara deci cele doua entitati se gasesc in FN1 - entitatea ANGAJAT contine un UID simplu, fiind in FN1 este implicit si in FN2 - entitatea ISTORIC_ZBOR contine un UID compus: (zbor,nr_zbor) determinat de o relatie barata. Atributele ora sosire,ora plecare,durata,etc depind de intreg UID, deci este in FN2 - entitatea ISTORIC_ZBOR contine atributul non UID data_sfarsit. Acesta depinde doar de UID si nu de atributul nonUID pret. Acelasi lucru e valabil si pentru atributul nonUID pret care depinde doar de UID, prin urmare entitatea este si in FN3 -pentru entitatea ISTORIC atributele nonUID: denumire_produs, unitate_de_masura, stoc depind de UID (nu depind de atribute nonUID) deci entitatea se gaseste in FN3 ISTORIC_ZBOR ZBOR
# nr_zbor o oras_sosire o oras_plecare *poarta *pista 1:m
are
este
asociat
Se vor realiza proceduri pentru: - determinarea valorii numarului de bilete vandute - afisarea orarului de lucru al angajatilor (casieri/computere, piloti/avioane etc.)