You are on page 1of 4

Master Internacional en Software Libre

Bases de Datos

PEC 1 Fecha publicación: 07/03/2008


Enunciado

Presentación y Objetivos
La Prueba de Evaluación Continuada I (PEC1) es la primera de las cuatro PECs de las que
consta la asignatura. Dicha PEC pesará un 15% en la nota final y los conceptos en ella
desarrollados son los correspondientes a los módulos 'Introducción a las Bases de Datos' y 'El
modelo relacional y el álgebra relacional'.
La PEC consta de dos preguntas de investigación, de un ejercicio de álgebra relacional, y de la
instalación de PostgreSQL. La valoración de cada pregunta en el global de la PEC se incluye en
la cabecera de cada una.
Puesto que la asignatura no tiene examen, es necesario realizar todas las PECs para tener nota
final.

Pregunta 1 (15%)
PostgreSQL y MySQL son dos estandartes para el mundo Open source. Recopila opiniones de
la web (a ser posible de blogs y foros) sobre la idoneidad de utilizar un sistema u otro. Indica
brevemente la opinión que existe mayoritariamente sobre dichos SGBD, aportando la propia y
realiza un cuadro comparativo de sus principales características técnicas.
¿Hay alguna característica técnica de alguno de estos SGBD que te llame especialmente la
atención?
¿Todas las características de uno y otro SGBD están disponibles desde sus versiones más
tempranas?

Pregunta 2 (15%)

a) PostgreSQL puede instalarse en multitud de entornos y sistema operativos, a la vez que


puede ser accedido desde innumerables lenguajes de programación. Relaciona el 'nombre' o
tipo de 'driver' necesario para la conexión de al menos tres lenguajes de programación con dicho
SGBD.

b) En el caso de distribuir un programa ejecutable realizado en C++ que incluya consultas a unas
tablas de una BD en el propio código, ¿qué implicaciones tendría que el desarrollador cambiara
la estructura de las tablas o el tamaño/nombre de los campos?
(máximo 10 líneas)

c) Comenta el siguiente artículo: (ideas generales, máximo 20 líneas)


http://www.postgresql.org/docs/techdocs.83

d) ¿Que es EnterpriseDB? (máximo 4 líneas)

1
Master Internacional en Software Libre
Bases de Datos

Ejercicio álgebra relacional (50%)


El ente de Radio Televisión Estatal (RTE) consciente de la menguante calidad de los programas
televisivos que emiten las cadenas de televisión del país, decide encargar un sistema informático
a fin de supervisar y controlar los datos de las productoras que realizan los programas que
emiten las televisiones (se piensa que el diseño del mismo permitirá obtener un control estricto
sobre los tipos de programas emitidos).

Como el desarrollo de dicho sistema informático será compartido en un futuro con entidades de
gestión de los países vecinos, se decide realizar el diseño en inglés:

Producer (Producer_Code, Producer_Name, Location, Start_Date)

La relación PRODUCER contendrá todos los datos de los diferentes productores o grupos de
guionistas con los que alguna vez ha tenido trato RTE.
El atributo Producer_Name es clave alternativa de la relación.
Ningún atributo podrá quedar sin valor.

TVChannel (channel_CIF, TVChannel_Name, Email, Web)

La relación TVCHANNEL contiene todos los datos de las cadenas de televisión existentes en el
país.
El atributo TVChannel_Name es la clave alternativa de la relación.
Ningún atributo puede tomar valor nulo.

Contract (Contract_Code, Producer_Code, Channel_CIF, Start_Date, Final_Date, Resources)

La relación CONTRACT contiene los datos de los contratos de las productoras con las diferentes
cadenas de televisión. Cada contrato puede incluir el encargo de realizar múltiples programas.

Los atributos Start_Date y Final_Date indican las fechas entre las que ha sido vigente el
contrato. Si el atributo Final_Date es nulo, significará que el contrato entre la productora y la
cadena televisiva sigue vigente. El resto de atributos no pueden tener valor nulo.

{Producer_Code} es la clave foránea de la relación con PRODUCER.


{Channel_CIF} es clave foránea con la relación TVCHANNEL.

Type (Type_Code, Type_Name, Description, Start_Date, Final_Date)

La relación TYPE contiene los datos sobre los diferentes tipos de programas posibles
('telenovela', 'musical', 'magazine', etc) que hay en la BD.
El atributo Type_Name es la clave alternativa de la relación.

Los atributos Start_Date y Final_Date marcan los años de inicio y fin del tipo de programa
concreto. En el caso de que el atributo Final_Date sea nulo, significará que el tipo de programa
todavía existe en la actualidad. El resto de atributos no pueden ser nulos.

Program (Program_Code, Contract_Code, Title, Chapter_Number, Type_Code, Length,


Start_Date)

La relación PROGRAM contiene la información de los diferentes programas que ha producido


una productora. En el caso de series con múltiples capítulos, cada uno de ellos se considerará

2
Master Internacional en Software Libre
Bases de Datos

un programa independiente, dado que se puede traspasar la producción del mismo a otra
productora. El atributo Length contiene la duración total (en minutos) del programa. Productoras
diferentes pueden tener programas con el mismo nombre.
Ningún atributo puede tener valor nulo.

{Contract_Code} es clave foránea hacia la relación CONTRACT


{Type_Code} es clave foránea hacia la relación TYPE
Producer_Type (Producer_Code, Type_Code)

La relación PRODUCER_TYPE contiene los diferentes tipos de programas que cada productor
puede desarrollar.
{Producer_Code} es la clave foránea hacia la relación PRODUCER.
{Type_Code} es la clave foránea hacia la relación TYPE.

Relation (Producer_Code1, Producer_Code2)

La relación RELATION denota las influencias, interrelaciones o herencias que existen entre los
diferentes productores. En el caso de tener los datos; Productora_A, Productora_B, significará
que Productora_A ha influido (o es el origen) de Productora_B.

{Producer_Code1} es la clave foránea hacia la relación PRODUCER.


{Producer_Code2} es la clave foránea hacia la relación PRODUCER.

Se pide resolver las siguientes consultas utilizando álgebra relacional:

P1) Mostrar de cada productora los contratos que han tenido. Se desea obtener el nombre de la
productora, la fecha inicial y final del contrato, el presupuesto (Resources) y el nombre de la
cadena de televisión que la contrató.
Es importante considerar que aunque pueden existir productoras que aún no hayan tenido
ningún contrato, también deseamos que aparezcan en la relación resultante.

P2) Deseamos obtener el nombre y el email de los canales de televisión que nunca hayan
contratado a la productora 'El Terrat'.

P3) Se desea obtener las productoras que hayan realizado algún programa que tenga mayor
duración que el tercer capitulo del programa de la serie 'Polonia' (producido por 'El Terrat'). El
resultado deberá mostrar los nombres de las productoras y los títulos de los programas.

P4) Obtener el nombre de los canales de televisión que han contratado productoras que pueden
producir programas de 'humor' y 'magazine'.

3
Master Internacional en Software Libre
Bases de Datos

P5) Considerando los datos de cardinalidades y la siguiente consulta en álgebra relacional:

Cardinalidad(CONTRACT)= 20.000
Cardinalidad(PRODUCER)= 1.000

R1:= CONTRACT(resources<=30000) -- Cardinalidad(R1) = 1.000


R2:= PRODUCER(Start_Date>='1970/01/01') -- Cardinalidad(R2) = 200
R3:= R1*R2
R:= R3[Producer_Code, Producer_Name, Start_Date]

Se pide argumentar brevemente si las afirmaciones siguientes son verdaderas o falsas.

a) La Cardinalidad(R3) siempre será igual a 1000


b) La Cardinalidad(R) será un valor entre 0 y 200 (0≤ Card(R) ≤ 200)

Instalación de software (20%)


Instala PostgreSQL y crea la siguiente tabla:

CREATE TABLE TEST (CODE INTEGER, TEXT VARCHAR(20), MOMENT TIMESTAMPTZ DEFAULT NOW());

Realiza la siguiente operación de introducción de datos:

INSERT INTO TEST VALUES (1, 'Its Running!!');

Realiza la siguiente consulta SQL:

SELECT * FROM TEST;

Adjunta la captura de pantalla con los resultados de la consulta y comenta brevemente el


entorno utilizado (sistema operativo) y las incidencias de instalación.

Formato de entrega
El documento a entregar consistirá en un fichero con las siguientes características:
- Formato documento: ODT (preferentemente), PDF, DOC, RTF o SXW
- Nombre del documento: BD_PEC1_Apellido1_Nombre.extensión
(p. ejemplo: BD_PEC1_Hernandez_Ramirez.odt)
- El nombre del curso y el nombre y apellidos han de constar también en la página inicial.

El documento se entregará a través del apartado del Campus: Evaluación -> Actividades

La fecha máxima de entrega es el viernes día 21/03/2008.

You might also like