Un Sistema Gestor de Bases de Datos o SGBD (Data Base Management System o DBMS) es el software que controla la instalación de una base de datos (base de datos entendida como el motor, no una base de datos en específico). En términos simples, se trata de una instalación de base de datos en un servidor específico. Este Sistema Gestor de Bases de Datos puede ser de diversas marcas (SQL Server, Oracle, MySQL, MariaDB, PostgreSQL, etc) y dentro de cada marca hay diferentes versiones o ediciones (Express, Standard, Enterprise para SQL Server por ejemplo).
Este software debe cumplir con todas las especificaciones definidas por las Reglas de Codd, y en términos generales debe contar con las siguientes características:
- Redundancia
- Consistencia
- Integridad
- Seguridad
Administración de la redundancia
La redundancia es la existencia de información repetida o duplicada en la base de datos, y por tanto el objetivo de un buen diseño de base de datos debe ser minimizar dicha redundancia ya que conduce a muchos problemas que tienen que ver con la integridad y consistencia de los datos (la redundancia de los datos requiere múltiples procedimientos de entrada y actualización).
Suponiendo que existe el campo de edad del alumno en varias tablas (en cada tabla donde se requiera ese campo) ¿qué sucederá cada vez que el alumno cumpla años? Se tendría que ir a cada una de las tablas donde está grabada la edad del alumno y actualizarla. Esto implica que el administrador de base de datos -o el desarrollador- debe recordar en qué tablas está repetido el campo de edad y si es necesario actualizarla en cada instancia en cada cumpleaños.
La redundancia debe ser mínima y controlada. En ocasiones existirán motivos válidos de negocios (se requiere guardar la edad en la que se dió de alta el alumno en la escuela y no solo la edad actualizada) o técnicos (el costo de obtener la edad implica hacer consultas a varias tablas cada vez que se requiere la edad y por cuestión de performance es mejor mantener varias copias de los mismos datos almacenados en la base de datos).
Cuándo no es aceptable la redundancia
- Cuando son datos que no cambiarán y que será una duplicidad innecesaria (Nombre de un empleado, fechas históricas como fechas de nacimiento, de entrada a la empresa, etc.).
- Cuando es necesario siempre tener la información actualizada o en su última versión (domicilio de notificación, donde se requiere que toda la nueva correspondencia llegue a la nueva dirección en el caso de un juicio).
- Cuando son datos muy extensos (documentos que se guardan en la misma base de datos, p. ej.)
Cuándo puede ser aceptada la redundancia
- Cuando se trata de datos que no deben de cambiar en esa “instancia” de la información por cambios continuos (precio de venta de artículos, cotización del dólar en una transacción financiera).
- Cuando existe la obligación -por reglas de negocio- de mantener cada versión del dato (dirección para oír y recibir notificaciones en cada juicio, aunque sea el mismo actor, por ejemplo).
- Cuando hay datos que se utilizan mucho y cuesta mucho llegar a ellos (hay que hacer JOIN’s de varias tablas), se justifica técnicamente (en términos de rendimiento de la base de datos).
Generalmente, si el diseño de la base de datos cumple con ciertas reglas básicas de calidad (como las formas normales) se elimina la redundancia, quedando solo los casos extraordinarios que deberán ser mínimos.
Consistencia de la información
Otra característica que debe administrar un Sistema Gestor de Bases de Datos es la consistencia de la información, que no es más que la evaluación de las reglas del negocio, esto es, verificar que los datos estén siguiendo dichas reglas.
Una base de datos no solamente contendrá datos, sino que es también capaz de implementar algunas reglas (o restricciones) para asegurarse que la información contenida tenga cierto nivel de calidad y que cumpla con diversas reglas que establece el negocio.
Una regla impuesta por una escuela primaria es que sus alumnos estén en el rango de edad de 5 a 13 años, por lo que es posible implementar esta regla en el campo de edad del alumno, de tal manera que la consistencia de la información se mantenga (de acuerdo a la regla establecida). En un consultorio pediátrico, la regla para el mismo campo de edad del paciente, podría ir de 0 a 16 años, y la base de datos que guarde la información de los pacientes tendrá una regla ligeramente diferente a la de una escuela de educaciónp primaria. Todas estas reglas pueden implementarse en una base de datos relacional y de esa manera el DBA se podrá asegurar que la información cumple con ciertos estándares de calidad.
Un problema derivado de la redundancia, es que si se modifica, elimina o agrega un dato -de los que están duplicados, debe realizarse en cada una de las instancias del mismo, con el riesgo de no realizarlo en su totalidad, generando en este caso datos inconsistentes.
Integridad de la información
La integridad es otra característica que administra un Sistema Gestor de Base de Datos. La integridad, entendida como la capacidad de la base de datos para que los datos mantengan congruencia individual y entre sí. Existen 3 tipos de integridad que se contemplan principalmente:
- Integridad de campo (que los campos solo guarden datos del tipo esperado, o que los valores se encuentren dentro de un dominio definido, por ejemplo).
- Integridad de entidad (que haya unicidad de registros dentro de cada tabla, si es que se estableció una llave primaria o una restricción de tipo UNIQUE, por poner un ejemplo).
- Integridad referencial (estableciendo llaves primarias y foráneas principalmente).
Seguridad
Es otra de las características que un Sistema Gestor de Bases de Datos controla, ya que -al tener toda la información concentrada en un solo lugar que es la base de datos- implica administrar los privilegios de acceso. La seguridad implica por tanto hacer lo necesario para asegurar que solo los usuarios que están autorizados de ver o modificar la información en una base de datos lo logren.
La implementación de esto, además de medidas de seguridad físicas fuera de la base de datos, se logra por medio de los comandos de DCL del SQL revisados con anterioridad.
Hoy en día se considera a la información de una empresa como uno de los activos más valiosos e importantes, por lo que la seguridad de la misma es muy importante.