0% encontró este documento útil (0 votos)
53 vistas9 páginas

Integridad en Las Bases de Datos

La integridad en bases de datos asegura la corrección y exactitud de la información mediante restricciones que controlan los valores y operaciones permitidas. Existen reglas de integridad, como la de entidad y referencial, que deben cumplirse para mantener la calidad de los datos. Además, se utilizan mecanismos como tipos de datos, restricciones y vistas para garantizar la integridad y seguridad en el acceso a la información.

Cargado por

Juan Perozo
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
53 vistas9 páginas

Integridad en Las Bases de Datos

La integridad en bases de datos asegura la corrección y exactitud de la información mediante restricciones que controlan los valores y operaciones permitidas. Existen reglas de integridad, como la de entidad y referencial, que deben cumplirse para mantener la calidad de los datos. Además, se utilizan mecanismos como tipos de datos, restricciones y vistas para garantizar la integridad y seguridad en el acceso a la información.

Cargado por

Juan Perozo
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Integridad en las bases de datos

 Definición de Integridad

La integridad en una base de datos se refiere a la corrección y exactitud de la


información contenida. Una base de datos determinada podría estar sujeta a cualquier
cantidad de restricciones de integridad (en general) de una complejidad arbitraria. En la
mayoría de los sistemas actuales, la verificación de la integridad se realiza mediante
códigos de procedimientos escritos por los usuarios.

Algunos ejemplos de restricciones de integridad serían: 

 Los dueños de cuentas de ahorro no pueden solicitar un monto mayor de dinero


del que hayan juntado hasta la fecha.
 Para que un cliente sea considerado especial, deberá tener un mínimo de USD
1.000 en compras promedio al año.
 

La Integridad es el término utilizado para decir que la información almacenada tiene


calidad. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las
políticas previamente determinadas por el DBA. En otras palabras, el DBMS debe
principalmente, a este respecto, comprobar las restricciones de integridad, controlar la
correcta ejecución de las actualizaciones y recuperar la base de datos en caso de
pérdida.

La Integridad conserva la seguridad en un sistema de bases de datos que permite el


acceso a múltiples usuarios en tiempos paralelos.

Un control de integridad o restricción es aquel que nos permite definir con precisión el


rango de valores válidos para un elemento y/o las operaciones que serán
consideraciones válidas en la relación de tales elementos.
 

Reglas de Integridad
Una vez definida la estructura de datos del modelo relacional (es decir, una vez que se
determina el modelo conceptual) pasamos a estudiar las reglas de integridad que los
datos almacenados en dicha estructura deben cumplir para garantizar que son correctos.

Al definir cada atributo sobre un dominio se impone una restricción sobre el conjunto de
valores permitidos para cada atributo. A este tipo de restricciones se les
denomina restricciones de dominio. Hay además dos reglas de integridad muy
importantes que son restricciones que se deben cumplir en todas las bases de datos
relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el
tiempo). Estas reglas son la de integridad de entidades y la de integridad referencial.
Antes de definirlas es preciso conocer el concepto de nulo  y dominio.
Nulo: Es un indicador que le dice al usuario que el dato falta o no es aplicable. Por
conveniencia, un dato que falta normalmente se dice que tiene valor Nulo, pero el valor
de Nulo no es un valor de dato real. En vez de ello es una señal o un recordatorio de que
el valor falta o es desconocido.

Dominio: Posibles valores que puede tener un campo. Un dominio no es más que un
tipo de dato; posiblemente un tipo simple definido por el sistema o por el usuario. El
Dominio de un atributo define los valores posibles que puede tomar este atributo.
Además de los Dominios "naturales", usados como tipos de datos, el administrador del
sistema puede generar sus propios dominios definiendo el conjunto de valores
permitidos. Esta característica, usada en forma correcta, se convierte en mecanismo de
control, restricción y validación de los datos a ingresar.

Reglas de Integridad - Dominio


Un Dominio de valores posibles puede estar asociado a cada atributo. Los límites de
Dominio son la forma más elemental de restricciones de Integridad. Son fáciles de
probar en el sistema siempre que se introduce un nuevo dato en el sistema.

Por ejemplo:

Tipos de datos en SQL


Dato Longitud Descripción
Bit 1 byte Valores true/false

Byte 1 byte Entero entre 0 y 255

Counter 4 bytes Campo ID (long)

Currency 8 bytes Numérico

Datetime 8 bytes Fecha

Text 1 byte/carácter De 0 a 255 caracteres

Una definición bien adecuada de restricciones de dominio no sólo nos permite probar
valores insertados en la base de datos. También nos permite probar consultas para
asegurarnos de que las comparaciones que se hacen tienen sentido.

 
Reglas de Integridad - Relación
Las reglas de Integridad de relación son restricciones que se deben cumplir en todas las
bases de datos relacionales y en todos sus estados o instancias, es decir, se deben
cumplir todo el tiempo.

Existen básicamente dos reglas de Integridad asociadas con el modelo relacional:


la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales y
tienen relación con las llaves primarias y foráneas.
Integridad de Entidad
Las 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".

En esta no está permitido que algún componente de la clave primaria acepte valores
nulos.

Las razones de esta regla son: 

 Las tuplas en las relaciones base representan entidades en la realidad.


 Las entidades en la realidad son identificables por definición.
 Sus contrapartes en la base de datos también deben ser identificables.
 Los valores de la clave primaria sirven como identificadores en la base de datos.
 Los valores de clave primaria no pueden ser nulos.
 

Integridad Referencial
La regla de Integridad referencial define que la base de datos no debe contener valores
de claves foráneas sin concordancia.

Esta regla se aplica a las claves foráneas. Si en una relación hay alguna clave foránea,
entonces sus valores deben coincidir con los valores de la clave primaria a la que hace
referencia, o bien, debe ser completamente nulo.

Esta regla impide que, por ejemplo, en una base de datos académica, exista un profesor
en un departamento inexistente, o un curso impartido por un profesor inexistente.
Hemos de recordar que sólo los productos puramente relacionales implementan
realmente estas dos reglas generales de Integridad relacional. En otros, destinados al
mercado doméstico (un Microsoft Access por ejemplo), estas incongruencias son
admitidas sin problemas.

Así que cuando se realiza una operación ilegal, existen dos opciones: rechazar la
operación ilegal o bien aceptar la operación y realizar operaciones adicionales
compensatorias que conduzcan a volverla legal.
Por lo tanto, para cada clave foránea en la base de datos habrá que contestar a dos
preguntas: 

1. Regla de los nulos: ¿tiene sentido que la clave foránea acepte nulos?
2. Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la
clave foránea?
 Restringir: no se permite borrar la tupla referenciada.
 Propagar: se borra la tupla referenciada y se propaga el borrado a las
tuplas que hacen referencia mediante la clave foránea.
 Anular: se borra la tupla referenciada y las tuplas que la referenciaban
indicando un valor nulo a la clave foránea (sólo si acepta nulos).
 

La Integridad referencial también vigila que se cumplan las siguientes reglas: 

 No se podrá introducir un valor en la tabla relacionada si antes no ha sido


introducida en la tabla principal.
 No se puede eliminar un registro de una tabla principal si existen registros
coincidentes en la tabla relacionada.
 No se puede cambiar un valor de la clave primaria en la tabla principal si el
registro tiene registros relacionados.
 

Mecanismos de Vistas para la implementación de Integridad


Las vistas son expresiones del álgebra relacional con un nombre determinado. En otras
palabras, una vista es una ventana a través de la cual se puede consultar o cambiar
información de la tabla a la que está asociada. Esto, claro está, en relación con los
privilegios que posea el usuario de la base de datos. Si el usuario solamente tiene
privilegios de lectura en una entidad, en la vista tampoco podrá agregar o modificar
información; si el usuario no tiene acceso a determinadas tablas, tampoco podrá crear
una vista con información proveniente de las mismas.

Las vistas tienen la misma estructura que una tabla: filas y columnas. La única
diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se
recuperan mediante una consulta en una vista se presentarán igual que los de una tabla.
De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que es
así. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y
seleccionar datos.

Esto significa que una vista no contiene datos duplicados de una tabla de la base de
datos. No tiene absolutamente ningún dato, pues como ya se mencionaba, no es una
tabla real. Es decir, se percibe como una tabla virtual.
¿Por qué utilizar vistas?
 Las vistas pueden proporcionar un nivel adicional de seguridad.
 Las vistas permiten ocultar la complejidad de los datos. Una base de datos se
compone de muchas tablas. La información de dos o más tablas puede
recuperarse utilizando una combinación de tablas, y estas combinaciones pueden
resultar muy confusas. Creando una vista se hace visualmente todo más simple.
 Las vistas ayudan a mantener unos nombres razonables para las consultas. Por
ejemplo, en lugar de la instrucción:
 

Select  Clave, Nombre, Ciudad from Vendedores where Venta > 100000
 
            Se utiliza sólo la frase: Buen_Vendedor
 En las vistas remotas y en las vistas sin conexión puede crear reglas a nivel de
campo y de registro para validar datos introducidos localmente antes de
enviarlos al origen de datos remoto. Puesto que el objetivo de estas reglas es
impedir que se envíe al origen de datos cualquier dato que pueda ser rechazado
por las reglas de Integridad del servidor, debe reproducir las reglas del origen de
datos en las reglas que se crean para la vista remota. Por ejemplo, si la clave de
un vendedor está formada por cuatro dígitos y así lo establecen las restricciones
de Integridad de la tabla Vendedores, entonces en la vista, cuando un vendedor
se dé de alta, también se deberá cumplir con esa restricción.
 

Existen funciones en los DBMS para crear reglas para las vistas, y es precisamente así
como una vista puede implementarse para garantizar la Integridad de la base de datos;
también, mediante las vistas, es posible determinar si existen datos referenciados que
pudieran comprometer la Integridad relacional.

Las reglas de integridad tienen como propósito informar al DBMS de ciertas


restricciones en el modulo real para que pueda impedir la ocurrencia de tales
configuraciones imposibles de valores.

La mayor parte de las DB estarán sujetas a un gran número de tales reglas de integridad.
La mayor parte de las reglas de integridad son específicas, en cuanto a que se aplican a
una BD especifica. El modelo relacional, en cambio, incluye dos reglas generales de
integridad, estas reglas se refieren a las claves primarias y claves ajenas.

Algunos otros comentarios introductorios antes de entrar en detalles:


1.- Cabe señalar que todas las reglas de integridad, tanto las especificas como las
generales se aplican a las relaciones base. Esto se debe a que son estas las que
supuestamente reflejan la realidad y por tanto son estas las que tienen la restriccion de
contener solo configuraciones correctas de valores.
2. No se incluyen explicitamente reglas especificas con respecto a una BD en el modelo
relacional tal como se define en la referencia

3. Se acostumbra llamar reglas a las dos reglas grales. de integridad. Sin embargo,
habria que llamarlas meta-reglas.

4. También se acostumbra decir que el modelo relacional tiene 2 reglas generales de


integridad, no obstante seria más apropiado decir que tiene 3.

Asegurar la integridad de los 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.

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.

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 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).

Indices

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.

También podría gustarte