Está en la página 1de 17

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

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


Datos?

 Tipos de datos:
Tipo de de dato Características
Almacena cadenas de caracteres de una longitud
VARCHAR2(tamaño)
variable. La longitud máxima son 4000 caracteres.
Almacena caracteres con una longitud fija. Siendo
CHAR(tamaño)
2000 caracteres el máximo
Almacena datos numéricos, tanto enteros como
decimales, con o sin signo. Precisión, indica el número
NUMBER(precision,escala) 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.
Almacena cadenas de caracteres de longitud variable.
LONG
Puede almacenar hasta 2 gigas de información
Almacena datos binarios. Se emplea para el
LONG RAW almacenamiento de gráficos, sonidos, etc. Su tamaño
máximo es de 2 gigas
Almacena información de fechas y horas. De forma
predeterminada almacena un dato con el siguiente
DATE
formato: siglo/año/mes/dia/hora/minutos/segundos.
Este formato se puede cambiar con otros parámetros.
Almacena datos binarios. Puede almacenar como
RAW(tamaño)
mucho 2000 bytes.
Se trata de un campo que representa una cadena
ROWID hexadecimal que indica la dirección de una fila en su
tabla
Es similar al varchar2 pero el tamaño de un carácter
NVARCHAR2(tamaño) depende de la eleccion del juego de caracteres. El
tamaño máximo es 2000 bytes.
Similar al char y con las mismas caracteristicas que el
NCHAR(tamaño)
nvarchar2
CLOB Similar al LONG y se usua para objectos carácter
NCLOB Similar al CLOB solo que el tamaño del carácter
depende del juego de caracteres utilizado
Similar al LONG RAW. Este se usa para objetos
BLOB
binarios.

 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:

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:

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

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?

 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:

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 Tipo de restricción Descripción


integridad

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.

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 Descripcion
From siempre acompañados de tabla
Where Es una condición
Group by Este sirve para hacer agrupaciones
Having Este también es una condición
Orden by Este sirve para ordenar
Inner 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
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.

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.
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.
 
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.
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).
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 1
23555555 Pedro DLSI 1
13666666 María CCIA 1
31777777 Sonia CCIA 1

Departamento

COD U
CCIA 20

Universidad

NUM Nombre
10 Javeriana
20 Nacional

También podría gustarte