integridad de datos;base de datos
DESCRIPTION
Breve reseña de la integridad de datos en un una base de datos y sus manejadoresTRANSCRIPT
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
ESCUELA DE COMPUTACIÓN
BASE DE DATOS IV
Trabajo N° 2
Integridad de datos
Alumno:
Gilberto Da Silva
C.I: 18.003.880
Caracas, 27 de abril del 2015
1
Índice
Introducción 03
Reglas de Integridad 04
Regla de integridad de unicidad de la clave primaria 04
Regla de integridad de entidad de la clave primaria 04
Regla de integridad referencial 04
Restricción 05
Actualización en cascada 05
Anulación 05
Regla de integridad de dominio 06
Integridad definida por el usuario 06
Propiedades de las tablas que permiten asegurar la integridad de datos 07
Tipos de Dato 08
Definiciones NOT NULL 08
Definiciones DEFAULT 08
Propiedades IDENTITY 09
Restricciones (constraints) 09
Reglas (rules) 09
Desencadenadores 10
Índices 10
Métodos para conseguir la integridad de datos 11
2
Integridad de datos declarativa 11
Integridad de datos procedimental 11
Función que cumplen las restricciones 12
Tipos de restricciones 12
Restricciones de las tablas con la cláusula sql y su respectiva descripción 14
Acrónimo crud y sus políticas de garantía de integridad referencial 18
Conclusión 19
Bibliografía 20
3
Introducción
El término integridad de datos se refiere a la corrección y complementación de los
datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT,
DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas
maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido
que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo
si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden
perderse debido a un error del sistema o a un fallo en el suministro de energía. Los cambios
pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto
sin ajustar la cantidad disponible para vender.
Una de las funciones importantes de un DBMS relacional es preservar la integridad
de sus datos almacenados en la mayor medida posible.
4
Reglas de Integridad
Regla de integridad de unicidad de la clave primaria
La regla de integridad de unicidad está relacionada con la definición de clave primaria
que establece que toda clave primaria que se elija para una relación no debe tener valores
repetidos por lo que el conjunto de atributos CP es la clave primaria de una relación R,
entonces la extensión de R no puede tener en ningún momento dos tuplas con la misma
combinación deRegla de integridad de entidad de la clave primaria
Regla de integridad de entidad de la clave primaria
La regla de integridad de entidad de la clave primaria dispone que los atributos de la
clave primaria de una relación no pueden tener valores nulos. Esta regla es necesaria para
que los valores de las claves primarias puedan identificar las tuplas individuales de las
relaciones. Si las claves primarias tuviesen valores nulos, es posible que algunas tuplas no se
pudieran distinguir. Un SGBD relacional tendrá que garantizar el cumplimiento de esta regla
de integridad en todas las inserciones y en todas las modificaciones que afecten a atributos
que pertenecen a la clave primaria de la relación.
Regla de integridad referencial
La regla de integridad referencial está relacionada con el concepto de clave foránea,
lo que determina que todos los valores que toma una clave foránea deben ser valores nulos o
valores que existen en la clave primaria que referencia. La necesidad de esta regla es debido
a que las claves foráneas tienen por objetivo establecer una conexión con la clave primaria
que referencian. Si un valor de una clave foránea no estuviese presente.
5
Restricción
La restricción en caso de borrado, consiste en no permitir borrar una tupla si tiene una
clave primaria referenciada por alguna clave foránea y la restricción en caso de modificación
consiste en no permitir modificar ningún atributo de la clave primaria de una tupla si tiene
una clave primaria referenciada por alguna clave foránea.
Actualización en cascada
La actualización en cascada consiste en permitir la operación de actualización de la
tupla, y en efectuar operaciones compensatorias que propaguen en cascada la actualización a
las tuplas que la referenciaban; se actúa de este modo para mantener la integridad referencial.
La actualización en cascada en caso de borrado consiste en permitir el borrado de una tupla
t que tiene una clave primaria referenciada, y borrar también todas las tuplas que referencian
t y la actualización en cascada en caso de modificación consiste en permitir la modificación
de atributos de la clave primaria de una tupla t que tiene una clave primaria referenciada, y
modificar del mismo modo todas las tuplas que referencian t.
Anulación
La anulación consiste en permitir la operación de actualización de la tupla y en
efectuar operaciones compensatorias que pongan valores nulos a los atributos de la clave
foránea de las tuplas que la referencian; esta acción se lleva a cabo para mantener la
integridad referencial. Los SGBD relacionales permiten establecer que un determinado
atributo de una relación no admite valores nulos, sólo se puede aplicar la política de anulación
si los atributos de la clave foránea sí los admiten. Más concretamente, la anulación en caso
de borrado consiste en permitir el borrado de una tupla t que tiene una clave referenciada y,
además, modificar todas las tuplas que referencian t, de modo que los atributos de la clave
foránea correspondiente tomen valores nulos y la anulación en caso de modificación consiste
en permitir la modificación de atributos de la clave primaria de una tupla t que tiene una clave
6
referenciada y, además, modificar todas las tuplas que referencian t, de modo que los
atributos de la clave foránea correspondiente tomen valores nulos.
Regla de integridad de dominio
La regla de integridad de dominio está relacionada con la noción de dominio. Esta
regla establece dos condiciones.
La primera condición consiste en que un valor no nulo de un atributo Ai debe
pertenecer al dominio del atributo Ai; es decir, debe pertenecer a dominio(Ai). Esta
condición implica que todos los valores no nulos que contiene la base de datos para
un determinado atributo deben ser del dominio declarado para dicho atributo.
La segunda condición sirve para establecer que los operadores que pueden aplicarse
sobre los valores dependen de los dominios de estos valores; es decir, un operador
determinado sólo se puede aplicar sobre valores que tengan dominios que le sean
adecuados. valores para los atributos de CP.
Integridad definida por el usuario
La integridad definida por el usuario permite definir reglas de empresa específicas
que no pertenecen a ninguna otra categoría de integridad. Todas las categorías de integridad
admiten la integridad definida por el usuario. Esto incluye todas las restricciones de nivel de
columna y nivel de tabla en CREATE TABLE, procedimientos almacenados y
desencadenadores.
Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos:
1. Las restricciones de integridad de usuario: son condiciones específicas de una base
de datos concreta; son las que se deben cumplir en una base de datos articular con
unos usuarios concretos, pero que no son necesariamente relevantes en otra Base de
Datos.
7
2. Las reglas de integridad de modelo: son condiciones propias de un modelo de datos,
y se deben cumplir en toda base de datos que siga dicho modelo.
Los SGBD deben proporcionar la forma de definir las restricciones de integridad de
usuario de una base de datos y una vez definida, debe velar por su cumplimiento. Las reglas
de integridad del modelo, en cambio, no se deben definir para cada base de datos concreta,
porque se consideran preestablecidas para todas las base de datos de un modelo. Un SGBD
de un modelo determinado debe velar por el cumplimiento de las reglas de integridad
preestablecidas por su modelo.
Propiedades de las tablas que permiten asegurar la integridad de datos
Asegurar la integridad de los datos garantiza la calidad de los datos. Por ejemplo, suponga
que Ud. crea la tabla Clientes en su base de datos. Los valores en la columna Cliente_ID
deberían identificar unívocamente a cada cliente que es ingresado a la tabla. Como resultado,
si un cliente tiene un Cliente_ID de 438, ningún otro cliente debería tener el valor Cliente_ID
en 438. Luego, suponga que se ha creado una columna Cliente_Eval que es utilizada para
evaluar a cada cliente con una calificación de 1 a 8. En este caso, la columna Cliente_Eval
no deberá aceptar un valor de 9 o cualquier otro valor que no esté entre 1 y 8. En ambos
casos, se deben usar métodos soportados por SQL Server para asegurar la integridad de los
datos.
SQL Server soporta varios métodos para asegurar la integridad de los datos, que incluyen:
tipos de dato, definiciones NOT NULL, definiciones DEFAULT, propiedades IDENTITY,
restricciones, reglas, desencadenadores e índices. Ya se han visto algunos de estos métodos.
Un breve resumen de ellos es incluido aquí a fin de mostrar una visión comprehensiva de los
distintos modos de asegurar la integridad de los datos. Algunas de esta propiedades de la
tablas, tales como las definiciones NOT NULL y DEFAULT, son a veces consideradas tipos
de restricciones. Para los propósitos de este Kit, sin embargo, son tratadas de forma separada.
8
Tipos de Dato
Un tipo de dato es un atributo que especifica el tipo de dato (carácter, entero, binario,
etc.) que puede ser almacenado en una columna, parámetro o variable. SQL Server provee
de un conjunto de tipos de dato, aún cuando se pueden crear tipos de dato definidos por el
usuario que se crean sobre la base de tipos de dato provisto por el SQL Server. Los tipos de
dato provistos por el sistema definen todos los tipos de dato que se pueden usar en SQL
Server. Los tipos de dato pueden ser utilizados para asegurar la integridad de los datos porque
los datos ingresados o modificados deben cumplir con el tipo de dato especificado para el
objeto correspondiente. Por ejemplo, no se puede almacenar el nombre de alguien en una
columna con un tipo de dato datetime, ya que esta columna solo aceptará valores válidos de
fecha y hora.
Definiciones NOT NULL
La anulabilidad de una columna determina si las filas en la tabla pueden contener valores
nulos para esa columna. Un valor nulo no es lo mismo que un cero, un blanco o una cadena
de caracteres de longitud cero. Un valor nulo significa que no se ha ingresado ningún valor
para esa columna o que el valor es desconocido o indefinido. La anulabilidad de una columna
se define cuando se crea o se modifica una tabla. Si se usan columnas que permiten o no
valores nulos, se debería usar siempre las cláusula NULL y NOT NULL dada la complejidad
que tiene el SQL Server para manejar los valores nulos y no prestarse a confusión. La cláusula
NULL se usa si se permiten valores nulos en la columna y la cláusula NOT NULL si no.
Definiciones DEFAULT
Los valores por defecto indican que valor será guardado en una columna si no se
especifica un valor para la columna cuando se inserta una fila. Las definiciones DEFAULT
pueden ser creadas cuando la tabla es creada (como parte de la definición de la tabla) o
pueden ser agregadas a una tabla existente. Cada columna en una tabla puede contener una
sola definición DEFAULT.
9
Propiedades IDENTITY
Cada tabla puede tener sólo una columna de identificación, la que contendrá una
secuencia de valores generados por el sistema que unívocamente identifican a cada fila de la
tabla. Las columnas de identificación contienen valores únicos dentro de la tabla para la cual
son definidas, no así con relación a otras tablas que pueden contener esos valores en sus
propias columnas de identificación. Esta situación no es generalmente un problema, pero en
los casos que así lo sea (por ejemplo cuando diferentes tablas referidas a una misma entidad
conceptual, como ser clientes, son cargadas en diferentes servidores distribuidos en el mundo
y existe la posibilidad que en algún momento para generar reporte o consolidación de
información sean unidas) se pueden utilizar columnas ROWGUIDCOL como se vio
anteriormente.
Restricciones (constraints)
Las restricciones permiten definir el modo en que SQL Server automáticamente fuerza la
integridad de la base de datos. Las restricciones definen reglas indicando los valores
permitidos en las columnas y son el mecanismo estándar para asegurar integridad. Usar
restricciones es preferible a usar desencadenadores, reglas o valores por defecto. El query
optimizer (optimizador de consultas) de SQL Server utiliza definiciones de restricciones para
construir planes de ejecución de consultas de alto rendimiento.
Reglas (rules)
Las reglas son capacidades mantenidas por compatibilidad con versiones anteriores de
SQL Server, que realizan algunas de las mismas funcionalidades que las restricciones
CHECK. Las restricciones CHECK son el modo preferido y estándar de restringir valores
para una columna. Las restricciones CHECK, por otro lado, son mas concisas que las reglas;
se puede aplicar solo una regla por columna mientras que se pueden aplicar múltiples
restricciones CHECK. Las restricciones CHECK son especificadas como parte del comando
10
CREATE TABLE, mientras que las reglas son creadas como objetos separados y luego
vinculadas a la columna.
Se utiliza el comando CREATE RULE para crear una regla, y luego se debe utilizar el
procedimiento almacenado sp_bindrule para vincular la regla a una columna o a un tipo de
dato definido por el usuario.
Desencadenadores
Los desencadenadores son una clase especial de procedimientos almacenados que son
definidos para ser ejecutados automáticamente cuando es ejecutado un comando UPDATE,
INSERT o DELETE sobre una tabla o una vista. Los desencadenadores son poderosas
herramientas que pueden ser utilizados para aplicar las reglas de negocio de manera
automática en el momento en que los datos son modificados. Los desencadenadores pueden
comprender el control lógico que realizan loas restricciones, valores por defecto, y reglas de
SQL Server (aún cuando es recomendable usar restricciones y valores por defecto antes que
desencadenadores en la medida que respondan a todas las necesidades de control de
integridad de datos).
Índices
Un índice es una estructura que ordena los datos de una o más columnas en una tabla de
base de datos. Un índice provee de punteros a los valores de los datos almacenados en
columnas especificadas de una tabla y luego ordena esos punteros de acuerdo al orden que
se especifique. Las bases de datos utilizan los índices del mismos modo que se utilizan los
índices de un libro: se busca en el índice para encontrar un determinado valor y luego se sigue
un puntero a la fila que contiene ese valor. Un índice con clave única asegura la unicidad en
la columna.
11
Métodos para conseguir la integridad de datos
Métodos para conseguir la Integridad de los Datos:
Puede conseguir la integridad de los datos mediante dos métodos: integridad de datos
declarativa o integridad de datos procedimental.
Integridad de datos declarativa
Con la integridad declarativa, se definen los criterios que los datos tienen que cumplir
como parte de la definición de un objeto y, después, Microsoft® SQL Server™ versión 2000
asegura automáticamente que los datos cumplan dichos criterios. El método preferido para
implementar la integridad de datos básica es la integridad declarativa. Tenga en cuenta los
hechos siguientes acerca del método declarativo:
La integridad declarativa se declara como parte de la definición de la base de datos,
mediante el uso de restricciones declarativas que se definen directamente en las tablas
y las columnas.
Implemente la integridad declarativa mediante la utilización de restricciones, valores
predeterminados y reglas.
Integridad de datos procedimental
Con la integridad procedimental se escriben secuencias de comandos que definen los
criterios que los datos tienen que cumplir y que aseguran que dichos criterios se cumplen.
Debe limitar el uso de la integridad procedimental a situaciones excepcionales y a aquellas
con una lógica complicada. Por ejemplo, utilice la integridad procedimental cuando desee
implementar una eliminación en cascada. Los hechos siguientes se aplican a la integridad
procedimental:
12
o La integridad procedimental se puede implementar en el cliente o en el
servidor mediante otros lenguajes y herramientas de programación.
o Implemente la integridad procedimental utilizando desencadenadores y
procedimientos almacenados.
Función que cumplen las restricciones
Tipos de restricciones
Las restricciones son un método estándar ANSI para implementar la integridad de los
datos. Cada tipo de integridad de datos (dominio, entidad y referencial) se implementa con
tipos de restricciones diferentes. Las restricciones aseguran que los datos que se escriben en
las columnas sean válidos y que se mantengan las relaciones entre las tablas.
TIPO DE
INTEGRIDAD
TIPO DE RESTRICCIÓN
DESCRIPCIÓN
Dominio
DEFAULT
Especifica el valor que se proporciona para la columna cuando no se especifica explícitamente en una instrucción INSERT.
CHECK
Especifica los valores de los datos que se aceptan en una columna.
REFERENTIAL
Especifica los valores de datos que se aceptan como actualización en función de los valores de una columna de otra tabla.
13
Entidad
PRIMARY KEY
Identifica de forma exclusiva cada una de las filas; asegura que los usuarios no escriban valores duplicados y que se cree un índice para aumentar el rendimiento. No se permiten valores nulos.
UNIQUE
Impide la duplicación de claves alternativas (no principales) y asegura que se cree un índice para aumentar el rendimiento. Se permiten valores nulos.
Referencial
FOREIGN KEY
Define una columna o combinación de columnas cuyos valores coinciden con la clave principal de la misma u otra tabla.
CHECK
Especifica los valores de los datos que se aceptan en una columna en función de los valores de otras columnas de la misma tabla.
14
Restricciones de las tablas con la cláusula sql y su respectiva descripción
15
16
17
18
Acrónimo crud y sus políticas de garantía de integridad referencial
CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (Create, Retrieve,
Update y Delete en inglés). Es usado para referirse a las funciones básicas en bases de datos
o la capa de persistencia en un sistema de software.
En las políticas de integridad referencial se encuentran las opciones de:
Anular: Los valores de clave ajena afectados.
Propagar: La operación completa.
Rechazar: La operación a las referencias afectadas.
19
Conclusión
La integridad de base de datos se refiere a la corrección y completitud de los datos en
una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o
UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras
diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que
especifica un producto no existente.
Los SGBD relacional deben encargarse de mantener la integridad de los datos
almacenados en una base de datos con respecto a las reglas predefinidas o restricciones. La
integridad también puede verificarse inmediatamente antes del momento de introducir los
datos a la base de datos (por ejemplo, en un formulario empleando validación de datos).
Un claro ejemplo de error de integridad es el ingreso de un tipo de dato incorrecto
dentro de un campo. Por ejemplo, ingresar un texto cuando se espera un número entero.
Una de las funciones importantes de un DBMS relacional es preservar la integridad
de sus datos almacenados en la mayor medida posible.
20
Bibliografía
1. https://technet.microsoft.com/es-es/library/ms184276(v=sql.105).aspx
2. https://msdn.microsoft.com/es-es/library/aa291812(v=vs.71).aspx
3. https://technet.microsoft.com/es-es/library/ms184276(v=sql.105).aspx
4. http://www.monografias.com/trabajos19/administracion-base-datos/administracion-
base-datos.shtml