domingo, 27 de diciembre de 2009

TRABAJO 7 TRANSACCIONES

1) Crear una aplicación en Visual Studio o en Java, para crear, modificar o borrar ediciones de Cursos (Transacción1) y para consultar los cursos impartidos en un período específico (Transacción2).

2) Demuestre las propiedades ACID utilizando las transacciones 1 y 2. Trabajar con dos usuarios, cada uno en una máquina diferente, que quieren trabajar con los mismos datos al mismo tiempo.

3) Investigar cuales son los niveles de aislamiento (isolation level) que soporta el sistema de bases de datos que está investigando y realice un ejemplo que demuestre las diferencias entre ellos, utilizando las transacciones indicadas en el paso 1.

4) Explique el fenómeno fantasma con un ejemplo en su base de datos.

5) ¿Cuál es el nivel de bloqueo que tiene su DBMS por defecto? ¿Es a nivel de registro, de bloque o de tabla? ¿Cómo cambiar el nivel de bloqueo? Demuestre el nivel de bloqueo con un ejemplo.

6) Para qué sirven los archivos log? Como funcionan en su DBMS y cómo podemos configurarlos?

miércoles, 2 de diciembre de 2009

TRABAJO 6 RESPALDOS

1) RESPALDOS Y RECUPERACION
a. Realizar un backup de la base de datos completa (backup total).

b. Usar el backup para crear otra instancia de la base de datos en una partición diferente.

c. Ingresar varias filas adicionales en las tablas, y hacer un backup de todos los cambios realizados a partir del backup total (backup incremental).

d. Borrar una tabla de la BD y utilizar el backup para recuperar la BD, hasta el instante de la falla.

f. Hacer un backup de una tabla específica.

g. Programar la realización de un backup a una hora específica todos los dias.

h. Crear un punto de consistencia. Luego, realizar el borrado de varia filas. Finalmente, recuperar la BD hasta el punto de consistencia.

2) IMPORTACION Y EXPORTACION

a. Importar datos desde una hoja electrónica o desde un archivo plano y cargarlos en una tabla de la base de datos.

b. Exportar los datos de una tabla a una hoja electrónica o a un archivo de texto.

3) INGENIERIA REVERSA
Utilizando un CASE y a partir del Script de creación de BDD volver a generar el Modelo Conceptual de la BDD mediante ingenieria reversa.

miércoles, 18 de noviembre de 2009

TRABAJO 5 CLIENTES Y USUARIOS

En una segunda máquina instalar un cliente de la bdd y configurarlo para realizar consultas e inserciones en SQL desde la máquina cliente a la máquina servidor.
• Crear un usuario llamado INVITADO, que tenga permisos solo de lectura en la tabla CURSOS.
• Crear un grupo de usuarios llamado DIGITADOR, que tenga permisos solo de lectura e ingreso de datos sobre las tablas: CURSOS y EDICIONCURSOS. Crear dos usuarios y agregarlos a este grupo.
• Crear una vista llamada TOTALEDICIONES en la que se despliegue el nombre de cada curso junto al número de ediciones que se han realizado de cada uno. Crear un grupo llamado USUARIOEXTERNO que tenga solo acceso de lectura a la vista creada. Crear dos usuarios y agregarlos a este grupo.
• Dar los permisos adecuados para que un instructor perteneciente al grupo INSTRUCTORES, solo pueda consultar datos de sus cursos. (No debe tener acceso a consultar cursos de otros instructores).
• Dar permisos para que todos los usuarios del sistema puedan consultar la tabla INSTRUCTORES, pero no puedan modificarla.

jueves, 5 de noviembre de 2009

TRABAJO NRO 4 PROCESAMIENTO DE CONSULTAS

1. Investigar cómo está estructurado el diccionario de datos en la DBMS que está trabajando. Como y donde se almacenan los metadatos tales como nombre de BD, nombres de tablas, atributos, índices, triggers, etc. Como manipular y consultar dicha información?

2. Insertar 100 cursos, 10 ediciones de cada curso, y 30 estudiantes en cada edición de curso, de manera que la tabla ESTUDIANTESPOR EDICION tenga 30000 filas. Deben también registrarse 5000 estudiantes distintos que toman dichos cursos.


3. Determinar donde se almacenan las estadísticas de las tablas creadas, tales como: tamaño de fila, número de filas por tabla, número de bloques que contienen a cada tabla, número de filas por bloque, etc.

4. Asegurarse que la tabla ESTUDIANTESPOR EDICION tenga la clave primaria (CódigoEstudiante, CodigoEdición) y luego realizar la siguiente consulta:
select * from ESTUDIANTESPOR EDICION where CodigoEstudiante=3600
Utilice las herramientas de administración para determinar la estrategia que utilizó el DBMS para realizar la búsqueda (Analizador de consultas), y determinar el tiempo que se demoró en realizar esa consulta. Compare el resultado con el valor de costo que sale calculando con la metodología de las clases teóricas.

5. Chequear como está estructurado el índice primario de la tabla ESTUDIANTESPOR EDICION cuando la clave primaria es (CódigoEstudiante, CodigoEdición). Como están ordenados los datos de la tabla?

6. Borrar la clave y el índice primario de la tabla ESTUDIANTESPOR EDICION y ordenarla ahora por el atributo nota, volver a realizar la consulta
select * from ESTUDIANTESPOR EDICION where CodigoEstudiante=3600, y determine la estrategia y el tiempo que se demoró la consulta.

miércoles, 30 de septiembre de 2009

TRABAJO 3 TRIGGERS Y PROCEDIMIENTOS ALMACENADOS

En la base de datos del Centro de Capacitación realizar lo siguiente:

TRIGGERS
• Por cada curso aprobado se debe incrementar en 1 el atributo Nro de Cursos Aprobados de un estudiante. Si aún no existe ese campo, crearlo.
• Calcular el pago a un instructor por un curso, con la siguiente regla: si el curso tiene menos de 20 alumnos, el pago es la mitad de lo que se recaude por inscripciones. Si el número de asistentes es 20 o más, se le paga 400 dólares. El costo de inscripción por estudiante es 40 dólares
• Crear una tabla llamada EvaluacionInstructores con atributos: CódigoCurso, NroEdición, Conocimientos, Puntualidad, MaterialDidáctico, FormaDeEnseñar. Los valores de cada fila son los promedios de las evaluaciones hechas por los estudiantes a un instructor en una edición de un curso.Crear un trigger que realice los calculos e inserte los valores automáticamente.
• Cada vez que se matricula un estudiante en una edición de un curso, incrementar en 1 el númeroDeEstudianteMatriculados en dicho curso. Si ese número supera los 25 no debe aceptar más matrículas y debe enviar un mensaje a pantalla “CUPO LLENO”.

PROCEDIMIENTOS ALMACENADOS
• Hacer un procedimiento almacenado que ingresando como parámetros el CódigoCurso y NroEdición, despliegue en pantalla el Nro de inscritos y un mensaje que diga si se puede iniciar o no el curso, de acuerdo al mínimo señalado.
• Hacer un procedimiento almacenado que ingresando como parámetro la Cédula de Identidad de un instructor despliegue: los nombres de cursos, nro de edición, fechas de inicio y fin y valor pagado al instructor de los cursos impartidos por él.
• Un procedimiento almacenado que presente en pantalla el horario, aula e instructor de un curso cuyo código y nro de edición se ingresa como parámetros.
• Hacer un procedimiento almacenado que determine el nombre del estudiante que ha aprobado más cursos.
• Hacer un procedimiento almacenado que calcule el porcentaje de asistencia de cada estudiante de una edición de un curso.

Llenar las tablas con los datos suficientes para poder probar los triggers y procedimientos almacenados.

FECHA DE PRESENTACION: 13 de Octubre de 2009.

miércoles, 16 de septiembre de 2009

TRABAJO NRO 2 DISEÑO DE BD

Diseñar una base de datos para registrar las actividades de un centro de capacitación universitario, que organiza cursos de complementación académica en diferentes áreas, y que sirve a estudiantes y público en general. Es obligatorio para los estudiantes recibir al menos un curso por semestre, hasta completar mínimo ocho cursos como requisito para egresar de su carrera. Todos lo cursos tienen una duración de 30 horas y el costo de la inscripción es de 40 dólares. Cada curso tiene un código, nombre, contenido, prerrequisitos, especialidad, material didáctico (computadores, software, proyector, otros equipos y materiales). Cada curso se puede realizar varias veces durante un semestre, dependiendo de la demanda. De cada edición del curso se debe registrar el horario, el instructor, fecha de inicio, fecha de finalización y el laboratorio o aula en donde se va a realizar. De cada instructor registrar su cédula de identidad, ruc, nombres y apellidos, dirección, teléfono, títulos académicos, lugar de trabajo, número de cuenta bancaria, tipo de cuenta y banco, ya que los pagos los depositan directamente a su cuenta. Para matricularse en un curso, los estudiantes deben pagar en el centro de recaudaciones de la Universidad, donde les emiten una factura, la cual deben presentar al centro de capacitación para su inscripción. De cada estudiante inscrito se debe registrar sus nombres y apellidos, cédula de identidad, dirección, teléfono, Nro de factura, carrera (si es estudiante de la universidad), o lugar de trabajo. Si es estudiante, se debe llevar un registro del número de cursos que ha aprobado. Cada edición de un curso debe tener un mínimo de 10 y un máximo de 25 inscritos para iniciar.
Durante la realización del curso se debe registrar la asistencia de los alumnos, los contenidos que se imparten en cada día, y alguna novedad que se deba señalar.
Al finalizar el curso se debe tomar una evaluación sobre diez, debiendo alcanzar un alumno al menos un 7 para aprobar el curso. También pueden perder el curso si tiene más del 40% de faltas.
Al finalizar el curso, los estudiantes también evalúan al instructor mediante un formulario con valores de 1 a 5, los siguientes parámetros: conocimientos, puntualidad, material didáctico y forma de enseñar.
El pago a cada instructor se debe registrar, y se realizará con la siguiente regla: si el curso tiene menos de 20 alumnos, el pago es la mitad de lo que se recaude por inscripciones. Si el número de asistentes es 20 o más, se le paga 400 dólares.
Finalmente, el sistema debe emitir los certificados, y debe registrar si se ha entregado o no el certificado a cada asistente.

Diseñar la BDD en un Case y presentar el diagrama impreso. Implementar la BDD en la herramienta de BDD que tiene cada grupo, con las restricciones de integridad que correspondan a cada atributo para definir con la mayor exactitud posible los dominios de cada atributo. Usar checks, defaults, unique, not nulls, etc. Específicamente implementar los siguientes controles:
- El valor por defecto de todas las fechas es la fecha actual.
- Los atributos Cédulas de Identidad deben aceptar solo 10 dígitos, los dos primeros de los cuales son entre 01 y 24.
- Las notas deben estar entre 0 y 10.
- En nombre de cada curso debe ser único.
- Si hay 25 inscritos en un curso, no registrar más inscripciones.

Ingresar datos en todas las tablas. Crear al menos 5 cursos, cada uno con 2 ediciones que se realizan en diferentes fechas, inscribir a varios alumnos en cada curso y probar las restricciones.

FECHA DE PRESENTACIÓN: 29 DE SEPTIEMBRE

martes, 3 de marzo de 2009

TRABAJO 1 INSTALACION Y CONFIGURACION

• Historia de la DBMS, inicios, casa fabricante, versiones, etc.
• Versión actual, características generales, plataformas de SO, hardware y software requerido, ediciones, desde la personal hasta la empresarial, módulos componentes.
• Instalación de una versión multiusuario (no la personal), en modo customizado.
• Presentar un informe de la instalación en donde se señalen los principales parámetros que deben configurarse durante la instalación.

FECHA DE PRESENTACION: MARTES 15 DE SEPTIEMBRE DE 2009