Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo 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.
Gestor de base de datos SGDB o MBMS.
El éxito del SGBD reside en mantener la seguridad e integridad de los datos. Lógicamente tiene que proporcionar herramientas a los distintos usuarios. Entre las herramientas que proporciona están:
- Herramientas para la creación y especificación de los datos. Así como la estructura de la base de datos.
- Herramientas para administrar y crear la estructura física requerida en las unidades de almacenamiento.
- Herramientas para la manipulación de los datos de las bases de datos, para añadir, modificar, suprimir o consultar datos.
- Herramientas de recuperación en caso de desastre.
- Herramientas para la creación de copias de seguridad.
- Herramientas para la gestión de la comunicación de la base de datos.
- Herramientas para la creación de aplicaciones que utilicen esquemas externos de los datos.
- Herramientas de instalación de la base de datos
- Herramientas para la exportación e importación de datos
Características deseables en un SGBD.
1. Control de redundancia.
2. Restricción de accesos no autorizados.
3. Almacenamiento de objetos y estructuras de datos de programas.
4. Inferencias en la BD mediante reglas de deducción.
5. Suministro múltiple de interfaces con los usuarios.
6. Recuperación de vínculos complejos entre los datos.
7. Cumplimiento de las restricciones de integridad.
8. Respaldo y recuperación.
Control de redundancia.
El SGBD consta de herramienta para crear restricciones para evitar duplicaciones.
Restricción de accesos no autorizados.
Tenemos muchos usuarios que comparten la base pero no todos deben tener acceso a toda la información que ella contiene. El SGBD debe contar con un subsistema de seguridad y autorización que permita al DBA administrar restricciones y autorizaciones.
Inferencias en la BD mediante reglas de deducción.
Una base mediante reglas de deducción u orientada a objeto. Surgen como una combinación de las BD y la programación orientada a objeto. BDR: persistencia, concurrencia, recuperación, facilidad de consultas. BDOO: objetos, encapsulamiento, tipos de clases, herencia, identidad de objeto.
Suministro múltiple de interfaces con los usuarios.
Como podemos tener una gran variedad de usuarios y con diversos niveles de conocimientos el SGBD debe contar con diferentes interfaces para los diferentes usuarios.
Vínculos complejos entre los datos.
Una BD puede contener numerosos conjuntos de datos que estén relacionados entre si de muchas maneras. Es preciso que el SGBD pueda representar diversos vínculos complejos de bases de datos y también obtener y actualizar con rapidez y eficiencia datos que estén mutuamente relacionados.
Cumplimiento de las restricciones de integridad.
Cuando hablamos de restricciones de integridad nos referimos a restricciones de los datos que las aplicaremos mediante el SGBD. La forma más fácil de restringir la integridad consiste en especificar un tipo de datos para cada elemento de información. Ej el campo grado de primaria no va ser texto sino que numérico y a su ves no va tener mas de una posición numérica ya que no tenemos grados de dos dígitos.
Respaldo y recuperación.
Respaldo y recuperación se refiere a la recuperación ante falla de hardware o software del SGBD. Si por algún motivo el SGBD falla debe volver a la instancia anterior a la falla.
Funciones y lenguajes de SGBD.
Los SGBD tienen que realizar tres tipos de funciones para ser considerados válidos.
Función de descripción o de definición.
Permite al diseñador de la base de datos crear las estructuras apropiadas para integrar adecuadamente los datos. Este función es la que permite definir las tres estructuras de la base de datos (relacionadas con sus tres esquemas).
• Estructura interna
• Estructura conceptual
• Estructura externa
Esta función se realiza mediante el lenguaje de descripción de datos o DDL. Mediante ese lenguaje:
• Se definen las estructuras de datos
• Se definen las relaciones entre los datos
• Se definen las reglas que han de cumplir los datos
Función de manipulación.
Permite modificar y utilizar los datos de la base de datos. Se realiza mediante el lenguaje de modificación de datos o DML. Mediante ese lenguaje se puede:
• Añadir datos
• Eliminar datos
• Modificar datos
• Buscar datos
Actualmente se suele distinguir aparte la función de buscar datos en la base de datos (función de consulta). Para lo cual se proporciona un lenguaje de consulta de datos o DQL.
Función de control.
Mediante esta función los administradores poseen mecanismos para proteger las visiones de los datos permitidas a cada usuario, además de proporcionar elementos de creación y modificación de esos usuarios.
Se suelen incluir aquí las tareas de copia de seguridad, carga de ficheros, auditoria, protección ante ataques externos, configuración del sistema,... El lenguaje que implementa esta función es el lenguaje de control de datos o DCL.
Estructura multicapas del SGBD.
El proceso que realiza un SGBD está en realidad formado por varias capas que actúan como interfaces entre el usuario y los datos. Fue el propio organismo ANSI (en su modelo X3/SPARC que luego se comenta) 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.
Modelo de referencia de las facilidades del usuario.
Facilidades del usuario: Son las herramientas que proporciona el SGBD a los usuarios para permitir un acceso más sencillo a los datos. Actúan de interfaz entre el usuario y la base de datos, y son el único elemento que maneja el usuario.
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 a través de las herramientas de gestión de datos que incorpore el SGBD.
Diccionario de datos (del SGBD): Se trata del elemento que posee todos los metadatos. Gracias a esta capa las solicitudes de los clientes se traducen en instrucciones que hacen referencia al esquema interno de la base de datos.
Núcleo: El núcleo de la base de datos es la 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í.
Funcionamiento del SGBD.
Esquema del funcionamiento del SGBD.
El esquema anterior reproduce la comunicación entre un proceso de usuario que desea acceder a los datos y el SGBD:
(1) El proceso lanzado por el usuario llama al SGBD indicando la porción de la base de datos que se desea tratar
(2) El SGBD traduce la llamada a términos del esquema lógico de la base de datos. Accede al esquema lógico comprobando derechos de acceso y la traducción física (normalmente los metadatos se guardan una zona de memoria global y no en el disco)
(3) El SGBD obtiene el esquema físico
(4) El SGBD traduce la llamada a los métodos de acceso del Sistema Operativo que permiten acceder realmente a los datos requeridos
(5) El Sistema Operativo accede a los datos tras traducir las órdenes dadas por el SGBD
(6) Los datos pasan del disco a una memoria intermedia o buffer. En ese buffer se almacenarán los datos según se vayan recibiendo
(7) Los datos pasan del buffer al área de trabajo del usuario (ATU) del proceso del usuario. Los pasos 6 y 7 se repiten hasta que se envíe toda la información al proceso de usuario.
(8) En el caso de que haya errores en cualquier momento del proceso, el SGBD devuelve indicadores en los que manifiesta si ha habido errores o advertencias a tener en cuenta. Esto se indica al área de comunicaciones del proceso de usuario. Si las indicaciones son satisfactorias, los datos de la ATU serán utilizables por el proceso de usuario.
SGBD Comerciales.
MySQL:
Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso.
Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como el Apache, donde el software es desarrollado por una comunidad pública, y el copyright del código está en poder del autor individual, MySQL es propiedad y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.
Oracle:
Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:
• Soporte de transacciones.
• Estabilidad.
• Escalabilidad.
• Es multiplataforma.
Su mayor defecto es su enorme precio, que es de varios miles de dólares (según versiones y licencias). Otro aspecto que ha sido criticado por algunos especialistas es la seguridad de la plataforma, y las políticas de suministro de parches de seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de exposición de los usuarios. En los parches de actualización provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilidades públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años.
Aunque su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros SGBD con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo Linux.
Paradox (base de datos):
Base de datos relacional para entorno MS Windows, anteriormente disponible para MS-DOS y Linux, desarrollada actualmente por Corel e incluida en la suite ofimática WordPerfect Office.
En los tiempos del MS-DOS, era una base de datos de bastante éxito, compitiendo con dBase, Clipper y FoxBase. Pasó al control de Borland después de la compra de Ansa Software en 1987.
Aunque Borland la portó a Windows, su cuota de mercado es mucho menor que la de Microsoft Access, pero su lenguaje de programación (Objectpal) es Pascal lo que le hace más potente que Access que usa Visual Basic que limita bastante sus prestaciones si se compara con otras bases de datos que usan lenguajes más avanzados. Con su Runtime se puede desarrollar una aplicación usando una sola licencia sin limitación de puestos.
Microsoft SQL Server:
Es un sistema de gestión de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea. Así de tener unas ventajas que a continuación se pueden describir.
Entre sus características figuran:
• Soporte de transacciones.
• Escalabilidad, estabilidad y seguridad.
• Soporta procedimientos almacenados.
• Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
• Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
• Además permite administrar información de otros servidores de datos
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en su versión 2005 pasa a ser el SQL Express Edition.
Microsoft SQL Server constituye la alternativa de Microsoft a otros sistemas gestores de bases de datos como son Oracle, Sybase ASE o MySQL.
Es común desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa una potente base de datos (Microsoft SQL Server) con un entorno de desarrollo cómodo y de alto rendimiento (VBA Access) a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows.
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET.
Microsoft SQL Server, al contrario de su más cercana competencia, no es multiplataforma, ya que sólo está disponible en Sistemas Operativos de Microsoft.
Microsoft Access:
Es un sistema de gestión de bases de datos Relacional creado y modificado por Microsoft (DBMS) para uso personal de pequeñas organizaciones. Es un componente de la suite Microsoft Office aunque no se incluye en el paquete “básico”. Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas.
Características:
Entre las principales funcionalidades de Access se encuentran:
• Crear tablas de datos indexadas.
• Modificar tablas de datos.
• Relaciones entre tablas (creación de bases de datos relacionales).
• Creación de consultas y vistas.
• Consultas referencias cruzadas.
• Consultas de acción (INSERT, DELETE, UPDATE).
• Formularios.
• Informes.
• Llamadas a la API de windows.
• Interacción con otras aplicaciones que usen VBA (resto de aplicaciones de Microsoft Office, Autocad, etc.).
• Macros.
• Interconexión con entornos de bases de datos de gran nivel (como por ejemplo SQL Server) a través de vinculación.
• Soporte de lectura de sistemas de archivos individuales (como FoxBase y similares) a través de vinculación e importación de datos.
Además, permite crear frontends – o programa que muestra la interfaz de usuario – de bases de datos más potentes ya que es un sistema capaz de acceder a tablas externas a través de ODBC como si fueran tablas Access.
Generalidades:
Es un software de gran difusión entre pequeñas empresas (PYMES) cuyas bases de datos no requieren de excesiva potencia, ya que se integra perfectamente con el resto de aplicaciones de Microsoft y permite crear pequeñas aplicaciones con unos pocos conocimientos de programación.
Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la respuesta a proyectos de programación de pequeño y mediano tamaño.
Inconvenientes:
Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios) es recomendable usar otros sistemas como MySQL o Microsoft SQL Server, y código VBA (Visual Basic para Aplicaciones).
Entre sus mayores inconvenientes figuran que no es multiplataforma, pues sólo está disponible para sistemas operativos de Microsoft, y que no permite transacciones. Su uso es inadecuado para grandes proyectos de software que requieren tiempos de respuesta críticos o muchos accesos simultáneos a la base de datos.
DB2:
Es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos.
La versión más actual es DB2 9, la cual utiliza XML como motor, además el modelo que utiliza es el jerárquico en lugar del modelo relacional que utilizan otros gestores.
Visual FoxPro:
Es un lenguaje de programación orientado a objetos y procedural, un Sistema Gestor de Bases de datos o Database Management System (DBMS), y desde la versión 7.0, un Sistema administrador de bases de datos relacionales, producido por Microsoft.
Características:
Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
• Capacidades poderosas y muy veloces para el manejo de datos nativos y remotos.
• Flexibilidad para crear todo tipo de soluciones de bases de datos.
• Lenguaje de programación Orientado a objetos.
• Utilización de sentencias SQL en forma nativa.
• Poderoso manejo de vistas y cursores y control completo de estructuras relacionales.
• Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
• Cuenta con un motor de generación de informes renovado y muy flexible para soluciones más robustas.
• Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reports en formato XLM.
• Desde la versión 7.0, soporte de la tecnología IntelliSense de Microsoft
La última versión liberada es la 9.0. La próxima versión, ‘Sedna’, será un poderoso y completo lenguaje que permitirá al producto interactuar aun más con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12, Windows Vista.
No habrá una próxima versión llamada sedna, microsoft ha cancelado el desarrollo de dicha versión y lanzarán lo que han hecho hasta ahora como un service pack, hay fecha de fin de soporte que es en el año 2015.
Hay un movimiento que está haciendo presión para que microsoft continue, o deje el visual fox como código abierto para que otra gente pueda seguir evolucionando.
La versión 9.0 de Visual FoxPro cuenta con el SP1 en la que hay algunas nuevas características y especialmente brinda estabilidad al producto.
PostgreSQL.
Es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
Características
Algunas de sus principales características son, entre otras:
1. Alta concurrencia: mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.....
2. Amplia variedad de tipos nativos: provee nativamente soporte para:
• Números de precisión arbitraria.
• Texto de largo ilimitado.
• Figuras geométricas (con una variedad de funciones asociadas).
• Direcciones IP (IPv4 e IPv6).
• Bloques de direcciones estilo CIDR.
• Direcciones MAC.
• Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.
Otras características
1. Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys).
2. Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características:
• El nombre del disparador o trigger
• El momento en que el disparador debe arrancar
• El evento del disparador deberá activarse sobre...
• La tabla donde el disparador se activará
• La frecuencia de la ejecución
• La función que podría ser llamada
Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers).
3. Vistas.
4. Integridad transaccional.
5. Herencia de tablas.
6. Tipos de datos y operaciones geométricas.
7. Soporte para transacciones distribuidas. Permite a PostgreSQL integrase en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción globlal es el resultado del éxito de las transacciones locales.