Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Referencia: Capítulo 11
Manual de Referencia SQL
James Grodd y Paul Weinberg
Integridad de Datos
Hace referencia a la corrección y completitud de los
datos de una base de datos
Cuando se modifica el contenido de una BD se puede
perder de muchas maneras la integridad de los datos
almacenados.
Se pueden añadir datos no válidos
Se pueden asignar valores incorrectos
Tipos de restricciones de integridad
6. Reglas del Negocio: El negocio puede tener reglas que regulan las actualizaciones permitidas, por
ejemplo; mis empleados no pueden trabajar mas de 30 horas extras en una quincena.
7. Consistencia: Muchas transacciones del mundo real provocan múltiples actualizaciones a la base de
datos.
Por ejemplo, el pedido de un cliente, supone la adición a la tabla de pedidos, el incremento en la columna de
ventas, la disminución en la tabla de productos y el incremento en la tabla vendedor por la venta realizada por
este empleado. Podemos pedir al DBMS que haga cumplir este tipo de reglas
+ -
Tabla
PEDIDO Tabla
+ PRODUCTO
+
CLIENTE hace Tabla Tabla
pedido VENTA VENDEDO
Restricciones de integridad del ANSI/ISO
1. Datos requeridos
2. Comprobación de la validez
3. Integridad de las entidades
4. Integridad Referencial
5. Otras relaciones de datos
6. Reglas del Negocio
7. Consistencia
1. RESTRICCIÓN DE DATOS
REQUERIDOS
Exige que las columnas contengan valores que no sean NULL
Se especifica en la instrucción Create table y se define a nivel de columna colocando NOT
NULL
Cuando se declara una columna como NOT NULL el DBMS asegura que:
Cada instrucción INSERT que añada filas nuevas a la tabla, debe especificar
un valor de dato que no sea NULL para esa columna. Si se intenta insertar un
Null para esa columna, se recibirá un mensaje de error.
Cada instrucción UPDATE que actualice la columna debe asignarle un valor
de datos que no sea Null . Cualquier intento que no tenga datos genera error
Se presenta inconveniente al querer colocar una restricción NOT NULL a una tabla existente, ya
que para el manejo de los not null el DBMS utiliza un byte extra que no se encuentra en esta tabla
con datos.
Tipos de restricciones de integridad
1. Datos requeridos
2. Comprobación de la validez
3. Integridad de las entidades
4. Integridad Referencial
5. Otras relaciones de datos
6. Reglas del Negocio
7. Consistencia
2. COMPROBACIÓN DE LA VALIDEZ
1. Datos requeridos
2. Comprobación de la validez
3. Integridad de las entidades
4. Integridad Referencial
5. Otras relaciones de datos
6. Reglas del Negocio
7. Consistencia
3. INTEGRIDAD DE LAS ENTIDADES
El estándar del ANSI señala que todas las tablas deben tener una llave primaria.
Cada columna declarada como PK debe ser NOT NULL para cumplir con la
norma ANSI/ISO.
Observación (Algunos manejadores lo asume por default (ej: SQL Server), pero no todos
los manejadores de BD asumen que la PK es not null)
Tipos de restricciones de integridad
1. Datos requeridos
2. Comprobación de la validez
3. Integridad de las entidades
4. Integridad Referencial
5. Otras relaciones de datos
6. Reglas del Negocio
7. Consistencia
4. INTEGRIDAD REFERENCIAL
FK
F
K
Tabla hijo
PK
F
K
PK
FK
En caso de que se borre la llave primaria (nss de la tabla empleado), el FK del numero del
supervisor (nss_superv), se colocará en NULL para todas los empleados cuyo supervisor
(nss_superv) esta siendo borrado. (recuerde que esta era una entidad recursiva).
En caso de que se actualice la llave primaria (nss), el numero del supervisor (nss_superv), es
cambiado automáticamente por este nuevo valor, en cada fila que este contenido
De nuestro primer laboratorio
create table Localizacion_Dept
(…
constraint pk_localización_dept numerod_localizaciond
primary key (numerod, localizaciond),
constraint fk_localización_dept_numerod
foreign key (numerod)
references Departamento(numerod)
ON DELETE CASCADE ON UPDATE CASCADE
En caso de que se borre la llave primaria (numerod) de la tabla departamento,
Se borraran todos los numerod ( FK) de la tabla localizaciones_dept que
correspondan a la llave primaria borrada
ON DELETE ON UPDATE
SET NULL Y SET DEFAULT: SET NULL Y SET DEFAULT: El
El valor de los atributos valor de los atributos referenciados
referenciados cambia a null en el cambia a null en el caso del set null y
caso del set null y al valor al vlor especificado en el caso de
especificado en el caso de default default
CASCADE: Elimina todas las CASCADE: Cambia el valor de la
tuplas (filas) referenciadas llave foránea al valor de la nueva
llave primaria en todas las tuplas
1. Datos requeridos
2. Comprobación de la validez
3. Integridad de las entidades
4. Integridad Referencial
5. Otras relaciones de datos
6. Reglas del Negocio
7. Consistencia
5. Otras relaciones de datos