Professional Documents
Culture Documents
Bases de Datos Documentales (Ejercicio en Catalán)
Bases de Datos Documentales (Ejercicio en Catalán)
1. ENUNCIAT
2. DISSENY CONCEPTUAL: MODEL ENTITAT / RELACIÓ
3. TRANSACCIONS
4. DISSENY LÒGIC
5. NOTACIÓ UML
6. FORMES NORMALS
1
Es desitja realitzar una base de dades per a la gestió del
trànsit aeri a un aeroport. Per això cal tenir informació de totes i
cadascuna de les companyies que operen, per a poder coordinar
els vols.
2
cod_companyia
cod_companyia
1 1
COMPANYIA
Treballe
n
cod_categoria
N DNI_empleat
Forme
n
cod_tripulació
N
M
cod_avió
AVIÓ
TRIPULACIÓ
PILOT
A
M N
1 cod_vol
cod_tripulació, cod_avió
VOL
N destí
origen
Vole
n
T,
D
4
COMPANYIA: (cod_companyia, nom, adreça, telèfon, email)
CP {cod_companyia}
5
FORMEN: (dni_empleat, cod_tripulació)
CP{dni_empleat, cod_tripulació}
CA{cod_tripulació} TRIPULACIÓ
CA{dni_empleat} EMPLEAT
VNN { dni_empleat}
VNN {cod_tripulació}
6
DISSENY LÒGIC
Entre l’ entitat COMPANYIA i EMPLEAT, hem pensat establir una relació binària
amb una restricció d’ existència sobre l’ entitat de cardinalitat màxima N
(EMPLEAT); doncs cal que cada empleat estiga identificat amb la companyia
on treballa. Si no fos així, seria possible que el codi de la companyia no
constara i, per tant no podria identificar-se correctament l’ empleat. Per això, cal
definir una restricció de valor no nul (VNN) sobre la clau aliena d’ EMPLEAT
perquè represente la relació binària “treballen”. D’ aquesta manera s’ eviten
problemes d’ identificació dels empleats de cada companyia.
COMPANYIA treballen
1 N
EMPLEATS
COMPANYIA
posseeix AVIÓ
1 N
EMPLEATS CATEGORIA
tenen
N 1
EMPLEATS TRIPULACIÓ
formen
N M
8
TRIPULACIÓ: (cod_tripulació, nom_tripulació)
CP{cod_tripulació}
N N
TRIPULACIÓ AVIÓ
PILOTA
volen
VOL
9
TRIPULACIÓ: (cod_tripulació, nom_tripulació)
CP{cod_tripulació}
VOL
TD
DIRECTE AMB_ESCALA
10
VOL: (cod_vol, origen, destí, data, hora_eixida, hora_arribada, cod_tripulació,
cod_avió)
CP {cod_vol}
CA {cod_tripulació, cod_avió} PILOTA
VNN {cod_tripulació, cod_avió}
VNN { origen, destí}
Com veiem, les subclasses hereten tots els atributs de la classe VOL.
Recordem que una subclasse no pot tenir un atribut CP que l’ identifique, però
sí tots aquells necessaris per identificar correctament la informació continguda.
En aquest cas AMB_ESCALA compta amb atributs relacionats amb les ciutats
on pot realitzar les diferents parades, essent la primera (mínim del número de
parades en escala possible) un VNN.
11
TRANSACCIONS
12
13
DISSENY FÍSIC
14
PILOTA: (cod_tripulació, cod_avió)
CP {cod_tripulació, cod_avió}
CA {cod_tripulació} TRIPULACIÓ
CA {cod_avió} AVIÓ
15
Perfil de càrrega per a cada relació:
EMPLEAT
• La modificació en altes i baixes dels empleats es fa per cognoms_i_nom.
Convindria crear un índex d’ agrupament a fi de recuperar les dades que
es trobaran ordenades sobre aquest atribut.
• Per a l’ assignació a un fitxer, convindrà previndre un espai de
creixement d’ un 10% anual.
FORMEN
TRIPULACIÓ
PILOTA
16
AVIÓ
VOL
17
Atenent el diagrama de dependències funcionals proposat, la primera forma
normal: 1FN, ens diu que: “Una relació R està en 1FN només si els seus
atributs poden tenir valors atòmics (simples i indivisibles)”. Per tant, està
prohibit tenir un conjunt de valors, una tupla de valors o una combinació
d’ambdós com a valor d’un atribut per a una tupla individual. Aleshores, com
podem veure al diagrama, T1 té un atribut (direcció) que consta de diversos
valors (amb dominis diferents), si escau.
T1 (Num_matr, nombre, dirección)
• Dom_num_matr: enter
• Dom_nom: cad(40)
T1 representa la informació del nom, tipus de via, nom de la via, número del
habitatge i codi postal de la persona que sol·licita una matrícula (ALUMNE). El
codi num_matr representa unívocament totes les seves dades (CP).
18
La 3FN ens diu que cal que evitem les dependències transitives. Si observem
T2 (assignatura) trobem els atributs “centre” i “títol”. Al diagrama de
dependències observem que “títol” depèn funcionalment de “centre”. Aleshores
per a evitar aquesta dependència transitiva, caldrà crear una nova T4
anomenada TÍTOL que conste d’un codi unívoc i un nom.
T4 TÍTOL(cod_titol, nom)
I una segona T5 que identifique també el centre per a evitar futures
incongruències.
T5 CENTRE (cod_centre, nom_centre)
Finalment caldrà canviar els atributs “títol” i “centre” pel codi que els identifique
unívocament a la T2, i transformar-les en claus alienes que referencien a T4 i
T5 respectivament.
19
ALUMNE (Num_matr, nom, tipus_via, nom_via, numero, cod_postal)
20