Examen de Ficheros y bases de datos (450-98-520) Convocatoria de febrero I PARCIAL



Documentos relacionados
Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

Repaso de Conceptos Básicos de Bases de Datos

Examen de Bases de datos y sistemas de información I PARCIAL. A C S I _y s1 _z B N C

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

BASES DE DATOS - SQL. Javier Enciso

Conceptos Avanzados de Bases de datos

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

- Bases de Datos - - Diseño Físico - Luis D. García

5- Uso de sentencias avanzadas

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Práctica 3. Consultas SQL

Base de datos relacional

Restricciones de Integridad

DISEÑO DE BASES DE DATOS RELACIONALES

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

EJERCICIO SOBRE EMPRESA DE MATERIALES DE CONSTRUCCIÓN

Primer Parcial de Fundamentos de Base de Datos

CERTAMEN 2 90 minutos 20 puntos

TEMA 6. DISEÑO CONCEPTUAL DE BASES DE DATOS. MODELO ENTIDAD RELACIÓN.

SUMA Y RESTA DE FRACCIONES

UNIDAD 3 ASPECTOS ASOCIADOS CON BASES DE DATOS. Diseno Físico de Bases de Datos Objetivo. 2.2 Visión General del Procesamiento de Consultas

NÚMEROS NATURALES Y NÚMEROS ENTEROS

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

INTRODUCCIÓN A LAS BASES DE DATOS

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Primer Parcial de Fundamentos de Base de Datos

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero Solución

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Registro: Es un conjunto de campos. También se llama Fila o Tupla. Son varios datos

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

Consultas con combinaciones

Para manipular relaciones completas, el álgebra relacional proporciona una serie de operadores que podemos clasificar en:

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Base de Datos Práctica 1.

1. DML. Las subconsultas

Normalización. Carlos A. Olarte Bases de Datos I

Teórico 9 Del MER al MR

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

EL MODELO ENTIDAD-RELACIÓN:

Bases de datos relacionales y el modelo entidad-relación

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Ing. YIM ISAIAS APESTEGUI FLORENTINO Tema: Normalización

6 - Recuperar algunos registros (where)

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Tema 2. Modelado Entidad-Relación

Bases de Datos: Structured Query Language (SQL)

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

El catálogo y los listados

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Tema : ELECTRÓNICA DIGITAL

Diseño de Bases de Datos Bases de Datos Documentales Grao en Información e Documentación Curso 2013/2014

IES Politécnico Estella

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE INFORMATICA BASE DE DATOS

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

Primer Parcial de Fundamentos de Base de Datos

Son objetos cuya función es el tratamiento de varios registros exclusivamente durante la ejecución de un programa.

Sub consultas avanzadas

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Tema 5. Diseño detallado.

BASE DE DATOS RELACIONALES

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

5/27/2013. Contenidos. Las Bases de Datos y los Sistemas (SBD) El Modelo Entidad-Relación (E-R) El Modelo Relacional Integridad de los Datos MS Access

APÉNDICE SQL (Structures Query Language)

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

Manejo de datos BLOB con PHP y MySQL

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL

Lenguaje para descripción de datos

Estimado usuario. Tabla de Contenidos

select nombre from profesores where categoria='aso6';

GUÍAS. Módulo de Diseño de software SABER PRO

Tema 6: Teoría de la Normalización

CONVOCATORIA PLAZAS PARA PARTICIPAR EN EL PROGRAMA INTERNACIONAL DE INTERCAMBIO DE ESTUDIANTES DE FARMACIA (SEP)

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

GUIA SEMANAL DE APRENDIZAJE PARA EL GRADO OCTAVO

T12 Vistas y tablas temporales

Figura 4.1 Clasificación de los lenguajes de bases de datos

Patrones para persistencia (I) Ingeniería del Software II

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Práctico 6 Diseño Relacional

Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante.

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Base de datos con información de Vuelos, Reservas y Aviones

FORMULARIO DE POSTULACIÓN A SEGUNDO LLAMADO A FFCC JUNIO 2015

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Transcripción:

Examen de Ficheros y bases de datos (450-98-520) Convocatoria de febrero I PARCIAL 1) (1,65 puntos) Una empresa de logística desea implementar una base de datos relacional que cumpla los siguientes requisitos. La empresa logística ofrece sus servicios de transporte a diferentes empresas bajo un contrato que se suscribe durante un periodo de tiempo y por un coste acordado, que se calcula por el coste de los trayectos que es necesario cubrir. La empresa cuenta con vehículos de transporte que pueden cubrir determinados trayectos (un vehículo puede cubrir sólo un trayecto pero cada trayecto puede realizarlo hasta cuatro vehículos) identificados por un origen y un destino, y teniendo asociado un coste que puede variar a lo largo del tiempo y según el tipo de vehículo. Es necesario que sea posible emitir una factura que desglose todos los trayectos especificados en el contrato, especificando el porcentaje de IVA (que puede variar según la fecha en que se realizó cada trayecto). Se pide diseñar el esquema conceptual con el modelo entidad-relación especificando las restricciones de participación mínimomáximo. Solución (15 minutos): Nombre FechaInicio Valor FechaFin Tipo FechaInicio FechaFin Empresas (1,N) IVA Vehículos (1,1) Suscribe (0,N) Cubre (1,1) (1,4) Contratos (1,N) Contiene (0,N) Trayectos Coste Fecha Referencia Fecha Origen Destino 2) (1,64 puntos) Dado el siguiente esquema conceptual se pide: a) (0,76 puntos) Añadir el menor número de atributos necesarios y traducirlo a esquema lógico relacional subrayando las claves primarias. Solución (7 minutos): Entidades fuertes: Editoriales(CIF) Libros() Autores() Socios() Entidades débiles: Ejemplares(, Núm_ejemplar) Relaciones: Publica(, CIF) Escribe(, ) Saca(, Núm_ejemplar, ) Colabora_con(, _colaborador) Tiene(, Núm_ejemplar) b) (0,33 puntos) Indicar las posibilidades de simplificación del esquema lógico debidas a restricciones de cardinalidad. Eliminar la relación Publica y añadir el atributo CIF a Libros: Libros(,CIF) Eliminar la relación Tiene, dado que tiene los mismos atributos que Ejemplares. 1/5

c) (0,55) Expresar las restricciones de integridad referencial en álgebra relacional como dependencias de conjunto. ( Ejemplares) ( Libros) ( Publica) ( Editoriales) CIF CIF ( Publica) ( Libros) Π ( Escribe) ( Libros) Escribe) ( ( Autores) ( Saca) ( Ejemplares) ( Saca) ( Socios) ( Colabora _ con) _ colaborador (Autores) ( Colabora _ con) ( Autores) Editoriales Publica Libros Escribe Autores Tiene Colabora con Ejemplares Saca Socios 3) (1,1 puntos) Dada la relación vuelo(origen, destino), se pide calcular todos los posibles trayectos en la relación trayecto: a) (0,55 puntos) Con una consulta SQL recursiva. WITH RECURSIVE trayecto(origen, destino) AS ( SELECT origen, destino FROM vuelo UNION SELECT vuelo.origen, trayecto.destino FROM vuelo, trayecto WHERE vuelo.destino=trayecto.origen ) SELECT * FROM trayecto b) (0,55 puntos) Con un programa Datalog. vuelo(madrid,sevilla). vuelo(madrid,barcelona). vuelo(barcelona,paris). vuelo(paris,berlin). trayecto(x,y) :- vuelo(x,y). 2/5

trayecto(x,y) :- vuelo(x,z), trayecto(z,y). DES> trayecto(x,y) { } yes trayecto(barcelona,berlin), trayecto(barcelona,paris), trayecto(madrid,barcelona), trayecto(madrid,berlin), trayecto(madrid,paris), trayecto(madrid,sevilla), trayecto(paris,berlin) 4) (2,53 puntos) Dada la base de datos simplificada Hospital considerada en las prácticas abiertas y cuyo esquema es: Pacientes(SS, Nombre, Domicilio, Teléfono, Historial, Observaciones) Ingresos(ID, Procedencia, Fecha, Planta, Cama, Observaciones, Historial, Médico) Médicos(Código, Nombre, Especialidad, Colegiado, Cargo, Observaciones) a) (0,55 puntos) Usando CRT, determinar todos los ingresos del paciente con Historial=1, informando de su nombre, fecha de ingreso y médico que le atendió. {t ( p Pacientes) ( i Ingresos) ( m Médicos) t[nombre]=p[nombre] t[fecha]=i[fecha] t[médico]=m[nombre] p[historial]=i[historial] i[médico]=m[código]} b) (0,55 puntos) Usando CRD, resolver la misma consulta anterior. {<Nombre,Fecha,Médico> SS,d,t,o(<SS,Nombre,d,t,1,o> Pacientes) ( id,p, p,c,oi,h,cm(<id,p,fecha,p,c,oi,1,cm > Ingresos) ( cm,e,co,ca,om (<cm,nombre,e,co,ca,om> Médicos)) } c) (0,33 puntos) Usando SQL, seleccionar cuántos médicos hay por cargo. SELECT Cargo, COUNT(*) FROM Médicos GROUP BY Cargo; d) (0,55 puntos) Usando SQL, seleccionar el código de identificación, el nombre y número de colegiado del médico más antiguo y el más moderno (el orden cronológico viene dado por el número de colegiado: el menor número es el más antiguo). SELECT Código, Nombre, Colegiado FROM Médicos WHERE (Colegiado = (SELECT MIN(Colegiado) FROM Médicos)) OR (Colegiado = (SELECT MAX(Colegiado) FROM Médicos)) e) (0,55 puntos) Usando SQL, escribir el resultado del punto anterior en una fila. SELECT NumMin,MédicosMin.Colegiado, MédicosMin.Cargo, NumMax, MédicosMax.Colegiado, MédicosMax.Cargo FROM (SELECT MIN(Colegiado) AS NumMin FROM Médicos), Médicos AS MédicosMin, (SELECT MAX(Colegiado) AS NumMax FROM Médicos), Médicos AS MédicosMax WHERE NumMin=MédicosMin.Colegiado AND NumMax=MédicosMax.Colegiado; 3/5

5) (0,88 puntos) Dadas las siguientes declaraciones: CREATE TYPE Editorial AS (nombre VARCHAR(20), sucursal VARCHAR(20), teléfonos SETOF(VARCHAR(10))) CREATE FUNCTION Editorial (n VARCHAR(20), s VARCHAR(20), t SETOF(VARCHAR(10))) RETURNS Editorial BEGIN SET nombre = n; SET sucursal = s; SET teléfonos = t; END a) (0,55 puntos) Explíquense brevemente estas declaraciones. La primera instrucción SQL define una clase (Editorial) con tres campos, dos de tipos básicos (nombre y sucursal) y un último estructurado (teléfonos) como un conjunto de valores de tipo cadena. La segunda instrucción implementa la función constructora de la clase asignando los valores que se pasan como argumentos. b) (0,33 puntos) Insertar una tupla en la tabla Editoriales de tipo Editorial con los valores "McGraw-Hill", España y 911234567, 917654321, para los campos nombre, sucursal y teléfonos, respectivamente. insert into Editoriales values Editorial('McGraw-Hill','España', set('911234567, 917654321')); 6) (2,2 puntos) Dada la relación r(a,b,c,d,e) y el conjunto de dependencias funcionales F = {AB C, C D, E BC, E BD}, se pide: a) (0,55 puntos) Determinar las posibles claves primarias. No puede haber claves candidatas de un único atributo porque los atributos A y E no se encuentran en ningún consecuente. Al menos, estos dos atributos deben formar parte de cualquier superclave. Examinamos su cierre {A,E}+ = {A,B,C,D,E} Es clave superclave y la única clave candidata de dos atributos, por lo que es también clave primaria. Alternativamente a esta solución, se podría calcular sistemáticamente cuáles son las superclaves examinando el cierre de todos los posibles conjuntos de atributos a partir de cardinalidad 1: {A}+ = {A} {B}+ = {B} {C}+ = {C,D} {D}+ = {D} {E}+ = {B,C,D,E} {A,B}+ =... {A,C}+ =... etc. b) (1,65 puntos) Determinar un recubrimiento mínimo de F. Es el único que se puede encontrar? Solución (15 minutos): Usamos el algoritmo: 1. Por la aplicación del lema 2 (una dependencia funcional X { B, 1, B n } funcionales X { B },, X { B n ) se obtiene un conjunto se puede dividir en n dependencias 1 } T equivalente a F de manera que todas las partes derecha de sus dependencias funcionales tienen un solo atributo. 4/5

2. Para cada dependencia funcional X { B} T, X = { A1,, } + A de X no tiene efecto sobre F, se elimina A de X. i A n se examina cada atributo : si la eliminación de + 3. Para cada dependencia funcional restante, si su eliminación no tiene efecto sobre F, se elimina de T. Paso 1: Se descomponen las dos últimas DF de F: F = {AB C, C D, E B, E C, E B, E D} Por ser F un conjunto, cada DF debe aparecer sólo una vez (E B aparece dos veces): F = {AB C, C D, E B, E C, E D} Paso 2: Examinamos la redundancia de atributos en el antecedente de AB C: Si quitamos A: Es cierto que si eliminamos A, B C se cumple en F? {B}+ = {B}: No Es cierto que si eliminamos B, A C se cumple en F? {A}+ = {A}: No. Por tanto, AB C es irreducible. i Paso 3: Echando un rápido vistazo a F, vemos que E C, C D y E D. Podemos eliminar esta última por transitividad: F = {AB C, C D, E B, E C} Examinamos ahora sistemáticamente el resto: Se puede eliminar AB C? {A,B}+ en {C D, E B, E C} = {A,B}: No. Se puede eliminar C D? {C}+ en {AB C, E B, E C} = {C}: No. Se puede eliminar E B? {E}+ en {AB C, C D, E C} = {E,C,D}: No. Se puede eliminar E C? {E}+ en {AB C, C D, E B} = {E,B}: No. Luego F = {AB C, C D, E B, E C} es el único recubrimiento mínimo (no quedan alternativas de eliminación de atributos o DF). A i 5/5