Base De Datos Orientada De Objetos
Enviado por kvg2010 • 21 de Octubre de 2014 • 1.039 Palabras (5 Páginas) • 287 Visitas
Base de Datos II
Laboratorio Nº 3
FACULTAD DE INGENIERIA.
Profesor Adjunto: Lic. Gabriel Ingravallo.
Jefe Trabajos Prácticos: Lic. Cristian Parise.
Alumno: Mura, Gastón.
1 – Crear un tipo Aeropuertos que almacene las siguientes propiedades:
Nombre del aeropuerto, ubicación (ciudad, provincia, país), medidas de la pista (longitud, ancho, tipo de compuesto) y una colección de las aerolíneas que trabajan en el mismo.
create type t_ubicacion as(
ciudad character varying(50),
provincia character varying(50),
pais character varying(30)
);
create type t_pista_medidas as(
long real,
ancho real,
compuesto character varying(50)
);
create type t_aeropuertos as(
nombre character varying(30),
ubicacion t_ubicacion,
pista t_pista_medidas,
aereolineas character varying(30)[]
);
2 – Crear una tabla aeropuertos basada en el tipo creado en el punto 1.
Hacer varios INSERT (y documentarlos) para poblar la tabla aeropuertos con datos.
create table aeropuertos(
id serial not null primary key,
aeropuerto t_aeropuertos
);
insert into aeropuertos ( aeropuerto )
values((
'Aeroparque',
('Buenos Aires','BSAS','Argentina'),
(250,35,'cemento'),
(array['Aereolineas Argentinas','Pan-Am','Lan Chile','Air France'])
));
insert into aeropuertos ( aeropuerto )
values((
'Eseiza',
('Capital Federal','BSAS','Argentina'),
(250,35,'pavimento reforzado'),
(array['AeroBrazuca','Pan-Am','Aereolineas Argentinas','Lan Chile','Air France'])
));
Hacemos varios insert en la tabla que recién creamos, “Aeropuertos”, y como podemos apreciar a diferencia del modelo relacional puro, en el modelo relacional extendido (orientada a objetos), podemos guardar en las tablas, tipos de datos compuestos y arreglos, cosa que no podíamos en le modelo relacional.
3 – Crear una subtabla aeropuertosHangares de aeropuertos que refleje aquellos aeropuertos en los que se alquilan hangares que agregue la siguiente informacion: precioEspacio y una colección de espacios que registre para cada elemento el nro. de parcela, ocupado (si/no) y una referencia a un avion (objeto de la tabla homónima, deberán considerarse los pasos para tratar a los aviones como objetos OID).
Hacer varios INSERT (y documentarlos) para poblar la tabla aeropuertosHangares con datos.
create domain ocupada as char varying constraint ocupada check( value='si' or value='no' )
create type t_espacios as(
nro_parcela integer,
ocupada ocupada,
avion oid
);
create table aeropuertosHangares(
id serial not null primary key,
precioEspacio real,
espacio t_espacios[]
) inherits( aeropuertos );
-- modifico la tabla aviones así hace uso de oids para identificar cada fila.
alter table avion set with OIDS
insert into aeropuertosHangares ( aeropuerto, precioEspacio, espacio )
values((
'Almirante Zar',
('Trelew','Chubut','Argentina'),
(250,35,'pavimento reforzado'),
(array['Fuerza Aerea'])
),
1525,
cast( array[(2015,'no',115156)] as t_espacios[] ) );
insert into aeropuertosHangares ( aeropuerto, precioEspacio, espacio )
values((
'Aeropuerto Viejo',
('Rawson','Chubut','Argentina'),
(300,45,'Polvo de ladrillo'),
(array['Lan Chile','AeroBrazuca','Twain','Fly Emirates','Air Frances'])
),
145000,
cast( array[
(110,'si',115150),
(111,'si',115162),
(112,'si',115160),
(113,'si',115158),
(114,'si',115156),
(115,'si',115154),
(116,'si',115152),
(117,'si',115148),
(118,'si',115146)
] as t_espacios[] ) );
insert into aeropuertosHangares ( aeropuerto, precioEspacio, espacio )
values((
'AeroClub Gaiman',
('Gaiman','Chubut','Argentina'),
(100,25,'Cemento'),
(array['Privados'])
),
1200,
cast( array[
(1,'si',115050),
(2,'no',115062),
(3,'no',115060),
(4,'si',115058)
] as t_espacios[] ) );
insert into aeropuertosHangares ( aeropuerto, precioEspacio, espacio )
values((
'Gangan AeroClub',
('GanGAn','Chubut','Argentina'),
(115,22,'Cemento Reforzado'),
(array['Lan Chile','AeroBrazuca','Twain','Fly Emirates','Air Frances','Pan-Am','Aereolineas Argentinas','Air Canada'])
),
1759,
cast( array[
(210,'si',115156),
(211,'si',115157),
(212,'si',115158),
(213,'si',115170),
(214,'si',115180),
(215,'si',115181),
(216,'si',182792),
(217,'si',182793),
(218,'si',233837)
] as t_espacios[] ) );
4 – a) Mostrar todos los aeropuertos que trabajan con la aerolínea X (elegir
...