Un sistema gestor de bases de datos por
definición debe cumplir los siguientes objetivos
Independencia de los
datos
Recordando uno de los problemas que
plantean los ficheros convencionales. La independencia de los datos consiste en
hacer que los programas no sean tan dependientes de la estructura de los datos.
Se han definido dos tipos de
independencia:
La independencia física:
consiste en poder modificar la definición interna de los datos (el esquema
interno) sin que ello suponga una modificación de los programas existentes.
Por ejemplo, se puede cambiar la ubicación de la base de datos, o se puede
añadir un índice sobre una tabla para que las consultas se ejecuten más
rápidamente, sin que eso suponga una variación en los esquemas externos y
conceptual, por lo que los programas (que utilizan el esquema externo) no se
verán afectados.
La independencia lógica:
consiste en poder cambiar el esquema conceptual sin que ello suponga una
modificación de los programas existentes
Por ejemplo podemos añadir un nuevo dato
en la tabla de clientes como la dirección de email sin que los esquemas externos
se vean afectados.
La seguridad consiste
en que los usuarios no puedan acceder a datos sin autorización
Si juntamos toda la información de la
empresa en un mismo sitio, el SGBD debe tener mecanismos para que cualquier
usuario pueda tener acceso a únicamente la información que necesita para las
tareas que tiene encomendadas.
Esta seguridad se consigue por medio
de los esquemas externos, ya que el usuario sólo tiene acceso a su esquema
externo que le proporciona los datos que el administrador ha considerado incluir
en ese esquema. Para el usuario no habrá más datos que estos.
Además los SGBD tienen mecanismos para definir autorizaciones que pueden ser de
distinto tipo: autorización de lectura, de inserción, de actualización,
autorizaciones especiales para poder variar el esquema conceptual etc.
La integridad se
refiere a que la información almacenada en la base de datos esté libre de
errores. Esto no siempre es posible ya que existen distintos tipos de errores
que tienen diferentes soluciones:
Fallos de hardware. Estos errores
no los puede evitar el SGBD pero se pueden subsanar facilitando copias de seguridad
y procesos de recuperación.
Fallos del programador.
Puede que
aparezcan datos erróneos en la base de datos como consecuencia de errores en el
programa que genera estos datos. Para evitar al máximo este tipo de errores el
sistema debe ser fácil de programar, cuantos más controles realice el sistema de
forma automática, menos controles habrá que incluir a nivel de programación por
lo que limitaremos la probabilidad de fallo y los programas deben ser probados
con juegos de ensayos bien definidos.
Fallos del usuario final. El
usuario que introduce datos en la base de datos también puede cometer errores,
el sistema debe permitir controlar al máximo la información que se introduce
para limitar el número de estos errores, para ello los SGBD incluyen cláusulas de
validación de los datos, validaciones de diferentes tipos que veremos con más
detalle más adelante.
Fallos derivados de la concurrencia.
Ya que toda la información está centralizada y los distintos usuarios acceden a
ella de forma simultánea, pueden ocurrir problemas cuando dos usuarios quieren
acceder al mismo dato a la vez. Por ello el SGBD debe tener establecidos
mecanismos para evitar este tipo de problema, bloquear registros, abortar
automáticamente transacciones etc.
La redundancia consiste en que exista
algún dato repetido en varios lugares.
Por ejemplo si tenemos la dirección del cliente en la factura, en la cuenta
contable, en los datos generales del cliente; esto como ya vimos anteriormente
nos producirá varios problemas:
-
la información
repetida ocupa espacio innecesario.
-
a variación de un domicilio supone
el variar ese domicilio en todos los lugares donde esté almacenado. .
-
mayor tiempo de proceso
-
posibilidad de inconsistencia
Por todo ello hay que
evitar al máximo esa redundancia, esto se consigue utilizando herramientas de
diseño y obteniendo un diseño óptimo de la base de datos.
- Facilidad
de recuperación de la información
Otro objetivo muy importante de un SGBD
es el proporcionar al usuario (o programador) unas herramientas potentes de
manejo de datos para que pueda de manera sencilla y rápida, obtener toda la
información que desea sin que, por ello se tenga que hacer un programa
complejo.
Veremos que el SQL, lenguaje empleado para recuperar información de la base de
datos, es un lenguaje muy potente y cercano al lenguaje hablado, y además los
SGBD incluyen entornos gráficos sencillos de utilizar.
El administrador de la base de datos
El administrador es el encargado de
gestionar y controlar todo el sistema con la ayuda que le proporciona el SGBD.
Tiene una gran responsabilidad ya que de él depende que el sistema funcione
correctamente y como tiene el máximo nivel de privilegios, sus errores pueden
ser desastrosos.
Entre sus responsabilidades se incluye:
-
nstalar el SGBD en el sistema
informático (a veces)
-
Realizar el diseño de la base de
datos.
-
Crear las bases de datos que se
vayan a gestionar.
-
Crear y mantener los esquemas de las
bases de datos.
-
Crear y mantener las cuentas de los
usuarios de las bases de datos.
-
Colaborar con el administrador del
sistema en las tareas de ubicación, dimensionado y control de los archivos y
espacios de disco ocupados por el SGBD.
-
Establecer estándares de uso,
políticas de acceso y protocolos de trabajo diario para los usuarios de las
bases de datos.
-
Efectuar tareas de explotación como:
-
Vigilar el trabajo diario
colaborando en la resolución de las dudas de los usuarios.
-
Controlar los tiempos de acceso,
tasas de uso, cargas en los servidores, anomalías, etc.
-
Llegado el caso, reorganizar las
bases de datos.
-
Diseñar y efectuar el planning
de copias de seguridad periódicas.
-
Restaurar la base de datos
después de un incidente.
-
Estudiar las auditorías mediante
el ajuste de parámetros y con ayuda de las herramientas de
monitorización del sistema y de las estadísticas.
El diccionario de datos
Dentro del SGBD, hay una parte que son
datos sobre los datos, es una base de datos en la que se almacena toda la
información necesaria para que el sistema funcione. Esta base de datos es el
diccionario de datos y contiene:
-
La estructura lógica y física de la
base de datos.
-
Las definiciones de todos los
objetos de la base de datos: tablas, vistas, índices, disparadores (triggers)
funciones, procedimientos almacenados, etc.
-
El espacio asignado y utilizado por
los objetos.
-
Los valores por defecto de las
columnas de las tablas.
-
Los privilegios otorgados a los
usuarios.
-
Información que permita obtener estadísticas y evaluaciones del rendimiento
del sistema
Tipos de bases de datos
Podemos realizar distintas
clasificaciones de las bases de datos:
Tipos de bases de
datos según su ubicación
1. Bases de datos locales.
En modo local tenemos la base de
datos y el usuario ubicados en el mismo ordenador. Un ejemplo de base de
datos que funciona en modo local es Microsoft Access, MS Access es una
base de datos fácil de manejar por usuarios poco expertos que funciona
bien en modo local y mientras no tenga que albergar grandes cantidades
de información
Ventajas
|
Desventajas
|
Economía Es la más barata.
|
Monousuario En un instante determinado sólo la puede utilizar una persona.
|
Simplicidad No se necesita llevar controles de accesos concurrentes, de transmisión
de datos, etc.
|
Capacidad Suele tener una capacidad de almacenamiento limitado.
|
2. Bases de datos centralizadas
En los sistemas centralizados tenemos la
base de datos completa en un mismo servidor, y todos los usuarios acceden a ese
servidor. Que la base de datos esté en un mismo servidor no implica que esté en
un solo archivo o en el mismo disco, puede estar repartida.

En modo Cliente/Servidor, la base de
datos se encuentra en un ordenador (el Servidor) y los usuarios acceden
simultáneamente a esa base de datos a través de la red (sea una red local o
Internet) desde sus ordenadores a través de un programa Cliente.
A nivel de empresas es el sistema que más se utiliza en la actualidad.
Ventajas |
Desventajas |
Multiusuario Permite que varios usuarios accedan a la vez a la misma información.
|
Complejidad Tiene que incluir y gestionar un sistema de usuario y subesquemas.
|
No
redundancia Al estar todos los datos en el mismo servidor, la información no se
duplica y es más facil evitar fallos debidos a redundancias.
|
Seguridad Se tienen que realizar controles para garantizar la seguridad de los
datos, tanto a nivel interno como a nivel de comunicaciones.
|
3. Bases de datos distribuidas
Tenemos la información repartida en
distintas localizaciones unidas todas ellas mediante red y un sistema gestor de
bases de datos distribuidas.
Las distintas localizaciones suelen ser
distintas geográficamente.

Ventajas |
Desventajas |
Rendimiento
Una clara ventaja es que es posible ubicar los datos en lugares
donde se necesitan con más frecuencia, aunque también se permita
a usuarios no locales acceder a los datos según sus necesidades.
Esto hace que la información se recupere de forma más rápida y
ágil en las ubicaciones locales. Además los sistemas trabajan en
paralelo, lo cual permite balancear la carga en los servidores.
|
Complejidad en
el diseño de datos
Además de las dificultades que generalmente se encuentran al
diseñar una base de datos, el diseño de una base de datos
distribuida debe considerar la fragmentación, replicación y
ubicación de los fragmentos en sitios específicos, se tiene que
trabajar tomando en cuenta su naturaleza distribuida, por lo
cual no podemos pensar en hacer joins que afecten a tablas de
varios sistemas, etc.
|
Disponibilidad En caso de que falle la base de datos de alguna localidad, el sistema no
se colapsa, puede seguir funcionando excluyendo los datos de la
localidad que haya fallado.
|
Complejidad técnica Se debe asegurar que la base de datos sea transparente, se debe lidiar
con varios sistemas diferentes que pueden presentar dificultades únicas.
|
Autonomía local Un departamento puede controlar los datos que le pertenecen.
|
Economía en el
mantenimiento La complejidad y la infraestructura necesaria implica que se necesitará
mayor mano de obra.
|
Economía
en la implantación Es más barato crear una red de muchas máquinas pequeñas, que tener una
sola máquina muy poderosa.
|
Seguridad Se debe trabajar en la seguridad de la infraestructura así como cada uno
de los sistemas.
|
Modularidad Se pueden modificar, agregar o quitar sistemas de la base de datos
distribuida sin afectar a los demás sistemas (módulos).
|
Integridad Se vuelve difícil mantener la integridad, aplicar las reglas de
integridad a través de la red puede ser muy caro en términos de
transmisión de datos.
|
|
Falta de experiencia Las bases de datos distribuidas son un campo relativamente nuevo y poco
común por lo cual no existe mucho personal con experiencia o
conocimientos adecuados.
|
|
Carencia de
estándares Aún no existen herramientas o metodologías que ayuden a los usuarios a
convertir un DBMS centralizado en un DBMS distribuido.
|
Tipos de bases de datos según la
organización lógica de los datos
En un principio existían tres
tipos de bases de datos según su estructura interna (la manera de organizar
la información)
Bases de datos jerárquicas
Bases de datos en red
Bases de datos relacionales.
Más recientes son las bases de datos
orientadas a objetos y las bases de datos multidimensionales
1. Las
bases de datos jerárquicas
En una base de datos jerárquica se organizan los datos utilizando estructuras
arborescentes (en árbol).
Un ÁRBOL es una estructura jerárquica en la
que los elementos se suelen denominar NODOS y existen dependencias entre
los nodos.
La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener más de un
padre, pero un padre varios hijos.

Un ejemplo de base de datos jerárquica
es el sistema IMS.
2. Las
bases de datos en red
También en desuso, en una base de datos en red se utiliza la estructura de
grafo/red, como en el caso anterior los distintos objetos están relacionados
entre sí mediante relaciones del tipo 1:M pero en este caso un objeto puede
estar relacionado como hijo con varios elementos que serán sus padres. Un este
caso las relaciones que se crean se denominan SET y el equivalente al padre se
denomina PROPIETARIO (OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER).
Un ejemplo de sistema en red es
el CODASYL. También existen modelos para
realizar el diseño de datos orientado a bases de datos en red.
En red podríamos representar lo mismo que la estructura anterior y además lo
siguiente:

Los sistemas jerárquico y en red
constituyen la primera generación de los SGBD. Pero estos sistemas presentan
algunos inconvenientes:
-
Es necesario escribir
complejos programas de aplicación para responder a cualquier tipo de
consulta de datos, por simple que ésta sea.
-
La independencia de datos es mínima.
-
No incluyen controles de
integridad
Por lo que pronto fueron sustituidos por
los sistemas relacionales.
3. Las
bases de datos relacionales
Esta es la estructura que se ha impuesto para aplicaciones de gestión, consiste
en organizar los datos en forma de tablas, las relaciones entre los objetos se
consiguen incluyendo en la tabla del hijo, la clave del objeto padre. Como son
las que utilizaremos durante todo el módulo hemos reservado un apartado especial
para ellas.
4. Las
bases de datos orientadas a objetos
Es un modelo más reciente, trata de almacenar en la base de datos los objetos
completos (estado y comportamiento). La información que contienen se organiza
en atributos y
el comportamiento en operaciones.
5. Las
bases de datos mutidimensionales
En una base de datos multidimensional los datos se almacenan en tablas de
múltiples dimensiones en vez de tablas bidimensionales como las del modelo
relacional. Se utilizan para grandes volúmenes de información.