Professional Documents
Culture Documents
Ejercicio1:
a) Implemente el tipo complejo que consta de dos partes una real y otra imaginaria, ambas
dentro del rango de los números reales. Además de definir las operaciones matemáticas:
Suma: Debe tener como parámetro un numero complejo que debe sumarse al complejo
sobre el que se invoca.
Resta: Idem anterior.
Orden: Función de ordenamiento tipo map. Debe devolver la parte real del complejo.
b) Cree una tabla cuyas tuplas almacenen nros. complejos.
c) Inserte tuplas.
d) Recupere toda la tabla.
e) Muestre el resultado de aplicar las funciones:
i. Suma de un número complejo a todas las tuplas de la tabla.
ii. Resta de un número complejo a todas las tuplas de la tabla.
iii. Muestre la tabla completa en orden descendente.
aux.preal:=self.preal+x;
return aux;
end;
map member function fmap return number is
begin
return self.preal;
end;
end;
/*
*/
Ejercicio 3: Se le pide que realice los siguientes ítems sobre las diferentes realidades planteadas.
a. Diseñar el modelo de objetos.
b. Definir e implementar los tipos correspondientes.
c. Crear las tablas necesarias.
d. Insertar tuplas en las tablas creadas.
e. Efectuar consultas planteadas en cada caso.
Caso a. Se desea implementar un modelo objeto-relacional de una empresa mayorista que
describa:
̶ Repartidores, detallando para ellos: dni, nombre y teléfono.
̶ Localidades, detallando en este caso el nombre de la localidad y el código postal
correspondiente.
̶ Cada repartidor atiende una localidad y cada localidad es manejada por sólo un repartidor. Es
necesario conocer para cada repartidor la localidad que le corresponde y viceversa. La
existencia de ambas entidades es independiente una de la otra. Defina la función map sobre el
atributo dni.
Las consultas a implementar son:
Caso b. Se desea implementar un modelo que describa la currícula de las carreras de una
facultad. De las carreras se debe registrar nombre y cantidad de años de duración. De las
materias, código, nombre, despliegue y forma de aprobación. Otro aspecto importante a
considerar es que en la relación carrera-materia la visibilidad que se requiere es desde carrera
hacia materias solamente. Las instancias de carreras y materias son independientes.
Las consultas a implementar son:
Caso c. Una librería mayorista lo ha contratado para implementar una base de datos que
mantenga información relativa a sus productos, clientes y facturas de venta. Un cliente además de
tener su nro. de cliente y nombre, tiene como información de contacto, su dirección (calle,
orientación y nro.) y 2 teléfonos. La dirección y los teléfonos son exclusivos de sólo un cliente.
Dentro de los clientes se pueden distinguir mayoristas y minoristas. De los mayoristas se debe
registrar el nombre del encargado, y de los minoristas el monto máximo que se le otorga de
crédito. Se debe generar un procedimiento mostrar, que muestre todos los datos de los clientes
según correspondan a mayoristas o minoristas.
Cada factura posee un nro. único y una fecha. Un cliente puede generar muchas facturas de venta,
pero cada factura corresponde a sólo un cliente. Una factura obviamente puede incluir varios
productos diferentes, con su cantidad y precio unitario. Los productos son descriptos por su
código, nombre y precio actual.
Es requisito generar un método que devuelva para una factura el total correspondiente. Además
se debe implementar también una función de ordenamiento (map) para facturas, basada en su nro
.
Muestre el número de la factura junto al importe total, ordenado por número de factura en
forma ascendente.
Muestre los datos correspondientes a los clientes minoristas.
Eliminar un producto de una factura.
(nrocli number,
nombre varchar2(20),
tel telefonos,
( calle varchar2(20),
nrodir number,
orientacion varchar2(20));
(encargado varchar2(20)
);
(maxcredito number
);
(cod number,
nomprod varchar2(20),
precio number
);
(cantidad number,
precio number,
);
Práctico N 4 Tópicos Avanzados de Base de Datos 2016
(nrofac number,
fecha varchar2(20),
items listaitem,
);
begin
return self.nrofac;
end;
aux number;
begin
aux:=0;
end loop;
return aux;
end;
Práctico N 4 Tópicos Avanzados de Base de Datos 2016
end;
/*insert into tfacturas values(1,'hoy', (select ref(r) from tmayorista r where r.nrocli=1),
listaitem(
);*/
--where aux.prod.cod=2;
Práctico N 4 Tópicos Avanzados de Base de Datos 2016