Академический Документы
Профессиональный Документы
Культура Документы
Definicin de datos y restricciones (CREATE TABLE), y cambios en el esquema (DROP y ALTER) Consultas (SELECT...FROM...WHERE) restringidas * Actualizacin (INSERT, DELETE, UPDATE)
restringidas * En este curso NO se cubren todos los aspectos de SELECT. No se estudian, por ejemplo, SELECT anidados o la clusula HAVING (consultar el temario de la asignatura). En el examen NO se admiten soluciones que incluyan aspectos de SQL no cubiertos en la asignatura.
SQL
(Structured Query Language)
lgebra relacional orden de las operaciones SQL: lenguaje declarativo Se indica cul es el resultado esperado Permite que el SGBD seleccione las operaciones y el orden ms adecuados para obtener el resultado: optimizacin SGBD comerciales son variantes de SQL Estndares SQL: SQL1 1986, SQL2 1992, SQL3 (extiende SQL2 con conceptos de BD y OO) SQL: Lenguaje de Definicin de Datos (LDD) Lenguaje de Manipulacin de Datos (LMD): consulta y actuali
Catlogo del SGBD: coleccin de esquemas en un entorno SQL Catlogo del SGBD
Esquema 1
Tablas
Restricciones
Esquema 2
INFORMATION _SCHEMA
Elementos de un esquema
Vistas Dominios
Autorizaciones
...
Esquema especial que da a los usuarios autorizados informacin de todos los esquemas del catlogo del SGBD
RI: slo entre relaciones del mismo catlogo del SGBD Esquemas del catlogo del SGBD: pueden compartir elementos (por ejemplo dominios)
FBD Tema 5 Dpto. LSI - Donostia 3
CREATE TABLE DEPARTAMENTO ( NOMBRED VARCHAR(15) NOT NULL, NUMEROD INT NOT NULL DEFAULT 888665555,
Dominios en SQL2
Un dominio es un tipo de datos definido por el usuario
CREATE DOMAIN TIPO_NSS AS CHAR(9);
Valor por defecto de los atributos declarados con ese dominio si no se especifica DEFAULT el valor por defecto es NULL
un-valor: se indica qu valor tomar el atributo si no se le asigna nada. Si no se indica DEFAULT, el valor por defecto es el valor nulo
Se puede calificar con: ON DELETE: en caso de borrarse la tupla a la que se hace referencia con un valor de la clave extranjera ON UPDATE: en caso de modificarse el valor de clave primaria al que se hace referencia con el valor de clave extranjera
CREATE TABLE DEPARTAMENTO ( NOMBRED VARCHAR(15) NOT NULL, NUMEROD INT NOT NULL DEFAULT 1, NSS_JEFE CHAR(9) NOT NULL, FECHA_INIC_JEFE DATE, PRIMARY KEY(NUMEROD), UNIQUE(NOMBRED), FOREIGN KEY(NSS_JEFE) REFERENCES EMPLEADO(NSS) ON UPDATE CASCADE ON DELETE SET NULL ); FBD Tema 5 Dpto. LSI - Donostia 7
Acciones posibles (en ON DELETE / ON UPDATE): SET NULL: el valor de clave extranjera en cuestin se sustituye por el valor nulo SET DEFAULT: el valor de clave extranjera en cuestin se sustituye por el valor por defecto del atributo clave extranjera CASCADE: en caso de ON DELETE se borran las tuplas que hacen referencia a la tupla que desaparece. En caso de ON UPDATE se aplica la misma modificacin en las claves extranjeras que la realizada sobre la clave primaria a la que hacen referencia. CASCADE es adecuada para: vnculos (TRABAJA_EN) atributos multivaluados (LOCALIZACIONES_DEPT) tipos de entidad dbiles (DEPENDIENTE) RESTRICT (cuando NO se pone ON DELETE / ON UPDATE): impide el borrado (si falta ON DELETE) o la modificacin (si falta ON UPDATE) de cualquier tupla referenciada desde un valor de la clave extranjera en cuestin.
CREATE TABLE DEPARTAMENTO ( NOMBRED VARCHAR(15) NOT NULL, NUMEROD INT NOT NULL DEFAULT 1, NSS_JEFE CHAR(9) NOT NULL, FECHA_INIC_JEFE DATE, PRIMARY KEY(NUMEROD), UNIQUE(NOMBRED), FOREIGN KEY(NSS_JEFE) REFERENCES EMPLEADO(NSS) ON UPDATE CASCADE ON DELETE SET NULL ); FBD Tema 5 Dpto. LSI - Donostia 8
ningn elemento
CASCADE
Aadir columnas:
ALTER TABLE EMPRESA.EMPLEADO ADD PUESTO VARCHAR(12);
En las tuplas existentes se asignan valores NULL. Alternativas: definir DEFAULT o introducir valores con
la orden UPDATE (se estudiar ms adelante) NOT NULL no est permitido
Borrar columnas:
ALTER TABLE EMPRESA.EMPLEADO DROP DIRECCIN CASCADE; CASCADE
borra tambin las restricciones (constraints) y vistas que hagan referencia a la columna (DIRECCIN) slo borra la columna (DIRECCIN) si no hay restricciones ni vistas que le hagan referencia
ALTER TABLE EMPRESA.DEPARTAMENTO ALTER NSS_JEFE DROP DEFAULT; ALTER TABLE EMPRESA.DEPARTAMENTO ALTER NSS_JEFE SET DEFAULT 333445555;
RESTRICT
Elimina la definicin DEFAULT 888665555 Inserta una nueva definicin de DEFAULT para el atributo NSS_JEFE
FBD Tema 5 Dpto. LSI - Donostia 10
Borrar restricciones:
ALTER TABLE EMPRESA.EMPLEADO DROP CONSTRAINT CLE_SUPERV_EMP;
Es preciso haberle dado un nombre con CONSTRAINT en la definicin (por ejemplo en CREATE TABLE) Aadir restricciones:
ALTER TABLE EMPRESA.EMPLEADO ADD CONSTRAINT CLE_SUPERV_EMP
FOREIGN KEY (NSS_SUPERV) REFERENCES EMPLEADO(NSS) ON DELETE SET NULL ON UPDATE CASCADE;
11
12
A3B: INSERT INTO INFO_DEPTOS (NOMBRE_DEPTO, NM_DE_EMPS, SAL_TOTAL) SELECT NOMBRED, COUNT (*), SUM(SALARIO) FROM DEPARTAMENTO INNER JOIN EMPLEADO ON NMEROD=ND GROUP BY NOMBRED;
Inserta varias tuplas (el resultado de la consulta) Utilidad: tabla temporal donde realizar consultas Sus datos pueden perder actualidad Alternativa sin este problema: vista
13
Una sola tabla WHERE: seleccin de tuplas a eliminar El borrado se puede propagar (RI referencial)
A4C: DELETE FROM EMPLEADO WHERE ND IN (SELECT NMEROD FROM DEPARTAMENTO WHERE NOMBRED=Investigacin) A4D: DELETE FROM EMPLEADO
Sin WHERE se borran todas las tuplas (quedara la tabla vaca) Usando DROP TABLE se hubiera eliminado adems la definicin de la tabla
14
15
Consultas bsicas
SELECT columnas FROM tablas [WHERE condicin]
El Eltemario temariode deFBD FBDNO NOcubre cubre todos los aspectos de SELECT .. todos los aspectos de SELECT En NOestudiaremos estudiaremos Enparticular particularNO SELECT SELECTanidados anidados
FECHA_NCTO, DIRECCIN (1) C0: SELECT FECHA_NCTO, DIRECCIN FROM EMPLEADO WHERE NOMBRE=John AND (1) = NOMBRE=John Y APELLIDO=Smith(EMPLEADO) APELLIDO=Smith
Secuencia - Condiciones en WHERE: {=, <>, <, >, <=, >=}, AND, OR, NOT
tuplas repetidas
16
...
...
DEPARTAMENTO
NOMBRE, APELLIDO, DIRECCIN (2) C1: SELECT NOMBRE, APELLIDO, DIRECCIN FROM EMPLEADO, DEPARTAMENTO WHERE NOMBRED=Investigacin AND NMEROD=ND (2) = NOMBRED=Investigacin (1) (1) = DEPARTAMENTO ||NME-
ROD=ND EMPLEADO
Secuencia: || - -
WHERE:condiciones
de y ||
17
...
C2: SELECT NMEROP, NMD , APELLIDO, DIRECCIN, FECHA_NCTO FROM PROYECTO, DEPARTAMENTO, EMPLEADO WHERE NMD=NMEROD AND NSS_JEFE=NSS AND LOCALIZACINP=Stafford
18
3s 0 Rucn77LEADO
Calificar atributos
Nombre, apellido y direccin de los empleados del departamento de investigacin
C1A:SELECT EMPLEADO.NOMBRE, APELLIDO, DIRECCIN FROM EMPLEADO, DEPARTAMENTO WHERE DEPARTAMENTO.NOMBRE = Investigacin AND DEPARTAMENTO.NMEROD=EMPLEADO.NMEROD
...
...
DEPARTAMENTO
FECHA_INIC_JEFE
19
Alias
Nombre y apellido de cada empleado junto al nombre y apellido de su supervisor
EMPLEADO S NOMBRE INIC APELLIDO NSS FECHA_NCTO EMPLEADO E NOMBRE INIC APELLIDO NSS FECHA_NCTO
... ...
NSS_SUPERV ND
NSS_SUPERV ND
C8: SELECT E.NOMBRE, E.APELLIDO, S.NOMBRE, S.APELLIDO Uso de alias FROM EMPLEADO E, EMPLEADO S WHERE E.NSS_SUPERV=S.NSS Declaracin de alias
Uso de alias
Admite varias referencias a una misma tabla (til para consultas recursivas de un nivel) E y S representan dos copias diferentes de la tabla EMPLEADO, pero no hay ms que una copia de EMPLEADO en la BD
Se pueden usar alias aunque no haya varias referencias a una misma tabla para manejar nombres ms cortos Por ejemplo, C1A se puede escribir:
C1B:SELECT E.NOMBRE, E.APELLIDO, E.DIRECCIN FROM EMPLEADO E, DEPARTAMENTO D WHERE D.NOMBRE = Investigacin AND D.NMEROD=E.NMEROD
FBD Tema 5 Dpto. LSI - Donostia 20
Omisin de WHERE
Indica seleccin de tuplas incondicional Equivale a WHERE TRUE Producto cartesiano: sin WHERE y ms de una relacin en FROM NSS de todos los empleados:
Es importante especificar todas las condiciones de y || en WHERE ya que el resultado puede ser una tabla incorrecta y de gran tamao
21
SELECT *
Selecciona todos los atributos de las tablas de FROM
C1C:SELECT * FROM EMPLEADO WHERE ND=5 C1D:SELECT * FROM EMPLEADO, DEPARTAMENTO WHERE NOMBRED=Investigacin AND ND=NMEROD C10A:SELECT * FROM EMPLEADO, DEPARTAMENTO
22
C4: SELECT NUMEROP FROM PROYECTO, DEPARTAMENTO, EMPLEADO WHERE NMD=NMEROD AND NSS_JEFE=NSS AND APELLIDO=Smith UNION SELECT NP FROM TRABAJA_EN, EMPLEADO WHERE NSSE=NSS AND APELLIDO=Smith
24
Comparar subcadenas
(LIKE en WHERE)
C12: SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE DIRECCIN LIKE %Houston, TX%
Compara parte de una cadena de caracteres (DIRECCIN) % sustituye a un n arbitrario de caracteres _ sustituye a un solo carcter
C12A: SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE FECHA_NCTO LIKE 195_ _ _ _ _ _ _
25
C13: SELECT NOMBRE, APELLIDO, 1.1*SALARIO FROM EMPLEADO, TRABAJA_EN, PROYECTO WHERE NSS=NSSE AND NP=NMEROP AND NOMBREP=ProductoX
+, - tambin sirven para sumar/restar a una fecha, hora o marca de tiempo, un intervalo compatible Se puede calcular un intervalo como la diferencia entre fechas, horas o marcas de tiempo
26
Ordenacin de tuplas
(ORDER BY)
Empleados y proyectos donde trabajan, ordenados por departamento y, dentro de cada departamento, ordenados alfabticamente por apellido y nombre :
C15: SELECT NOMBRED, APELLIDO, NOMBRE, NOMBREP FROM DEPARTAMENTO, EMPLEADO, TRABAJA_EN, PROYECTO WHERE NMEROD=ND AND NSS=NSSE AND NP=NMEROP ORDER BY NOMBRED, APELLIDO, NOMBRE
Por defecto, el orden es ascendente DESC indica orden descendente ASC indica orden ascendente
ORDER BY
27
Conjuntos explcitos de valores: NSS de los empleados que trabajan en los proyectos 1, 2 o 3
C17: SELECT DISTINCT NSSE FROM TRABAJA_EN WHERE NP IN (1,2,3)
28
En lugar de = y se usa IS e IS NOT SQL considera el valor nulo de diferente forma Las tuplas con valores nulos en el atributo de reunin no se incluyen en el resultado (salvo en reunin externa) Si pusiera WHERE NSS_SUPERV = NULL Para las filas con NSS_SUPERV nulo se estara comparando si NULL = NULL Esta comparacin NO devuelve cierto Tampoco devuelve falso La comparacin devuelve NULL (UNKNOWN)
Una condicin puede NO verificarse por FALSE o por NULL
29
Cambia el nombre de cualquier columna (atributo) que aparezca en el resultado Antes hemos visto que la construccin AS tambin sirve para declarar alias de tablas:
FROM FROM EMPLEADO E, ... EMPLEADO AS E, ... SQL1 SQL2 SQL2
FROM EMPLEADO AS E(NP, IN, AP, NSS, FN, DIR, SEX, SAL, NSSS, ND), ...
30
Tablas combinadas
(INNER y NATURAL JOIN en FROM)
31
Renombra DEPARTAMENTO.NMEROD por ND condicin de reunin implcita: EMPLEADO.ND = DEPARTAMENTO.ND Anidamiento de INNER y de NATURAL JOIN:
C2: SELECT NMERO, NMD, APELLIDO, DIRECCIN, FECHA_NCTO FROM PROYECTO, DEPARTAMENTO, EMPLEADO WHERE NMD=NMEROD AND NSS_JEFE=NSS AND LOCALIZACINP=Stafford C2A:SELECT NMEROP, NMD, APELLIDO, DIRECCIN FECHA_NCTO FROM (PROYECTO INNER JOIN DEPARTAMENTO ON NMD=NMEROD) INNER JOIN EMPLEADO ON NSS_JEFE=NSS WHERE LOCALIZACINP=Stafford
32
El argumento de una funcin agregada puede ser una expresin: AVG(1.1*SALARIO) MAX y MIN se pueden aplicar a atributos NO numricos (con orden total en el dominio) Suma de los salarios de todos los empleados, junto a los salarios mximo, mnimo y medio:
EMPLEADO NOMBREP John Franklin Ramesh Joyce Alicia Jennifer Ahmad James SALARIO NULL 15.000 10.000 10.000 10.000 20.000 20.000 20.000 ND 5 5 5 5 4 4 4 1
...
...
...
C19:
33
C20: SELECT SUM(SALARIO), MAX(SALARIO), MIN(SALARIO), AVG(SALARIO) FROM EMPLEADO INNER JOIN DEPARTAMENTO ON ND=NMEROD WHERE NOMBRED=Investigacin
C21: SELECT COUNT(*) FROM EMPLEADO C22: SELECT COUNT(*) FROM EMPLEADO INNER JOIN DEPARTAMENTO ON ND=NMEROD WHERE NOMBRED=Investigacin
EMPLEADO NOMBREP Franklin
C20:
34
EMPLEADO NOMBREP John Franklin Ramesh Joyce Alicia Jennifer Ahmad James SALARIO NULL 15.000 10.000 10.000 10.000 20.000 20.000 20.000 ND 5 NULL 5 5 4 4 4 1
C23:
COUNT(DISTINCT SALARIO)
3 C23:
COUNT( SALARIO)
...
...
7 C23:
COUNT( *)
Qu ocurre cuando todos los salarios valen NULL? Qu ocurre cuando la tabla est vaca?
FBD Tema 5 Dpto. LSI - Donostia
35
En GROUP BY est el/los atributo/s de agrupacin NO confundir GROUP BY y ORDER BY (que ordena) Todos los atributos de SELECT deben estar en
GROUP BY
Los atributos de GROUP BY no es obligatorio que estn en SELECT Se suelen poner en SELECT algunos/todos los de
GROUP BY
EMPLEADO NOMBREP John Franklin Ramesh Joyce Alicia Jennifer Ahmad James SALARIO 30.000 15.000 10.000 10.000 10.000 20.000 20.000 20.000 ND 5 5 5 5 4 4 4 1 C24:
ND COUNT(*) AVG(SALARIO)
...
...
5 4 1
4 3 1
EMPLEADO NOMBREP Jon Juan Rosa Ana SALARIO NULL 10 10 10 ND NULL NULL 5 5
NULL 5
2 2
10 10
...
...
36
C25: SELECT NMEROP, NOMBREP, COUNT(*) FROM PROYECTO INNER JOIN TRABAJA_EN ON NMEROP=NP GROUP BY NMEROP, NOMBREP
PROYECTO
37
C25: SELECT NMEROP, NOMBREP, COUNT(*) FROM PROYECTO INNER JOIN TRABAJA_EN ON NMEROP=NP GROUP BY NMEROP, NOMBREP ORDER BY COUNT(*) ASC
Si se renombran los atributos del resultado con AS, el nuevo nombre NO se puede usar en ORDER BY (en general, no slo con funciones agregadas):
C25: SELECT NMEROP, NOMBREP, COUNT(*) AS NUM_EMP FROM PROYECTO INNER JOIN TRABAJA_EN ON NMEROP=NP GROUP BY NMEROP, NOMBREP ORDER BY NUM_EMP ASC
NO se puede usar el nuevo nombre (AS) del atributo del resultado en ORDER BY
FBD Tema 5 Dpto. LSI - Donostia
38
WHERE (C1, C2, C3) < (T1, T2, T3) WHERE C1<T1 OR (C1=T1 AND C2<T2) OR (C1=T1 AND C2=T2 AND C3<T3)
39
Una consulta SQL se evala conceptualmente as: Primero FROM, seguido de WHERE, en tercer lugar GROUP BY y por ltimo ORDER BY Si no hay GROUP BY ni ORDER BY, para cada combinacin de tuplas (una de cada tabla de FROM), se evala la condicin de WHERE. Si es cierta se colocan en el resultado los valores correspondientes a los atributos del SELECT. Esta NO es una forma eficiente de implementar una consulta SQL. As pues, cada SGBD tiene rutinas para optimizar la evaluacin.
40
41
42
Ejercicios
43
44
...
... SEXO
DEPARTAMENTO
SALARIO NSS_SUPERV ND
Figura 7.7 restricciones de integridad referencial representadas en el esquema de la base de datos relacional EMPRESA
45
46
Nombre NmAlumno
CURSO
Grado Carrera
NmCurso NmRequisito
SECCION
49
BANCO
SUCURSAL
Cdigo Nombre
CUENTA
NmCta DNI
NmPrs DNI
BDR correspondiente al esquema ER de la figura 3.17 Salvo que se ha aadido el atributo Ciudad a SUCURSAL y se ha cambiado el atributo Dir de BANCO a SUCURSAL
50
ESTA_EN
(0,N)
BIBLIOTECA Da Mes Ao
Puede haber varios ejemplares con el mismo ttulo
PRESTAMO
(0,N)
FechaPrstamo
SOCIO
BIBLIOTECA COD_BIB FACULTAD TFNO BIBLIOTECARIA
EJEMPLAR COD_EJE TTULO AUTOR EDITORIAL REA COD_BIB SOCIO DNI NOM_SOCIO TFNO CIUDAD CARRERA
Escribe las siguientes consultas SQL sobre la BD anterior: a) Pares de ttulos distintos del rea de informtica sacados en prstamo por el mismo socio. Posible salida:
ttulo Fundamentos de BD Fundamentos de BD BD:, Qu gozada! ttulo BD:, Qu gozada! SQL para novatos Fundamentos de BD
b) Lista de pares ordenados de bibliotecas que tengan ejemplares de libros de la misma rea. Por ejemplo, si las bibliotecas A, B y C tienen libros de informtica y las bibliotecas A y C de filosofa, debern aparecer: <A,B,Informtica>, <A,C,Informtica>, <A,C,Filosofa>, <B,A,Informtica>, <B,C,Informtica>, ...
FBD Tema 5 Dpto. LSI - Donostia 51
VEHICULO (0,N)
Fecha V_I
PAIS (0,N)
P_C
Cod_iti Dieta
(1,N)
(1,1) CIUDAD
ITINERARIO
a) Completa las instrucciones de creacin de la BD para el esquema ER anterior (ver pginas siguientes). b) Incluir el itinerario (111, 50000, 95, 141) que sale de Sevilla (95, "Sevilla", 500000, 34) y llega a Friburgo (141, "Friburgo", 300000, 49), pasando por Zaragoza (93, "Zaragoza", 450000, 34), Pars (16, "Pars", 6000000, 33) y Karlstadt (148, "Karlstadt", 200000, 49). Los pases correspondientes son Espaa (34, "Espaa", "Peseta"), Francia (33, "Francia", "Franco") y Alemania (49, "Alemania", "Marco"). Ninguno de los datos est en la BD. c) Todos los itinerarios que pasan por Sevilla (solo pasar, no salir o llegar) se han desviado por Crdoba. Los datos de Crdoba (957, Crdoba, 134000, 34) no estn en la BD. d) El vehculo con n de bastidor 3 ha tenido un accidente y lo han llevado a la chatarra. Se ha cambiado el vehculo a los itinerarios donde figuraba por (345, "Renault", "BI-9999-XX", "Express"), que no est an en la BD.
FBD Tema 5 Dpto. LSI - Donostia 52
53
FOREIGN KEY (Cod-c) REFERENCES CIUDAD (Cod-c) ON DELETE CASCADE ON UPDATE CASCADE);
54
k) UPDATE CUENTA SET Banco=2 WHERE Banco=1 l) UPDATE CUENTA SET Banco=null, NSuc=null WHERE
Banco=1
m) UPDATE CUENTA SET Banco=null WHERE NCta=3
55
SUCURSAL Banco NSuc Ciudad 1 1 Bilbao 1 2 S. Sebastin 1 3 Vitoria 2 1 Santander 2 2 S. Sebastin 2101 1 S. Sebastin 2101 2 Pasajes PRSTAMO2102 1 Bilbao CLIENTE NPres DNI 2102 2 Sestao 0 111 2102 3 Portugalete CE 0 000 1 111 CUENTACLIENTE 2 111 NCta DNI 2 222 0 111 3 111 0 222 6 111 3 333 0 555 6 222 4 111 0 000 6 333 4 444 1 111 6 666 5 111 2 111 7 111 5 555 2 222 7 777 6 111 3 111 8 111 6 666 3 333 8 222 7 111 4 111 8 444 7 777 4 222 8 888 8 111 4 444 9 111 8 888 5 111 9 333 9 111 5 555 9 999 9 999
...
...
CE
CE
Importe 200000 300000 400000 300000 400000 500000 600000 600000 700000 800000
CE
CE
56
Junio 00
Especie Mariposa Persona Coleccin Ejemplar EspecieColeccin ColoresMariposa Nombre Caractersticas Origen Hbitat Tfno EsperanzaVida CdColeccin NomEspecie EsPrincipal NombreCientfico DNI Nombre
Direccin
Cdigo
Ubicacin
NombreCientfico
a) Obtener el nombre cientfico, hbitat y esperanza de vida de las mariposas de la coleccin de Jos Mari Poza ordenadas por esperanza de vida. Hay que asegurarse de que slo se obtiene una tupla por mariposa (y no por cada ejemplar de la misma). b) Obtener el nombre cientfico y esperanza de vida de todas las mariposas que tienen algn ejemplar de mayor tamao que el ejemplar nmero 5 de la mariposa con nombre cientfico Papilio macaon perteneciente a la coleccin de Jos Mari Poza.
57
Septiembre 00
ZonaUrbana NombreZona Categora BloqueCasas Calle Nmero Npisos NombreZona M2 Puerta M2
CasaParticular NombreZona Nmero Piso Calle Nmero Persona PoseeC PoseeP DNI Planta
a) Obtener el DNI, nombre y edad de dueos de casas particulares, con la peculiaridad de que todas sus casas (las que posee) estn situadas en una Zona Urbana cuya categora es de lujo. b) Obtener DNI, nombre y edad de las personas que viven en un piso de menos m2 que algn piso que cumpla al mismo tiempo las dos condiciones siguientes: a) Est situado en otro bloque distinto. b) Ese otro bloque pertenezca a una Zona Urbana de categora Residencial. c) Obtener datos de los pisos habitados por personas de ms de 60 aos y situados en un Bloque de Casas que no supere los 10 pisos. Por cada piso queremos obtener la calle y nmero donde se encuentra, adems de la siguiente informacin: Piso pequeo si tiene menos de 50 m2 Piso mediano si tiene entre 50 y 75 m2 Piso grande si tiene ms de 75 m2
FBD Tema 5 Dpto. LSI - Donostia 58
Junio 01
Artculo Nom Art Tipo Precio Tam ao Ingr Precio Sum inistrador Ingrediente Nom Art_Ingr NomArt NomIngr Prd_Ingr NomArt NomPrd NomIngr
eroFechaHoraPedidoHoraServidoTfno Ped_Art Nmero NomArt Cantidad Pedido Nm Dom icilio Tfno Direccin Prd ProductoEspecial NomArt Nom Ped_Prd NmeroNomArt NomPrd Cantidad
a) Media de tiempo que se tarda en servir cada uno de los productos especiales a ser consumidos en el local (y no en el domicilio). b) Considera los artculos de tipo pizza que llevan pimiento. Se desea conocer todos los datos de productos especiales que se basan en tales artculos y llevan champin entre los ingredientes para el producto especial. c) Direccin de aquellos domicilios que hayan solicitado pedidos de artculos con precios superiores al artculo de nombre Pizza 3 quesos
59
Septiembre 01
Pelcula CdigoTtuloGnero Cine Nom Direccin Tfno bre Sexo Nacionalidad Persona Nom Producida Cdigo Nombre Actor Cdigo Nombre Dirigida Cdigo Nombre
Prem io Categora Ao Euros Cdigo Proyectada Cdigo Nom Nmero FechaInicioFechaFin ero Aforo Sala Nom Nm Prem Pers Categora Ao Nombre
a) Para cada pelcula de gnero policiaco obtener su ttulo y el nmero total de premios que se le han concedido. b) Nombres de los cines, con alguna sala de aforo igual o superior a 100 butacas, que no han proyectado la pelcula premiada con la categora mejor actriz del ao 2001. c) Obtener los nombres de los distintos actores que han participado en pelculas dirigidas por una persona que haya conseguido el premio al mejor director del festival en alguna ocasin. Queremos los actores participantes en cualquier pelcula dirigida por esa persona, no slo en las premiadas al mejor director.
60
Junio 02
61
Septiembre 02
C
C E N T R O C d_C entro N om bre D ireccin A U T O B S M atrcula N I A L U M N O D C U R S O D N I N _A sientos C om paa C d_C entro C d_P ueblo
a) Obtener el nombre de los alumnos que viajan en autobuses contratados por centros universitarios distintos a donde estudian, junto al nombre de su pueblo, la compaa del autobs y la fecha de inscripcin del alumno en el autobs. Si el autobs no pertenece a ninguna compaa tendr que figurar en vez de la compaa el cdigo del centro. Si todava no figurase en la BD el centro que contrata al autobs deber aparecer en su lugar la matrcula. Las filas del resultado debern aparecer ordenadas por nombre de pueblo y las que tengan el mismo nombre de pueblo ordenadas por fecha de inscripcin. Tngase en cuenta que un alumno puede viajar en varios autobuses de estas caractersticas y que el resultado deber recoger cada alumno junto a cada autobs en el que viaja que cumpla las condiciones anteriores. b) Obtener el listado de las paradas (Cd_Pueblo, Calle) por las que pasan los autobuses que tienen alguna parada en Beasain y los ha contratado el centro de cdigo IFSS. c) Obtener para cada centro su nombre y el nmero de alumnos matriculados en l que viajan en algn autobs que: Figura en la BD como ya contratado por algn centro (suponer que pueden figurar en la BD autobuses que no estn todava contratados). Realiza alguna parada en la calle Gorosabel del pueblo de cdigo TLS. Cuenta con ms de 40 plazas.
FBD Tema 5 Dpto. LSI - Donostia 62
d_Centro
Junio 03
C O PIST E R A N IF D ireccin Precio A L U M N O D N I C lave D ireccin C U R SA A SIG N A T U R A IdA signatura C urso C arrera N IF A PU N T E S IdA signatura Tem a N m eroH ojas FIC H AD N I IdA signatura Tem a FechaPeticin N m eroC opias FechaR ecogida
D N I
IdA signatura
a) DNI y Direccin, sin tuplas repetidas en el resultado, de aquellos alumnos que hayan rellenado fichas de peticin de apuntes de al menos dos asignaturas distintas. b) Indica por cada copistera (NIF) y asignatura (IdAsignatura) cul es la facturacin pendiente de pago por los alumnos de la asignatura.
63
Septiembre 03
APAREJADOR N_Identificacin Nombre Tfno NombreMunicipio MUNICIPIO Nombre Direccin Tfno INMUEBLE N_Propiedad Tipo Direccin DNI NombreMunicipio M2 PERMISO N_Propiedad DNI FechaPeticin Descripcin N_Identificacin
...
...
PERSONA DNI Nombre Direccin TRABAJA NombreMunicipio N_Identificacin PETICIN N_Propiedad DNI
a) DNI, nombre y direccin de las personas solicitantes de algn permiso de obra asignado a un aparejador de la plantilla de Aduna (donde Aduna es el nombre de un municipio). b) Obtener el nombre del aparejador y a cuntos inmuebles distintos ha denegado algn permiso de obra. Slo queremos tener en cuenta aquellos permisos de obra donde el inmueble haya obtenido otro permiso de obra, solicitado con posterioridad y con el mismo presupuesto (el aparejador que acepta el permiso NO tiene por qu ser el mismo que el que lo deneg previamente).
64
Septiembre 03
APAREJADOR N_Identificacin Nombre Tfno NombreMunicipio MUNICIPIO Nombre Direccin Tfno INMUEBLE N_Propiedad Tipo Direccin DNI NombreMunicipio M2 PERMISO N_Propiedad DNI FechaPeticin Descripcin N_Identificacin
...
...
PERSONA DNI Nombre Direccin TRABAJA NombreMunicipio N_Identificacin PETICIN N_Propiedad DNI
c) Obtener la descripcin, n de propiedad y el presupuesto mximo para aquellos permisos de obra que cumplen: El permiso est concedido, su campo descripcin tiene como valor cerramiento y corresponde a un inmueble de Lasarte de menos de 60 m2. Junto a tuplas con los mismos campos, para aquellos permisos de obra que cumplen: El permiso est concedido, el campo descripcin tiene como valor fachada y est asignado a un aparejador de la plantilla de Lasarte
65
Junio 04
E Q U IP O N om bre D irector M A IL L O T C olor Prem io M etlico E T A P A N m ero K m Salida L legada G anador P U E R T O N m Etapa N m O rdenA ltitud C ategora Prim ero C IC L IST A D orsal N om bre FechaN cto EnC arrera Equipo PA R T IC IP A C I N D orsal Etapa Tiem po L L E V A _M A IL L O T C olor Etapa D orsal
a) Obtener la clasificacin general de la vuelta, es decir, el dorsal, nombre del ciclista y nombre del equipo junto al tiempo total invertido en las etapas disputadas, para aquellos ciclistas que continan en carrera, ordenados de menor a mayor tiempo consumido. b) Obtener el dorsal y el nombre de los ciclistas que pertenecen al equipo del ciclista ganador de la dcima etapa (incluido este) y que participaron en dicha etapa
66
Septiembre 04
DEPORTISTA NmeroId Nombre Apellido Direccin Telfono NmeroIdVolunt FechaCom FechaFin CdigoDeporte Pas EVENTO Ciudad Nombre
Fecha
VOLUNTARIO NmeroId Nombre Procedencia Profesin EQUIPO CdigoDeporte Pas Entrenador PARTICIPA CdigoDeporte NmeroIdDeportista DESTACA CdigoDeporte NmeroIdDeportista IDIOMA
DEPORTE Cdigo Nombre Historia Equipamiento RECORD CdigoDeporte NmeroIdDeportista Fecha Hora Ciudad TIPO RECORD CdigoDeporte NmeroIdDeportista Fecha Hora Tipo TIENE
NmeroIdVolunt Idioma
a) Nombre y procedencia de los voluntarios que hablan francs y acompaan a deportistas que participan en deportes cuyos eventos de clasificacin se celebraron en Pars. b) Nombre, apellido e identificacin de aquellos deportistas del equipo de Jorge Snchez que cumplan la siguiente condicin: han logrado algn record y todos los records que han conseguido son de tipo mundial. En el resultado debe excluirse a Jorge Snchez.
67
Junio 05
V IA J ED estin o VF ech aS alid aD as P recio D a C iu d ad S alid aD N I
D N IN o m b re N _ T f b r 3 7 8 4 5 . 7 7 T 3 t ( g 9
a) Nombre y direccin de aquellos clientes (sin repeticiones) que hayan participado en algn viaje en el que se hayan hospedado ms noches en un mismo hotel que las noches que se hosped en el hotel Gabriella el cliente con DNI 15238432, en el viaje que realiz a Roma el 3/05/2005. b) Obtener, para cada destino de viaje DV, el nmero de guas que hablen italiano que han llevado o llevarn algn viaje a ese destino DV, con posibilidad de alojarse (en el destino de viaje DV) en algn hotel de Roma.
68
Septiembre 05
sp ecieC ro talR azaF ech aN ctoM atad eroC ro talP ad reC ro talM ad reD N IG ran jaN o m G ran ja R E SE G R A N J AD N IN o m b reD ireccio nT fn oA d m in istrad o r E N F E R M E D A DN o m b re N oserep ite esp ecieenlas clav es tran jerasd e G A N A D E R OD N IN o m b reE -m ail ex p ad reym ad re p o rserla T R A T A M IE N T ON o m b reD u raci n m ism a
A P L IC A RE N F E R _ T R A T A ME n ferm ed adT ratam ien toE sp ecieC ro talF _ In icio E n ferm ed adT ratam ien to S N T O M AE n ferm ed adS in to m a M E D IC A M E N T OT ratam ien toM ed icam en to
a) Especie, crotal y fecha de nacimiento de las reses de la raza Angus con padre y madre conocidos (estn en la BD) y cuyo propietario es Domecq. Slo se obtendrn reses que NUNCA hayan padecido la enfermedad Brucelosis. b) Obtener la especie y crotal de las reses que, habiendo padecido la enfermedad Encefalopata, se les aplic para dicha enfermedad alguno de los tratamientos usados para esa misma enfermedad en la res de la especie bovina con crotal nmero 1. Esta ltima res no debe aparecer en el resultado.
69
NombreZona
Categora
1
Dir
NPisos
ZONA_URBANA 1
BLOQUE_CASAS
1 N
Nmero M
2
N
CASA_PARTICULAR
N
POSEEC
N POSEEP M N 1 M
P_P M2
Planta Puerta
PISO VIVEP
VIVEC
Nombre Nombre Caractersticas ESPECIE 1 NombreCientfico Origen Hbitat EsperanzaVida Colores N EJEMPLAR Nmero Procedencia N Tamao 1 N MARIPOSA 1 N M MejorEjemplar DNI
Direccin Tfno
PERSONA
N EsPrincipal
1 COLECCIN Cdigo
PrecioEstimado
Ubicacin
70
NomIngr
Suministrador
(0,N) LLEVA (1,N)
INGREDIENTE
BASE DE
ARTCULO
(0,N) INCLUIDO
(0,N)
(1,1) PRODUCTO
NomPrd
ESPECIAL
(0,N) INCLUIDO
(0,N)
PEDIDO
(0,N)
Cantidad
Categora Euros
(0,1) CONCEDIDO (0,N) (1,N)
Ao
Cd
(0,N) CONCEDIDO (0,N) (0,N)
PREMIO
PRODUCIDA
Cdigo Ttulo PELCULA (1,N) ACTOR (0,N) PERSONA Gnero (1,N) (1,N) DIRIGIDA (0,N) Fecha Sexo Inicio Nombre Nacionalidad PROYECTADA FechaFin
(1,N)
Nmero Aforo
SALA
(1,1)
DE
(1,N)
CINE
71
HOTEL
Nombre
RESIDE
EQUIPO
Camiseta (1,N)
Fecha Resultado (1,N) Equip1 (1,1) (1,N) JUEGA PARTIDO Equip2 E402 6006 2.98 7082 mc[9 TD03.07mc[93TD03.07m rbitros
NHabit
Total_Goles
COMPUESTO POR Fecha Lugar (1,1) (1,1) PASADO A (0,N) DNI Nombre FechaN Clubes_Ao Goles
CONTROL ANTIDOPAJE
JUGADOR
72
Alumno
Copistera
Cursa
Asignada_a IdAsignatura
Apuntes
Pertenecen_a
Asignatura
Septiembre 2003
73
EQUIPO
(1,N)
Tiempo
Min. Seg.
Consta
(1,1)
Dorsal Nombre
ETAPA
(1,N)
Participa
(1,N)
CICLISTA
(1,1) (1,N) M
Septiembre 2004
74
IdHotel Nombre
(0,N)
HOTEL
M (1,N)
ALOJADO
P (1,N)
ASISTE
CLIENTE
Septiembre 2005
Especie Crotal hija (0,1)
PADRE
Id
Raza
(0,N)
ENFERMEDAD (1,N)
SE_APLICA
Nombre Sntomas
(0,N)
(0,N)
APLICAR
(1,N) TRATAMIENTO
InicioTratamiento
FinTratamiento
75