GUIA1 Integridad de Datos

27
CENTRO DE GESTIÓN DE MERCADOS, LOGÍSTICA Y TECNOLOGÍAS DE LA INFORMACIÓN ANÁLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIÓN Módulo Desarrollo.NET GUÍA DE APRENDIZAJE No. 1 Presentado a: Sandra Rueda Instructor Presentado por: Ginna Marcela Tapiero Rodríguez Yessica Yubely Rodríguez Villarraga

Transcript of GUIA1 Integridad de Datos

Page 1: GUIA1 Integridad de Datos

CENTRO DE GESTIÓN DE MERCADOS, LOGÍSTICA Y TECNOLOGÍAS DE LA INFORMACIÓN

ANÁLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIÓN

MóduloDesarrollo.NET      GUÍA DE APRENDIZAJE No. 1

    Presentado a: Sandra RuedaInstructor

    Presentado por:Ginna Marcela Tapiero Rodríguez Yessica Yubely Rodríguez Villarraga

  Orden:40130

Page 2: GUIA1 Integridad de Datos

INTEGRIDAD DE DATOS Y SUS RAZONES PARA SU ADECUADA IMPLEMENTACIÓN

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.

Page 3: GUIA1 Integridad de Datos

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.

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

Page 4: GUIA1 Integridad de Datos

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

Page 5: GUIA1 Integridad de Datos

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.

Page 6: GUIA1 Integridad de Datos

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:

La integridad procedimental se puede implementar en el cliente o en el servidor mediante otros lenguajes y herramientas de programación.

Implemente la integridad procedimental utilizando desencadenadores y procedimientos almacenados.

Page 7: GUIA1 Integridad de Datos

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.

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

Page 8: GUIA1 Integridad de Datos

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.

Page 9: GUIA1 Integridad de Datos

TIPOS DE INTEGRIDAD DE DATOS

Tipos de integridad de datos

SQL Server soporta cuatro tipos de integridad de datos: integridad de entidad, integridad de dominio, integridad referencial e integridad definida por el usuario.

Integridad de entidad

La integridad de entidad define una fila como una única instancia de una entidad para una tabla en particular. La integridad de entidad asegura la integridad de la columna de identificación o la clave primaria de una tabla ( a través de índices, estricciones UNIQUE, restricciones PRIMARY KEY, o propiedades IDENTITY).

Integridad de dominio

La integridad de dominio es la validación de las entradas en una determinada columna. Se puede asegurar la integridad de dominio restringiendo el tipo (a través de tipos de datos), el formato (a través de las restricciones CHECK y de las reglas), o el rango de valores posibles ( a través de restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL, y reglas)

Integridad referencial

La integridad referencial preserva las relaciones definidas entre tablas, cuando se entran, modifican o borran registros. En SQL Server, la integridad referencial esta basada en interrelaciones entre claves ajenas y claves primarias o entre claves ajenas y claves únicas (a través de la restricciones FOREIGN KEY  y CHECK). La integridad referencial asegura que los valores de las claves son consistentes a través de distintas tablas. Tal consistencia requiere que no existan referencia a valores inexistentes y que, si un valor clave cambia, todas las referencias cambien consistentemente a lo largo de la base de datos.

Cuando se fuerza la integridad referencial, SQL Server previene a los usuarios de realizar lo siguiente:

·        Agregar registros a una tabla relacionada si no hay registros asociados en la correspondiente tabla primaria.

·        Cambiar valores en la tabla primaria que resulten en registros huérfanos en las tablas relacionadas.

Page 10: GUIA1 Integridad de Datos

RESTRICCIONES DE LAS TABLAS CON LA CLAUSULA SQL Y SU RESPECTIVA DESCRIBCIÓN

Page 11: GUIA1 Integridad de Datos

ACRONIMO CRUD Y SUS POLITICAS DE GARANTIA 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 la opciones de:

Anular: Los valores de clave ajena afectados.Propagar: La operación completa.Rechazar: La operación a las referencias afectadas.

Page 12: GUIA1 Integridad de Datos

TRANSACCION EN BASES DE DATOS

Son las ordenes que se ejecutan o el conjunto de las mismas formando una unidad de trabajo, es decir, en forma indivisible o atómica.

Cuando un sistema de gestión de bases de datos es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Se denominan transaccionales.

Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.

Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.

BEGIN TRAN: Especifica que va a empezar una transacción. COMMIT TRAN: Le indica al motor que puede considerar la transacción

completada con éxito. ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe

restablecer la base al punto de integridad.

En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.

Page 13: GUIA1 Integridad de Datos

Prueba ACID

En bases de datos se denomina ACID a un conjunto de características necesarias para que una serie de instrucciones puedan ser consideradas como una transacción. Así pues, si un sistema de gestión de bases de datos es ACID compliant quiere decir que el mismo cuenta con las funcionalidades necesarias para que sus transacciones tengan las características ACID.

En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.

Page 14: GUIA1 Integridad de Datos

CONDICIÓN CON LA QUE SE PUEDE AFIRMAR QUE UN SGBD ES TRANSACCIONAL

La condición es que si un sistema gestor de bases de datos es capaz de mantener la integridad de los datos es decir que las interrelaciones entre los registros se mantengan coherentes y que se respetan las dependencias de existencia y que las claves únicas no se repitan. Haciendo que las transacciones no puedan finalizar en un estado intermedio. Esta es la condición para afirmar que el SGBD es transaccional.

Page 15: GUIA1 Integridad de Datos

EXPRESIONES COMMIT Y ROLLBACK.

COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.

ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.

Page 16: GUIA1 Integridad de Datos

12

UNIVERSIDADNUM NOMBRE1 ALICANTE2 POLITECNICA VALENCIA3 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U21333333 RENATA DLSI 1 122444444 FLOR DLSI 2 223555555 ABUNDIO DLSI 1 113666666 SEGISMUNDO CCIA 1 131777777 YENIPHER CCIA 1 1

DEPARTAMENTOCOD UDLSI 1 1DLSI 2 2DLSI 3 3CCIA 1 1

BOR(UNIVERSIDAD.NUM=1)

UNIVERSIDADNUM NOMBRE2 POLITECNICA VALENCIA3 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 2

Page 17: GUIA1 Integridad de Datos

DEPARTAMENTOCOD UDLSI 2DLSI 3

MOD(UNIVERSIDAD.NUM=2,10)

UNIVERSIDADNUM NOMBRE2 POLITECNICA VALENCIA3 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 2 2

DEPARTAMENTOCOD UDLSI 2DLSI 3

MOD(UNIVERSIDAD.NUM=2,10)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA3 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

Page 18: GUIA1 Integridad de Datos

DEPARTAMENTOCOD UDLSI 10DLSI 3

MOD(UNIVERSIDAD.NUM=3,20)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA3 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

DEPARTAMENTOCOD UDLSI 10DLSI 3

MOD(UNIVERSIDAD.NUM=3,20)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

Page 19: GUIA1 Integridad de Datos

DEPARTAMENTOCOD UDLSI 10DLSI 20

BOR(UNIVERSIDAD.NUM=4)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I4 CARLOS III

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

DEPARTAMENTOCOD UDLSI 10DLSI 20

BOR(UNIVERSIDAD.NUM=4)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

Page 20: GUIA1 Integridad de Datos

DEPARTAMENTOCOD UDLSI 10DLSI 20

BOR(DEPARTAMENTO.COD=DLSI,DEPARTAMENTO.U=20)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

DEPARTAMENTOCOD UDLSI 10DLSI 20

BOR(DEPARTAMENTO.COD=DLSI,DEPARTAMENTO.U=20)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

Page 21: GUIA1 Integridad de Datos

DEPARTAMENTOCOD UDLSI 10

BOR(PROFESOR.DNI=22444444)

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I

PROFESORDNI NOMBRE DEPARTAMENTO U22444444 FLOR DLSI 10

DEPARTAMENTOCOD UDLSI 10

UNIVERSIDADNUM NOMBRE10 POLITECNICA VALENCIA20 JAUME I

PROFESORDNI NOMBRE DEPARTAMENTO U

DEPARTAMENTOCOD UDLSI 10

Page 22: GUIA1 Integridad de Datos