Themasterzerox

Páginas: 9 (2117 palabras) Publicado: 16 de septiembre de 2009
Respuestas

1. Una integridad referencial se refiere al hecho de que las bases de datos sean fiables en sus relaciones y valores de cada entidad de la base de datos, lo que implica que cada dato sea correcto sin necesidad de que haya repetición o redundancias de datos y relaciones mal resueltas.

10. son objetos relacionados con tablas y almacenados en la base de datos que seejecutan o se muestran cuando sucede algún evento sobre sus tablas asociadas.
Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los datos de una tabla. Los triggeres se pueden ejecutar antes (BEFORE) y/o después (AFTER) de que sean modificados los datos.
Los triggers tienen dos palabras clave, OLD y NEW que se refieren a los valores que tienen las columnas antes ydespués de la modificación. Los INSERT permiten NEW, los DELETE sólo OLD y los UPDATE ambas.
Un ejemplo de trigger seria uno asociado a la sentencia DELETE en una tabla de clientes, para impedir que se elimine uno que tenga un saldo distinto de cero. Otro trigger seria guardar los datos que se modifican de un cliente en otra base de datos que serviria de auditoria.

Crearemos la tabla declientes y le ponemos algunos registros:
1. CREATE TABLE clientes(  
2.             id int not null auto_increment,  
3.             nombre varchar(100),  
4.             seccion varchar(10),  
5.             PRIMARY KEY(id),  
6.             KEY(nombre)  
7. ) ENGINE = InnoDB;  
8.   
9. INSERT INTO clientes (nombre, seccion) VALUES  
10.('Miguel','informatica'),  
11. ('Rosa','comida'),  
12. ('Maria','ropa'),  
13. ('Albert','informatica'),  
14. ('Jordi','comida');  

CREATE TABLE clientes(
id int not null auto_increment,
nombre varchar(100),
seccion varchar(10),
PRIMARY KEY(id),
KEY(nombre)
) ENGINE = InnoDB;

INSERT INTO clientes (nombre, seccion)VALUES
('Miguel','informatica'),
('Rosa','comida'),
('Maria','ropa'),
('Albert','informatica'),
('Jordi','comida');
Y una tabla que será la que guardará los datos de la “auditoria”.
1. CREATE TABLE auditoria_clientes  
2. (  
3.    id int not null auto_increment,  
4.    nombre varchar(100),  
5.    anterior_seccion varchar(10),  
6.    usuario varchar(40),  
7.   modificado datetime,  
8.    primary key(id)  
9. ) ENGINE = InnoDB;  

CREATE TABLE auditoria_clientes
(
id int not null auto_increment,
nombre varchar(100),
anterior_seccion varchar(10),
usuario varchar(40),
modificado datetime,
primary key(id)
) ENGINE = InnoDB;
y finalmente un trigger que se disparará cada vez que alguien modifique un dato de latabla clientes y lo guardará en una tabla junto al nombre del usuario y la fecha.
1. CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON clientes  
2.    FOR EACH ROW  
3.    INSERT INTO auditoria_clientes(name, anterior_seccion, usuario, modificado )  
4.    VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW() );  

9. NULL | NOT NULL
Especifica si la columnapuede aceptar valores NULL. Las columnas que no admiten valores NULL sólo se pueden agregar si tienen especificado un valor predeterminado. Si la columna nueva admite valores NULL y no se especifica un valor predeterminado, la columna nueva contendrá un valor NULL en cada fila de la tabla. Si la nueva columna permite valores NULL y se agrega una definición predeterminada con la nuevacolumna, se puede utilizar la opción WITH VALUES para almacenar el valor predeterminado en la nueva columna para cada fila existente en la tabla.
Si la columna nueva no admite valores NULL, se deberá agregar una definición DEFAULT con la columna nueva. La columna nueva se carga automáticamente con el valor predeterminado en cada fila existente de las columnas nuevas.
|[pic]Advertencia:...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS