Manejadores de base de datos (DBMS): Gestores de bases de datos (SGBD) relacionales
by Juan Carlos García
19-Jun-2024
(4)
Suscribirme al canal:
Hola, bienvenido a EWebik, en este post te hablaré de los Manejadores de Bases de Datos más importantes, aprenderás, qué son y para qué sirven los diferentes Gestores de bases de datos que existen, quizá no veamos todos, pero, estoy seguro que esta introducción te será útil para cualquier tipo de sistema de gestión de base de datos relacionales que llegues a utilizar.
- Esta clase forma parte de mi Curso Gratuito de Base de Datos, que con entusiasmo te invito a revisar.
¡No te puedes perder las nuevas clases 🧐!
Modelos de Base de Datos
Lista de los principales tipos y modelos de base de datos que existen
(14)
Normalización de base de datos
Normalización de base de datos: descripción y características de las 5 formas normales.
(11)
Modelo entidad relación
Modelo entidad relación: simbología y características del diagrama entidad relación.
(9)
Servidor de Base de Datos
Servidores de Base de Datos: ¿Qué son? Tipos, características e instalación.
(5)
Backup y restaurar SQL Server
Backup SQL Server: ¿Cómo respaldar y restaurar una base de datos en SQL Server?
(2)
🧐 Autoevaluación: SGBD
¿Cuáles son los componentes de un manejador de base de datos?
¿Cuáles son los tipos de manejadores de base de datos?
¿Cuantas reglas de Codd existen?
Tabla de contenido
- 1 ¿Qué es un manejador de base de datos (DBMS)?
- 2 Diferencia entre un manejador de base de datos y un gestor de base de datos
- 3 Componentes principales de un manejador de base de datos
- 4 ¿Para qué sirve un gestor de base de datos?
- 5 Tipos de manejadores de base de datos
- 6 Manejadores de bases de datos relacionales RDBMS
-
7 Las 12 reglas de Codd que debe cumplir un RDBMS
- 7.1 ️📌 Regla 0: regla de fundación
- 7.2 📌 Regla 1: regla de la información
- 7.3 📌 Regla 2: regla del acceso garantizado
- 7.4 📌 Regla 3: regla para el tratamiento de valores nulos
- 7.5 📌 Regla 4: regla del diccionario dinámico en línea, basado en el modelo relacional
- 7.6 📌 Regla 5: regla comprensiva del sublenguaje de datos amplio
- 7.7 📌 Regla 6: regla de actualización de vistas
- 7.8 📌 Regla 7: regla de alto nivel de inserción, actualización y eliminación
- 7.9 📌 Regla 8: regla de la independencia física de los datos
- 8 📌 Regla 9: regla de la independencia lógica de los datos
- 8.1 📌 Regla 10: regla de la independencia de la integridad
- 8.2 📌 Regla 11: regla de la independencia de la distribución
- 8.3 📌 Regla 12: regla de la no subversión
- 8 😉 Ventajas de los manejadores de base de datos
- 9 😥 Desventajas de los manejadores de base de datos
- 10 Ejemplos: 16 manejadores de datos más populares
Gracias por tu calificación
(4)
¿Qué es un manejador de base de datos (DBMS)?
Un manejador de base de datos (DBMS) es un conjunto de programas, los cuales, tiene el objetivo de modificar, almacenar, eliminar y extraer la información que contenga una base de datos (DB).
Tu puedes acceder a la información de una base de datos (DB) utilizando herramientas de consulta, generadores de informes o por medio de aplicaciones especializadas.
Diferencia entre un manejador de base de datos y un gestor de base de datos
Realmente no existe una diferencia entre ambos términos, ya que, ambos conceptos significan los mismo, por ejemplo:
Las siglas DBMS provienen del término en inglés Database Management System, que si lo traducimos literalmente significa Sistema de Administración de Base de Datos.
Por lo tanto, en español es común que a un DBMS, lo llamemos:
- Manejador de Base de Datos
- O Sistema de gestión de Base de Datos (SGBD)
Por lo tanto, en este post usaremos ambos términos por igual.
Componentes principales de un manejador de base de datos
En esencia un SGBD cuenta con tres componentes principales:
Datos (Data)
El manejador de base de datos es considerado el dueño de los datos, ya que es la única entidad capaz de manipularlos.
Motor de base de datos
Conjunto de programas que tienen la capacidad de acceder y manipular los datos.
Esquema de los datos (Metadata)
Es la representación de nuestro modelo lógico, el cual es prácticamente lo que hemos venido aplicando hasta este momento, y culmino con nuestro diagrama entidad relación. (Ver Diagramas entidad Relación).
Entonces, el manejador de base de datos, lleva a cabo:
- La traducción de nuestro esquema a una representación física, donde serán almacenados los datos.
- Y viceversa, traduce la representación física a nuestro modelo lógico, para que podamos comprender los datos almacenados.
¿Para qué sirve un gestor de base de datos?
Un manejador de base de datos tiene como función, ser un intermediario entre los componentes del DBMS y los usuarios y dispositivos que desean administrar los datos a través de un lenguaje común.
Una de las características que se incluye hoy en día en los SGBD es la posibilidad de mantener la integridad de los datos, lo cual se obtiene controlando el acceso de los usuarios y creando respaldos de datos, por si llegase a dar el caso de que el sistema llega a corromperse.
En resumen, las funciones principales de un SGBD, serían:
- Mantener la integridad de los datos.
- Recuperación de los datos en caso de fallas gracias a la creación de respaldos.
- Acceso concurrente de múltiples usuarios.
- Control de acceso a los datos.
Además, estos sistemas pueden incluir herramientas que nos ayudan a optimizar la productividad, como:
- Módulos gráficos.
- Generadores de informes.
- Y analizadores de datos.
Tipos de manejadores de base de datos
Bien, según la manera en que se estructuran los datos podemos encontrar algunos tipos de DBMS, por ejemplo:
- Relacional.
- Jerárquica.
- De red.
- Orientada a objetos.
- Orientada a documentos.
Y para darle continuidad a este curso, nos centraremos en el tipo relacional.
Gracias por tu calificación
(4)
Gracias por tu calificación
(4)
Manejadores de bases de datos relacionales RDBMS
Ya conocemos los DBMS en su forma general, pero como en curso de base de datos (Ver Curso de Base de Datos), nos estamos centrando en las Bases de datos relacionales, tenemos que revisar aquellos gestores que nos permiten manipular los datos de una base relacional.
- En un RDBMS, el lenguaje utilizado entre los usuarios y el gestor, es el lenguaje SQL, el cual veremos más adelante.
- Y un RDBMS, debe cumplir con las 12 reglas de Codd.
Las 12 reglas de Codd que debe cumplir un RDBMS
Como vimos en capítulos anteriores, Edgar Frank Codd fue el creador del modelo relacional y, fue precisamente Codd, quien en la década de 1980 se da cuenta que ciertas bases de datos comerciales indicaban cumplir con el modelo relaciona.
Sin embargo, la información se guardaba en tablas que no necesariamente cumplían con el modelo relacional y las formas normales.
Ante este hecho, Codd publica 12 reglas (Aunque realmente son 13, ya que existe una regla cero), donde establece aquello que debe cumplir un sistema de administración de bases de datos relacionales.
No obstante, algunas reglas en la practica son difíciles de aplicar, lo que hoy en día indica que un RDBMS es más relacional en cuanto más reglas de Codd cumpla.
Las reglas son las siguiente:
️📌 Regla 0: regla de fundación
Indica que un RDBMS debe cumplir las siguientes reglas para poder ser considerado completamente relacional.
Ya que todo RDBMS debe ser capaz de administrar los datos de manera completamente relacionar, donde, los usuarios, tablas, índices, etc., deben estar almacenados dentro de la misma base de datos.
📌 Regla 1: regla de la información
Toda la información debe estar en tablas.
La regla 1 indica que en un RDBMS:
- Todo dato existente debe estar almacenado dentro de tablas.
- Dichas tablas deben cumplir con lo establecido por el modelo relacional.
- No podemos manipular los datos de otra manera.
📌 Regla 2: regla del acceso garantizado
No debe existir ambigüedad en los datos.
Un RDBMS debe garantizar que todos los datos de una DB deben ser accesibles de manera lógica e inequívoca, a través de:
- Nombre de la tabla.
- Valor de la llave primaria.
- Nombre del atributo o columna.
Gracias por tu calificación
(4)
Gracias por tu calificación
(4)
📌 Regla 3: regla para el tratamiento de valores nulos
Soporte total de valores nulos.
Un RDBMS debe soportar en su totalidad el manejo de valores nulos, entiéndase como nulo, aquello que representa la información no disponible o inaplicable, por ejemplo, los valores distintos a:
- Vacío
- Blanco
- Cero
- O Cualquier otro dato numérico.
Aun cuando el RDBMS soporte valores nulos, es la experiencia de quien diseña y los requerimientos del sistema quien determina el utilizar o no este tipo de valores, en lo personal, evito la utilización de este tipo de datos.
📌 Regla 4: regla del diccionario dinámico en línea, basado en el modelo relacional
La metadata o esquema de datos debe ser representada como valores en tablas.
Un RDBMS debe contar con un catálogo en línea, el cual, representa la estructura misma de la base de datos.
Los usuarios con autorización podrán acceder a dicho catalogo a través del mismo lenguaje con el que se accede a los datos ordinarios.
En la mayoría de los gestores de base de datos a dicho catalogo se le conoce como esquema, y por lo regular:
- En una tabla se almacena el nombre de las otras tablas.
- Existe otra tabla con el nombre de los atributos.
- Y otra para los índices.
- Etc.
📌 Regla 5: regla comprensiva del sublenguaje de datos amplio
Debe haber al menos un lenguaje relacional.
Un RDBMS debe ser capaz de soportar al menos un lenguaje relacional, el cual debe contar con las siguientes características:
- Una sintaxis bien definida y lineal: tal como las cadenas de caracteres.
- Definición de datos: manejo de la metadata.
- Definición de vistas.
- Manipulación de datos: como vimos en la regla anterior, el mismo lenguaje que usamos para manipular la metadata, será el mismo para manipular los datos.
- Integridad de los datos: el lenguaje debe garantizar la integridad de los datos, ya que es una premisa del RDBMS.
- Control de acceso: el lenguaje debe establecer reglas para el controlar el acceso a los datos.
- Manejo de transacciones: control de acceso concurrente.
📌 Regla 6: regla de actualización de vistas
Las vistas teóricamente actualizables, también pueden ser actualizadas por el sistema.
¿Qué es una vista en base de datos?
Bien lo primero que debemos comprender es el término vista, en una DB, una vista es el resultado de una operación, estas operaciones son similares a lo que vimos en el capítulo del álgebra relacional.
Dichas operaciones son conocidas también como consultas o querys, y son representadas a través de una tabla virtual, por ejemplo:
- Una vista podría ser el resultado de la unión natural de dos tablas A y B.
- Pero, también podría ser el resultado de la proyección de una tabla A.
Entonces, en un RDBMS existe la posibilidad de tener dos tipos de vistas:
- Vista teóricamente actualizable.
- Y vista teóricamente no actualizable.
Vista teóricamente actualizable
Supongamos que tenemos una tabla donde tenemos el pago de proveedores por solicitud:
Tabla original | |||
---|---|---|---|
No solicitud | Proveedor | Pago | Materiales |
sol-1 | Proveedor 1 | 20000 | 30 |
sol-1 | Proveedor 2 | 10500 | 10 |
sol-2 | Proveedor 3 | 11000 | 50 |
sol-2 | Proveedor 1 | 50000 | 80 |
sol-3 | Proveedor 4 | 1000 | 60 |
sol-3 | Proveedor 2 | 25000 | 70 |
- Nosotros podemos crear una vista, donde seleccionemos solo las solicitudes 1 y 2, y eliminemos la columna Materiales.
Vista | ||
---|---|---|
No solicitud | Proveedor | Pago |
sol-1 | Proveedor 1 | 20000 |
sol-1 | Proveedor 2 | 10500 |
sol-2 | Proveedor 3 | 11000 |
sol-2 | Proveedor 1 | 50000 |
- Ahora, si un usuario necesita actualizar el pago de una tupla, no habría problema, ya que el manejador de base de datos, a través de la combinación de No solicitud y Proveedor, puede identificar plenamente las tuplas en la tabla original.
- A esto se le conoce como vista actualizable.
Vista teóricamente no actualizable
Ahora si lo que deseamos es exponer una vista con la totalización de los pagos por proveedor, tendríamos lo siguiente:
Vista | |
---|---|
Proveedor | Pago |
Proveedor 1 | 70000 |
Proveedor 2 | 35500 |
Proveedor 3 | 11000 |
Proveedor 4 | 1000 |
- Ahora, si un usuario desea actualizar un dato, hay un problema, el manejador de base de datos no podría identificar la tupla original, ya que por ejemplo: Proveedor 1 y Proveedor 2 aparecen dos veces en la tabla original.
- Cuando el gestor de base de datos no puede identificar las tuplas originales, se le conoce como vista no actualizable.
En resumen, si una vista es lógicamente actualizable, un gestor de base de datos debe permitirnos actualizarla, no obstante, algunos gestores caen en problemas en esta regla, ya que, a pesar de tener vistas actualizables el RDBMS manda error al realizar una modificación.
Gracias por tu calificación
(4)
Gracias por tu calificación
(4)
📌 Regla 7: regla de alto nivel de inserción, actualización y eliminación
Manipulación de datos en conjunto e individuales o registro por registro.
Un RDBMS debe permitir la inserción, actualización y eliminación de los datos tanto en un conjunto de registros como registro por registro, esto quiere decir que una tabla debe poderse manejar como un solo elemento, tanto en la consulta de datos como en la eliminación.
📌 Regla 8: regla de la independencia física de los datos
La organización física de los datos, no debe afectar a las aplicaciones externas.
En un RDBMS las aplicaciones externas no necesitan, ni deben, conocer la organización física de los datos, es por ello que, si la organización física de los datos cambia, las aplicaciones externas no deben verse afectadas.
📌 Regla 9: regla de la independencia lógica de los datos
Los cambios a nivel lógico, no modifican la estructura física de la base de datos.
En un RDBMS lograr una independencia lógica de los datos es mucho más difícil de conseguir que la independencia física, ya que, los cambios a nivel lógico como:
- El cambio de nombres de tablas.
- Cambio de nombre de columnas
- O si modificamos los datos de una tupla.
Las aplicaciones externas no deben verse afectadas ni se requiere de un cambio en la estructura física de la DB.
📌 Regla 10: regla de la independencia de la integridad
Las reglas de integridad o restricciones, deben ser almacenadas en la base de datos.
Un RDBMS debe ser capaz de aplicar y almacenar las reglas que garantizan la integridad de los datos, dentro de la misma base de datos, esto quiere decir que, la integridad de nuestros datos no debe depender de aplicaciones externas.
Quizá algunos colegas difieran en esto, pero la integridad de los datos de una DB, debe ser responsabilidad, de quien diseña y administra la base de datos, y no, de los programadores o aplicaciones externas que tienen acceso a los datos.
📌 Regla 11: regla de la independencia de la distribución
No debe afectar a las aplicaciones externas y usuarios, si una base esta contenida en una sola localización o en varias localizaciones.
En un RDBMS, podemos dividir y separar una base de datos en varias pedazos, por ejemplo, podemos localizar cada porción en diferentes discos, no obstante, esta separación no debe afectar a los usuario conectados, ni a las aplicaciones externas que accedan a los datos.
📌 Regla 12: regla de la no subversión
La base de datos no debe permitir que exista una forma de acceso o lenguaje que pueda saltarse las reglas de seguridad relacional e integridad.
Si un RDBMS, cuenta con un lenguaje de bajo nivel que realiza operaciones registro por registro, dicho lenguaje de bajo nivel no puede subvertir o saltarse las reglas de integridad establecidas por el lenguaje de alto nivel. Todas las operaciones deben estar basada en la teoría de conjuntos y según lo establecido en las reglas anteriores.
En este punto ya conoces las reglas de Codd, ahora estoy seguro que comprendes el por qué los SGBD, operan y funciona de esta manera, más adelante utilizaremos algunos y estoy seguro que iras relacionando todo lo que vimos hoy.
😉 Ventajas de los manejadores de base de datos
Utilizar gestores de base de datos tiene sus ventajas, por ejemplo:
- Nos permite administrar grandes conjuntos de datos.
- Cuentan con una gran flexibilidad.
- Proporcionan un acceso sencillo y eficaz a los datos.
- Facilidad para controlar la integridad y consistencia de los datos.
- Cuenta con una alta disponibilidad.
😥 Desventajas de los manejadores de base de datos
- Algunos gestores no son gratuitos por lo que habrá que pagar licencia para acceder a ciertas características avanzadas.
- Dado que es un conjunto de programas, requiere de cierta infraestructura para ser implementados, lo que da como resultado un costo extra.
- Contratación de personal capacitados, tal como lo son, los administradores de bases de datos.
- Centralización de datos, lo cual puede representar una vulnerabilidad.
Ejemplos: 16 manejadores de datos más populares
Existen una gran cantidad de manejadores de bases de datos y tipos, así que te dejo una tabla de los más populares que conozco, quizá tu también los conoces o has llegado a utilizar.
Manejador de base de datos | Tipo |
---|---|
Microsoft Access | Relacional |
Microsoft SQL Server | Relacional |
MySQL | Relacional |
Oracle Database | Relacional |
OrientDB | Orientado a documentos |
CouchDB | Orientado a documentos |
Db2 de IBM | Relacional |
IMS de IBM | Jerárquico |
IBM Informix | Relacional |
MariaDB | Relacional |
Sybase ASE | Relacional |
MongoDB | Orientado a documentos |
PostgreSQL | Combina relacional y orientado a objetos |
Firebird | Relacional |
InterSystems | Combina relacional y orientado a objetos |
InterSystems IRIS | Combina relacional y orientado a objetos |
Gracias por tu calificación
(4)
Excelente, esto ha sido todo por este capítulo, en próximas entregas veremos el lenguaje SQL y pasaremos a realizar algunas practicas en un manejador de base de datos, así que no te pierdas ninguno de los siguientes post.
🧐 Autoevaluación: SGBD
¿Cuáles son los componentes de un manejador de base de datos?
¿Cuáles son los tipos de manejadores de base de datos?
¿Cuantas reglas de Codd existen?
Juan Carlos García
Desarrollador de software / SEO
Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.
Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.