Sei sulla pagina 1di 11

PROPUESTA DE CASO - ACTIVIDAD 4

Una compañía aérea necesita una base de datos para registrar la información de sus
vuelos.

Los vuelos están caracterizados por un Id, la fecha y los aeropuertos de origen y destino.
Cada vuelo es realizado por un avión. Los aviones tienen una matrícula que los
identifica, el fabricante, un modelo e información sobre su capacidad (número máximo
de pasajeros) y autonomía de vuelo (en horas). La tripulación asignada al vuelo está
formada por el personal de la propia compañía. De cada trabajador se conoce su id, su
nombre y su categoría profesional, así como el puesto que ocupa en cada vuelo en
particular.

Por último, para cada vuelo, se almacena la lista completa de pasajeros, con su DNI, el
nombre, el asiento que ocupa y su clase (turista, primera o business).
Formato 1 – Descripción de Entidades
Entidad o Tipo de Justificación, explicación de su existencia en el Ejemplo de Ejemplares (Instancias) Extensión
Entidad Mundo del Problema

Pasajero Es una base de datos para la gestión de la  Pedro Sánchez 80


información de un aeropuerto y es una  Iban Pérez
entidad importante.

Vuelo Es el elemento más citado en la información  BA2491A 15


del caso, existen muchos y son  EZ9541C
independientes de otras entidades.

Avión Son los que realizan los vuelos y para ellos  Airbus 340 15
también se listan varios atributos que les son  Boeing 747
propios y los diferencian.

Trabajador Se hace una descripción de su rol y se lista un  Juana Restrepo 80


número de atributos que le caracterizan  Carlos Martínez
Clase Es la clase del viaje o puesto que tiene cada  Turista 15
pasajero. Son varias y se repiten.  Primera clase
Aeropuerto Son tanto los destinos como los orígenes de  John F Kennedy 20
los vuelos, para evitar redundancia, dado que  Charles de Gaulle
se repiten siempre y son un número limitado,  El Dorado
podemos crearlos y llamarlos de una lista
aparte
Categoría Son un atributo de cada trabajador, para  Técnico
profesional evitar redundancia, dado que se repiten  Piloto
siempre y son un número limitado, podemos  Auxiliar de vuelo
crearlos y llamarlos de una lista aparte
Formato 2 - Descripción de atributos y sus restricciones naturales (Tipo de Dato)
Nombre Entidad Atributos Identificador Tipo de Dato Tamaño Obligatoriedad Cardinalidad
Único (UID) (Si/No) (1 o Muchos)

Pasajero dni X N 20 Si 1
Nombre T 60 Si 1
Puesto T 5 Si 1
Clase Cod_clase X N 5 Si 1
Nombre_clase N 10 Si 1
trabajador Id_trabajador X N 10 Si 1
Nombre T 60 Si 1
Puesto_vuelo T 20 Si 1
Vuelo Id_vuelo X N 10 Si 1
fecha F 10 Si 1
Aeropuerto Cod_Aeropuerto X N 10 Si 1
Nombre T 30 Si 1
Avion Id_Matricula X N 10 Si 1
fabricante T 20 Si 1
capacidad N 5 Si 1
Modelo T 10 Si 1
autonomia N 5 Si 1
Categoria Id_cat_prof X N 5 Si 1
Nombre_catp T 20 Si 1
Formato 3 - Matriz de Relaciones

pasajero clase trabajador vuelo aeropuerto avion categoria


pasajero R1 R2
clase

trabajador R3 R4
vuelo R5 R6 R7 R8
aeropuerto

avion

categoria
Formato 4 – Descripción ampliada de las relaciones determinadas en la Matriz de Relaciones

Rta. Rta.
Relación Entidad 1 Rol Entidad 2 Pregunta para determinar Opcionalidad Pregunta para determinar Cardinalidad Grado
Opc. Card.

Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2
pasajero clase Sí 1
R1 a Entidad2? pertenece? 1:M
clase Tiene pasajero ¿Entidad1 está obligado a tener una Entidad2? No ¿Una Entidad1 CUANTAS Entidad2 tiene? M

Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2
pasajero vuelo Sí M
R2 a Entidad2? pertenece? M:M
vuelo Tiene pasajero ¿Entidad1 está obligado a tener una Entidad2? No ¿Una Entidad1 CUANTAS Entidad2 tiene? M

Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2
trabajador vuelo No M
R3 a Entidad2? pertenece? M:M
vuelo Tiene trabajador ¿Entidad1 está obligado a tener una Entidad2? Sí ¿Una Entidad1 CUANTAS Entidad2 tiene? M

Pertenece ¿Entidad1 está obligado a pertenecer a una


trabajador categoría Sí ¿Una Entidad1 CUANTAS Entidad2 tiene? 1
a Entidad2?
R4 1:M
¿Una Entidad1 a CUANTAS Entidad2
categoría Tiene trabajador ¿Entidad1 está obligado a tener una Entidad2? No M
pertenece?

vuelo Tiene pasajero ¿Entidad1 está obligado a tener una Entidad2? No ¿Una Entidad1 CUANTAS Entidad2 tiene? M
R5 Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2 M:M
pasajero vuelo Sí M
a Entidad2? pertenece?

vuelo Tiene trabajador ¿Entidad1 está obligado a tener una Entidad2? Sí ¿Una Entidad1 CUANTAS Entidad2 tiene? M
R6 Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2 M:M
trabajador vuelo No M
a Entidad2? pertenece?

vuelo Tiene aeropuerto ¿Entidad1 está obligado a tener una Entidad2? Sí ¿Una Entidad1 CUANTAS Entidad2 tiene? 1
R7 Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2
aeropuerto vuelo No M 1:M
a Entidad2? pertenece?

vuelo Tiene avion ¿Entidad1 está obligado a tener una Entidad2? Sí ¿Una Entidad1 CUANTAS Entidad2 tiene? 1
R8 Pertenece ¿Entidad1 está obligado a pertenecer a una ¿Una Entidad1 a CUANTAS Entidad2 1:M
avion vuelo No M
a Entidad2? pertenece?
Borrador de Diagrama Entidad Relación – Notación CROW’s--- Foot de Richar Barker a partir de la Matriz de Relaciones y Diseñado
a Mano Alzada – Versión 1.0
Borrador de Diagrama Entidad Relación – Notación CROW’s Foot de Richar Barker a partir de la Matriz de Relaciones y Diseñado
con la Herramienta Oracle Developer Data Modeler – Versión 1.0
Descripción DDL del modelo relacional analizado

CREATE TABLE aeropuerto (


cod_aeropuerto INTEGER NOT NULL,
nombre VARCHAR2(20) NOT NULL
);

ALTER TABLE aeropuerto ADD CONSTRAINT aeropuerto_pk PRIMARY KEY ( cod_aeropuerto );

CREATE TABLE avion (


id_matricula INTEGER NOT NULL,
capacidad INTEGER NOT NULL,
fabricante VARCHAR2(20) NOT NULL,
autonomia INTEGER NOT NULL,
modelo VARCHAR2(10) NOT NULL
);

ALTER TABLE avion ADD CONSTRAINT avion_pk PRIMARY KEY ( id_matricula );

CREATE TABLE categoria (


id_cat_prof INTEGER NOT NULL,
nombre_catp VARCHAR2(20) NOT NULL
);

ALTER TABLE categoria ADD CONSTRAINT categoria_pk PRIMARY KEY ( id_cat_prof );

CREATE TABLE clase (


cod_clase INTEGER NOT NULL,
nombre_clase VARCHAR2(10) NOT NULL
);

ALTER TABLE clase ADD CONSTRAINT clase_pk PRIMARY KEY ( cod_clase );

CREATE TABLE pasaje (


cod_pasaje INTEGER NOT NULL,
pasajero_dni INTEGER NOT NULL,
vuelo_id_vuelo INTEGER NOT NULL,
clase_ticket INTEGER NOT NULL,
puesto VARCHAR2(5) NOT NULL
);

ALTER TABLE pasaje


ADD CONSTRAINT relation_2_pk PRIMARY KEY ( vuelo_id_vuelo,
cod_pasaje,
pasajero_dni );

CREATE TABLE pasajero (


dni INTEGER NOT NULL,
nombre VARCHAR2(60) NOT NULL
);

ALTER TABLE pasajero ADD CONSTRAINT pasajero_pk PRIMARY KEY ( dni );

CREATE TABLE trabajador (


id_trabajador INTEGER NOT NULL,
nombre VARCHAR2(60) NOT NULL,
categoria_id_cat_prof INTEGER
);

ALTER TABLE trabajador ADD CONSTRAINT trabajador_pk PRIMARY KEY ( id_trabajador );

CREATE TABLE tripulacion (


trabajador_id_trabajador INTEGER NOT NULL,
vuelo_id_vuelo INTEGER NOT NULL,
puesto_vuelo VARCHAR2(20) NOT NULL
);

ALTER TABLE tripulacion ADD CONSTRAINT relation_3_pk PRIMARY KEY (


trabajador_id_trabajador,
vuelo_id_vuelo );

CREATE TABLE vuelo (


id_vuelo INTEGER NOT NULL,
fecha DATE NOT NULL,
avion_id_matricula INTEGER NOT NULL,
aeropt_origen INTEGER NOT NULL,
aeropt_destino INTEGER NOT NULL
);

ALTER TABLE vuelo ADD CONSTRAINT vuelo_pk PRIMARY KEY ( id_vuelo );

ALTER TABLE pasaje


ADD CONSTRAINT pasaje_clase_fk FOREIGN KEY ( clase_ticket )
REFERENCES clase ( cod_clase );

ALTER TABLE pasaje


ADD CONSTRAINT pasaje_pasajero_fk FOREIGN KEY ( pasajero_dni )
REFERENCES pasajero ( dni );
ALTER TABLE pasaje
ADD CONSTRAINT pasaje_vuelo_fk FOREIGN KEY ( vuelo_id_vuelo )
REFERENCES vuelo ( id_vuelo );

ALTER TABLE tripulacion


ADD CONSTRAINT relation_3_trabajador_fk FOREIGN KEY ( trabajador_id_trabajador )
REFERENCES trabajador ( id_trabajador );

ALTER TABLE tripulacion


ADD CONSTRAINT relation_3_vuelo_fk FOREIGN KEY ( vuelo_id_vuelo )
REFERENCES vuelo ( id_vuelo );

ALTER TABLE trabajador


ADD CONSTRAINT trabajador_categoria_fk FOREIGN KEY ( categoria_id_cat_prof )
REFERENCES categoria ( id_cat_prof );

ALTER TABLE vuelo


ADD CONSTRAINT vuelo_aeropuerto_fk FOREIGN KEY ( aeropt_origen )
REFERENCES aeropuerto ( cod_aeropuerto );

ALTER TABLE vuelo


ADD CONSTRAINT vuelo_aeropuerto_fkv2 FOREIGN KEY ( aeropt_destino )
REFERENCES aeropuerto ( cod_aeropuerto );

ALTER TABLE vuelo


ADD CONSTRAINT vuelo_avion_fk FOREIGN KEY ( avion_id_matricula )
REFERENCES avion ( id_matricula );

Potrebbero piacerti anche