Está en la página 1de 5

ING4130 - Bases de Datos Aplicadas (I/2016)

Examen
15 de junio del 2016

1. Modelo Relacional (30 %)


Una empresa se encarga del traslado de petróleo entre distintas localidades a través de una serie de
oleoductos. Cada oleoducto va de una localidad a otra en una sóla dirección, pudiendo existir más de un
oleoducto entre las mismas dos localidades. Para el control de la operación de los oleoductos, la empresa
tiene instalados una serie de sensores en distintas ubicaciones (la ubicación se identifica según la distancia
3
al origen), los cuales miden y registran cada cierto tiempo el caudal en ms .
A través de los sensores la empresa puede detectar filtraciones cuando se producen diferencias de
caudal significativas entre dos puntos del oleoducto, debiendo realizar una reparacion de este en el lugar
donde se encuentra la falla. Las reparaciones son realizadas por empresas externas, especializadas en estas
labores.
Dentro de los objetivos de la empresa con la realización de este modelo, es poder mejorar su control
del traslado y evaluar los costos de reparaciones en los que incurre con cada uno de los oleoductos, de
modo de identificar si es necesario el reemplazo de alguno de ellos.
Realice un modelo relacional para esta situación. El modelo expréselo en formato de relaciones mar-
cando claramente las claves primarias y las foráneos. Por supuesto su modelo debe cumplir 3NF.

Facultad Ingenierı́a y Ciencias Aplicadas 1


Universidad de los Andes
ING4130 - Bases de Datos Aplicadas (I/2016)

2. SQL Básico (15 %)


Considere la siguiente respuesta al modelo relacional del problema antes planteado (subrayadas las
claves primarias y en cursiva las claves foráneas):

Localidad(nombre)

Oleoducto(id, origen, destino, largo)

• origen y destino son claves foráneas de Localidad(nombre).

Sensor(id, oleoducto, ubicación)

• oleoducto es clave foránea de Oleoducto(id).


• ubicación se representa en metros desde el origen.

Medicion(sensor, fecha, caudal)

• sensor es clave foránea de Sensor(id).


• fecha es timestamp.

Empresa(id, nombre)

Reparacion(fecha, empresa, oleoducto , ubicación, costo)

• empresa clave foránea de Empresa(id).


• oleoducto clave foránea de Oleoducto(id).
• fecha es date.
• ubicación se representa en metros desde el origen.

Escriba las instrucciones SQL necesarias para resolver las siguientes preguntas:

1. Crear tabla Reparacion (ud. defina el tipo de dato, tomando en consideración el propósito de cada
atributo), asumiendo que las otras tablas ya existen.
3 3
2. Un error de calibración del sensor 38, hizo que este registrara sus mediciones en mh en vez de ms
como se deseaba. Corrija todas las mediciones ya registradas por este sensor en la base de datos
para solucionar este problema.

3. Nombre de las empresas que han reparado al menos una vez oleoductos de largo mayor a 50km y
que tienen su origen o destino en ciudades que contienen la letra K.

4. Identificador y ubicación del sensor más cercano al origen para el oleoducto 8.

Facultad Ingenierı́a y Ciencias Aplicadas 2


Universidad de los Andes
ING4130 - Bases de Datos Aplicadas (I/2016)

3. SQL Avanzado (25 %)


Considere la siguiente respuesta al modelo relacional del problema antes planteado (subrayadas las
claves primarias y en cursiva las claves foráneas):

Localidad(nombre)

Oleoducto(id, origen, destino, largo)

• origen y destino son claves foráneas de Localidad(nombre).

Sensor(id, oleoducto, ubicación)

• oleoducto es clave foránea de Oleoducto(id).


• ubicación se representa en metros desde el origen.

Medicion(sensor, fecha, caudal)

• sensor es clave foránea de Sensor(id).


• fecha es timestamp.

Empresa(id, nombre)

Reparacion(fecha, empresa, oleoducto , ubicación, costo)

• empresa clave foránea de Empresa(id).


• oleoducto clave foránea de Oleoducto(id).
• fecha es date.
• ubicación se representa en metros desde el origen.

Escriba las instrucciones SQL necesarias para resolver las siguientes preguntas:

1. Identificador del oleoducto que tuvo mayor gasto en reparaciones por metro de longitud durante el
2015.
3
2. Identificador, origen y destino de los oleoductos que nunca han tenido un caudal mayor a 50 ms .

3. Para cada empresa de reparación, indicar su nombre y la cantidad de reparaciones realizadas en un


dı́a lunes, incluyendo las empresas que nunca han reparado ese dı́a.

4. Para cada oleoducto indicar la mayor distancia entre sensores consecutivos.

Facultad Ingenierı́a y Ciencias Aplicadas 3


Universidad de los Andes
ING4130 - Bases de Datos Aplicadas (I/2016)

4. PL/python (10 %)
Considere la siguiente respuesta al modelo relacional del problema antes planteado (subrayadas las
claves primarias y en cursiva las claves foráneas):

Localidad(nombre)

Oleoducto(id, origen, destino, largo)

• origen y destino son claves foráneas de Localidad(nombre).

Sensor(id, oleoducto, ubicación)

• oleoducto es clave foránea de Oleoducto(id).


• ubicación se representa en metros desde el origen.

Medicion(sensor, fecha, caudal)

• sensor es clave foránea de Sensor(id).


• fecha es timestamp.

Empresa(id, nombre)

Reparacion(fecha, empresa, oleoducto , ubicación, costo)

• empresa clave foránea de Empresa(id).


• oleoducto clave foránea de Oleoducto(id).
• fecha es date.
• ubicación se representa en metros desde el origen.

Escriba todo lo necesario para asegurar, utilizando triggers y procedimientos almacenados, que la
ubicación de una reparación siempre se encuentre dentro de las dimensiones del oleoducto que se reparará.

Facultad Ingenierı́a y Ciencias Aplicadas 4


Universidad de los Andes
ING4130 - Bases de Datos Aplicadas (I/2016)

5. Preguntas (20 %)
Responda las siguientes preguntas respetando el espacio asignado para ellas:

1. Explique cuáles problemas puede generar que un modelo relacional cumpla 2NF, pero no 3NF.

2. Explı́quele a un amigo suyo que nunca ha realizado un curso de bases de datos, cómo se genera el
resultado de la reunión de dos relaciones mediante una condición dada.

3. Dentro de una consulta SQL ¿qué condiciones pueden ser evaluadas en el HAVING, pero no en el
WHERE? Explique su respuesta.

4. Considerando que tiene una conexión a una base de datos que posee la tabla Persona(rut, nombre,
apellido), escriba el código en python para crear una nueva persona, pidiendo los datos de ello al
usuario (considere que existe una variable conn que representa la conexión a la base de datos).

5. Al comienzo del curso hablamos de la diferencia entre dato e información. según lo aprendido en el
curso ¿considera que hay una diferencia entre ambos conceptos? Explique.

Facultad Ingenierı́a y Ciencias Aplicadas 5


Universidad de los Andes

También podría gustarte