01.-Funciones. Lenguajes de los SGBD¶
Los SGBD tienen que realizar tres tipos de funciones para ser considerados válidos. A continuación se describen estas tres funciones.
Función de descripción o definición¶
Permite al diseñador de la base de datos crear las estructuras apropiadas para integrar adecuadamente los datos. Se dice que esta función es la que permite definir las tres estructuras de la base de datos (relacionadas con los tres niveles de abstracción de las mismas).
-
Estructura interna
-
Estructura conceptual
-
Estructura externa
Más adelante se explican estas tres estructuras, relacionadas con las tres formas (o niveles) de ver la base de datos.
Realmente la función de definición gestiona los metadatos. Los metadatos son la estructura de la dispone el sistema de base de datos para documentar cada dato. Los metadatos también son datos que se almacenan en la propia base de datos; pero su finalidad es describir los datos.
Un metadato nos permite para saber a qué información real se refiere cada dato. Por ejemplo: Sánchez, Rodríguez y Crespo son datos. Pero Primer Apellido es un metadato que, si está correctamente creado, nos permite determinar que Sánchez, Rodríguez y Crespo son primeros apellidos.
Dicho de otra forma, sin los metadatos, no podríamos manejar los datos como información relevante. Por ello son fundamentales. Son, de hecho, la base de la creación de las bases de datos.
Los metadatos pueden indicar cuestiones complejas. Por ejemplo, que de los Alumnos almacenamos su dni el cual lo forman 9 caracteres. Incluso podremos indicar que en el dni los 8 primeros son números y el noveno un carácter en mayúsculas que además cumple una regla concreta y sirve para identificar al alumno.
Por lo tanto, en realidad, la función de definición sirve para crear, eliminar o modificar metadatos.
Resumiendo: con la función de definición podremos:
-
Especificar el significado de los datos
-
Organizar la información en estructuras más complejas
-
Relacionar los datos de forma precisa
-
Especificar reglas especiales que deben cumplir los datos
-
Crear todos los elementos estructurales de la base de datos (incluidos los usuarios)
Un lenguaje conocido como lenguaje de descripción de datos o DDL (Data Description Language), es el que permite realizar la función de definición en las bases de datos.
Función de manipulación¶
Permite cambiar y consultar los datos de la base de datos. Se realiza mediante un lenguaje de manipulación de datos o DML (Data Manipulation Language). Mediante este lenguaje se puede:
-
Añadir datos
-
Eliminar datos
-
Modificar datos
-
Consultar datos
Actualmente se suele diferenciar la función de consulta de datos, diferenciándola del resto de operaciones de manipulación de datos. Se habla de que la función de consulta se realiza con un lenguaje de consulta de datos o DQL (Data Query Language).
Función de control¶
Mediante esta función los administradores poseen mecanismos para proteger los datos. De manera que se permite a cada usuario ver ciertos datos y otros no, o bien usar ciertos recursos concretos de la base de datos y prohibir otros. Es decir, es la función encargada de establecer los permisos de acceso a los elementos que forman parte de la base de datos.
El lenguaje que implementa esta función es el lenguaje de control de datos o DCL (Data Control Language).
02.-Utilidad de los SGBD¶
Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo en los libros especializados las siglas DBMS procedentes del inglés, Data Base Management System) es el software que permite a los usuarios procesar, describir, administrar y recuperar los datos almacenados en una base de datos.
En estos sistemas se proporciona un conjunto coordinado de programas, procedimientos y lenguajes que permiten a los distintos usuarios realizar sus tareas habituales con los datos, garantizando además la seguridad de los mismos.
El éxito del SGBD reside en mantener la seguridad e integridad de los datos. Lógicamente tiene que proporcionar herramientas a los distintos usuarios.
Además de las tres funciones principales comentadas anteriormente, hoy en día los SGBD son capaces de realizar numerosas operaciones. Para ello proporcionan numerosas herramientas, muchas de ellas permiten trabajar de una forma más cómoda con las . Las más destacadas son:
-
Herramientas para la creación y especificación del diccionario de datos. El diccionario de datos es la estructura de la base de datos que almacena los metadatos. Es decir el diccionario de datos contiene la descripción de todos los datos de la base de datos.
-
Herramientas para administrar y crear la estructura física de la base de datos. El SGBD proporciona herramientas para especificar la forma en la que se almacenarán los datos en la computadora (o computadoras) que alojen la base de datos. Estas herramientas nos permitirán diseñar una forma de almacenamiento centrada en optimizar el acceso a los datos.
-
Herramientas para la manipulación de los datos. Nos permitirán añadir, modificar, suprimir o consultar datos (función de manipulación) de la forma más sencilla posible.
-
Herramientas de recuperación en caso de desastre. Si ocurre un mal funcionamiento del sistema, un fallo en la alimentación del sistema, errores de red, etc. En ese caso los buenos SGBD poseen y proporcionan mecanismos para que se recupere la máxima información posible y se asegure su integridad.
-
Herramientas para la creación y restablecimiento de copias de seguridad. Es una de las tareas fundamentales, ya que permite recuperar la información en caso de pérdida de datos.
-
Herramientas para la gestión de la comunicación de la base de datos. Encargadas de configurar el hardware y software de conexión a la red. Así como los mecanismos necesarios para configurar adecuadamente el software que se encarga de recibir y comunicar las peticiones de los clientes.
-
Herramientas para la creación de aplicaciones de usuario. Es decir, herramientas para los programadores de aplicaciones, los cuales crean el software con el que los usuarios accederán de forma cómoda a la base de datos.
-
Herramientas de instalación y configuración de la base de datos.
-
Herramientas para la exportación e importación de datos a o desde otros sistemas.
-
Herramientas para gestionar la seguridad. Permiten establecer privilegios y permisos diferentes para los usuarios, así como impedir el acceso no deseado (función de control).
03.-Niveles de abstracción de una base de datos¶
Introducción¶
En cualquier software siempre hay dos puntos de vista:
-
Nivel externo. Esta es la visión del software que tienen los usuarios
-
Nivel interno. Visión de los creadores del software, que determina su forma de funcionar.
Esta separación distingue al usuario, del programador que ha creado la aplicación, y es crucial que sea así. Del mismo modo una casa se la puede observar desde el punto de vista del inquilino de la misma o bien de las personas que la construyeron. Los primeros ven la función real de la misma y los constructores nos podrán hablar de los materiales empleados por ejemplo.
En el caso de las bases de datos hay más niveles, más formas de observar la base de datos y estos niveles son manejados por los distintos usuarios de la base de datos. A eso se le llama los niveles de abstracción porque nos permite efectivamente abstraernos para observar la base de datos en base a diferentes intereses. Los usuarios podrán entender la base de datos sin conocer los entresijos técnicos y los administradores podrán trabajar con base de datos sin conocer la forma en la que los usuarios realmente añaden los datos.
Los niveles habituales son:
-
Nivel físico. Nos permite saber la forma en la que está almacenada la base de datos. Por ejemplo en qué discos duros, qué archivos utiliza, de qué tipo son los archivos, bajo qué sistema operativo,… Este nivel es el que está más cercano a la visión de la base de datos que posee la computadora, por lo que es absolutamente dependiente del hardware y el software (especialmente del Sistema Operativo).
-
Nivel interno. Un poco más cercano a la visión que tenemos las personas. Permite observar la base de datos como un conjunto de estructuras que relacionan la información humana con la información digital. A este nivel no se depende del hardware concreto que tengamos; es decir, no se habla de discos, servidores, archivos,… sino de las estructuras que disponemos en nuestro SGBD en particular para organizar los datos.
-
Nivel conceptual. Es el nivel de mayor abstracción y el más importante. Se trata de una visión organizativa de los datos independiente tanto del hardware como del software que tengamos. Es el plano o modelo general de la base de datos y a este nivel es al que trabajan las o los analistas y diseñadores cuando crean el primer esquema de la base de datos. En ningún momento queda influido por el SGBD en particular que usemos.
-
Nivel externo. Se trata de la visión de los datos que poseen los usuarios finales de la base de datos. Esa visión es la que obtienen a través de las aplicaciones. Las aplicaciones creadas por los desarrolladores abstraen la realidad conceptual de modo que el usuario no conoce las relaciones entre los datos, como tampoco conoce dónde realmente se están almacenando los datos. Es la forma en la que cualquier persona desea manejar una base de datos a través de formularios, informes, listas,…
La idea de estos niveles procede de la normalización hecha en el modelo ANSI/X3/SPARC y sigue estando muy presente en la gestión actual de las bases de datos.
Este modelo dictó que podemos pasar de unos modelos a otros de manera casi automática utilizando un software adecuado. El modelo ANSI llama a ese software procesador de modelos y hoy en día es lo que se conoce como herramientas CASE (Computer Aided for Software Engineering, Asistente Computerizado para Ingeniería del Software). Para cada nivel se realizan esquemas relacionados con ellos. Así hay esquemas externos (varios), esquema conceptual, esquema interno y esquema físico que forman todos los aspectos de la base de datos.
En la Ilustración se observa la distancia que poseen los usuarios de la base de datos respecto a la realidad física de la base de datos (representada con el cilindro). La física son los datos en crudo, es decir en formato binario dentro del disco o discos que los contienen. El esquema físico es el que se realiza pensando más en esa realidad y los esquemas externos los que se crean pensando en la visión de los usuarios.
Las dos columnas que aparecen en la imagen reflejan dos fronteras a tener en cuenta:
-
Independencia Lógica. Los esquemas de los niveles conceptual y externo son independientes del software concreto de base de datos que usemos; no dependen en absoluto de él. Por ello esos esquemas nos valdrían para cualquier SGBD que utilicemos.
-
Independencia Física. La da la barrera entre el esquema físico y el interno e indica que el esquema interno es independiente del hardware concreto que usemos. El esquema físico se diseña en base a un hardware concreto, pero él interno no. Eso permite concentrarse en detalles más conceptuales.
04.-Recursos humanos de las bases de datos¶
Intervienen (como ya se ha comentado) muchas personas en el desarrollo y manipulación de una base de datos. Se describen, a continuación, los actores más importantes.
Informáticos¶
Lógicamente, son los profesionales que definen y preparan la base de datos. Pueden ser:
-
Directivos. Organizadores y coordinadores del proyecto a desarrollar y máximos responsables del mismo. Esto significa que son los encargados de decidir los recursos que se pueden utilizar, planificar el tiempo y las tareas, la atención al usuario y de dirigir las entrevistas y reuniones pertinentes.
Son especialistas en gestión de recursos, tanto materiales como humanos.
-
Analistas. Son los encargados de controlar el desarrollo de la base de datos aprobada por la dirección. Dirigen a los desarrolladores y operadores. Normalmente son, además, los diseñadores de la base de datos: es decir, crean el esquema conceptual de la misma.
-
Administradores de las bases de datos. Encargados de crear el esquema interno de la base de datos. También gestionan el correcto funcionamiento del SGBD. Sus tareas incluyen la planificación de copia de seguridad, gestión de usuarios y permisos, optimización del rendimiento, monitorización de problemas y creación de los objetos de la base de datos.
-
Desarrolladores o programadores. Encargados de la realización de las aplicaciones de usuario para que estos accedan a la base de datos.
-
Equipo de mantenimiento. También se les llama operadores. Encargados de dar soporte a los usuarios en el trabajo diario (suelen incorporar además tareas administrativas como la creación de copias de seguridad por ejemplo o el arreglo de problemas de red por ejemplo).
Usuarios¶
-
Expertos Realizan operaciones avanzadas sobre la base de datos. Normalmente conocen el lenguaje de manipulación de datos (DML) para acceder a la base de datos. Son usuarios, por lo tanto, con conocimientos informáticos que se encargan en las empresas de los clientes de algunas acciones más complejas sobre la base de datos que las que realizan los usuarios habituales.
-
Habituales. Utilizan las aplicaciones creadas por los desarrolladores para consultar y actualizar los datos. Son los que trabajan en la empresa a diario con estas herramientas y el objetivo fundamental de todo el desarrollo de la base de datos.
-
Ocasionales. Son usuarios que utilizan un acceso mínimo a la base de datos a través de una aplicación que permite consultar ciertos datos. Serían por ejemplo los usuarios que consultan el horario de trenes a través de Internet. Aunque se les llama ocasionales son el núcleo del trabajo con la base de datos ya que son los que más la utilizan (ya que son sus usuarios más numerosos) y son, por ejemplo, los que visitan la base de datos para realizar compras o para informarse del negocio representado en la base de datos.
05.-Proceso de creación y manipulación de una base de datos¶
Fase de creación:¶
-
El analista o diseñador crea el esquema conceptual. En muchas ocasiones, utilizando una herramienta CASE para diseñar el esquema de forma más cómoda.
-
El administrador de la base de datos (DBA) recoge ese esquema y crea el esquema interno de la base de datos. También se encarga, previamente, de determinar el SGBD idóneo y de configurar el software del SGBD así como de establecer las políticas de copia de seguridad.
- Los desarrolladores también recogen el esquema conceptual y utilizan las aplicaciones necesarias para generar los esquemas externos, que realmente se traducirán en programas y aplicaciones, que necesitan los usuarios.
Fase de manipulación:¶
Ocurre con la base de datos ya creada y en funcionamiento.
- El usuario realiza una operación sobre la base de datos (una consulta, modifica o añade un dato, etc.)
- Las aplicaciones las traducen a su forma conceptual utilizando el diccionario de datos, que posee todos los metadatos necesarios.
- El esquema conceptual es traducido por la SGBD a su forma interna, nuevamente con ayuda del Diccionario de Datos.
- EL SGBD se comunica con el Sistema Operativo para pedir que acceda al disco (estamos, por lo tanto ya en el nivel físico) y recoja los datos requeridos (siempre con ayuda del Diccionario de Datos).
- El Sistema Operativo accede al almacenamiento físico correspondiente y devuelve los datos al SGBD.
- El SGBD transforma los datos internos en datos conceptuales y los entrega a la aplicación.
- La aplicación muestra los datos habiéndolos traducido a una forma (externa) amigable y apta para ser entregada al usuario que hizo la petición.
06.-Estructura multicapa¶
El proceso que realiza un SGBD para acceder a los datos está en realidad formado por varias capas que actúan como interface. El usuario nunca accede a los datos directamente. Estas capas son las que consiguen implementar los niveles de abstracción de la base de datos.
Fue el propio organismo ANSI (en su modelo ANSI/X3/SPARC) la que introdujo una mejora de su modelo de bases de datos en 1988 a través de un grupo de trabajo llamado UFTG (User Facilities Task Group, grupo de trabajo para las facilidades de usuario). Este modelo toma como objeto principal al usuario habitual de la base de datos y modela el funcionamiento de la base de datos en una sucesión de capas cuya finalidad es ocultar y proteger la parte interna de las bases de datos.
Desde esta óptica, para llegar a los datos hay que pasar una serie de capas que desde la parte más externa poco a poco van entrando más en la realidad física de la base de datos.
Este marco sigue teniendo vigencia actualmente e indica que el acceso a los datos no es instantáneo, que los datos están protegidos de los usuarios que pasan (sin saberlo) por varias capas de proceso antes de que sus peticiones a la base de datos sean atendidas.
Se explican las capas en detalle
Aplicaciones de usuario¶
Es la capa a la que acceden los usuarios. Proporciona el SGBD a los usuarios un acceso más sencillo a los datos. Son, en definitiva, las páginas web y los programas con las que los usuarios manejan la base de datos. Permite abstraer la realidad de la base de datos a las usuarias y usuarios, mostrando la información de una forma más humana.
Capa de acceso a datos¶
La capa de acceso a datos es la que permite comunicar a las aplicaciones de usuario con el diccionario de datos. Es un software (un driver o controlador, en realidad) que se encarga traducir las peticiones del usuario para que lleguen de forma correcta a la base de datos y ésta pueda responder de forma adecuada.
Diccionario de datos¶
Se trata de una estructura interna del SGBD que contiene todos los metadatos. Esta estructura es la que permite pasar de un nivel a otro.
Núcleo¶
El núcleo de la base de datos es la capa encargada de traducir todas las instrucciones requeridas y prepararlas para su correcta interpretación por parte del sistema. Realiza la traducción física de las peticiones.
Sistema operativo¶
Es una capa externa al software SGBD pero es la única capa que realmente accede a los datos en sí. En realidad los SGBD no acceden directamente al disco, sino que piden al Sistema Operativo que lo haga, ya que es el que maneja el sistema de discos.
07.-Funcionamiento del SGBD¶
La siguiente ilustración presenta el funcionamiento típico de un SGBD. En ella se reproduce la comunicación entre un usuario que desea acceder a los datos y el SGBD:
- Los usuarios utilizan una aplicación para acceder a los datos. Estamos en el nivel externo de la base de datos, por lo que la propia aplicación traduce la petición que hizo el usuario de forma sencilla, a una petición entendible por la capa de acceso a los datos.
-
El proceso cliente es el software de acceso a la base de datos y que está instalado en el lado del cliente. Se encarga simplemente de recoger y enviar la petición (comprobando antes si hay comunicación con el servidor de la base de datos).
-
A través de la red (normalmente) el proceso cliente se comunica con el proceso servidor, que es el software de comunicación instalado en el lado del servidor. Ambos procesos (cliente y servidor) forman la capa de acceso a los datos.
-
Estando ya en el servidor, la petición pasa al software del Sistema Gestor de Bases de Datos (habrá aquí, como se ha visto en el apartado anterior una traducción de datos, desde el nivel externo al nivel interno).
-
El SGBD, comprobando el diccionario de datos, comprueba si la petición es correcta.
-
El SGBD también revisa el diccionario de datos (si la petición es correcta) para saber con exactitud en qué archivos y en qué parte dentro de ellos, se encuentran los datos requeridos
-
Con la información sobre dónde están los datos, el SGBD hace una petición al Sistema Operativo, que es el que tiene capacidad realmente de acceder a los archivos de datos. Por ello la petición del SGBD se traduce al formato utilizado por el Sistema Operativo.El Sistema Operativo accede a los datos.
-
El Sistema Operativo recibe los datos.
-
Se entregan los datos al Sistema Gestor de Bases de Datos o, si ha habido un error al acceder a los datos, se indica el error ocurrido.
-
El SGBD traduce los datos a una forma más conceptual y se los entrega al proceso servidor.
-
Los datos se entregan al proceso cliente.
-
Los datos llegan a la aplicación.
-
La aplicación de usuario traduce los datos recibidos en información presentada de la forma más conveniente para el usuario.
08.-Formas de ejecución de un SGBD¶
SGBD monocapa¶
Se trata de Sistemas Gestores instalados en una máquina desde la que se conectan los propios usuarios y administradores. Es decir, todo el sistema está en una sola máquina.
Es un modelo que sólo se utiliza con bases de datos pequeñas y poca cantidad de conexiones. La popular Access de Microsoft es considerada un sistema gestor monocapa (aunque tiene algunas posibilidades para utilizar en dos capas).
SGBD bicapa¶
Usa un modelo de funcionamiento tipo cliente/servidor. La base de datos y el sistema gestor se alojan en un servidor al cual se conectan los usuarios desde máquinas clientes. Un software de comunicaciones se encarga de permitir el acceso a través de la red. Los clientes deben instalar el software cliente de acceso según las instrucciones de configuración del administrador.
Hay dos posibilidades:
-
Arquitectura cliente/servidor único. Un solo servidor gestiona la base de datos, todos los clientes se conectan a él para realizar las peticiones a la base de datos.
-
Arquitectura cliente/multiservidor. La base de datos se distribuye entre varios servidores. El cliente no sabe realmente a qué servidor se conecta; el software de control de comunicaciones se encargará de dirigir al usuario al servidor adecuado. De forma lógica, es como si se tratara de un solo servidor aunque físicamente sean muchos (el cliente no percibe que haya más de un servidor).
SGBD de tres o más capas¶
En este caso entre el cliente y el servidor hay al menos una capa intermedia (puede haber varias). Esa capa (o capas) se encarga de recoger las peticiones de los clientes y luego de comunicarse con el servidor (o servidores) de bases de datos para recibir la respuesta y enviarla al cliente.
El caso típico es que la capa intermedia sea un servidor web, que recibe las peticiones a través de aplicaciones web; de este modo para conectarse a la base de datos, el usuario solo requiere un navegador web, que es un software muy habitual en cualquier máquina y por lo tanto no requiere una instalación de software adicional en la máquina cliente.
Este modelo es el que más se está potenciando en la actualidad por motivos de seguridad y portabilidad de la base de datos.