Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3er Ao I.S.I.
Diseo de Bases de Datos Aplicadas
Ao 2011
Pgina 1
Diseo de Bases de Datos Aplicadas
Ao 2011
1) Utilizando el siguiente Diagrama de Entidad Relacin (DER) disee y cree las tablas
correspondientes en la base de datos creada en el trabajo prctico anterior. Deber
representar las restricciones de integridad y dominio que sean necesarias. Escriba las
instrucciones utilizados para la creacin de las tablas as como un comentario de las decisiones
tomadas y las restricciones que no pudo reflejar. Tambin documente el diagrama fsico
obtenido. Para este trabajo puede utilizar una herramienta CASE (Ej. ER-Studio o similar).
a) Inserte datos en las tablas para que todas las tablas tengas al menos una fila. Al menos dos
tablas deben tener ms de 10 filas. Para ello puede utilizar cualquiera de los siguientes
mtodos:
i) Comando INSERT INTO
ii) Comando INSERT.. SELECT
iii) Asistente de insercin masiva de datos.
b) Utilizando un archivo txt provisto por la ctedra importe masivamente filas a las tablas
indicadas por el profesor.
c) Realice las siguientes operaciones sobre una tabla y documente la operacin con los
comandos utilizados.
i) Borre los primeros 10 registros de la tabla con ms filas de su base de datos.
ii) Puede recuperar las filas borradas? Explique cmo?
Pgina 2
Diseo de Bases de Datos Aplicadas
Ao 2011
La empresa tiene varios DATACENTERs (DC), en los que hay distintos equipos. Para cada DC se
almacena su direccin, cdigo y responsable. Cada DC est compuesto por uno o ms equipos.
Cada equipo tendr un cdigo, y almacenaremos su marca, modelo, RAM y capacidad de disco. El
personal informtico trabaja en un slo DC, almacenando su DNI y datos personales. Cada
empleado podr trabajar en varios equipos del DC. Los usuarios de los equipos tendrn cuentas en
uno o varios equipos. En cada equipo, slo podrn tener una cuenta, con un nombre, una clave y
un privilegio distinto. Se almacenar su DNI y datos personales. Tambin se guarda informacin
sobre las cuentas antiguas (nombre, clave y periodo de uso).
Pgina 3
Diseo de Bases de Datos Aplicadas
Ao 2011
La liga de ftbol profesional, presidida por Don ngel Mara Villar, ha decidido informatizar sus
instalaciones creando una base de datos para guardar la informacin de los partidos que se juegan
en la liga. Se desea guardar en primer lugar los datos de los jugadores. De cada jugador se quiere
guardar el nombre, fecha de nacimiento y posicin en la que juega (portero, defensa,
centrocampista). Cada jugador tiene un cdigo de jugador que lo identifica de manera nica. De
cada uno de los equipos de la liga es necesario registrar el nombre del equipo, nombre del estadio
en el que juega, el aforo que tiene, el ao de fundacin del equipo y la ciudad de la que es el
equipo. Cada equipo tambin tiene un cdigo que lo identifica de manera nica. Un jugador solo
puede pertenecer a un nico equipo. De cada partido que los equipos de la liga juegan hay que
registrar la fecha en la que se juega el partido, los goles que ha metido el equipo de casa y los
goles que ha metido el equipo de fuera. Cada partido tendr un cdigo numrico para identificar
el partido. Tambin se quiere llevar un recuento de los goles que hay en cada partido. Se quiere
almacenar el minuto en el que se realizar el gol y la descripcin del gol. Un partido tiene varios
goles y un jugador puede meter varios goles en un partido. Por ltimo se quiere almacenar, en la
base de datos, los datos de los presidentes de los equipos de ftbol (dni, nombre, apellidos, fecha
de nacimiento, equipo del que es presidente y ao en el que fue elegido presidente). Un equipo de
ftbol tan slo puede tener un presidente, y una persona slo puede ser presidente de un equipo
de la liga.
5) Realizar el modelo E-R y pasarlo al modelo de datos relacional. Disear las tablas e imprimirlas,
realizar las oportunas relaciones entre tablas e introducir al menos 50 registros en cada una de
las tablas usando importacin de datos (obtenga los mismos de internet o bien cree sus
propias archivos con Excel o archivo de texto plano). Imprima las tablas con los datos
cargados.
Una agencia de viajes desea informatizar toda la gestin de los viajeros que acuden a la agencia y
los viajes que estos realizan. Tras ponernos en contacto con la agencia, sta nos proporciona la
siguiente informacin. La agencia desea guardar la siguiente informacin de los viajeros: dni,
nombre, direccin y telfono. De cada uno de los viajes que maneja la agencia interesa guardar el
cdigo de viaje, nmero de plazas, fecha en la que se realiza el viaje y otros datos. Un viajero
puede realizar tantos viajes como desee con la agencia. Un viaje determinado slo puede ser
cubierto por un viajero. Cada viaje realizado tiene un destino y un lugar de origen. De cada uno de
ellos se quiere almacenar el cdigo, nombre y otros datos que puedan ser de inters. Un viaje
tiene un nico lugar de destino y un nico lugar de origen.
Pgina 4
Diseo de Bases de Datos Aplicadas
Ao 2011
Vuelos(flno: integer, from: string, to: string, distance: integer, departs: time, arrives: time)
Pgina 5
Diseo de Bases de Datos Aplicadas
Ao 2011
a) Encuentre los nombres de todos los estudiantes Juniors (level = JR) que esten enrolados
en una clase dictada por I. Teach.
b) Encuentre los nombres de todas clases que cumpla estar en el aula R128 o tenga mas de 5
estudiantes inscriptos.
c) Encuentre los nombres de todos estudiantes que estan inscriptos en dos clases que
comiencen a la mismo hora.
d) Encuentre los nombres de miembros de la facultad que hay en cada aula en la cual se dicta
alguna clase.
e) Encuentre los nombres de los miembros de la facultad para quienes la inscripcin
combinada de los cursos que ensean es menos de cinco.
f) Para cada nivel, liste los niveles y los promedios de edad de los estudiantes para ese nivel.
g) Para todos los niveles excepto JR, liste el nivel y los promedios de edad de estudiantes
para dicho nivel.
h) Para cada miembro de la facultad que toma clases en el aula R128, liste los nombres de los
miembros de la facultad y el total de clases que toma.
i) Encuentre los nombres de estudiantes inscriptos en para el mximo nro. de clases.
j) Encuentre los nombres de estudiantes no inscriptos in ninguna clase.
k) Para cada valor de la edad que aparezca en estudiantes, encuentre el valor del nivel que
aparece lo ms a menudo posible. Por ejemplo, si hay ms estudiantes del nivel del FR
con 18 aos que en los niveles SR, JR, o SO, usted debe imprimir el par (18, FR).
a) Liste los nombres las edades de cada employee que trabajan en los departamentos de
Hardware y los departmento de Software.
Pgina 6
Diseo de Bases de Datos Aplicadas
Ao 2011
b) Encuentre los managerids de los gerentes que administran solo departmentos con
presupuesto mayor a $1.000.000.
c) Encuentre los enames de los gerentes que administran los departamentos con los
mayores presupuestos. Si un gerente administra ms de un depto. se debe sumar sus
presupuestos.
d) Encuentre los managerids de los gerentes que controlan mas de $5.000.000.
e) Encuentre los managerids de los gerentes que controlan los mayores presupuestos.
f) Encuentre los enames de los gerentes que administran solo departmentos con
presupuestos de ms de $1.000.000, pero al menos un depto. tiene presupuesto menor a
$5.000.000.
La editorial tiene varias sucursales, con su domicilio, telfono y un cdigo de sucursal. Cada
sucursal tiene varios empleados, de los cuales tendremos sus datos personales, DNI y telfono. Un
empleado trabaja en una nica sucursal. En cada sucursal se publican varias revistas, de las que
almacenaremos su ttulo, nmero de registro, periodicidad y tipo. La editorial tiene periodistas
(que no trabajan en las sucursales) que pueden escribir artculos para varias revistas.
Almacenaremos los mismos datos que para los empleados, aadiendo su especialidad.
Guardaremos tambin las secciones fijas de cada revista, que tendrn un ttulo y una extensin.
Para cada revista, almacenaremos informacin de cada nmero, que incluir la fecha, nmero de
pginas y el nmero de ejemplares vendidos.
a) Dibujar el modelo Entidad-Relacin y pasarlo a tablas. Insertar datos en las tablas para que
las consultas no devuelvan filas vacas. Imprimir el modelo relacional obtenido.
i) Cules son los ttulos de las revistas publicadas a partir del 1 de Febrero de 2010?
iii) Cules son los nombres y telfonos de los periodistas que escriben en revistas de
investigacin?
6) Tenemos que disear una base de datos para una empresa de material informtico, de la que
tenemos esta informacin:
Pgina 7
Diseo de Bases de Datos Aplicadas
Ao 2011
Sabemos que: Un empleado trabaja en una seccin. Cada cliente compra a travs de un slo
empleado. Un equipo consta de varios componentes. Se pueden comprar equipos completos o
componentes sueltos.
i) Cules son los empleados que han vendido equipos a clientes de Resistencia?
ii) Cules son los cdigos y descripciones de los equipos con monitores VGA color?
7) Tenemos que disear una base de datos sobre los pubs de Resistencia. La informacin de que
disponemos es la siguiente: De cada pub, almacenaremos el nombre, licencia fiscal, domicilio,
fecha de apertura, horario y das de apertura. Cada pub tendr uno o varios titulares, de los
que almacenaremos sus datos personales: nombre, DNI y domicilio. Tendremos que anotar
tambin los empleados de cada pub, teniendo en cuenta que un empleado puede trabajar en
varios sitios. Para cada empleado, tendremos sus datos personales: nombre, DNI y domicilio;
tambin anotaremos la funcin que desempea, que puede ser distinta en cada pub. Para
cada negocio, llevaremos un inventario de existencias, con el nombre del artculo, su cdigo, la
cantidad y el precio. A efectos de contabilidad, llevaremos una relacin de los pedidos, con un
nmero de pedido (nico), fecha, proveedor, cdigo y nombre de los artculos suministrados,
cantidad y precio total del pedido. Tambin tenemos que almacenar las recaudaciones diarias
de cada negocio.
i) Cules son los nombres y domicilios de los camareros del pub "Nctar"?
ii) Cules son los proveedores de jugo de naranja del pub "Candy"?
iii) Cules son los nombres de los pubs que han hecho recaudaciones mayores de
$100.000. el da 12/02/2010?
Pgina 8
Diseo de Bases de Datos Aplicadas
Ao 2011
a) Defina una restriccin en EMP que asegure que cada empleado no cobre menos de
$10.000.
b) Defina una restriccin en la tabla DEPT que asegure que todos los managers tienen
ms de 30 aos.
c) Defina una trigger en DEPT que asegure que todos los managers tienen ms de 30
aos. Comprelo con la restriccin anterior. Explique cul es mejor.
d) Escriba sentencias SQL para borrar toda la informacin sobre los empleados cuyos
salarios excedan el del administrador (manager) del departamento en los cuales
trabajan.
Estudiantes(eid: integer, enombre: string, asesor: string, nivel: string, edad: integer)
1) Escriba las sentencias SQL que permitan crean las relaciones anteriores, incluyendo
todas las restricciones que encuentre obvias colocar. Por ej. Un estudiante no puede
inscribirse dos veces en la misma clase, etc.
2) Exprese cada una de las siguientes restricciones de integridad en SQL a menos que
esta este implcita con las claves primarias y forneas; si corresponde defina que
operaciones (insert, delete, update) debe ser monitoreadas a taves de un triggers para
cumplirla:
Pgina 9
Diseo de Bases de Datos Aplicadas
Ao 2011
b) Al menos una clase debe ocupar un saln de manera que todos los salones
estn ocupados.
l) El nro. total de inscriptos en los cursos tomados por los profesores del
departamento deptid=33 debe ser mayor que el nro. de asesores de
Matemtica.
3) Discuta con el grupo las fortalezas y debilidades de los disparadores. Contraste los
triggers con los otros tipos de restricciones que conoce.
Escriba las restricciones de integridad siguientes usando el tipo de comando o funcin que sea
necesario. Considrelas a todas de manera independiente una de otra.
Pgina
10
Diseo de Bases de Datos Aplicadas
Ao 2011
Pgina
11
Diseo de Bases de Datos Aplicadas
Ao 2011
Pgina
12
Diseo de Bases de Datos Aplicadas
Ao 2011
<Actor>Kate Winslet</Actor>
</Actores>
<Fecha>1999</Fecha>
<Director>James Cameron</Director>
<Formato>DVD</Formato>
</Pelicula>
<Pelicula>
<Titulo>The Sixth Sense</Titulo>
<Duracion>106</Duracion>
<Genero>Thriller</Genero>
<Actores>
<Actor>Bruce Willis</Actor>
<Actor>Haley Joel Osment</Actor>
</Actores>
<Fecha>1999</Fecha>
<Director>M. Night Shyamalan</Director>
<Formato>VHS</Formato>
</Pelicula>
</CatalogoPeliculas>
Pgina
13
Diseo de Bases de Datos Aplicadas
Ao 2011
5) Construir un esquema XML de acuerdo al DTD y XML adjuntos ms abajo. Realizar los
siguientes pasos:
a. Crear el documento XML.
b. Crear el DTD
c. Validar DTD con el documento XML
d. Crear el Esquema XML correspondiente.
Documento XML de libro:
<?xml version="1.0" encoding="UTF-8"?>
<!-- insertar el DTD y Schema respectivo -->
<Libro>
<Titulo>Java y XML</Titulo>
<Contenido>
<Capitulo materia="XML">
<Tema>Introduccin</Tema>
<Seccion apartados="7">Qu es</Seccion>
<Seccion apartados="3">Cmo se usa</Seccion>
</Capitulo>
<Capitulo materia="XML">
<Tema>Creando XML</Tema>
<Seccion apartados="0">Un documento XML</Seccion>
<Seccion apartados="2">La cabecera</Seccion>
<Seccion apartados="6">El contenido</Seccion>
</Capitulo>
<Capitulo>
<Tema>Analizando XML</Tema>
<Seccion apartados="3">Preparacin</Seccion>
<Seccion apartados="3" dificil="si">SAX</Seccion>
<Seccion apartados="9" dificil="si">Manejadores</Seccion>
<Seccion apartados="0">Una forma mejor de cargar el analizador</Seccion>
</Capitulo>
Pgina
14
Diseo de Bases de Datos Aplicadas
Ao 2011
<Separacion/>
<Capitulo materia="Java">
<Tema>JDOM</Tema>
<Seccion apartados="2">Introduccin</Seccion>
<Seccion apartados="4" dificil="si">DOM&JDOM</Seccion>
</Capitulo>
</Contenido>
<Copyright>2000</Copyright>
</Libro>
6) Definir un esquema XML que valide una tabla peridica y un documento XML vlido con
respecto a ste, que almacene la siguiente informacin para los elementos de la tabla
peridica:
Tabla peridica es un listado de uno o ms tomos, donde cada tomo tiene:
un atributo estado (slido, lquido, gaseoso)
un elemento nombre
un elemento smbolo (tres caracteres como mximo, 1ra. letra mayscula)
un elemento numero_atomico
un elemento peso_atomico
un elemento punto_ebullicion con un atributo unidades, que puede ser centigrados o
kelvin, y por defecto tomar el valor centigrados.
un elemento densidad con un atributo unidades
7) Teniendo en cuenta los siguientes ejemplos, definir los tipos de datos ms adecuados:
Hidrgeno: estado="gas", smbolo "H", nmero atmico "1", peso atmico "1.00794",
punto ebullicin "20.28", unidades="kelvin", densidad "0.0899"
unidades="gramos/centimetros cbicos"
Pgina
15
Diseo de Bases de Datos Aplicadas
Ao 2011
Helio: estado="gas", smbolo "He", nmero tomico "2", peso atmico "4.0026",
punto ebullicin "4.216", unidades="kelvin", densidad "0.1785", unidades
gramos/centimetros cbicos"
8) Crear una hoja de estilo de acuerdo a un documento XML. Realizar los siguientes pasos:
a. Crear el documento XML (ver catalogo.xml)
b. Crear una hoja de estilo de acuerdo al documento XML: aplicar templates.
c. Verificar que tanto el documento XML como XSL estn bien formados.
d. Generar como salida un archivo HTML. Ejemplo:
Pgina
16
Diseo de Bases de Datos Aplicadas
Ao 2011
<precio>38.00</precio>
<anio>2008</anio>
</cd>
</catalogo>
10) De acuerdo al documento XML que figura abajo, crear una hoja de estilo XSLT que muestre los
datos en una tabla, de acuerdo a las siguientes pautas:
a) Mostrar nombre, materia y nota, ordenar de acuerdo a la calificacin.
b) Las calificaciones superiores a 70 aparecen en verde, de 40 a 70 en amarillo y las
inferiores a 40 en rojo
c) Los alumnos recursantes aparecen marcados con un (*), con una explicacin debajo de
la tabla.
d) El ttulo del documento refleja la fecha de calificacin como el titulo correspondiente.
e) Al final, mostrar un resumen con totales de alumnos, total aprobados y desaprobados.
Considerar aprobados aquellas calificaciones mayores a 70.
f) Generar un archivo XML con los alumnos aprobados.
Pgina
17
Diseo de Bases de Datos Aplicadas
Ao 2011
13) Usando DOM, modelar una libreta de contactos de acuerdo a la siguiente informacin:
nombre, direccin (calle, cdigo postal, ciudad), medios de contacto (telfono fijo, telfono
mvil, correo electrnico). Generar el documento XML respectivo.
14) Realizar mediante DOM un programa que a partir del archivo XML generado en el ejercicio 9,
generar un informe con las notas de los alumnos. El programa debe imprimir por pantalla el
promedio de cada alumno y el promedio total de los alumnos, as tambin, generar un
documento XML con esta informacin
Pgina
18
Diseo de Bases de Datos Aplicadas
Ao 2011
Pgina
19
Diseo de Bases de Datos Aplicadas
Ao 2011
* Aclaracin: Tomaremos el Backup de Archivos "redo log" como backups tipo incremental. Si bien
no es lo mismo lo hacemos para no complicar el escenario.
Tareas:
a) Investigue Que es un redo log?. Su base de datos lo soporta o es algo exclusivo de un
motor en particular? En caso afirmativo como lo llama?
b) Deber buscar y comparar soluciones de hardware para dar soporte a esta planificacin. Al
menos debern ser tres opciones como mnimo con sus respectivos anlisis de costos y de
las tres proponer la mejor opcin.
c) Describa el procedimiento de restauracin que utilizara si la base de datos se daase el
primer Jueves de la 2da semana a las 11 de la maana. ? Tiene un plan "B" por si falla
alguna restauracin?
d) Cmo debera modificar la planificacin si en vez de dos semanas se necesitarn
conservar al menos 3 meses?. Esto implicara inversin adicional en equipamiento /
software? Justifique.
2) Teniendo en cuenta los temas tratados en este captulo, desarrollar un propio plan de
backup y restauracin, proponiendo un escenario imaginario.
Pgina
20
Diseo de Bases de Datos Aplicadas
Ao 2011
1. Se necesita crear una cuenta de usuario para Juan Perez, el nuevo jefe del
departamento de recursos humanos. Asimismo hay dos nuevos empleados en el
departamento, Pedro Gomez y Juan Garcia. Los tres deben poder loguearse a la
base de datos, realizar consultas a la tabla de empleados y actualizar datos de esa
tabla. Solo el administrador puede insertar o borrar registros de empleados.
Asegrese que si los nuevos usuarios olvidan loguearse al final del da el sistema
les cerrar la sesin pasados quince minutos de tiempo ocioso. Cree la tabla
empleados en caso de no tenerla con campos bsicos para almacenamiento de
informacin del personal
Realice las siguientes tareas y documente cada paso con copias de la pantalla con el
resultado:
a. Cree cuentas de usuario para los empleados Pedro Gomez y Juan Garcia.
b. Cree una cuenta tambin para el nuevo jefe Juan Perez.
c. Si la base de datos lo permite cree un grupo de seguridad (rol) que agrupe
los empleados y llmelo RRHH_EMP con los permisos de SELECT y
UPDATE para la tabla Empleados y asigne a los usuarios Gomez y Garcia.
Cree adems otro rol y llmelo RRHH_JEFE con permisos los permisos
anteriores ms de INSERT y DELETE en la misma tabla y agregue el
usuario de Perez. Caso contrario asigne los permisos directamente a los
usuarios.
d. Conectarse a la base de datos usando el usuario de Pedro Gomez. Ejecute
una consulta sobre la tabla empleados.
e. Ahora intente borrar un registro.
f. Conctese ahora con el usuario de Perez y ejecute una consulta e inserte
un registro en la tabla Empleados.
g. Deje un usuario con la sesin abierta por ms de 15 minutos sin realizar
accin alguna y compruebe si la misma se cierra automticamente.
Pgina
21