SOLUCION

     
n)  NOTA:
y      LOS EJERCICIOS QUE NO SE ENCUENTRAN RESUELTOS, YA NO SE RESOLVERAN, SI TIENEN DUDA RESOLVERLOS Y PONERLOS EN COMENTARIOS, DONDE TODOS PODRAN APORTAR PARA RESOLVER DUDAS Y CORREGIR. GRACIAS.
iI Indique que opciones se reflejan en la b.D.______________________________

AA)    Insert
BB)    Update
 C))    Delete
 D))    Drop
E E)    Delete
F F)    Rollback
  G)    Drop
HH)    Update
I)I) Rolback
JJ )     Insert
KK )    Commit
LL )     Delete
  M )   Exit

Se cuenta con las siguientes tablas las cuales ya contienen información(registros):

Tabla Carrera
Tabla Alumno
Tabla Falta
Cve_Carr            Number(3)
Nombre_Carr     varchar2(30)
Director_Carr     varchar2(30)
Duracion_Carr    number(1)
Matricula           number(4)
Cve_carr            number(3)
Curp_Al             number
Nombre              varchar2(30)
Apellido              varchar2(30)
Fecha_Nac          date
Fecha_ing            date
Sexo_Al              varchar2(1)
Estatus                 varchar2(2) *
Beca                    number(6,2)
ID_Falta       number(2)
Matricula      number(4)
Fecha            date
Estatus_Fal   varchar2(1) **

  1. Cree la tabla Alumno con las restricciones necesarias para la siguiente información:
·          matricula, único, no nulo y es parte de la  llave primaria.
·         CURP  único, no nulo es parte de la  llave primaria.
·          Nombre con una extensión máxima de 30 caracteres, no nulo.
·          Apellido con una extensión máxima de 30 caracteres, no nulo
·         Clave­_c  No nulo, Fk con la tabla carrea (ya existe)
·         Fecha ingreso
·         Sexo carácter de 1, no nulo y solamente podrán tomar los valores de F y M.
·         Estatus A- Activo, B- BAJA, E- Espera, T-terminado, A- Atrasado)
      Subrayar la integridad de dominio e indicar para que sirve
      Tachar la integridad referencial e indicar su uso
       Encerrar en un circulo la integridad de entidad e indicar su uso.

3.     3. De la sintaxis para :
a)     Agregue a la tabla carrera  el campo fecha_inicio que no permita valores nulos, para este punto suponer que la tabla NO  tiene registros.
b)    Agregue a la tabla alumno  el campo Promedio que no permita valores nulos, para este punto suponer que la tabla YA tiene registros, validar que solo pueda tener promedio entre 50 y 100, con dos decimales.
c)     Modifique el campo de nombre alumno ampliándolo para que quepan 5 caracteres mas. 
d)    Elimine el campo fecha_inicio de la tabla carrera
e)     Modificar la validación del promedio, ahora solo permitirá valores de 5 a 10, recordar que la tabla YA tiene valores.
f)     Elimine el constraint que valida los valores permitidos para el estatus del alumno de la tabla ALUMNO (no conoce el nombre del constraint, poner todos los pasos para encontrar el nombre del constraint XXX201)
   BUSCAR EN EL DICCIONARIO DE DATOS EL NOMBRE DEL CONSTRAINT ASOCIADO A LA TABLA : SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, SEARCH_CONDITIONS,                       TABLE_NAME 
                    FROM USER_CONSTRAINTS
                    WHERE TABLE_NAME = &NOMTABLA;
                    ALTER TABLE ALUMNO DROP CONSTRAINT XXX201


4.     4.Cree los siguientes objetos:
a.     Cree la tabla Alumno_RES con la estructura y la matricula, carrera y promedio de la tabla ALUMNO mas un campo extra con la fecha del respaldo. En un solo paso.
CREATE TABEL ALUMNO_RES AS
SELECT MATRICULA, CVE_C, PROMEDIO, SYSDATE FECHA_RES 
FROM ALUMNO
b.    Crear el objeto necesarios para hacer único el CURP (no usar constraint)
CREATE UNIQUE INDEX IUNICOCURP ON ALUMNO(CURP)
c.     Crear un objeto para agilizar la búsqueda en la tabla ALUMNO considerando como representativa la siguiente consulta:
Select nom_A, ape_a, cve_carrera, estatus
From ALUMNO
Where cve_c in (1,2,3)
And  (estatus =’B’
Or       promedio <7)

RECORDANDO QUE EN EL SELECT SE RESTRINGEN LOS CAMPOS A DESPLEGAR Y EN EL WHERE LOS REGISTROS, ES DECIR EL WHERE CONTIENE LOS CRITEREIOS DE BUSQUEDA, LA SINTAXIS QUEDARIA DE LA SIGUIENTE MANERA:
CREATE INDEX XINDICE ON ALUMNO (CVE_C, ESTATUS, PROMEDIO)
d.    Cree un objeto que muestre el nombre de la carrera, el nombre completo del alumno,  el estatus  y fecha de ingreso, de los alumnos con estatus B y BT.
CREATE VIEW VISTA1 AS
 SELECT C.NOM_CARR, A.NOM_ALUMNO, A.APELLIDO, A.ESTATUS,
               A.FECHA_ING
FROM CARRERA C, ALUMNO A
WHERE C.CVE_CARR = A.CVE_CARR    
AND A.ESTATUS IN ('B','BT')                            
e.     Cree un objeto para que la tabla de FALTA se pueda acceder con el nombre de INICID_ALUM
CREATE SYNONYM INCID_ALUM FOR FALTA
f.     Cree un objeto para que el usuario X01 y todos los demás usuarios  puedan ver la tabla ALUMNO que pertenece al usuario DZBC032 con el nombre ALUMNO
CREATE PUBLIC SYNONYM ALUMNO FOR DZBC032.ALUMNO

5.     5. Cree los siguientes procedimientos:
a)     Cree un procedimiento que haga un respaldo a la tabla de ALUMNO_RES ( la tabla ya existe), insertando los datos  de la tabla Alumno_RES mas un campo extra con la fecha en la que se esta haciendo el respaldo.
CREATE PROCEDURE RESPALDO 
    AS
    BEGIN
          DELETE ALUMNO_RES;
          INSERT INTO ALUMNO_RES (MATRICULA, CVE_Carr, PROMEDIO, FECHA_RES )
          SELECT matricula, cve_carr, promedio, sysdate
          from alumno;
          COMMIT; -- PARA GUARDAR LA INFORMACION EN LA BD

   END;
b)    Cree un procedimiento que inserte información en la tabla carrera.
     CREATE PROCEDURE AGREGA (PCve_C IN Number,PNom_C IN    varchar2,
PDir IN   varchar2, PDur IN NUMBER) 
    AS
    BEGIN
          INSERT INTO CARRERA (Cve_Carr, Nombre_Carr, Director_Carr, Duracion_Carr )
                                 VALUES(PCve_C ,PNom_C ,PDir , PDur );
          COMMIT; -- PARA GUARDAR LA INFORMACION EN LA BD
   END;
c)     Cree un procedimiento que permita eliminar al director de una carrera especifica.
     CREATE PROCEDURE ELIMDIR( PCVE_C IN NUMBER)
     AS

     BEGIN
    UPDATE CARRERA
    SET DIRECTOR = NULL
     WHERE CVE_C = PCVE_C;
   END;
d)    Cree un procedimiento que actualice el promedio y la beca de un alumno especifico, siempre y cuando se encuentre activo.
     CREATE PROCEDURE ACTUAL (PPROMEDIO IN NUMBER, PBECA IN NUMBER, PMAT IN NUMBER) AS
      BEGIN
         UPDATE ALUMNO
         SET PROEMEDIO = PPROMEDIO, BECA = PBECA 
         WHERE ESTATUS = 'A'
         AND MAT = PMAT;
     END;
e)     Cree un procedimiento que elimine todas las faltas con estatus justificado  cometidas en el mes anterior.
CREATE PROCEDURE ELIMINA
AS
BEGIN
     DELETE INCIDENCIA
     WHERE TIPO IN ('FJ','FI')
     AND TO_CHAR( FECHA, 'MM')= TO_CHAR(ADD_MONTHS(SYSDATE,-1), 'MM');
 END;
6.     Haga las siguientes consultas:
a)     Desplegar toda la información de la tabla ALUMNO siempre y cuando el nombre del alumno tenga una a en la segunda posición.
SELECT *
FROM ALUMNO
WHERE NOM_A LIKE '%A%';

3 comentarios:

  1. AQUI PODRAN RESOLVER LOS EJERCICIOS FALTANTES, PONER EL NUMERO DEL EJERCICIO Y LA LETRA QUE LO IDENTIFICA, ASI COMO EN QUE TIENE DUDA O QUE NO PUDO RESOLVER

    ResponderEliminar
  2. Profesora porque en el ejercicio 5 inciso A, se muestra el select solo? y porque se tiene que borrar antes los registros de la tabla, así como porque se utiliza la función into y no el select para hacer el respaldo, porque no se utiliza la función sysdate en fecha.
    Saludos!

    ResponderEliminar
  3. En el ejercicio 5 A, se muestra el select solo porque ya no termine de hacerlo, lo deje como boceto:
    INSERT INTO ALUMNO_RES (MATRICULA, CVE_Carr, PROMEDIO, FECHA_RES )
    SELECT matricula, promedio, sysdate
    from alumno;
    Into no es una funcion, es una palabra reservada propia del insert

    INSERT INTO Nom_tabla.....

    ResponderEliminar