01 Explicacion

Páginas: 7 (1689 palabras) Publicado: 12 de octubre de 2015







Restricciones y Triggers



Las restricciones son declaraciones de condiciones sobre la base de datos que debe permanecer verdaderas. Éstas incluyen restricciones basado en atributos, en tuplas, en llaves, y restricciones de integridad de referencial. El sistema inspecciona la violación de las restricciones sobre acciones que pueden causar una violación, y aborta la acción de acuerdo conlo especificado en la restricción. La información sobre las restricciones del SQL puede encontrarse en el libro de texto. La implementación de restricciones en Oracle difiere del standard SQL.

Los disparadores (o triggers) son una estructura especial del PL/SQL similar a los procedimientos. Sin embargo, un procedimiento se ejecuta explícitamente desde otro bloque vía un procedimiento de llamado,mientras un disparador se ejecuta implícitamente siempre que el evento activando ocurra. El evento que activa el disparador es una orden de INSERCIÓN (INSERT), de BORRADO (DELETE), o de ACTUALIZACION (UPDATE). La elección del momento adecuado o puede ser ANTES o DESPUÉS DE (BEFORE o AFTER). El trigger puede estar definido a nivel de fila o de instrucción, donde los primeros realizan la acción unavez para cada fila afectada en el evento y los segundos realizan la acción una vez por toda la instrucción.

DIFIRIENDO LA COMPROBACIÓN DE UNA RESTRICCIÓN

A veces es necesario diferir la comprobación de ciertas restricciones, como en el problema " del pollo-y-el-huevo". Suponga que nosotros queremos decir:

CREATE TABLE Pollo (polloID INT PRIMARY KEY,
huevoID INT REFERENCES Huevo(huevoID));CREATE TABLE Huevo (huevoID INT PRIMARY KEY,
polloID INT REFERENCES Pollo(polloID));

Pero si tecleamos las declaraciones anteriores en Oracle, nosotros conseguiremos un error. ¡La razón es que la instrucción CREATE TABLE para Pollo se refiere a la tabla Huevo , que no se ha creado todavía! Creando el Huevo no ayudarán mucho, porque el Huevo se refiere para un Pollo .

Para trabajar alrededor de esteproblema, nosotros necesitamos comandos que permitan la modificación del esquema SQL. Primero, creamos el Pollo sin las declaraciones de llave foránea:

CREATE TABLE Pollo (polloID INT PRIMARY KEY,
huevoID INT);
CREATE TABLE Huevo (huevoID INT PRIMARY KEY,
polloID INT);

Luego adicionamos las restricciones de llave foránea:

ALTER TABLE Pollo ADD CONSTRAINT polloREFHuevo FOREIGN KEY (huevoID)REFERENCES Huevo (huevoID) INITIALLY DEFERRED DEFERRABLE;
ALTER TABLE Huevo ADD CONSTRAINT huevoREFPollo FOREIGN KEY (polloID) REFERENCES Pollo (polloID) INITIALLY DEFERRED DEFERRABLE;

INITIALLY DEFERRED DEFERRABLE le dice a Oracle que haga la comprobación de restricción diferida. Por ejemplo, para insertar (1, 2) en el pollo y (2, 1) en el huevo, nosotros usamos:

INSERT INTO Pollo VALUES(1, 2);INSERT INTO Huevo VALUES(2, 1); COMMIT;

Dado que hemos declarado las restricciones de llave foránea como "diferidas", ellos sólo se verifican en el punto de Commit. (Sin diferir la verificación de la restricción, nosotros no podemos insertar nada en las tablas Pollo y Huevo, porque el primer INSERT siempre viola la restricción).

Finalmente, para borrar las tablas, primero tenemos que borrar lasrestricciones, porque Oracle no permite borrar una tabla que esta siendo referenciada por otra tabla.

ALTER TABLE Huevo DROP CONSTRAINT huevoREFPollo; ALTER TABLE Pollo DROP CONSTRAINT polloREFHuevo; DROP TABLE Huevo;
DROP TABLE Pollo;




VIOLACIÓN DE UNA RESTRICCIÓN

En general, Oracle devuelve un mensaje del error cuando una restricción se viola. Específicamente para los usuarios de JDBC, estosignifica que se devuelve una SQLException. Los programadores deben usar la instrucción WHENEVER y/o verificar el contenido del SQLCA (para los usuarios de Pro*C) o capturar la excepción SQLException (para usuarios de JDBC) para conseguir el código de error devuelto por Oracle.

Algunos números del código de error específicos son: 1 para las violaciones de restricciones de llave primaria, 2291 para...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • explicacion
  • explicacion
  • La Explicacion
  • explicación del no se que
  • Explicacion
  • Explicacion
  • Qué es la explicación
  • EXPLICACION

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS