3. SISTEMA DE GESTIÓN DE BASES DE DATOS. (SGBD)
Un SGBD es una herramienta de software (conjunto de programas) que
permite a los usuarios (analistas, programadores, administrador de la base de
datos o no informáticos) definir, crear y mantener la base de datos, además de
proporcionar acceso controlado a la misma.
Un SGBD se caracteriza por mantener una descripción
actual de la base de datos, integrando toda la información del sistema para
evitar redundancias y sin que se pierdan, por ello, las distintas perspectivas
que de la BD tienen los usuarios (definición de vistas parciales).
Por tanto, el SGBD debe cumplir los siguientes objetivos, asegurar la:
·
Independencia de los datos, propiedad que asegura que los programas de
aplicación sean independientes de los cambios realizados en datos que no usan o
en detalles de representación física de los datos a los que acceden.
·
Integridad de los datos almacenados, realizando las validaciones necesarias
cuando se realicen modificaciones en la base de datos.
·
No redundancia de los datos, eliminando así la inconsistencia de los mismos
·
Seguridad de los datos y privacidad. Podemos distinguir cuatro tipos de
contextos para usar mecanismos de seguridad: seguridad contra accesos indebidos
a los datos, seguridad contra accesos no autorizados a la BD, seguridad contra
destrucción causada por el entorno (fuego, inundación, robo, ...), seguridad
contra fallos del propio sistema (fallos del hardware, del software, ...).
·
Eficacia de acceso a los datos, en especial en el caso de consultas imprevistas
ARQUITECTURA ANSI / SPARC.
Hay tres características importantes inherentes a
los sistemas de bases de datos: la separación entre los programas de aplicación
y los datos, el manejo de múltiples vistas por parte de los usuarios y el uso
de un catálogo para almacenar el esquema de la base de datos.
En 1977, el comité ANSI-SPARC (American National
Standard Institute - Standards Planning and Requirements Committee) propuso una
arquitectura de tres niveles para los sistemas de bases de datos, que resulta
muy útil a la hora de conseguir estas tres características.
El objetivo de esta arquitectura es buscar la
independencia de los datos definiendo el esquema de la base de datos a tres
niveles de abstracción distintos.
En cada uno de los niveles se genera un esquema de
descripción del trabajo realizado:
Es una descripción de la base datos en términos de
su almacenamiento físico mediante un esquema interno. En él deben especificarse
tres clases de aspectos distintos:
·
Estrategia de almacenamiento. Comprende la asignación de espacios de
almacenamiento para el conjunto de los datos, las relaciones entre los
distintos espacios de almacenamiento y la estrategia utilizada para ello,
permitiendo optimizar tiempo y espacio en memoria secundaria.
·
Caminos de acceso. La especificación de claves primarias y secundarias, así como los
índices y claves de ordenación.
·
Misceláneas. Técnicas de comprensión de datos, encriptación, optimización,...
Se describe la estructura de toda la base de datos
para un sistema de información o la parte de él a tratar mediante un esquema
conceptual.
Este esquema oculta los detalles físicos de
almacenamiento y se centra en la estructura organizacional de los datos
obtenida al reunir los requerimientos de todos los usuarios, es decir, se
centra en elementos lógicos para describir entidades, atributos, relaciones,
operaciones de los usuarios y restricciones con independencia del SGBD y
de la máquina. (Esquema global).
En este nivel se puede utilizar un modelo
conceptual o un modelo lógico para especificar el esquema.
Nivel externo. Esquemas
externos.
Es el nivel más cercano al usuario y representa la
percepción individual que cada usuario o grupo de usuarios tiene de la base de
datos, es decir, de las diversas vistas parciales de la base de datos que
tienen los distintos usuarios y, por tanto, en él deberán encontrarse
reflejados sólo aquellos datos e interrelaciones que se necesiten.
También habrán de especificase las restricciones de
uso, como puede ser el derecho a insertar o a borrar determinados datos o el
acceso a los mismos, etc.
Por tanto, se definirán tantos esquemas externos
como exijan las diferentes aplicaciones, y varios usuarios podrán compartir un
mismo esquema externo.
Para una BD habrá un único esquema interno,
un único esquema conceptual, pero puede haber varios esquemas externos.
Pero en el esquema conceptual surge un problema:
se supone que existe un modelo conceptual que debe ser entendido por todos los
SGBD, pero esto es incorrecto. Como variante a esta arquitectura aparece un
cuarto nivel, resultado de dividir el nivel conceptual en dos niveles
distintos, nivel conceptual y nivel lógico o canónico.
Es una descripción de la representación de la BD en
el esquema conceptual (entidades, relaciones y restricciones,…) teniendo en
cuenta las características del SGBD concreto que se vaya a usar.
La inclusión de este cuarto nivel de representación
del dominio del problema, un nivel dependiente del SGBD, va a garantizar la
independencia de la información en una base de datos.
Un SGBD que soporte la arquitectura de niveles debe:
·
Permitir definir los distintos esquemas a excepción del conceptual. Para
describir éste último utilizaremos el método Entidad/Relación
(Entidad/Interrelación).
·
Establecer las correspondencias entre los diferentes esquemas.
·
Aislar los esquemas de forma que sean lo más independientemente
posibles. Los cambios en un esquema no deben afectar a los esquemas de nivel
superior y por tanto, tampoco a los programas de aplicación.
Cumpliendo estas obligaciones, el SGBD prevé la independencia
de los datos.
Independencia Lógica entre el esquema lógico y los externos.
Los esquemas externos y los programas de aplicación que se utilicen no
deben verse afectados por las modificaciones que se efectúen en el esquema
lógico sobre datos que no usen.
El esquema lógico no debe verse afectado por
cambios en el esquema físico referentes a la implementación de las estructuras
de datos, modos de acceso, tamaños de páginas, caminos de acceso, etc.
Hay que tener en
cuenta que en una base de datos existe una gran variedad de usuarios con
necesidades diversas, susceptibles de trabajar simultáneamente con subconjuntos
de esta colección de datos y cuyas necesidades varían a lo largo del tiempo.
Por tanto se pone de manifiesto que es imprescindible dotar al sistema de la
adecuada flexibilidad que pueda atender las exigencias de todos los usuarios y
para que sea capaz de responder a los cambios a un coste no excesivo. Es decir,
el SGBD se ha creado de forma que las ventajas que se han señalado como propias
de las bases de datos sean una realidad.
Así, un SGBD proporciona a los usuarios de la base
de datos los medios necesarios para realizar las siguientes tareas:
·
Definición de los datos a los distintos niveles de abstracción (físco,
lógico y externo).
·
Manipulación de los datos en la base de datos.
·
Mantenimiento de la integridad de la base de datos. Integridad en cuanto
a los datos en sí, sus valores y las relaciones entre ellos.
·
Control de la privacidad y seguridad de los datos en la base de datos.
·
Los medios necesarios para el establecimiento de todas aquellas
características exigibles en una base de datos.
Las distintas funciones que ha de cumplir un SGBD
hacen necesario disponer de diferentes lenguajes y procedimientos que permitan
la comunicación con la base de datos; unos están orientados hacia la función
(definición, manipulación o control) y otros dirigidos a diferentes tipos de
usuarios o procesos.
Atendiendo a la función realizada, podemos
clasificar los lenguajes de la siguiente forma:
·
Lenguaje de Definición de Datos (LDD) – Data Definition
Language (DDL).
·
Lenguaje de Manipulación de Datos (LMD) – Data Manipulation
Language (DML).
·
Lenguaje de Control de Datos (LCD) – Data Control Language
(DCL)
Permiten la definición de datos a tres niveles:
esquema lógico, físico y externo.
El primer paso consiste en especificar el esquema
lógico y el esquema interno de la base de datos, y la correspondencia
entre ambos, de forma que se mantenga el enlace entre estas dos definiciones.
El SGBD posee un compilador de DDL (ver figura)
cuya función consiste en procesar las sentencias del lenguaje para identificar
las descripciones de los distintos elementos de los esquemas y almacenar la
descripción del esquema en el catálogo o diccionario de datos.
Un diccionario de datos es un archivo que contiene
metadatos, es decir, datos (información) sobre datos o la descripción de los
objetos de la base de datos. Este archivo se consulta antes de leer o modificar
los datos reales de la BD.
Estos lenguajes
permiten la inserción, modificación, recuperación y supresión de los datos
almacenados en la base de datos.
El SGBD deberá tener los módulos que traducen estos
lenguajes, tanto al nivel de definición como de manipulación.
Dentro de los DML podemos clasificarlos por
diferentes criterios:
·
Por su definición:
ü Autosuficientes: los que se pueden
ejecutar por ellos mismos, pudiéndose realizar programas completos.
ü Huéspedes: deben incluir sus
instrucciones en un lenguaje de alto nivel.
·
Por su funcionalidad frente al usuario:
ü Procedimentales: requieren que el
usuario especifique qué datos se necesitan y cómo conseguirlos.
ü No procedimentales: el usuario debe
especificar qué datos se necesitan, pero no cómo obtenerlos.
El DCL permite el
control de acceso a la información almacenada en el diccionario de datos
definiendo privilegios y tipos de acceso, así como el control de la seguridad
de los datos.
También puede incluir módulos para la
reconstrucción de la base de datos, de simulación o de estadísticas entre
otros.
Como ya se ha comentado, un SGBD se divide en
módulos que tratan cada una de las responsabilidades del sistema general. En la
mayoría de los casos, el sistema operativo proporciona únicamente los servicios
básicos, y el sistema debe partir de esa base. Así, el diseño de un SGBD debe
incluir la consideración del interfaz entre la BD y el sistema operativo.
Los componentes funcionales de un SGBD incluyen:
Ø
Gestor de ficheros. Se encarga de las estructuras de datos que se emplean para representar
la información almacenada en disco. Además es el encargado de asignar espacio
en disco.
Ø Gestor de BD. Es el interface
entre los datos de bajo nivel almacenados en la BD y los programas de
aplicaciones y consultas de datos.
Ø Procesador de
consultas. Traduce las proposiciones del lenguaje de consultas (DML – Lenguaje de
Manipulación de Datos) a instrucciones de bajo nivel para que las entienda el
gestor de BD. Además el procesador de consultas trata de traducir una petición
del usuario a otra equivalente pero más eficiente.
Ø Compilador DDL. Convierte las
proposiciones DDL (Lenguaje de Definición de Datos) en un conjunto de
tablas que contienen metadatos.
Ø Ficheros de datos. Almacenan la
información (los datos).
Ø Diccionario de
datos. Almacena información referida a la estructura de la BD. Se usa
continuamente. Se debe poner un gran énfasis en un buen diseño y una
implementación adecuada del diccionario de datos.
Generalmente, las
BD requieren una gran cantidad de espacio de almacenamiento, que se miden en
gigabytes. Puesto que la memoria principal no puede almacenar toda esa
información, se almacena en discos. Ya que el movimiento de los datos y el
disco son lentos comparados con la CPU (Unidad Central de Proceso), es
imperativo que el SGBD estructure los datos de forma que minimice la necesidad
de mover los datos entre el disco y la memoria.
El objetivo de un SGBD es simplificar y facilitar
el acceso a los datos. Las vistas de alto nivel ayudan a lograrlo. Un factor
para la satisfacción o insatisfacción de un usuario con el SGBD es su
funcionamiento. El funcionamiento de un sistema depende de la eficiencia de las
estructuras de datos usadas para representar los datos y de la capacidad de
eficiencia de operar sobre estas estructuras que el sistema tiene. Se debe
llegar a un compromiso entre espacio, tiempo y eficiencia.
Un gestor de BD es un módulo de programas que
proporciona el interfaz entre los datos de bajo nivel almacenados y los
programas de aplicación y consultas, y es responsable de las siguientes tareas:
1. Interacción con el gestor de archivos. El
gestor de la BD traduce las distintas sentencias DML a comandos del sistema de
archivos a bajo nivel. Así, es responsable del verdadero almacenamiento de los
datos.
2. Implantación
de la integridad. Los valores de los datos que se almacenan deben satisfacer
ciertos tipos de restricciones de consistencia, que debe especificar
explícitamente el administrador de la BD. El gestor de la BD entonces puede
determinar si se produce una violación de la restricción, si es así, se debe
tomar la acción apropiada.
3. Implantación
de la seguridad. Es trabajo del gestor de la BD debe hacer que se cumplan los
requisitos de seguridad.
4. Copia de
seguridad y recuperación. Un sistema informático, como cualquier otro
dispositivo, está sujeto a fallos. Es responsabilidad del gestor de BD detectar
fallos y recuperar la BD al estado que existía antes de ocurrir el fallo. Esto
se lleva a cabo normalmente con procedimientos de copias de seguridad y
recuperación.
5. Control de
concurrencia. Cuando varios usuarios actualizan la BD de forma concurrente, es
posible que no se conserve la consistencia de los datos. Controlar la
interacción entre los usuarios concurrentes es otra responsabilidad del gestor
de BD.
Los SGBD diseñados para ordenadores personales y/o
pequeños negocios u organizaciones pueden no tener todas las características
apuntadas.
Cuando una
aplicación (programa de usuario) desea acceder a los datos, este acceso será
diferente si lo realiza sobre un fichero o sobre una base de datos.
Cuando se accede a un fichero, el programa de
aplicación, escrito en un lenguaje de programación, lo hace por medio del
sistema de gestión de ficheros del sistema operativo que contiene los métodos
de acceso; mientras que cuando se trata de una base de datos, el programa de
aplicación se dirige al SGBD, el cual accede a la base de datos a través del
sistema operativo.
El funcionamiento que se desencadena al realizarse
una comunicación del usuario con el SGBD se puede dividir en tres pasos:
1. Requerir información: petición, acceso o
activación por parte de las aplicaciones.
2. SGBD:
traducción de la petición (descomponer el programa) en rutinas del SO. Debe
conocer la descripción de los datos (nivel superior), y las rutinas del SO.
3. El SO
recibe las operaciones (rutinas) y se encarga de acceder a disco.
· Área de trabajo: zona de memoria para el intercambio de información entre la base
de datos y la aplicación.
·
Estado: variable local para saber cuál es el último estado después de que la
aplicación haya realizado una operación.
Además un SGBD debe cumplir los siguientes
objetivos:
Ø Privacidad.
Ø Integridad,
(seguridad).
Ø Recoger información
para una posible reconstrucción de la BD.
El funcionamiento del SGBD está muy
interrelacionado con el sistema operativo.
Una de las razones
principales para tener un SGBD es tener el control central de los datos y de
los programas que acceden a los datos. La persona que tiene dicho control
central sobre el sistema se llama Administrador de la Base de Datos (DBA,
database administrator).
Las funciones del DBA son:
1. Definición de esquemas. El esquema original
de la BD se crea escribiendo un conjunto de definiciones que son traducidas por
el compilador de DDL a un conjunto de tablas, almacenadas permanentemente en el
diccionario de datos.
2. Definición
de la estructura de almacenamiento y del método de acceso. Se crean escribiendo
un conjunto de definiciones traducidas por el compilador del lenguaje de
almacenamiento y definición de datos.
3. Modificación
del esquema y de la organización física. Estas modificaciones son poco comunes,
pero se logran escribiendo un conjunto de definiciones usadas por el compilador
de DDL para generar modificaciones a las tablas internas apropiadas.
4. Concesión
de autorizaciones para el acceso a los datos. Esto permite al DBA regular que
partes de la BD van a poder ser accedidas por varios usuarios.
5. Especificación
de las restricciones de integridad. Estas se mantienen en una estructura
especial del sistema que consulta el SGBD cada vez que tiene lugar una
actualización.
Un objetivo
principal de un SGBD es proporcionar un entorno para recuperar y almacenar
información en la BD. En función de este objetivo podemos clasificar los
usuarios en cuatro tipos, según la forma que tienen de interaccionar con el
sistema.
1. Programadores
de aplicaciones. Los profesionales en computación interactúan con el sistema
por medio de llamadas en DML, incorporadas en un programa escrito en un
lenguaje principal (como Pascal o C, Java, PHP o ASP, etc.). Estos programas se
denominan comúnmente programas de aplicación.
2. Usuarios
sofisticados. Interaccionan con el sistema sin escribir programas, en cambio
escriben sus preguntas en un lenguaje de consultas. Cada consulta se somete a
un procesador de consultas, cuya función es tomar una sentencia en DML y
descomponerla en instrucciones que entienda el gestor de la BD.
3. Usuarios
especializados. Algunos usuarios sofisticados escriben aplicaciones de BD
especializadas que no encajan en el marco tradicional de procesamiento de
datos, como sistemas basados en el conocimiento, etc.
4. Usuarios
ingenuos. Los usuarios no sofisticados interactúan con el sistema invocando a
uno de los programas de aplicación permanentes que se haya escrito
anteriormente.
La integridad hace referencia a la calidad de la información:
“los
datos deben estar estructurados reflejando adecuadamente los objetos,
relaciones y restricciones existentes en la parcela del mundo real que modela
la base de datos”
Calidad en el aspecto de que el SGBD debe asegurar:
ü La información de
los datos se almacene de forma correcta.
ü Los datos estén
debidamente interrelacionados.
ü Las ocurrencias de
los datos deben ser accesibles de las formas correctas.
ü El control de los
accesos concurrentes. Las actualizaciones de los usuarios sobre la base de
datos debe ejecutarse correctamente y de forma permanente.
Existen dos tipos de técnicas para mantener
la integridad: preventivas y curativas.
El SGBD proporciona
herramientas para prevenir la llegada a un estado incorrecto.
Tenemos varios tipos:
·
Verificación: Se comprueba que las actualizaciones sobre la BD no conducen a un
estado no integro, es decir, que no viole las restricciones de integridad
definidas en el esquema de la BD.
·
Control de accesos concurrentes: intentan evitar que los resultados de la
ejecución de un programa sean incorrectos, incoherentes o se pierdan debido a
la ejecución concurrente de otro programa que accede a los mismos datos.
Tipos de errores
que se producen por accesos concurrentes mal resueltos:
·
Perdidas de actualizaciones.
·
Obtención de datos incoherentes debido a datos validos de la B.D.
·
Lectura de datos no confirmados.
Todos estos problemas de concurrencia deben ser
resueltos por el SGBD utilizando la reserva de datos, es decir,
cuando un programa va a hacer uso de los datos, los bloquea para que ningún
otro programa los pueda emplear.
·
La ejecución de un
programa se realiza divida en transacciones.
Una transacción es un conjunto de operaciones elementales,
ya sean de lectura y/o actualización de la BD La transacción o tiene éxito, es
decir, realiza todo el conjunto de las operaciones, o sino no se hace ninguna.
El conjunto de operaciones del programa se agrupan en un conjunto de
transacciones.
Cuando se va a
realizar una transacción se reservan los datos que se van a utilizar; las
modificaciones se acaban cuando termina la transacción.
En todo SGBD existe
un módulo que se preocupa de la concurrencia exclusivamente. Evita los abrazos
mortales en las transacciones, mirando si hay ciclos en la reserva de gránulos.
·
Control de la redundancia: existe un módulo que se encarga de que todo lo que
sea redundante sea consistente.
Se encargan de reconstruir los estados incorrectos
debidos a:
Ø
Fallos físicos.
Ø Interrupciones de
programas de modificación.
Ø Las actualizaciones
realizadas por parte del usuario sean erróneas.
Frente a los estados incorrectos hay distintos
tipos de reconstrucción:
Ø
Total: se reconstruyen totalmente, teniendo una copia íntegra.
Ø Parcial: se realiza
a base de repetir transacciones que han sido incorrectas.
Las herramientas utilizadas para la reconstrucción
son:
Ø
Copias de seguridad (backup): en el momento de realizar la copia no debe
de estar realizándose ninguna transacción.
Ø Fichero dietario:
es un fichero en el cual se guarda la información que permite deshacer o
rehacer transacciones efectuadas en un preciso intervalo de tiempo. Cuando una
transacción se confirma se apunta en el dietario.
Objetivo.
Asegurar que a la información almacenada en la BD sólo pueden acceder
las personas autorizadas y en la forma en la cual están autorizadas.
1) Permitir la identificación al
usuario.
2) Determinación
de los tipos de accesos y operaciones permitidos, es decir, a donde puede
acceder y que puede hacer cada usuario. Se pueden determinar de dos formas:
a. Con
niveles de actualización.
b. A base de mantener una lista de
operaciones junto con los objetos sobre los cuales puede realizar esas
operaciones el usuario. (Mejor opción).
3) Efectuar
una gestión de autorización transferida. El gestor debe comprobar y permitir:
a. Que
las autorizaciones que son transferidas de un usuario a otro permitan a este
último transferirlas también.
b. Cualquier
autorización transferida se debe poder revocar posteriormente.
c. Debe
cumplir la anulación de autorizaciones en cascada.
No hay comentarios:
Publicar un comentario