Download Temas Avanzados de Integridad de Bases de Datos. File

Document related concepts

Clave foránea wikipedia , lookup

Integridad referencial wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Quinta forma normal wikipedia , lookup

Transcript
Bases de Datos
Conferencia 12. Temas Avanzados de
Integridad de Bases de Datos.
Objetivos.

Conceptos Fundamentales.

Tipos de Restricciones de Integridad.

Definición de Integridad en SQL Estándar
Bibliografia.

C. J. Date, “Introducción a los Sistemas de
Bases de Datos”. 7ma edición. Addison-Wesley
Iberoamericana.

Dra. Anaisa Hernández González, Seguridad e
Integridad, Diplomado de Informática Operativa:
Curso de BD.
Conceptos Fundamentales.

Seguridad e Integridad son conceptos
diferentes.

Seguridad: Protección de Datos.

Integridad: Exactitud, Precisión o Validez
de los Datos.
Semejanzas entre Seguridad e Integridad

Control de Restricciones Inviolables que no pueden ser
violadas por los Usuarios.
Un cliente con cuenta
bancaria puede ver el
saldo actual solo de las
cuentas que están a su
nombre
Un cliente no puede extraer
de una cuenta más dinero
del que permite su saldo
pues no se aceptan saldos
negativos
Semejanzas entre Seguridad e Integridad

Las restricciones deben ser especificadas en un
lenguaje adecuado.

Las restricciones deben ser mantenidas en el catálogo
del sistema.

El sistema debe vigilar las operaciones del usuario para
asegurarse que cumplan estas restricciones.
Control de Acceso Obligatorio

Exactitud o Corrección de los Datos en la Base de Datos.
Ejemplo:
Proveedor
Componentes
Restricciones
• El código de los componentes tiene 4
dígitos y es único
• La cantidad de componentes que
suministra un proveedor tiene que ser
múltiplo de 50 y estar [50,1000]
• Los componentes eléctricos tienen que
transportarse en cajas individuales
El SGBD tiene que conocer cada restricción y hacerlas cumplir
por lo que tiene que rechazar cualquier actualización que trate
de violarlas
Tipos de Restricciones de Integridad

De Tipo: Especifica los valores válidos para un tipo
dado.

Son verificadas de inmediato. No es posible que los atributos de
un tipo que tiene restricciones tenga un valor no apropiado.

Solo se puede eliminar una restricción de tipo eliminando al propio
tipo.
Ej.: Peso Número real
Mayor que 0
TYPE Peso(Real)
CONSTRAINT Pe(Peso)>0.0;
Tipos de Restricciones de Integridad

De Atributo: Especifica el valor válido de un atributo.
Es una declaración de tipo.

Son parte de la definición del atributo.

Solo se puede eliminar una restricción de tipo eliminando al
propio tipo.
Ej.: Una persona tiene como uno de sus atributos el peso, el cual
tiene como restricciones que debe ser un numero mayor que cero.
PesoPersona Peso;
Tipos de Restricciones de Integridad

De Relación: Especifica los valores válidos de una
relación determinada.

Son verificables de inmediato como parte de la ejecución de
cualquier instrucción que pudiera ocasionar que fueran
violadas.
Ej.: Los proveedores de la Habana solo admiten transportar los
productos en camión.
CONSTRAINT Ejemplo 2
IS-EMPTY (P WHERE Ciudad=´La Habana´ AND
MedioTransporte<>´Camión´;
Tipos de Restricciones de Integridad

De Bases de Datos: Especifica los valores válidos de
una base de datos. Relaciona dos o mas variables de
relaciones diferentes.

Son verificables de inmediato como parte de la ejecución de
cualquier instrucción que pudiera ocasionar que fueran
violadas.
Ej.: Ningún proveedor que use como medio de transporte
camiones, puede suministrar componente alguno en una ciudad
superior a 500 unidades.
CONSTRAINT Ejemplo 3
IS-EMPTY ((P JOIN C)
WHERE MedioTransporte=´Camión´ AND
Cantidad > Cantidad(500));
Regla de Oro.
Nunca debe permitirse una operación de actualización
que deje a cualquier relación en un estado que viole las
restricciones de integridad definidas para esas relaciones.
Nunca debe permitirse una transacción de actualización
que deje a a la base de datos en un estado que viole las
restricciones de integridad definidas para ella.
Restricciones de Transacción.

Restricciones sobre transacciones válidas de un
estado correcto a otro.
TRANSACCIONES
VÁLIDAS
TRANSACCIONES
NO VÁLIDAS
Soltero
Casado
Soltero
Viudo
Casado
Viudo
Viudo
Divorciado
Viudo
Divorciado
Divorciado
Restricciones Asociadas a la Clave.

Unicidad: No existen dos elementos de una relación
con igual llave.

Irreductibilidad: Ningún subconjunto de atributos
perteneciente a la llave tiene la propiedad de
unicidad.
Temas de Integridad Referencial.
IdentificadorProveedor
IdentificadorProComponente
NombreProveedor
NombreProducto
CiudadProveedor
Proveedor
Producto
m
1
Suministro
Cantidad
Fecha
Un proveedor puede suministrar muchos componentes y un
componente solo puede ser proporcionado por un proveedor en
una cantidad y fecha dadas
Temas de Integridad Referencial.
PROVEEDOR
Identificador Nombre
Proveedor
Proveedor
Ciudad
Proveedor
COMPONENTE
Identificador Nombre
Identificador Cantidad Fecha
Componente Componente Proveedor
REGLA DE INTEGRIDAD REFERENCIAL
“ Si B hace referencia a A, entonces A debe existir”
Integridad con SQL Estándar.

Restricciones de Dominio: Se aplica a toda la
columna definida en el dominio.
CREATE DOMAIN Color CHAR(6) DEFAULT ´???’
CONSTRAINT ColoresVálidos
CHECK (VALUE IN (´Rojo´, Ázul´, ´Veder´, ´???´));
...
CREATE TABLE Ejemplo 4 (...,ColorEjemplo COLOR,...);
Al insertar un elemento en la tabla:
Si no especifica valor se inserta Color = “???”
Si se especifica, si esta en el conjunto se inserta, sino falla.
Integridad con SQL Estándar.

Restricciones de la Tabla Base:

Definición de clave o llave primaria.
Ej.: PRIMARY KEY IdentificadorComponente

Definición de clave o llave externa.
Ej.: FOREING KEY IdentificadorProveedor
REFERENCE Proveedor

Definición de restricción de chequeo: Impedir que se inserten
filas que violen las restricciones de verificaciónn definidas.
Ej.: Cantidad 0,1000  CHECK(Cantidad>0
AND Cantidad<1000)
Integridad con SQL Estándar.

Aserciones: Equivalente a las restricciones de
relación y de bases de datos
Ej.: Todas las personas tienen un peso positivo
CREATE ASSERTION Ejemplo 5 CHECK
(NOT EXIST (SELECT * FROM Persona
WHERE NOT (Persona.PesoPersona>0.0)));
Conclusiones

Con la integridad se desea asegurar que los
datos obtenidos en la base de dato sean
exactos o correctos.

Las restricciones de integridad:





Especifican los valores válidos para un tipo (o dominio) dado.
Especifican los valores válidos para un atributo determinado.
Especifican los valores válidos para una relación dada.
Especifican los valores válidos para una base de datos dada.
No se permiten operaciones de actualización
que dejen a cualquier relación en un estado
que viola sus restricciones de integridad
Conclusiones

No se permiten transacciones de actualización
que dejen a la base de datos en un estado que
viola sus restricciones de integridad.

Las claves o llaves primarias satisfacen las
propiedades de unicidad e irreductibilidad.

Una restricción referencial es aquella que
indica que los valores de cierta clave externa
deben coincidir con los valores de la clave
primaria correspondiente.