Beruflich Dokumente
Kultur Dokumente
exige compatibilidad b) Join natural (join o inner join) c) Left join d) Right join <> < > Smbolo X o *
Nota: un Left join o Rigth join puede anidarse dentro de un inner join, pero no al revs.
Relacin (Control de bancos): Cliente Sucursal Prestamo = = = (nombre_cliente PK, ciudad, calle) (nombre_sucursal PK, activo, ciudad) (num_prestamo PK, nombre_sucursal FK, nombre_cliente FK, importe) Deposito = (num_cuenta PK, nombre_sucursal FK, nombre_cliente FK, saldo)
Ejemplos Consultas: 1. Obtener el nombre de clientes y ciudades donde viven, que cumplan con la condicin de tener un prstamo. Implementacin en SQL: SELECT prestamo.nombre_cliente,ciudad FROM cliente, prestamo WHERE prestamo.nombre_cliente = cliente.nombre_cliente;
2. Obtener los nombres de los clientes que tienen, una cuenta, un prstamo, o ambas cosas en la sucursal 2: Implementacin en SQL: SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal = 2 UNION SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = 2
Representacin en Algebra Relacional: ( nombre_cliente (nombre_sucursal = "2" (prestamo))) ( nombre_cliente (nombre_sucursal = "2" (deposito)))
3. Obtener el nombre de los clientes que tienen un prstamo en la sucursal principal, pero que no tienen cuenta en dicha sucursal:
Implementacin en SQL: SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal = Principal MINUS SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = Principal o SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal NOT IN(SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = Principal)
Representacin en Algebra Relacional: (nombre_cliente (nombre_sucursal = "Principal" (prestamo))) -( nombre_cliente (nombre_sucursal = "Principal" (deposito))) 4. Obtener los nombres de los clientes que tienen depsito y prstamo al mismo tiempo en la sucursal 10:
Implementacin en SQL: SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal = 10 INTERSECT SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = 10 o SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal
5. Obtener los nombres de los clientes que tienen prstamo, cuenta, o ambas cosas en la sucursal 10 usando INNER JOIN:
Implementacin en SQL:
Representacin en Algebra Relacional: ( nombre_cliente (nombre_sucursal = "10" (prestamo))) <> prestamo.nombre_cliente = deposito.nombre_cliente ( nombre_cliente (nombre_sucursal = "10" (deposito)))
STVSTAT SPRADDR PK PK SPRADDR_PIDM SPRADDR_ATYP_CODE SPRADDR_CITY SPRADDR_STREET_LINE1 SPRADDR_STREET_LINE2 SPRADDR_STREET_LINE3 SPRADDR_STAT_CODE SPRADDR_CNTY_CODE SFRSTCR PK PK PK SFRSTCR_TERM_CODE SFRSTCR_PIDM SFRSTCR_CRN SFRSTCR_RSTS_CODE SFRSTCR_GRDE_CODE SFRSTCR_GRDE_CODE_MID DATOS ADICIONALES: SPRIDEN SPRIDEN_CHANGE_IND IS NULL -> CUANDO NO TIENE NINGUN CAMBIO EN SUS NOMBRES SPRADDR SPRADDR_ATYP_CODE='PR' (PERMANENTE) O TM (TEMPORAL) SFRSTCR SFRSTCR_RSTS_CODE SFRSTCR_GRDE_CODE SFRSTCR_GRDE_CODE_MID SFRSTCR_TERM_CODE = 'RW' (REGISTRO WEB) O RE (REGISTRO PRESENCIAL) = NOTA FINAL = NOTA PARCIAL = PERIODO O SEMESTRE PK STVCNTY STVCNTY_CODE STVCNTY_DESC PK STVSTAT_CODE STVSTAT_DESC
STVSTAT STVSTAT_DESC -> NOMBRE DEL DEPARTAMENTO STVCNTY STVCNTY_DESC -> NOMBRE DEL DISTRITO
A. Se necesita elaborar las siguientes consultas SQL: 1. Listar las direcciones principales de los alumnos que estn registrados (activos) en el semestre 201110. El resultado de la consulta debe contener: * SPRIDEN_ID * SPRIDEN_LAST_NAME
* SPRIDEN_FIRST_NAME * SPRADDR_STREET_LINE1 * STVSTAT_DESC * STVCNTY_DESC 2. Listar los nombres, notas parciales y finales de los alumnos que estn registrados (activos) en el semestre 201110 y que son del distrito de TRUJILLO. 3. Listar los nombres, direcciones y nota final de los alumnos que estn registrados (activos) en el semestre 201110 y que obtuvieron como nota final mayor a 14 y que son de LA LIBERTAD. 4. Listar las nombres y nota final de los alumnos que viven en el departamento de La Libertad y que estn registrados (activos) en el semestre 201110 y que hicieron su matrcula presencial. 5. Listar los nombres, notas parciales y finales de los alumnos que estn registrados (activos) en el semestre 201110 y que tienen nota desaprobatoria y que hicieron su registro desde la WEB. 6. Listar los nombres, direcciones y nota final de los alumnos que estn registrados (activos) en el semestre 201110 y que se matricularon por WEB. B. Convertir las consultas anteriores en lgebra relacional C. Optimizar las consultas anteriores aplicando las reglas heursticas