La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Repaso DBD!!! (Es ahora o nunca)

Copias: 1
Nombre de las asignaturas que tienen más créditos que "Seguridad Vial". Usando consultas anidadas: SELECT Nombre AS NOMBRE_ASIGNATURA FROM ASIGNATURA.

Presentaciones similares


Presentación del tema: "Repaso DBD!!! (Es ahora o nunca)"— Transcripción de la presentación:

1 Repaso DBD!!! (Es ahora o nunca)

2 Parte 1. Modelamiento. Trabajo grupal para “soltar la mano”.
Genere un MER del siguiente problema de acuerdo a lo que Ud. entiende del tema: Se requiere registrar la organización territorial de los países (suponiendo que es igual en todos los países) y sus respectivas autoridades. De cada parte de esta organización se quiere conocer el nombre, población, km cuadrados, capital, entre otros. De cada autoridad se requiere conocer cargo, nombre y apellido, edad, estudios, fecha en que asumió. Dentro de las autoridades tomar en cuenta a los Ministros de Estado.

3 Trabajo individual. Genere un MER que represente lo siguiente:
Una empresa almacena en bodega distintos materiales que utilizan sus trabajadores y que son pedidos directamente por ellos. Cada material pertenece a un área especifica. Tiene un código propio y necesita del código de su área para reconocerse. Existe el área eléctrica, mecánica, administrativa, etc. Cada material tiene un proveedor único. De éste se requiere saber el nombre, contacto, dirección. De cada área se debe conocer código, nombre, ubicación, numero de contacto y persona a cargo. De cada material debe conocerse el código, nombre, precio, disponibilidad, proveedor, descripción. Los trabajadores deben reconocerse por un código interno. Además se requiere conocer nombres y apellidos, edad, tipo (contratado u honorarios) y permisos para pedir materiales. Si es 1 puede pedir cualquier material, si es 2 solo materiales eléctricos, si es 3 solo materiales mecánicos, etc. Un trabajador puede tener o no un área a cargo. Los trabajadores piden materiales, y se debe registrar la fecha y cantidad de material pedido de acuerdo con sus permisos. En caso de no utilizarse, el trabajador debe devolver el material, registrándose también la fecha y cantidad de material devuelto. Además se debe registrar el estado en que se devuelve.

4 Trabajo individual-en parejas.
Genere de forma individual el problema escrito de su proyecto semestral. Intercambie el texto con su compañero, quien lo revisará (forma escrita) y le objetará en caso de no entenderse bien. Luego este compañero generará el MER correspondiente, que será revisado por el creador.

5 Parte 2. Modelo Relacional
Generar el modelo relacional del MER generado para el problema anterior (empresa). Grupos de a 2 personas.

6 Parte 2. Modelo Relacional
Generar el Modelo Relacional de este MER (individual)

7 Parte 3. Creación de BD (escrito)
Genere el código SQL de la BD del problema de la empresa: Tomar en cuenta tablas, claves primarias y foráneas, tipos de datos, check (5). (libre) En parejas.

8 Parte 3. Creación de BD (escrito)
Genere el código SQL de la BD del problema anterior: tablas, claves primarias y foráneas, tipos de datos. (individual) Genere los siguientes check: Fecha de vencimiento de prestamo debe ser mayor a la fecha de inicio. El estado de un libro puede ser ‘r’ (reservado),’l’(libre), ‘p’(prestamo). Los rut deben ser de la forma nn.nnn.nnn-n Los creditos de los ramos solo pueden ser 3,4 ó 5. Los correos tengan forma de correo.

9 Parte 4. SQL-Querys Para el problema de la empresa, en parejas:
Genere el código SQL: para insertar datos en sus tablas. para modificar datos de sus tablas. para eliminar datos de sus tablas. Genere consultas tomando en cuenta…: Clausulas: Where, order by (ASC, DESC), group by Operadores logicos: and, or, not Operadores de comparación: >, >=…between, like, in, not in Funciones de agregado: AVG, COUNT, MAX, MIN, SUM Predicado: DISTINCT Escriba la consulta (5) y genere el código SQL. Individual, tema libre.

10 Parte 4. SQL-Querys Para el problema de prestamos, individual:
Genere las siguientes consultas en SQL: Conocer el nombre de los libros pedidos despues del , no repetir los nombres. Conocer el nombre y mail de los profesores que imparten ramos en la carrera de Construccion Civil. Conocer los nombres de los libros pedidos por alumnos de la carrera de Derecho. Conocer la cantidad de alumnos por carrera: mostrar la cantidad y el nombre de la carrera. Conocer al apellido de todas las personas de nombre Luis. Nombre de los ramos que tienen mas creditos que “ingles basico” Desplegar el rut y nombre del alumno que nunca han solicitado (préstamo) un libro, los alumnos debe ser de la carrera de informática. Conocer el nombre de los profesores que hacen ramos que tengan el minimo de creditos registrado.

11 Conocer el nombre de los libros pedidos despues del 21-12-2010, no repetir los nombres.
Select distinct titulo_l From prestamo, libro Where prestamo.codigo_l=libro.codigo_l And fecha_inic>21/12/2010

12 Conocer el nombre y mail de los profesores que imparten ramos en la carrera de Construccion Civil.
Select nombre_p, a-mail_p From profesor, ramo, dicta, carrera Where profesor.rut_p=ramo.rut_p And ramo.codigo_r=dicta.codigo_r And dicta.codigo_c=carrera.codigo_c And nombre_c=‘Construccion Civil’

13 Conocer los nombres de los libros pedidos por alumnos de la carrera de Derecho.
Select titulo_l From libro, prestamo, alumno, carrera Where libro.codigo_l= prestamo.codigo_l And prestamo.rut_a=alumno.rut_a And alumno.codigo_c=carrera.codigo_c And nombre_c=‘Derecho’

14 Conocer la cantidad de alumnos por carrera: mostrar la cantidad y el nombre de la carrera.
Select count(rut_a), nombre_c From alumno, carrera Where alumno.codigo_c=carrera.codigo_c Group by nombre_c

15 Conocer al apellido de todas las personas de nombre Luis.
Select distinct al1.apellido From persona as al1, persona as al2 Where al1.nombre=al2.nombre and al2.nombre='luis'

16 Nombre de los ramos que tienen mas creditos que “ingles basico”
Select r1.nombre_r From ramo as r1, ramo as r2 Where r1.creditos>r2.creditos and r2.nombre_r=‘ingles basico'

17 Desplegar el rut y nombre del alumno que nunca han solicitado (préstamo) un libro, los alumnos deben ser de la carrera de informática. SELECT rut_a, nombre_a FROM alumno, carrera WHERE alumno.codigo_c=carrera.codigo_c And nombre_c ='INF' AND rut_a NOT IN (SELECT rut_a FROM prestamo, alumno Where alumno.rut_a=prestamo.rut_a)

18 Conocer el nombre de los profesores que hacen ramos que tengan el minimo de creditos registrado.
SELECT nombre_p FROM profesor, ramo WHERE profesor.codigo_p=ramo.codigo_p And creditos=(SELECT min(creditos) FROM ramo)

19

20

21 Nombre de las asignaturas que tienen más créditos que "Seguridad Vial".
Usando alias: SELECT DISTINCT(ASIG1.Nombre) AS NOMBRE_ASIGNATURA FROM ASIGNATURA AS ASIG1, ASIGNATURA AS ASIG2 WHERE ASIG1.Creditos > ASIG2.Creditos AND ASIG2.Nombre = ‘Seguridad Vial’ Usando consultas anidadas: SELECT Nombre AS NOMBRE_ASIGNATURA FROM ASIGNATURA WHERE Creditos > (SELECT Creditos WHERE Nombre = ‘Seguridad Vial’)

22 Mostrar el identificador de los alumnos matriculados en cualquier asignatura excepto la "150212" o la "130113"

23 SELECT IdAlumno FROM ALUMNO WHERE IdAlumno NOT IN (SELECT IdAlumno FROM ALUMNO_ASIGNATURA WHERE IdAsignatura = "150212" OR IdAsignatura = "130113")

24 Id de los alumnos matriculados en la asignatura "150212" pero no en la "130113".

25 SELECT IdAlumno FROM ALUMNO WHERE IdAlumno IN (SELECT IdAlumno
FROM ALUMNOASIGNATURA WHERE IdAsignatura = "150212") AND IdAlumno NOT IN (SELECT IdAlumno WHERE IdAsignatura = "130113");

26 Nombre de las asignaturas de la titulación "130110" cuyos costes básicos sobrepasen el coste básico promedio por asignatura en esa titulación.

27 SELECT Nombre FROM ASIGNATURA
WHERE CosteBasico > (SELECT AVG(CosteBasico) FROM ASIGNATURA WHERE IdTitulacion = "130110") AND IdTitulacion = "130110";

28 DNI, Nombre y Apellido de los alumnos a los que imparte clases el profesor Jorge Sáenz.

29 Usando Alias: SELECT P1.DNI AS DNI, P1.Nombre AS NOMBRE, P1.Apellido AS APELLIDO FROM PERSONA AS P1, PERSONA AS P2, ALUMNO, ALUMNOASIGNATURA, ASIGNATURA, PROFESOR WHERE P1.DNI = ALUMNO.DNI AND P2.DNI = PROFESOR.DNI AND ALUMNO.IdAlumno = ALUMNOASIGNATURA.IdAlumno AND ALUMNOASIGNATURA.IdAsignatura = ASIGNATURA.IdAsignatura AND ASIGNATURA.IdProfesor = PROFESOR.IdProfesor AND P2.Nombre = 'Jorge' AND P2.Apellido = 'Sáenz‘

30 Usando consultas anidadas:
SELECT PERSONA.DNI AS DNI, PERSONA.Nombre AS NOMBRE, PERSONA.Apellido AS APELLIDO FROM ALUMNO, ALUMNOASIGNATURA, ASIGNATURA, PERSONA WHERE PERSONA.DNI = ALUMNO.DNI AND ALUMNO.IdAlumno = ALUMNOASIGNATURA.IdAlumno AND ALUMNOASIGNATURA.IdAsignatura = ASIGNATURA.IdAsignatura AND ASIGNATURA.IdProfesor IN (SELECT PROFESOR.IdProfesor FROM PERSONA, PROFESOR WHERE PERSONA.DNI = PROFESOR.DNI AND PERSONA.Nombre = 'Jorge' AND PERSONA.Apellido = 'Sáenz')


Descargar ppt "Repaso DBD!!! (Es ahora o nunca)"

Presentaciones similares


Anuncios Google