Capítulo 1 Principios de bases de datos

Anuncio
Universidad Nacional de Costa Rica – Diseño e Implementación de Bases de Datos
Un enfoque formal a las Bases de Datos… Desde lo relacional hasta lo objeto relacional
Capítulo 1
Principios de bases de datos
SOBRE EL CONCEPTO DE LOS DATOS Y BASE DE DATOS
Las personas utilizan la palabra “datos” diariamente, para expresar una unidad
atómica de información, por ejemplo el número 4 representa un dato, el cual por sí
mismo no significa absolutamente nada. Cuando al número 4 se le endosa una unidad
entonces decimos que es información útil. Por ejemplo, para el humano decir 4 años
tiene más sentido que decir tiene 4… ¿Qué? Las bases de datos son excelentes formas
de almacenar datos (no información, pues la información supone conocimiento del
tema). Se define una base de datos como “un conjunto de datos organizado que
guardan relación entre ellos”.
SOBRE LAS BASES DE DATOS
Un Sistema Gestor de Bases de Datos, es en un sentido purista una aplicación que
administra un conjunto de datos; sin embargo esa definición no es suficiente para
explicar que es una base de datos. Como programador usted crear una base de datos
desde cero, sin embargo es impráctico para los profesionales invertir grandes
cantidades de recursos creando su propia base de datos, en vez de utilizar alguna
opción libre. A estos programas que administran las bases de datos se les llaman
Sistemas Gestores de Bases de Datos (SGBD). Para considerar que un SGBD es un
buen gestor debe de tener las siguientes características:
Atomicidad es la característica que describe las transacciones en donde se tiene que
dar el “todo o nada”. Supongamos un programa para transferencias monetarias,
ahora supongamos que dicho programa usa una base de datos para quitar dinero de
una cuenta y ponerle dinero a otra cuenta. Si durante el proceso de quitarle dinero a
la primera cuenta, la base de datos cae por determinada falla, es tarea del SGBD
abortar todo proceso involucrado y deshacer los cambios. De esta forma se mantiene
el todo y la parte. Si la transacción fuera exitosa entonces se dice que la base de datos
está en un estado consistente1.
Consistencia como producto de transacciones atómica, una base de datos deber
estar siempre (o en algún momento en el tiempo, en el caso de las replicaciones) en
un estado consistente. Es decir, todos los datos de la base tienen un estado apropiado.
Además de las transacciones atómicas es posible llegar a la consistencia mediante
reglas, constraints, cascades y triggers.
Isolation (aislamiento) tiene relaciones a la teoría de bloqueos, una transacciones
debe ser aislada en el sentido que su ejecución no afecte a otra transacción.
Consistencia se refiere a que todas las transacciones de una base de datos, son transacciones
completas y por lo tanto no hay información incorrecta entre los datos.
1
© 2013 Steven R. Brenes Chavarría
p. 1 de 4
Universidad Nacional de Costa Rica – Diseño e Implementación de Bases de Datos
Un enfoque formal a las Bases de Datos… Desde lo relacional hasta lo objeto relacional
Supongamos que existen la transacción T1 y T2. Ahora T1 afecta los datos de salarios
para leerlos, mientras la transacción T2 realiza una actualización aumentándole
5.000 colones a todos los empleados. Para lograr que ambas transacciones se ejecuten
de forma adecuada, es necesario aplicar un bloqueo no exclusivo a la transacción T1
mientras que la transacción T2 deberá tener un bloqueo exclusivo¸ para que la
información de lectura sea la correcta; mientras se aísla la transacción T2.
Durabilidad una vez que una transacción se ejecuta, la misma deberá ser
permanente. Es decir, no podría suceder que una transacción se deshaga sin motivo.
Para ello los SGBD implementan logs de transacciones y escritura a los archivos
físicos. El conjunto de estas cuatro características, típicamente se denotan por ACID.
Poner las características ACID en ejecución no es tan sencillo, las transacciones en
las bases de datos requieren pequeños cambios en los índices para actualizar algún
estado, requiere consultar el diccionario de datos por citar algunos casos. Cada una
de estas transacciones podrían fallas por diversas rezones, por ejemplo no tiene
campo suficiente el disco duro, existe un bloqueo de archivos a nivel de sistema
operativo (OS), el tiempo de CPU que el OS le dio al SGBD para realizar una
transacción.
ACID sugiere que la base de datos pueda realizar todas estas operaciones
inmediatamente. De hecho esto es difícil de conseguir. Hay dos clases de técnicas
populares: escribir a un registro antes de continuar y la paginación de la
sombra. En ambos casos, los bloqueos se deben implantar antes que la información
sea actualizada, y dependiendo de la técnica puesta en práctica, todos los datos se
tienen que haber leído. En escribir a un registro antes de continuar, la atomicidad es
garantizada asegurándose que toda la información esté escrita a un registro antes
que se escriba a la base de datos. Eso permite que la base de datos vuelva a un estado
anterior en caso de un desplome. En sombrear, las actualizaciones se aplican a una
copia de la base de datos, y se activa la nueva copia cuando la transacción sea
confiable. La copia refiere a partes sin cambios de la vieja versión de la base de datos,
en vez de ser un duplicado entero.
SOBRE LAS 12 REGLAS DE CODD
Durante los años ochenta, comenzaron a aparecer numerosos Sistemas Gestores de
Bases de Datos, sin embargo la gran mayoría eran sistemas que administraban
archivos en forma de tablas pero carecían de muchas funciones deseables. En 1984
Edgar Codd, el creador del modelo relacional formuló 12 reglas de lo que debería ser
un Sistema Gestor de Bases de Datos, alguna de estas reglas son difícil de
implementar, por lo que algunos SDBD las implementan parcialmente, cuanto más
reglas implemente un SGBD más relacional se puede considerar.
Regla 1. Regla de la información. Toda la información en una base de datos se
representa exclusivamente mediante tablas.
Regla 2. Regla del acceso garantizado. Para todos y cada uno de los datos atómicos,
de una base de datos relacional se garantiza que son accesibles a nivel lógico
© 2013 Steven R. Brenes Chavarría
p. 2 de 4
Universidad Nacional de Costa Rica – Diseño e Implementación de Bases de Datos
Un enfoque formal a las Bases de Datos… Desde lo relacional hasta lo objeto relacional
utilizando una combinación de nombre de tabla, valor de clave primaria y nombre de
columna.
Regla 3. Tratamiento sistemático de valores nulos. Se debe disponer de valores nulos
(distintos a cadenas vacías, vacíos, 0) para representar información incompleta o no
aplicable de manera que sea independiente del tipo de dato.
Regla 4. Catálogo dinámico en línea basado en modelo relacional. Esto significa que
los datos necesarios para que funcione la base de datos, como el diccionario de datos
o el catálogo de la base de datos, es también una tabla y por lo tanto es posible de
consultar su información de la misma forma que los demás datos.
Regla 5. Regla del sublenguaje de datos completo. Todas las operaciones en las bases
de datos, deben poder ser expresadas en un lenguaje de datos, que sea consistente
con los modelos relacionales.
Regla 6. Regla de actualización de vistas. Todas las vistas que son teóricamente
actualizables por el programador, también deberán ser actualizables autónomamente
por el sistema.
Regla 7. Inserción, actualización y borrado de alto nivel. Todas las operaciones para
mantener la base de datos con información, es debe de poder hacer mediante
operaciones de alto nivel (teoría de conjuntos). Es decir, se pueden hacer
actualizaciones masivas y no registro por registro.
Regla 8. Independencia física de los datos. Los programas a tienen algún tipo de
relación con las bases de datos, deben poder seguir funcionando sin modificación
alguna, aunque la base de datos sufra un cambio en la ubicación de los archivos.
Regla 9. Independencia lógica de los datos. Los programas a tienen algún tipo de
relación con las bases de datos, deben poder seguir funcionando sin modificación
alguna, aunque la base de datos sufra un cambio en la forma de las tablas, como
agregar nuevas columnas.
Regla 10. Independencia de integridad. Las reglas de integridad deben ser escritas
en un sublenguaje compatible con la base de datos. Según el modelo relacional la base
de datos debe tener las siguientes integridades:



Integridad de dominio
Integridad de entidad
Integridad referencial
Regla 11. Independencia de distribución. Las bases de datos deben ser transparente
aunque sean sistemas distribuidos. Para cumplir con esta regla se debe cumplir las
siguientes subreglas:


Transparencia de localización. El usuario tiene la impresión de que trabaja
con una base de datos local.
Transparencia de Fragmentación. El usuario no se da cuenta que la relacion
con la que trabaja, está separada.
© 2013 Steven R. Brenes Chavarría
p. 3 de 4
Universidad Nacional de Costa Rica – Diseño e Implementación de Bases de Datos
Un enfoque formal a las Bases de Datos… Desde lo relacional hasta lo objeto relacional

Transparencia de replicación. El usuario no se da cuenta de que existen
copias de la información en diferentes bases de datos.
Regla 12. Regla de la no subversión. Las bases de datos deben poder manipular
registros uno por vez (a bajo nivel), y ello no implicar saltarse las reglas de integridad
de la regla 10.
© 2013 Steven R. Brenes Chavarría
p. 4 de 4
Descargar