Download Temas Avanzados de Integridad de Bases de Datos. File
Document related concepts
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.