1 Introducción a bases de datos

Anuncio
1
Capítulo 1 Introducción a bases de datos
1 Introducción a bases de datos
1.1 ¿Qué es una base de datos?
Una base de datos es una colección de datos organizados con el propósito de modelar algún
tipo de organización o proceso organizacional. No importa si los datos están contenidos en
hojas de papel o en una computadora. Mientras se agreguen datos de una manera organizada
para un propósito específico se tiene una base de datos.
1.2 Tipos de bases de datos
Se considera que hay dos tipos de bases de datos: operacionales y analíticas.
Las bases de datos operacionales se usan principalmente para el proceso de transacciones
en línea, en situaciones donde es necesario coleccionar, modificar y mantener datos
diariamente. Los datos almacenados en este tipo de bases son dinámicos, o sea que cambian
constantemente y siempre reflejan información actualizada al instante. Organizaciones tales
como bancos, tiendas departamentales, compañías manufactureras, hospitales,
supermercados, etc., utilizan bases de datos operacionales debido a que su información está
en un estado constante de cambio.
En contraste las bases de datos analíticas se usan principalmente en escenarios de
procesos analíticos, donde se almacenan datos estadísticos o históricos. Por ejemplo una
compañía puede almacenar información sobre record de ventas en los últimos diez años para
analizar el comportamiento del mercado y definir estrategias para lograr mejores resultados.
En este tipo de base se almacenan datos estáticos, llamados así porque nunca o muy
raramente son modificados. Entre las organizaciones que utilizan este tipo de base están los
laboratorios químicos y farmacéuticos, compañías geológicas y las que realizan análisis de
mercados así como las que hacen estudios demográficos.
1.3 Modelos de bases de datos
Además de diferenciar las bases de datos de acuerdo a su función, también se pueden
diferencias de acuerdo a cómo modelan los datos.
¿Qué es un modelo de datos? Esencialmente un modelo de datos es una “descripción” de un
contenedor y una metodología para almacenar y recuperar datos de ese contenedor. Los
Bases de datos I
Arturo Ruvalcaba
2
Capítulo 1 Introducción a bases de datos
modelos de datos son abstracciones que consisten en conceptos y algoritmos matemáticos. El
análisis y diseño de los modelos de datos han sido la piedra angular en la evolución de las
bases de datos. Conforme han avanzado los modelos de datos, así lo ha hecho la eficiencia
en las bases de datos.
Antes de 1980, los modelos de base de datos más ampliamente usados eran los sistemas en
red y jerárquicos.
1.3.1 Modelo de base de datos jerárquica
Los datos en este tipo de base de datos, se estructuran jerárquicamente y su diagrama es el
de un árbol invertido. Una tabla actúa como la “raíz” del árbol invertido y otras tablas actúan
como “ramas” que brotan de la raíz.
Si se considera una base de datos representando una relación cliente-cuenta en un sistema
bancario. Se tienen dos tipos de registros cliente y cuenta. Se puede definir un registro cliente
con una notación similar a la de Pascal:
type cliente record
cliente_nombre: string;
cliente_calle: string;
cliente_ciudad: string;
end
El registro tipo cuenta se puede definir como
type cuenta record
cuenta_número: string;
cuenta_saldo: integer;
end
La figura 1.1 muestra el diagrama de la estructura de una base de datos jerárquica.
Una relación en una base de datos jerárquica está representada por el término padre/hijo. En
este tipo de relación una tabla padre puede estar asociada con una o más tablas hijo, pero
una tabla hijo sólo puede estar asociada con una tabla padre. Estas tablas están
explícitamente enlazadas vía apuntadores o por un arreglo físico de registros dentro de las
tablas. En este modelo un usuario accede a los datos empezando por la tabla raíz y
recorriendo el árbol hasta el dato buscado. Ésta método de acceso requiere que el usuario
esté muy familiarizado con la estructura de la base de datos.
Una ventaja de esta base de datos es que el un usuario puede recuperar datos muy
rápidamente debido a que hay enlaces explícitos entre las tablas. Otra ventaja es que la
integridad referencial está automáticamente reforzada, esto asegura que un registro en una
tabla hijo debe estar enlazado a un registro existente en una tabla padre, y que un registro que
se elimine en una tabla padre causará que todos los registros asociados en la(s) tabla(s)
hijo(s) también será(n) eliminado(s).
Bases de datos I
Arturo Ruvalcaba
3
Capítulo 1 Introducción a bases de datos
Figura 1.1. Estructura de una base de datos jerárquica
Este tipo de base de datos no soporta relaciones complejas por lo que existen con frecuencia
problemas de datos redundantes. La redundancia ocurre debido a que la base de datos tipo
jerárquico maneja las relaciones uno a muchos bien, pero no así las relaciones muchos a
muchos. Esto es porque un hijo sólo puede tener un padre, sin embargo, en muchos casos se
requerirá tener un hijo relacionado a más de un padre. Por ejemplo si una cuenta bancaria
puede ser usada por más de un cliente, hay que replicar el registro de la cuenta para cada
cliente que la utilice. No se puede modelar directamente esta relación en la base de datos
jerárquica.
1.3.2 Modelo de base de datos en red
El modelo de base de datos en red se desarrolló como un intento de solucionar los problemas
que presenta el modelo jerárquico.
Este modelo es muy similar al modelo jerárquico, se puede considerar a este último como un
subconjunto del modelo de base de datos en red. Sin embargo, en vez de utilizar el árbol
jerárquico de un solo padre, el modelo en red proporciona una jerarquía similar al árbol con la
excepción de que una tabla hijo puede tener más de un padre. Esto permite tener relaciones
muchos a muchos.
La figura 1.2 muestra una base de datos en red, representando una relación cliente-cuenta en
un sistema, igual que en el modelo jerárquico.
En la base de datos en red el usuario puede acceder a los datos iniciando la búsqueda por
cualquiera de los nodos para recorrer la base en cualquier dirección hacia el dato buscado.
Una ventaja de este modelo es que proporciona rápido acceso a los datos y que permite crear
relaciones más complejas que las que ofrece el modelo jerárquico.
La principal desventaja es que el usuario debe conocer muy bien la estructura de la base para
almacenar y recuperar información, ya que este modelo es difícil de implementar y mantener.
La mayoría de las implementaciones de este modelo fueron usadas por programadores en
lugar de los usuarios finales. Otra desventaja es que no es fácil cambiar la estructura de la
base sin afectar los programas de aplicación que interactúan con ella
Bases de datos I
Arturo Ruvalcaba
4
Capítulo 1 Introducción a bases de datos
Figura 1.2 Estructura de una base de datos en red
1.3.3 Modelo de base de datos relacional
A base de datos relacional fue concebida en 1969 por el Dr. Edgar F. Codd, quien basó este
modelo en dos ramas de la matemática: la teoría de conjuntos y la lógica de predicado de
primer orden. El nombre del modelo se deriva del término relación, el cual es parte de la teoría
de conjuntos.
Una base de datos relacional almacena datos en relaciones, las cuales el usuario percibe
como tablas. Cada relación se compone de tuplas (o sea registros) y atributos (o sea campos).
El orden físico de los registros y de los campos no tiene importancia. Cada tabla se puede
identificar por un nombre único y cada registro en la tabla se identifica por un campo que
contiene un valor único. Estas son las dos características de una base de datos relacional que
permiten que los datos existan independientemente del modo en que están almacenados
físicamente en la computadora.
Para tener acceso a la información de una tabla, el usuario sólo necesita conocer el nombre
de la tabla y de los campos que forman los registros. Por ejemplo, si se desea recuperar un
registro de una tabla, se puede lograr comparando el valor almacenado en un campo de ese
registro con algún criterio de búsqueda. Sería algo así como: “Dame todos los registros de la
tabla ‘ESTUDIANTES’ en los que el valor del campo ‘NOMBRE’ es ‘María’.”
Esta metodología de acceso a los datos hace al modelo relacional muy diferente de y mejor
que los modelos de base de datos anteriores porque es un modelo mucho más simple de
entender.
Otro beneficio de un sistema relacional es que proporciona herramientas extremadamente
útiles para la administración de las bases de datos. Esencialmente, las tablas no solo pueden
almacenar los datos sino que también se pueden usar para generar meta-datos (datos sobre
la tabla y nombres de campos los cuales forman la estructura de la base de datos, derechos
de acceso a la base de datos, reglas de integridad y validación de datos, etc.)
Bases de datos I
Arturo Ruvalcaba
5
Capítulo 1 Introducción a bases de datos
1.4 Terminología
El diseño de bases de datos relacionales tiene su propio conjunto de términos, así como
sucede en cualquier otra profesión o disciplina. Hay algunas buenas razones por las cuales es
importante conocer éstos términos:
a) Se utilizan para expresar y definir las ideas y conceptos especiales del modelo
relacional.
b) Se utilizan para expresar y definir el proceso mismo del diseño de la base de datos.
c) Se utilizan cuando se hace referencia a una base de datos relacional o a un sistema
de gestión de base de datos relacional.
1.4.1 Términos relacionados al valor
Datos
Los valores que se almacenan en una base de datos son datos. Los datos son estáticos en el
sentido que permanecen en el mismo estado hasta que se modifican por algún proceso
manual o automático.
Redundancia de datos
Se dice que hay redundancia de datos cuando la misma información es almacenada varias
veces en la misma base de datos. Esto es siempre algo a evitar, la redundancia dificulta la
tarea de modificación de datos, y es el motivo más frecuente de inconsistencia de datos.
Además requiere un mayor espacio de almacenamiento, que influye en mayor coste y mayor
tiempo de acceso a los datos.
Inconsistencia de datos
Sólo se produce cuando existe redundancia de datos. La inconsistencia consiste en que no
todas las copias redundantes contienen la misma información. Así, si existen diferentes modos
de obtener la misma información, y esas formas pueden conducir a datos almacenados en
distintos sitios. El problema surge al modificar esa información, si lo sólo cambiamos esos
valores en algunos de los lugares en que se guardan, las consultas que hagamos más tarde
podrán dar como resultado respuestas inconsistentes (es decir, diferentes). Puede darse el
caso de que dos aplicaciones diferentes proporcionen resultados distintos para el mismo dato.
Información
Información son los datos que se procesan de una manera tal que los hace significativos y
útiles al trabajar con ellos. La información es dinámica en el sentido de los constantes cambios
a los datos de la base, y también en el sentido de que se pueden procesar y presentar en un
número ilimitado de modos. El punto es que los datos se pueden procesar de una manera que
se conviertan en información significativa.
Es muy importante que se entienda la diferencia entre datos e información. Una base de datos
está diseñada para proporcionar información significativa a alguien dentro de la empresa u
organización. Esta información se puede proporcionar solo si los datos apropiados existen en
la base de datos y ésta está estructurada de tal modo que soporta esa información. Para no
olvidar la diferencia entre datos e información, hay que recordar el siguiente axioma:
Bases de datos I
Arturo Ruvalcaba
6
Capítulo 1 Introducción a bases de datos
Datos son los que se almacenan; información es lo que se consulta
Nulo
Un valor nulo representa un valor desconocido o inexistente. Un valor nulo no representa un
cero o uno o más espacios en blanco. La principal desventaja con los valores nulos es que
causan un efecto adverso en operaciones matemáticas. Una operación que involucre un nulo
dará como resultado otro nulo. Esto es lógicamente razonable, ya que si un número es
desconocido entonces el resultado de la operación es necesariamente desconocido. Por
ejemplo:
(25 x 3) + 4 = 79
(nulo x 3 ) + 4 = nulo
(25 x nulo) + 4 = nulo
(25 x 3) + nulo = nulo
1.4.2 Términos relacionados a la estructura
Tabla
De acuerdo al modelo relacional, los datos en una base de datos relacional se almacenan en
relaciones, las cuales el usuario percibe como tablas. Cada relación está compuesta de tuplas
(registros) y atributos (campos).
El orden lógico de los registros y campos no tiene importancia, y cada tabla contiene al menos
un campo (conocido como llave primaria) que identifica unívocamente cada uno de los
registros.
Una tabla que almacena datos que se usan para proporcionar información es llamada tabla de
datos, y es el tipo más común que se usa en las bases de datos. Estos datos se dice que son
dinámicos porque están en constante cambio.
Una tabla de validación (también conocida como tabla de búsqueda) almacena datos que se
usan específicamente para implementar la integridad de los datos. Una tabla de validación
usualmente contiene datos tales como nombres de ciudades, códigos de productos, etc. Este
tipo de datos se considera estático porque raras veces cambian.
Campo
Un campo (conocido como atributo en las bases de datos relacionales) es la estructura más
pequeña en la base de datos y representa una característica de los datos que contiene la tabla
a la cual pertenece.
Registro
Un registro (conocido como tupla) se compone del conjunto completo de campos que tiene
una tabla. De acuerdo a la manera en que una tabla está definida, cada registro se identifica
en la base de datos por un valor único en el campo que es la llave primaria del registro.
Bases de datos I
Arturo Ruvalcaba
7
Capítulo 1 Introducción a bases de datos
Vista
Una vista es una tabla “virtual” compuesta de campos de una o más tablas en la base de
datos. Las tablas que conforman la vista se conocen como tablas base. El modelo relacional
se refiere a una vista como “virtual” debido a que toma datos de las tablas base y no tiene
datos propios. De hecho, la única información sobre una vista que se almacena en la base es
su estructura.
Llaves (claves)
Las llaves son campos especiales que tienen un papel específico en una tabla, y el tipo de
llave determina su propósito dentro de la tabla. Los tipos de llave más significativos son la
llave primaria y la llave foránea.
Una llave primaria es un campo o grupo de campos que identifica unívocamente cada registro
dentro de la tabla. Si una llave primaria se compone de dos o más campos, se conoce como
llave primaria compuesta.



Un valor de una llave primaria identifica un registro específico en toda la base de
datos.
Un campo de una llave primaria identifica una tabla dada en toda la base de datos.
La llave primaria refuerza la integridad a nivel de tabla y ayuda a establecer la
asociación o interrelación con otras tablas
Índice
Un índice es una estructura que un sistema de gestión de base de datos (SGBD) proporciona
para mejorar el procesamiento de los datos. Un índice no tiene absolutamente que ver con la
estructura lógica de la base de datos.
Los términos de índice y llave son confundidos con frecuencia en los temas de base de datos.
Una manera fácil de recordar la diferencia entre llave e índice, es tener en cuenta que las
llaves son estructuras lógicas que se usan para identificar registros dentro de una tabla, y que
los índices son estructuras físicas que se usan para optimizar el procesamiento de los datos.
1.4.3 Términos relacionados con las interrelaciones
Interrelaciones (relaciones)
Existe una interrelación entre dos tablas cuando se pueden asociar de alguna manera los
registros de la primera tabla con los registros de la segunda. Se puede establecer una
interrelación mediante un conjunto de llaves primarias y foráneas o a través de una tercer
tabla conocida como tabla de enlace (también llamada tabla asociativa).
Se puede caracterizar toda interrelación de tres modos: por el tipo de interrelación que existe
entre las tablas; por el modo en que cada tabla participa en la interrelación; y por el grado con
el que cada tabla participa.
Tipos de relaciones
Hay tres tipos específicos de relaciones (conocidos como cardinalidad) que pueden existir
entre un par de tablas; uno a uno, uno a muchos y muchos a muchos.
Bases de datos I
Arturo Ruvalcaba
8
Capítulo 1 Introducción a bases de datos
Relación uno a uno
Un par de tablas tienen una relación uno a uno cuando un registro de la primera tabla esta
relacionado a solo un registro de la segunda tabla, y un registro de la segunda tabla está
relacionado a un solo registro de la primera tabla. En este tipo de relación, una tabla funciona
como la tabla “padre” y la otra tabla funciona como la tabla “hijo”. La relación se establece
tomando una copia de la llave primaria de la tabla padre y se incorpora en la estructura de la
tabla hijo donde se convierte en una llave foránea.
Relación uno a muchos
Existe una relación uno a muchos entre un par de tablas cuando un registro de la primer tabla
puede estar relacionado a muchos registros de la segunda tabla, pero un registro de la
segunda tabla puede estar relacionado a un solo registro de la primera tabla. En este tipo de
relación también es aplicable el modelo padre/hijo. La relación se establece tomando una
copia de la llave primaria de la tabla padre y se incorpora en la estructura de la tabla hijo
donde se convierte en una llave foránea.
Relación muchos a muchos
Un par de tablas tienen una relación muchos a muchos cuando un registro de la primer tabla
puede estar relacionado con muchos registros de la segunda tabla, y un registro de la
segunda tabla puede estar relacionado con muchos registros de la primera tabla. Este tipo de
relación se establece con una tabla de enlace. Con las llaves primarias de cada tabla se define
la estructura de la tabla de enlace. Éstos campos tienen dos papeles distintos: juntos forman
la llave primaria compuesta de la tabla de enlace; en forma separada cada uno actúa como
llave foránea.
Tipos de participación
La participación de una tabla en una relación puede ser obligatoria u opcional. Digamos que
existe una relación entre dos tablas llamadas TABLA_A y TABLA_B

La participación de la TABLA_A es obligatoria si se debe insertar al menos un
registro en la TABLA_A antes de insertar un registro en la TABLA_B.

La participación de la TABLA_A es opcional si no se requiere insertar algún
registro en la TABLA_A antes de insertar registros en la TABLA_B.
Grado de participación
El grado de participación determina el número mínimo de registros que una tabla dada debe
tener asociados con un registro de la tabla con la que se relaciona, y el número máximo de
registros que una tabla dada debe tener asociados con un registro de la tabla con la que se
relaciona.
Considérese una relación entre dos tablas llamadas TABLA_A y TABLA_B. Se establece el
grado de participación para la TABLA_B indicando un número mínimo y máximo de registros
en la TABLA_B que pueden estar relacionados con un solo registro de la TABLA_A. Si un
registro de la TABLA_A puede estar relacionado a no menos que un registro pero no más de
diez registros de la TABLA_B, entonces el grado de participación para la TABLA_B es 1, 10.
Bases de datos I
Arturo Ruvalcaba
9
Capítulo 1 Introducción a bases de datos
1.4.4 Términos relacionados con la integridad
Especificaciones de campo
Una especificación de campo (tradicionalmente conocida como dominio) representa todos los
elementos de un campo. Cada especificación de campo incorpora tres tipos de elementos:
general, físico y lógico.

Los elementos de tipo general constituyen la información más fundamental acerca
de un campo e incluyen datos tales como nombre del campo, descripción y tabla
padre.

Los elementos de tipo físico determinan como está constituido un campo y como
se representa a la persona que lo usa. Esta categoría incluye datos tales como tipo
de dato, longitud y formato de despliegue.

Los elementos de tipo lógico describen los valores almacenados en un campo e
incluyen datos como valor requerido, rango de valores y el valor por omisión.
Integridad de datos
La integridad de datos se refiere a la validez, consistencia y exactitud de los datos en la base
de datos. Es uno de los aspectos más importantes en el proceso de diseño de la base y no se
debe subestimar.
Existen cuatro tipos de integridad de datos que se implementan durante el proceso de diseño
de la base. Tres tipos de integridad de datos están basados en varios aspectos en la
estructura de la base de datos y se etiquetan de acuerdo al área (nivel) en el cual operan. El
cuarto tipo de integridad se basa en el modo que una organización percibe y usa los datos. A
continuación se da una descripción de cada tipo.
1. Integridad a nivel de tabla (conocida tradicionalmente como integridad de entidad),
asegura que no existen registros duplicados dentro de la tabla y que el campo que
identifica cada registro en la tabla es único y nunca nulo.
2. Integridad a nivel de campo (conocida tradicionalmente como integridad de
dominio), asegura que la estructura de cada campo es correcta: que los valores de
cada campo son válidos, consistentes y exactos; y que los campos del mismo tipo
están consistentemente definidos en toda la base.
3. Integridad a nivel de relación (conocida tradicionalmente como integridad
referencial), asegura que las relaciones entre un par de tablas es correcta y que los
registros en las tablas están sincronizados siempre que un dato se inserta, se
actualiza o se elimina de una tabla.
4. Reglas de negocio imponen restricciones o limitaciones en ciertos aspectos de la
base de datos en los modos que una organización percibe y usa sus datos. Estas
restricciones pueden afectar aspectos del diseño de la base de datos tales como el
rango y tipo de los valores almacenados en un campo, el tipo y grado de
participación de cada tabla dentro de una relación y el tipo de sincronización usada
para la integridad a nivel de relación en ciertas interrelaciones.
Bases de datos I
Arturo Ruvalcaba
Capítulo 1 Introducción a bases de datos
10
1.5 Propósito de los sistemas de base de datos
Considérese parte de una empresa bancaria que, entre otros datos, mantiene información
acerca de todos los clientes y cuentas de ahorros. Una manera de mantener la información en
una computadora es almacenarla en archivos del sistema operativo. Para permitir a los
usuarios manipular la información, el sistema tiene un número de programas de aplicación que
manipula los archivos, incluyendo:

Un programa para efectuar cargos o abonos en una cuenta.

Un programa para añadir una cuenta nueva.

Un programa para calcular el saldo de una cuenta.

Un programa para generar las operaciones mensuales.
Estos programas de aplicación se han escrito por programadores de sistemas en respuesta a
las necesidades de la organización bancaria.
Si las necesidades se incrementan, se añaden nuevos programas de aplicación al sistema.
Por ejemplo, supóngase que la empresa bancaria decide ofrecer a sus clientes cuentas de
cheques. Como resultado se crean nuevos archivos permanentes que contengan información
acerca de todas las cuentas de cheques mantenidas por el banco, y puede ser necesario
escribir nuevos programas de aplicación para tratar situaciones que no existían en las cuentas
de ahorro, tales como sobregiros. Así, sobre la marcha, se añaden más archivos y programas
de aplicación al sistema.
Este sistema de procesamiento de archivos típico que se acaba de describir se mantiene
mediante un sistema operativo convencional. Los registros permanentes son almacenados en
varios archivos y se escriben diferentes programas de aplicación para extraer registros y para
añadir registros a los archivos adecuados. Antes de la llegada de los sistemas de gestión de
bases de datos (SGBDs), las organizaciones normalmente han almacenado la información
usando tales sistemas. Mantener información de la organización en un sistema de
procesamiento de archivos tiene una serie de inconvenientes importantes:

Redundancia e inconsistencia de datos. Debido a que los archivos y programas de
aplicación son creados por diferentes programadores en un largo período de tiempo,
los diversos archivos tienen probablemente diferentes formatos y los programas
pueden estar escritos en diferentes lenguajes. Más aún, la misma información puede
estar duplicada en diferentes lugares (archivos). Por ejemplo, la dirección y número de
teléfono de un cliente particular puede aparecer en un archivo que contenga registros
de cuentas de ahorros y en un archivo que contenga registros de una cuenta de
cheques. Esta redundancia conduce a un almacenamiento y coste de acceso más
altos. Además, puede conducir a inconsistencia de datos; es decir, las diversas
copias de los mismos datos pueden no coincidir. Por ejemplo, un cambio en la
dirección del cliente puede estar reflejado en los registros de las cuentas de ahorro
pero no estarlo en el resto del sistema.

Dificultad en el acceso a los datos. Supóngase que uno de los empleados del
banco necesita averiguar los nombres de todos los clientes que viven en el distrito
postal 28733 de la ciudad. El empleado pide al departamento de procesamiento de
datos que genere dicha lista. Debido a que esta petición no fue prevista cuando el
Bases de datos I
Arturo Ruvalcaba
Capítulo 1 Introducción a bases de datos
11
sistema original fue diseñado, no hay un programa de aplicación a mano para
satisfacerla. Hay, sin embargo, un programa de aplicación que genera la lista de todos
los clientes. El empleado del banco tiene ahora dos opciones: bien obtener la lista de
todos los clientes y obtener la información que necesita manualmente, o bien pedir al
departamento de procesamiento de datos que haga que un programador de sistemas
escriba el programa de aplicación necesario. Ambas alternativas son obviamente
insatisfactorias. Supóngase que se escribe tal programa y que, varios días más tarde,
el mismo empleado necesita arreglar esa lista para incluir sólo aquellos clientes que
tienen una cuenta con saldo de 10.000 € o más. Como se puede esperar, un
programa para generar tal lista no existe. De nuevo, el empleado tiene que elegir entre
dos opciones, ninguna de las cuales es satisfactoria.
La cuestión aquí es que el entorno de procesamiento de archivos convencional no
permite que los datos necesarios sean obtenidos de una forma práctica y eficiente. Se
deben desarrollar sistemas de recuperación de datos más interesantes para un uso
general.

Aislamiento de datos. Debido a que los datos están dispersos en varios archivos, y
los archivos pueden estar en diferentes formatos, es difícil escribir nuevos programas
de aplicación para recuperar los datos apropiados.

Problemas de integridad. Los valores de los datos almacenados en la base de datos
deben satisfacer ciertos tipos de restricciones de consistencia. Por ejemplo, el
saldo de una cuenta bancaria no puede nunca ser más bajo de una cantidad
predeterminada (por ejemplo 25 €). Los desarrolladores hacen cumplir esas
restricciones en el sistema añadiendo el código apropiado en los diversos programas
de aplicación. Sin embargo, cuando se añaden nuevas restricciones, es difícil cambiar
los programas para hacer que se cumplan. El problema es complicado cuando las
restricciones implican diferentes elementos de datos de diferentes archivos.

Problemas de atomicidad. Un sistema de una computadora, como cualquier otro
dispositivo mecánico o eléctrico, está sujeto a fallo. En muchas aplicaciones es crucial
asegurar que, una vez que un fallo ha ocurrido y se ha detectado, los datos se
restauran al estado de consistencia que existía antes del fallo. Consideremos un
programa para transferir 50 € desde la cuenta A a la B. Si ocurre un fallo del sistema
durante la ejecución del programa, es posible que los 50 € fueron eliminados de la
cuenta A pero no abonados a la cuenta B, resultando un estado de la base de datos
inconsistente. Claramente, es esencial para la consistencia de la base de datos que
ambos, el abono y el cargo tengan lugar, o que ninguno tenga lugar. Es decir, la
transferencia de fondos debe ser atómica: ésta debe ocurrir en ellos por completo o no
ocurrir en absoluto. Es difícil asegurar esta propiedad en un sistema de procesamiento
de archivos convencional.

Anomalías en el acceso concurrente. Conforme se ha ido mejorando el conjunto de
ejecución de los sistemas y ha sido posible una respuesta en tiempo más rápida,
muchos sistemas han ido permitiendo a múltiples usuarios actualizar los datos
simultáneamente. En tales sistemas un entorno de interacción de actualizaciones
concurrentes puede dar lugar a datos inconsistentes. Considérese una cuenta
bancaria A, que contiene 500 €. Si dos clientes retiran fondos (por ejemplo 50 € y 100
€ respectivamente) de la cuenta A en aproximadamente el mismo tiempo, el resultado
de las ejecuciones concurrentes puede dejar la cuenta en un estado incorrecto (o
inconsistente). Supongamos que los programas se ejecutan para cada retirada y
escriben el resultado después. Si los dos programas funcionan concurrentemente,
Bases de datos I
Arturo Ruvalcaba
Capítulo 1 Introducción a bases de datos
12
pueden leer ambos el valor 500 €, y escribir después 450 € y 400 €, respectivamente.
Dependiendo de cuál escriba el último valor, la cuenta puede contener bien 450 € o
bien 400 €, en lugar del valor correcto, 350 €. Para protegerse contra esta posibilidad,
el sistema debe mantener alguna forma de supervisión. Sin embargo, ya que se
puede acceder a los datos desde muchos programas de aplicación diferentes que no
han sido previamente coordinados, la supervisión es difícil de proporcionar.

Problemas de seguridad. No todos los usuarios de un sistema de bases de datos
deberían poder acceder a todos los datos. Por ejemplo, en un sistema bancario, el
personal de nóminas necesita ver sólo esa parte de la base de datos que tiene
información acerca de varios empleados del banco. No necesitan acceder a la
información acerca de las cuentas de clientes. Como los programas de aplicación se
añaden al sistema de una forma ad hoc, es difícil garantizar tales restricciones de
seguridad.
Estas dificultades, entre otras, han motivado el desarrollo de los sistemas de bases de datos.
Bases de datos I
Arturo Ruvalcaba
Descargar