![]() |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
||
|
|
|
CAPÍTULOS
SECCIONES
SITIOS RECOMENDADOS
OTROS SITIOS DE LA AUTORA
Curriculum vitae
A través del espejo
Weblog: Educación en Internet
Weblog: Uno por uno, uno; uno por uno, dos; uno por uno...
En línea desde el 7 de noviembre de 2000 |
IntegridadFinalizamos esta introducción a las bases de datos hablando de los distintos niveles de integridad que tendremos que asegurar a nuestros datos. Una vez realizado el diseño de la base de datos, hemos de preocuparnos por los siguientes puntos: Integridad de los datosLa creación de un modelo de las entidades del espacio del problema y las asociaciones entre ellas es sólo una parte del proceso de modelización de los datos. También se deben captar las reglas que utilizará el sistema de base de datos para asegurar que los datos físicos que realmente mantiene son, si no correctos, al menos plausibles. En otras palabras, se debe modelar la integridad de los datos. No puede garantizarse que los datos sean fidedignos; por ejemplo, que un pedido sea de 16 unidades o de 8 unidades depende de el usuario introductor de datos, con lo que para el sistema las dos posibles entradas serían validas aunque claro esta solo es una de ellas. Pero sí se puede garantizar mediante el diseño de la base de datos que los datos son conformes a las restricciones de integridad definidas para ellos. Integridad de dominiosUna restricción de dominio es una regla que define esos valores validos. La elección de los tipo de datos (fecha , texto, etc.) es el primer paso para la determinación de las restricciones de dominio de un sistema. El siguiente aspectos a considerar sobre la integridad de dominio es si al dominio se le permite contemplar valores desconocidos o inexistentes. Integridad de transicionesLas restricciones de integridad de transiciones definen los estados por los que una tupla puede pasar válidamente. Por ejemplo solo se permitirá que el saldo de un cliente cambie a de “Normal” a “Preferente” si el límite de crédito del cliente supera un determinado valor o si lleva al menos un año comerciando con la empresa. El requisito del límite de crédito seguramente estará controlado por un atributo de la relación Clientes, pero puede que el tiempo que lleva el cliente trabajando con la empresa no esté explícitamente guardado en ningún sitio. Será necesario calcular el valor de acuerdo con el registro más antiguo en el que figure el cliente en la relación Pedidos. Integridad de entidadesLas restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel más simple, la existencia de una clave principal es una restricción de entidad que impone la regla “cada entidad debe estar identificada de forma única”. Integridad referencial“Las claves externas no pueden quedar huérfanas”. Es decir ningún registro de la tabla externa puede contener una clave externa que no se corresponda con algún registro de la tabla principal. Las tuplas que contienen claves externas que no tienen una correspondiente clave candidata, se denominan entidades huérfanas. Tres de las formas en las que se pueden crear entidades huérfanas:
Integridad de transaccionesUna transacción es una serie de operaciones sobre la base de datos consideradas como una única operación, de manera que cuando se cierra la transacción la base de datos queda en un estado consistente. Las restricciones de integridad de transacciones gobiernan las formas en que se puede manipular la base de datos. A diferencia de otras restricciones, las restricciones de transacción versan sobre el procesamiento y, por tanto, por sí mismas no son parte del modelo de datos. La base de datos debe respetar todas las restricciones de integridad definidas antes de que comience la transacción y una vez finalizada ésta, aunque se pueden violar temporalmente algunas de las restricciones durante la transacción. Las transacciones pueden involucrar a múltiples registros, múltiples relaciones e incluso múltiples bases de datos. Siendo precisos, todas las operaciones sobre una base de datos son transacciones. Incluso la actualización de un único registro existente es una transacción. Estas transacciones de bajo nivel las realiza el motor de base de datos de forma transparente y, normalmente se puede ignorar este nivel de detalle.
|