solucion integridad de base de datos

21
Integridad de base de datos Presentado por: Alejandra Jiménez Moncada 40130 Presentado a: Sandra rueda Centro de gestión de mercados, logística y tecnologías de la

Upload: alejitha310

Post on 23-Jun-2015

649 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Solucion Integridad de Base de Datos

Integridad de base de datos

Presentado por:

Alejandra Jiménez Moncada

40130

Presentado a:

Sandra rueda

Centro de gestión de mercados, logística y tecnologías de la información

Bogotá 2010

Page 2: Solucion Integridad de Base de Datos

Consulte en el material de apoyo y en la red internet información sobre integridad de datos y resuelva:

1. A qué hace referencia la Integridad de Datos y cuáles son las razones para su adecuada implementación?

El término integridad de datos se refiere a la corrección y completitud de los datos en una base de datos.

Razones:

Asegurar la integridad de los datos Tipos de Dato Definiciones NOT NULL Definiciones DEFAULT Propiedades IDENTITY Restricciones (constraints) Reglas (rules) Desencadenadores Índices

Page 3: Solucion Integridad de Base de Datos

2. Qué propiedades de las tablas permiten asegurar la Integridad de Datos?

Tipos de datos:Tipo de de dato Características

VARCHAR2(tamaño)Almacena cadenas de caracteres de una longitud variable. La longitud máxima son 4000 caracteres.

CHAR(tamaño)Almacena caracteres con una longitud fija. Siendo 2000 caracteres el máximo

NUMBER(precision,escala)

Almacena datos numéricos, tanto enteros como decimales, con o sin signo. Precisión, indica el número máximo de digitos que va a tener el dato. Escala, indica el número de digitos que puede haber a la derecha del punto decimal.

LONGAlmacena cadenas de caracteres de longitud variable. Puede almacenar hasta 2 gigas de información

LONG RAWAlmacena datos binarios. Se emplea para el almacenamiento de gráficos, sonidos, etc. Su tamaño máximo es de 2 gigas

DATE

Almacena información de fechas y horas. De forma predeterminada almacena un dato con el siguiente formato: siglo/año/mes/dia/hora/minutos/segundos. Este formato se puede cambiar con otros parámetros.

RAW(tamaño)Almacena datos binarios. Puede almacenar como mucho 2000 bytes.

ROWIDSe trata de un campo que representa una cadena hexadecimal que indica la dirección de una fila en su tabla

NVARCHAR2(tamaño)Es similar al varchar2 pero el tamaño de un carácter depende de la eleccion del juego de caracteres. El tamaño máximo es 2000 bytes.

NCHAR(tamaño)Similar al char y con las mismas caracteristicas que el nvarchar2

CLOB Similar al LONG y se usua para objectos carácter

NCLOBSimilar al CLOB solo que el tamaño del carácter depende del juego de caracteres utilizado

BLOBSimilar al LONG RAW. Este se usa para objetos binarios.

Definiciones NOT NULL:

Page 4: Solucion Integridad de Base de Datos

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:

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:

Page 5: Solucion Integridad de Base de Datos

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

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

3. Cuáles son los métodos para conseguir la Integridad de Datos? Explíquelos.

Puede conseguir la integridad de los datos mediante dos métodos: integridad de datos declarativa o integridad de datos procedimental.

Integridad de datos procedimental

Page 6: Solucion Integridad de Base de Datos

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.

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.

4. Qué función cumplen las 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.

5. Cuáles son los diferentes tipos de Integridad de datos?

Page 7: Solucion Integridad de Base de Datos

Integridad de dominio:

La integridad de dominio (o columna) especifica un conjunto de valores de datos que son válidos para una columna y determina si se permiten valores nulos. La integridad de dominio se suele implementar mediante el uso de comprobaciones de validez y, también, mediante la restricción del tipo de datos, el formato o el intervalo de los valores posibles permitidos en una columna.

Integridad de entidad:

La integridad de entidad (o tabla) requiere que todas las filas de una tabla tengan un identificador exclusivo, conocido como clave principal. El que se pueda modificar el valor de la clave principal o eliminar la fila entera depende del nivel de integridad requerido entre la clave principal y cualquier otra tabla.

Integridad referencial:

Page 8: Solucion Integridad de Base de Datos

La integridad referencial asegura que siempre se mantienen las relaciones entre las claves principales (en la tabla a la que se hace referencia) y las claves externas (en las tablas que hacen referencia). No se puede eliminar una fila de una tabla a la que se hace referencia, ni se puede modificar la clave principal, si una clave externa hace referencia a la fila, salvo que se permita la acción en cascada. Puede definir relaciones de integridad referencial dentro de la misma tabla o entre tablas diferentes.

6. Asocie en la siguiente tabla las restricciones con su respectiva descripción y cláusula SQL.

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

Page 9: Solucion Integridad de Base de Datos

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.

Clausular SQL

Clausula DescripcionFrom siempre acompañados de tabla

Where Es una condiciónGroup by Este sirve para hacer agrupacionesHaving Este también es una condición

Orden by Este sirve para ordenarInner Join Sirve para hacer consultas

7. Explique el acrónimo CRUD en el contexto de Bases de Datos y qué políticas de garantía de Integridad referencial, se presentan en esas operaciones.

En computación 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 algunos lugares, se utilizan las siglas ABM para lo mismo (Alta Baja

Modificación), obviando la operación de Obtener; el acrónimo ABC para

Altas, Bajas y Cambios; ABML siendo la última letra (L) de listar, listado o

lectura; o ABMC siendo la C de Consulta.

8. Qué es una Transacción en Bases de Datos?

Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un

conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en

forma indivisible o atómica.

Un SGBD se dice transaccional, si es capaz de mantener la integridad de los

datos, haciendo que estas transacciones no puedan finalizar en un estado

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

Page 10: Solucion Integridad de Base de Datos

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.

Un ejemplo de transacción

Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre

cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas,

una en la que se decrementa el saldo de la cuenta origen y otra en la que

incrementamos el saldo de la cuenta destino. Para garantizar la consistencia del

sistema (es decir, para que no aparezca o desaparezca dinero), las dos

operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo

cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o

bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

9. En qué consiste la 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 11: Solucion Integridad de Base de Datos

10.Con qué condición se puede afirmar que un SGBD es transaccional?

Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. 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.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.

Page 12: Solucion Integridad de Base de Datos

Un ejemplo de una transacción más compleja es la transferencia de fondos de una cuenta a otra, la cual implica múltiples operaciones individuales.Si un sistema supera la prueba ACID, significa que es fiable.

Page 13: Solucion Integridad de Base de Datos

 11. A qué hace referencia las expresiones Commit y Rollback.

Commit de dos fases

En interconexión de computadores y Base de datos, el protocolo Commit de dos fases es un algoritmo distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para hacer Commit a una transacción. El resultado del protocolo en que todos los nodos realizan Commit de la transacción o abortan, incluso en el caso de fallos en la red o fallos en nodos. Sin embargo, de acuerdo con el trabajo de Dale Skien y Michael Stonebraker, el protocolo no manejará más que el fallo de un sitio aleatorio a la vez. Las dos fases del algoritmo son la fase de petición de Commit, en el cual el coordinador intenta preparar a todos los demás, y la fase Commit, en la cual el coordinador completa las transacciones a todos los demás participantes.

Page 14: Solucion Integridad de Base de Datos

Commit de tres fases

En redes de ordenadores y Base de datos, el protocolo de Commit de tres fases (3PC) es un algoritmo distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para hacer Commit a una transacción. Al contrario del protocolo de Commit de dos fases (2PC), el 3PC no es bloqueante.Específicamente, 3PC sitúa un límite superior de la cantidad de tiempo requerido antes de que una transacción haga el Commit o aborte. Esta propiedad asegura que si una transacción dada esta intentando hacer Commit vía 3PC y mantiene algún recurso bloqueado (locking), puede liberar los bloqueos después del límite de tiempo (timeout).

Page 15: Solucion Integridad de Base de Datos
Page 16: Solucion Integridad de Base de Datos

12.Con el fin de comprender la importancia de la Integridad de Datos y basados en la explicación dada, realice los siguientes ejercicios de Integridad referencial a partir del estado inicial de la siguiente base de datos, utilice el método Propagar (Cascada):

o BOR(UNIVERSIDAD.NUM=1)o MOD(UNIVERSIDAD.NUM=2,10)o MOD(UNIVERSIDAD.NUM=3,20)o BOR(UNIVERSIDAD.NUM=4)o BOR(DEPARTAMENTO.COD=DLSI,DEPARTAMENTO.U=20)o BOR(PROFESOR.DNI=22444444)o

Estado inicial de la base

Profesor

DNI Nombre

Dpt U

21333333 Juan DLSI 123555555 Pedro DLSI 113666666 María CCIA 131777777 Sonia CCIA 1

Departamento

COD UCCIA 20

Universidad

NUM Nombre10 Javeriana20 Nacional