MENU DESPLEGABLE

Sistema gestor de base de datos

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:

Nivel interno o físico. Esquema interno o físico.
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,...

Nivel conceptual. Esquema conceptual.
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.

Nivel lógico. Esquema lógico.


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.

Existen dos niveles de 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.

Independencia Física entre el esquema físico y el lógico.
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