You are on page 1of 6

Bases de Datos Ao 2013

Prctico N 3 Modelo Relacional


Ejercicio A: Defina clave candidata, primaria, alternativa y fornea. Ejercicio B: Responda y justifique las siguientes preguntas:

1. Las filas de una relacin tienen un orden especfico? Compare con una tabla. 2. Puede una relacin carecer de clave primaria? 3. Una clave alternativa Puede contener valores nulos? Puede contener valores duplicados? 4. Puede una relacin carecer de clave fornea? Cules son las posibles acciones que se pueden definir en un
motor para mantener la integridad referencial?

5. Una clave fornea puede contener valores nulos? 6. Enuncie la Propiedad de Clausura, e indique las consecuencias que de ella se desprenden.
Ejercicio C:

1. Especifique una relacin que posea al menos una clave fornea (que no forme parte de la clave primaria de
dicha relacin), especifique la relacin a la que hace referencia, identifique su clave primaria. La clave fornea, puede contener nulos? Qu acciones de integridad referencial especificara si el motor provee las 3 alternativas conocidas? Justifique.

2. Especifique una relacin que posea una clave fornea que forme parte de la clave primaria. Especifique la
relacin a la que hace referencia, identifique su clave primaria. La clave fornea, puede contener nulos? Qu acciones de integridad referencial especificara si el motor provee las 3 alternativas conocidas? Justifique.

Ejercicio D: Considere las tablas X y Z.

P 10 15 25

Q a b a

R 5 8 6

A 10 25 10

B b c b

C 6 3 5

Indique los resultados que se obtienen en las siguientes operaciones.

a) A 15 (Z) b) P,R (X) c) A,B,C (X) U Z


Obs: renombro X porque debe ser Unin Compatible

g) X h) X i) X j) X

X.P = Z.A P=A Q=B

Z Z Z

d) C ( A,B,C (X) )

C (Z) Obs: renombro X porque debe ser Unin Compatible e) B ( A,B,C (X) ) - B (Z)
Obs: renombro X porque debe ser Unin Compatible

X.Q = Z.B

k) ( A,Q,R (X)) * Z

f) X x Z Ejercicio E: Considere las tablas R y S.


R M
A B A B C A

O
X Y Z X Y Y

O
X Y Z

Cul es el resultado de la operacin R S?

Bases de Datos Ao 2013

Ejercicio F: A continuacin se detallan las relaciones que forman Bases de Datos de dominios diferentes. En
todos los casos, identifique claves primarias y forneas, y exprese a travs del lgebra Relacional las consultas enumeradas.

Caso 1 - Deportes
PERS (Personas) = {Dni, Nom, Sexo, Edad, Dir, Tel, Zona} DEPO (Deportes) = {Codd, Nomd, Clase} CLUB (Clubes) = {Codc, Nomc, Dir, Tel, Cat, Zona} PRAC (Practican) = {Dni, Codd, Codc}

1. Obtener nombre, sexo y edad de todas las personas. 2. Obtener un listado que incluya el nombre de los clubes que estn ubicados en Capital, los que estn en
Desamparados y los de Rivadavia.

3. 4. 5. 6.

Obtener nombre, sexo y edad de las personas que practican deportes. Obtener el DNI de las personas que practican tenis. Obtener el nombre de los clubes donde se practica ftbol. Obtener para todas las personas que practican deportes: nombre de la persona, nombre del deporte y el nombre del club correspondiente. (cdigos).

7. Obtener el nombre de las personas que practican (simultneamente) los deportes D01, D22 y D10 8. Obtener el nombre de las personas que no practican deportes en Ausonia. 9. Obtener el DNI de las personas que practican deportes en Ausonia o bien practican en la UVT. 10. Obtener el cdigo de los deportes que son practicados solamente por hombres. 11. Obtener nombre y direccin de las personas que viven en la misma zona que Juan Prez, DNI 20.498.425. 12. Obtener el nombre de las personas mayores que Ana Garca (DNI: 18.498.425). 13. Obtener el nombre de las personas que practican en clubes que estn ubicados en la misma zona en la que
ellos viven.

14. Obtener el nombre de las personas junto al nombre del deporte que prctica. Se deben incluir todas las
personas registradas mas all que no estn practicando ningn deporte.

15. Obtener el nombre de los deportes practicados en todos los clubes. 16. Obtener los clubes (todos sus datos) en los que se practican todos los deportes de baln (clase). 17. Obtener las personas (todos sus datos personales) que practican todos los deportes. 18. Obtener el nombre de las personas que practican todos los deportes que se practican en el Banco Hispano. Caso 2 - Administracin central de la feria de la Capital
La administracin central de la feria de la Capital de nuestra provincia posee una base de datos que mantiene informacin relativa a los diferentes puestos, las expensas comunes que se deben pagar mensualmente, las diferentes mercaderas que se comercializan, etc. Puestos = {nrop, tamao, ubicacin, dni} Personas = {dni, nombre, direccin} Expensas = {nrop, mes, ao, fechaVenc, pagado (si/no), fechaPago, importe, dni} Productos = {codp, desc, tipo} SeVende = {nrop, codp}

Bases de Datos Ao 2013

1. Obtener los productos (todos sus datos) que son comercializados (SeVende) en el puesto P05. 2. Obtener los datos de las personas que comercializan Hortalizas (tipo) en sus puestos de venta. 3. Puestos (nmero de puesto) que comercializan tomates y zanahorias. 4. Personas (todos los datos personales) que comercializan tomates y/o zanahorias (en el mismo o distinto
puesto).

5. Personas (dni y nombre) que son propietarios de ms de un puesto. 6. Puestos (todos los datos) que estn al da en el pago de sus expensas. Considere que es factible comparar una
fecha con un literal.

7. Puestos (todos los datos) que comercializan todos los productos ctricos (tipo). Caso 3 Alumnos de una Facultad
ALU (Alumnos) = {dni, nomAlu, dir. tel} MAT (Materias) = {cod, nomMat, despliegue, carrera} INSC (Inscriptos) = {dni, cod, fecha}1 BOL (Boletas) = {dni, cod, fecha} 2 EXA (Exmenes) = {dni, cod, fecha, nota}

1. Alumnos (nombre) que han rendido (aprobado) Base de Datos y Base de Datos Avanzadas. 2. Exmenes (nombre del alumno, nombre de la materia, fecha y nota) rendidos en forma regular. 3. Alumnos (todos los datos) que nunca tuvieron aplazos. 4. Alumnos (dni y nombre) que han sacado boleta de todas las materias de la carrera Lic. en Cs de la
Computacin

5. Alumnos (DNI y nombre) que estn inscriptos en ms de una carrera. 6. Materias (todos los datos) que tienen al menos un inscripto en el presente ao. 3
Notas: 1- Un alumno se inscribe una sola vez en una materia. Puede estar inscripto en materias de carreras distintas, es decir, puede cursar ms de una carrera. 2- Las boletas no tienen vencimiento. 3- Existe una funcin year(date) que devuelve el ao de una fecha determinada.

Caso 4 BIBLIOTECA
LIBRO = {codlib, ttulo, idioma, tema, editorial} EJEMPLAR = {codlib, nroord, edicin} SOCIO = {dni, noms, direc, tel} AUTOR = {coda, noma} PRESTAMO = {codlib, nroord, dni, fechapres, fechadev, fecharealdev,devuelto(si/no)} ES_DE = {codlib, coda} Resuelva los siguientes requerimientos: 1. Obtener el nombre de los Socios que no adeudan libros; es decir, no adeuda ningn ejemplar. 2. Obtener ttulo e idioma de los libros que tratan sobre el tema Nutricin como as tambin tratan sobre Cocina Saludable. 3. Obtener los socios (dni y nombre) que se les ha prestado libros que tratan sobre el tema Salud y tambin se les ha prestado libros que tratan sobre el tema Cocina Saludable.
3

Bases de Datos Ao 2013

4. Mostrar el ttulo, el tema y el nombre de la editorial de los ejemplares que fueron prestados en el 2009* y fueron devueltos cuando corresponda; es decir, la fecha de devolucin coincide con la fecha real de devolucin. 5. Obtener los ttulos de los libros escritos por Borges como as tambin los libros escritos por Garca Mrquez. 6. Obtener los datos de los socios que se llevaron en ms de un oportunidad el mismo ejemplar. 7. Obtener DNI y nombre de los socios que se les ha prestado algn ejemplar de todos los libros que tratan el tema Matemtica Aplicada. Es decir, han consultado todos los libros que tratan el tema Matemtica Aplicada. *NOTA: Use la funcin year (date) cuyo argumento de entrada es una fecha y devuelve el ao correspondiente.

Caso 5 - Rentas
PERS (Personas) = {Dni, Nombre, DomCalle, DomNro, DomOrient, Tel} LOCAL (Localidades) = {IdLoc, NomLoc} TIP_INM (Tipos de Inmuebles) = {IdTipo, Descripcion} INMU (Inmuebles) = {NroCat, Calle, Nro, Orientacin, IdTipo (tipo de inmueble), IdLoc, DniProp} AUTO (Automotores) = {Patente, Marca, Modelo, DniProp } CUO_INM (Cuotas de Inmuebles) = {Mes, Ao, FechaVenc, Pagado (si/no), Importe, NroCat} CUO_AUT (Cuotas de Automotores) = {Mes, Ao, FechaVenc, Pagado (si/no), Importe, Patente} Nota: * Existe una funcin date que devuelve la fecha.

1. Obtener los datos personales correspondientes a las personas que poseen todos los tipos de inmuebles
posibles (terrenos, departamentos, etc).

2. Obtener nombre y documento de las personas que estn al da en el pago de sus impuestos de inmuebles, es
decir, tienen pagadas todas sus cuotas de inmuebles vencidas.

3. Obtener nombre y documento de las personas que estn al da en el pago de sus impuestos, es decir, tienen
pagadas todas sus cuotas vencidas.

4. Obtener todos los datos personales de los contribuyentes que son propietarios de por lo menos un inmueble y
un vehculo.

5. Obtener el nombre de las personas que poseen slo propiedades en Santa Luca y en Capital. Caso 6 Banco
PERS (Personas) = {Dni, Nombre, Direccin, Local, Tel} CCTES (Cuentas Corrientes) = {Nro, Fecha, ImporteInicial, SaldoActual**, Dni1*, Dni2*} CAHORRO (Cajas de Ahorro) = {Nro, Fecha, ImporteInicial, SaldoActual, Dni1*, Dni2*} TRANSAC = {NroTrans, Nro (de cuenta corriente o caja de ahorro), Fecha, Importe, IdTipo, Saldo**} TIPO_TRANS = {IdTipo, Desc} Notas: * Tanto las cuentas corrientes como las cajas de ahorro pueden tener dos titulares. ** Los saldos de las cuentas corrientes pueden ser negativos.

1. Cajas de ahorros (todos sus datos) que an no tienen movimientos. 2. Nombre de las personas que poseen al menos una cuenta corriente como as tambin al menos una caja de
ahorro.
4

Bases de Datos Ao 2013

3. Cuentas corrientes que nunca generaron saldos negativos. 4. Personas que tienen dinero disponible (tienen saldo a favor en alguna cuenta corriente o en alguna caja de
ahorro).

5. Cuentas corrientes (nmero y saldo) a las que se les efectu al menos una transaccin de cada tipo; es decir,
todos los tipos de transacciones posibles.

6. Personas (todos los datos) que efectuaron en ms de una ocasin transacciones en sus cuentas corrientes en
rojo, es decir con saldo negativo.

Ejercicios Propuestos
Caso 7 Accidentes de Trnsito
COMPSEG (Compaa de Seguros) = {Cuit, Nom, Domi, Tel} VEHI (Vehculos) = {Pat, Modelo, Tipo (Moto, Auto, Camioneta o Camin), Cuit, Cm, Dni} MARCAS = {Cm, Descrip} PERS (Personas) = {Dni, Nom, Edad, Domi, Tel} ACTA = {NroActa, Lugar, Fecha, hora} INVO (Involucrados) = {NroActa, Pat, Dni, Conductor (si/no), dao (sin dao, leve, grave, o fatal)}

1. 2. 3. 4.

Obtener el nombre de las compaas de Seguros que tienen asegurados todos los tipos de vehculos. Obtener todos los datos de los vehculos que no han tenido accidentes fatales. Obtener el nombre de las personas que no tienen asegurados todos los vehculos en la misma compaa. Obtener la patente de los autos involucrados en choques, en los que viajaba solamente el conductor (es decir, no tena acompaantes).

5. Obtener todos los datos de las personas que han chocado manejando su propio vehculo. Caso 8 Agencia de Seguros
Una agencia de seguros posee una base de datos formada por las siguientes tablas: PERS(Personas) = {Dni, Nom, Direcc, Email, Tel} POL(Plizas) = {Nro, F_desde, F_hasta, Importe, Patente, Dni, Estado (activa/inactiva)} COB_POL(Cobertura Plizas) = {Nro, Id} TIPOS_COB(Tipos de Coberturas) = {Id, Descrip, Monto} VEHIC(Vehculos) = {Patente, Marca, Modelo, Tipo (auto, camin, etc)}

1. Mostrar nombre y direccin de email de las personas que han contratado para su/sus vehiculo/s los tipos de
cobertura contra robo y contra incendio.

2. Mostrar todos los datos personales de las personas que tienen ms de un vehculo asegurado en la compaa. 3. Generar un informe que incluya DNI, nombre y telfono de las personas que poseen asegurados camiones
como as tambin incluya DNI, nombre y telfono de las personas que poseen asegurados camionetas (el informe debe incluir a ambos).

4. Mostrar patente y modelo de los vehculos que tienen cobertura contra terceros nicamente. 5. Mostrar todos los datos de las plizas que incluyen todos los tipos de coberturas registradas. 6. Mostrar nombre de las personas que tienen alguna pliza inactiva.

Bases de Datos Ao 2013

Caso 9 Robos de Sucursales


SUC(Sucursal) = {cods, noms, localidad, mail} JUEZ = {dnij, nomj, dir,fechainicio} DEL(Delincuente) = {dnid, nomd, apodo} VIG(Vigilante) = { dniv, nomv, dir, cel, mail } CONT(Contratado) = {dniv, cods, fechadesde, fechahasta} ROBO = {dnid, dnij, cods, fecha, condena(si/no)} Resuelva los siguientes requerimientos: 1. Obtener los delincuentes (todos sus datos) que han robado en la sucursal ubicada en la localidad de Capital como as tambin los que han robado en la sucursal ubicada en la localidad de Rawson. 2. Obtener los delincuentes (nombre y apodo) que robaron entre el ao 2000 y el ao 2009 indicando el nombre del Juez que intervino. 3. Obtener los vigilantes (todos sus datos) que fueron contratados en la misma sucursal en distintos periodos. 4. Obtener los vigilantes (nombre y celular) que fueron contratados en algn periodo del ao 2009 en la sucursal de Santa Lucia y tambin fueron contratados en algn periodo del ao 2009 en la sucursal de Rivadavia. 5. Obtener los vigilantes (todos sus datos) que nunca fueron contratados en la sucursal de la localidad de Jchal. 6. Obtener el/los delincuentes (todos sus datos) que han robado en todas las sucursales. *NOTA: Use la funcin year(date) cuyo argumento de entrada es una fecha y devuelve el ao correspondiente.