jueves, 19 de abril de 2012

EJERCICIO ENTIDAD RELACION

La asociación "Amigos de la Fiesta" desea recoger en una base de datos toda la información acerca de las corridas de toros que se celebran en España y de todos los datos relacionados con ellas.
Se desea tener información acerca de cada corrida, identificada conjuntamente por un número de orden, la feria en la que se celebra y el año de celebración (por ejemplo: orden = 2, feria = San Isidro, año = 1990); las corridas que no se celebran durante una feria tienen 0 en el campo Feria y se numeran correlativamente dentro de ese año.
En una determinada corrida actúan una serie de toreros (mínimo 1 y máximo 6) de los que se desea guardar su dni, nombre, apodo y fecha en que tomó la alternativa. Además se desea saber quién fue el torero (padrino) que le dio la alternativa en su día (un torero puede dar la alternativa a varios compañeros o a ninguno).
En cada corrida un torero obtiene una serie de premios (número de orejas, de rabos y si salió por la puerta grande) de los que se desea mantener información. Cada torero puede tener un apoderado. A su vez, un apoderado lo puede ser de varios toreros. De él se desea saber su dni, nombre, dirección y teléfono. Una corrida se celebra en una plaza de toros de la que se desea saber su nombre (que se supone único), localidad, dirección y aforo. En una misma plaza se pueden celebrar varias corridas de toros.
Cada toro pertenece a una ganadería determinada. De cada ganadería se quiere conocer su código, nombre, localidad, procedencia y antigüedad (fecha de creación). En cada corrida son estoqueados al menos 6 toros.
Cada toro viene identificado por el código de la ganadería a la que pertenece, el año en que nació y un número de orden. Además se desea mantener información acerca de su nombre y color, así como del orden en que fue toreado.


  • Crear el Modelo Entidad Relación
  • Pasar al Modelo Relacional
 

jueves, 12 de abril de 2012

EJERCICIO CURSORES SQL SERVER


Actividades
1.       Leer en la ayuda la teoría sobre CURSORES, FETCH, @@FETCH_STATUS

2.       Diseñar la siguiente tabla con los campos principales que usted estime conveniente de acuerdo a las relaciones existentes.


 
3.       Crear el trigger en la tabla matrículas

CREATE trigger IngresarNotas on Matriculas for Insert as
DECLARE
                @codMatricula int, @codCurso char(5), @ci char(10), @codMateria int
                select @codCurso=I.IdCurso, @codMatricula=I.IdMatricula, @ci=I.IdAlumno from inserted as I
DECLARE param_notas CURSOR FOR
                     SELECT IdMateria FROM MateriaCurso where IdCurso=@codCurso
                 
                OPEN param_notas
               
                FETCH NEXT FROM param_notas INTO @codMateria
                WHILE @@FETCH_STATUS = 0
                BEGIN
                    INSERT INTO Notas(IdMatricula,IdAlumno, IdMateria) VALUES(@codMatricula, @ci, @codMateria)  
                    FETCH NEXT FROM param_notas  INTO @codMateria
                END
               
                CLOSE param_notas
                DEALLOCATE param_notas

Ingresar unos pocos registros en tablas que intervienen,  para realizar la matrícula de un alumno por ejemplo:

 
 
 
4.       Probar el funcionamiento del trigger y que a su vez hace uso de un cursor




5.       Verificar el resultado en la tabla Notas.

RECUERDA QUE YO NO ESTOY PARA ENSEÑARTE, MI FUNCIÓN ES AYUDARTE, SER TU GUIA  EN LO QUE TU QUIERES APRENDER, EN NUESTRA CARRERA ES MUY IMPORTANTE LA AUTOEDUCACIÓN
 René