lOMoARcPSD|8515014
TEMA: PROGRAMACIÓN AVANZADA EN SQL SERVER
OBJETIVO DEL TRABAJO
procedimientos almacenados, funciones, vistas, trigers y consultas avanzadas en formato SQL y XML utilizando su material bibliográfico
PLANTEAMIENTO DEL TRABAJO
La Biblioteca de la Universidad Nacional de Cajamarca necesita implementar algunos
requerimientos para el control de los préstamos de libros en su campus universitario a los
estudiantes de diferentes carreras y ciclos. Se tiene el siguiente modelo Entidad
Relación
El campo estado puede ser P = Prestado, D =
Devuelto
OPERACIONES A REALIZAR
a) Crear la Base de Datos y sus respectivos objetos según el modelo anterior
b) Crear las restricciones según su criterio
c) Registrar 15 libros con sus respectivos autores (de los cuales, 5 libros deben tener 2
autores)
d) Registre 10 lectores y préstamos
Realice las siguientes consultas:
1. Seleccionar el idLibro, titulo, fechaPrestamo y estado de todos los préstamos que
sean de la editorial “Santillana” (puede ser cualquier otra editorial)
2. Seleccionar todos los lectores que no han solicitado algún libro
3. Seleccionar los préstamos de libros de todos los lectores cuya de edad se encuentre
entre sea 15 a 20 años y que sean de sexo femenino.
4. Seleccionar todos los libros prestados de todas las editoriales
Realice las siguientes funciones
5. Crear una función llamada f_PromedioEdad para saber el promedio de edad
de los lectores que prestaron un libro.
6. Crear una Función llamada f_ListarPrestamos que liste los préstamos
solicitados por un determinado alumno.
7. Crear una función llamada f_LibrosMasPrestados para saber cuáles son los
libros más prestados de todas las editoriales.
Realice las siguientes vistas
8. Crear una vista v_PrestamosLibrosEditorial para mostrar todos los préstamos de
libros de la editorial “Bruño” (puede ser de otra editorial que Ud. Haya registrado)
9. Crear una vista v_PrestamosDetallado para mostrar el título del libro, los datos del
lector (apellidos y nombres), la fechaprestamo y fechadevolucion, mostrar los
registros ordenados en forma descendente por idprestamo
Realice los procedimientos almacenados
10. Crear un procedimiento almacenado llamado sp_PrestamosEditorialAño para
mostrar los préstamos de libros de una editorial y año indicado como variable
11. Crear un procedimiento almacenado llamados sp_PrestamosFecha para mostrar los
préstamos de libros entre dos fechas indicadas (inicio y fin)
12. Crear un procedimiento almacenado llamado sp_PrestamosDevolver para mostrar
los préstamos de libros que deben ser ya devueltos (la fecha actual es igual o
mayor a la fechadevolucion).
Realice los siguientes triggers
13. Crear un trigger llamado t_ListarLectores que permita listar los registros de la
Tabla Lectores luego de insertar un nuevo registro
14. Crear un trigger llamado t_PrestamoBackup, el cual registre en una tabla temporal,
los siguientes datos (idlibro, idlector, fechaprestamo). La estructura de la tabla
temporal es: idtmp int autogenerado, idlibro int, idlector int, fechahoraprestamo
datetime.
PREGUNTAS GUÍA
1. ¿Cuáles son las diferencias de los JOIN en la programación SQL?
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la
tabla de la derecha. RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas
coincidentes de la tabla de la izquierda. OUTER JOIN: Devuelve todas las filas de las dos tablas,
la izquierda y la derecha.
2. ¿Cuáles son las restricciones?, explique brevemente cada una a través de un
ejemplo
La base de la teoría de las restricciones es ver a un sistema como un Pensemos, por ejemplo,
en una empresa de cierto tamaño firmemente departamentalizada. Así, cada uno de ellos
intentará realizar optimizaciones en su área.
3. ¿Cuáles son los tipos de funciones en SQL?
Funciones de agregado
Todas las funciones de agregación son deterministas; es decir,
siempre devuelven el mismo resultado cuando se ejecutan con los
mismos valores de entrada. Para más información, vea Funciones
deterministas y no deterministas.
Funciones analíticas
Las funciones analíticas calculan un valor agregado basándose en
un grupo de filas. A diferencia de las funciones de agregado, estas
funciones pueden devolver varias filas para cada grupo. Puede usar
funciones analíticas para calcular medias móviles, totales
acumulados, porcentajes o resultados de N valores superiores
dentro de un grupo.
Funciones de categoría
Las funciones de categoría devuelven un valor de categoría para
cada fila de una partición. Según la función que se utilice, algunas
filas pueden recibir el mismo valor que otras. Las funciones de
categoría son no deterministas.
Funciones de conjuntos de filas
Las funciones de conjuntos de filas devuelven un objeto que se
puede usar como referencias de tabla en una instrucción SQL.
Funciones escalares
Operan sobre un valor y después devuelven otro valor. Las
funciones escalares se pueden utilizar donde la expresión sea
válida.
4. ¿Qué ventajas tienen las vistas?
lOMoARcPSD|8515014
• Facilita el manejo de grandes volúmenes de información, haciéndolos más fáciles
y rápidos de manipular.
• Brinda mayor seguridad a la información.
• Evita la redundancia de la información.
• Mejora la metodología de trabajo, se hace más organizada.
5. ¿Qué ventajas tienen los procedimientos almacenados?
Generalmente, los procedimientos almacenados lo que hacen es mejorar el rendimiento,
puesto que con poca información (la que introducen los usuarios) generan una rápida y
eficiente respuesta, teniendo en cuenta que en dicha base de datos puede existir un gran
número de bibliotecas.
6. ¿Cuál es la importancia de trabajar con índices en la programación SQL?
Gracias al uso de índices, podremos reducir fácilmente, y de forma considerable, el
tiempo de ejecución de nuestras consultas de tipo SELECT. Sobretodo, esta mejora en
los tiempos de ejecución será mayor cuanto más grandes (mayor cantidad de datos) sean
las tablas de la base de datos con la que estemos trabajando.
7. ¿Cuál es la i mportancia de almacenar los datos desde SQL Server a formato
XML?
Los archivos de form ato XML son autodescriptivos, lo que facilita su lectura, creación y arios
ampliación. Los usu pueden leerlos, lo que facilita la comprensión del modo en s datos
que se interpretan lo durante las operaciones masivas. Los archivos de formato os de datos de
XML contienen los tip las columnas de destino.
lOMoARcPSD|8515014