Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)
BD (Base de Datos): Conjunto de información relacionada que se encuentra estructurada.
SGBD (Sistema de Gestión de Bases de Datos): Es el software encargado de almacenar y estructurar los datos en un dispositivo de almacenamiento externo. Esta organización se define en el momento de crear un fichero y, generalmente, no se puede cambiar. El tipo de organización se decide según el tamaño del fichero y su utilización.
Organización Interna de los Datos
La organización interna define la forma en la que se accede a los datos:
- Secuencial: Recorrer el fichero de principio a fin.
- Directa: Acceder a un dato concreto de forma inmediata.
- Indexada: Utiliza un índice para localizar los datos.
Funciones y Tipos de SGBD
Funciones Principales del SGBD
- Almacenar datos.
- Garantizar la integridad de los datos.
- Mantener el diccionario de datos (información sobre la estructura).
- Gestionar transacciones.
- Ofrecer herramientas de monitoreo.
- Controlar la concurrencia (acceso de varios usuarios simultáneamente).
- Independizar los datos de la aplicación que los utiliza.
- Proporcionar conectividad exterior.
- Realizar copias de seguridad (backup).
Tipos de SGBD
- SGBD Ofimáticos: Utilizados para Bases de Datos pequeñas.
- SGBD Corporativos: Utilizados para Bases de Datos enormes, generalmente en servidores dedicados.
Lenguaje SQL y sus Componentes
El Lenguaje SQL (Structured Query Language) se divide en varios sublenguajes según su función:
- DDL (Data Definition Language): Definición de la estructura de la base de datos.
- DML (Data Manipulation Language): Manipulación de los datos (inserción, modificación, consulta).
- DCL (Data Control Language): Control de acceso y permisos sobre los datos.
- TCL (Transaction Control Language): Gestión de transacciones.
Normalización del Modelo Lógico de Datos
El objetivo de la normalización es revisar el modelo lógico de datos, eliminando redundancias e inconsistencias en las entidades y en las dependencias entre atributos que originan anomalías. Al aplicar esta técnica se obtiene un modelo lógico de datos normalizado.
Formas Normales de Codd
Primera Forma Normal (1FN)
Una relación está en 1FN si sus atributos solo tienen valores atómicos. Es una restricción inherente al modelo relacional, por lo que su cumplimiento es obligatorio. Consiste en que un atributo solo puede tomar un único valor de un dominio simple.
Solución: Aplicar la regla preliminar de atributos multivalor, creando nuevas entidades si es necesario.
Segunda Forma Normal (2FN)
Una entidad está en 2FN si está en 1FN y todos los atributos que no forman parte de las claves candidatas tienen dependencia funcional completa respecto de estas. Es decir, no hay dependencias funcionales de atributos no principales respecto de una parte de las claves.
Solución: Una vez identificados los atributos que dependen funcionalmente de una parte de la clave, se formará con ellos una nueva entidad y se eliminarán de la antigua. La clave principal de la nueva entidad estará formada por la parte de la clave antigua de la que dependen funcionalmente.
Tercera Forma Normal (3FN)
Una entidad está en 3FN si está en 2FN y todos sus atributos no principales dependen directamente de la clave primaria. Es decir, no hay dependencias funcionales transitivas de atributos no principales respecto de las claves.
Solución: Una vez identificados los atributos que dependen de otro atributo distinto de la clave, se formará con estos atributos una nueva entidad y se eliminarán de la antigua. La clave principal de la nueva entidad será el atributo del cual dependen. Este atributo, en la entidad antigua, pasará a ser una clave ajena (Foreign Key).
Las 12 Reglas de Codd para Bases de Datos Relacionales
Las 12 reglas de Codd definen los requisitos que debe cumplir un sistema para ser considerado un verdadero SGBD relacional:
- Regla 1: Información
- Toda la información de la base de datos debe estar representada explícitamente en el esquema lógico. Es decir, todos los datos están en las tablas.
- Regla 2: Acceso Garantizado
- Todo dato es accesible sabiendo el valor de su clave primaria y el nombre de la columna o atributo que contiene el dato.
- Regla 3: Tratamiento Sistemático de los Valores Nulos
- El DBMS debe permitir el tratamiento adecuado de estos valores nulos, distinguiéndolos de ceros o cadenas vacías.
- Regla 4: Catálogo en Línea Basado en el Modelo Relacional
- Los metadatos (datos sobre los datos) deben ser accesibles usando el mismo esquema relacional que los datos de usuario.
- Regla 5: Sublenguaje de Datos Completo
- Al menos debe existir un lenguaje que permita el manejo completo de la base de datos (DDL, DML, DCL). Este lenguaje, por lo tanto, debe permitir realizar cualquier operación.
- Regla 6: Actualización de Vistas
- El DBMS debe encargarse de que las vistas muestren la última información y, si es posible, permitir su actualización.
- Regla 7: Inserciones, Modificaciones y Eliminaciones a Nivel de Conjunto
- Cualquier operación de modificación debe actuar sobre conjuntos de filas, nunca deben actuar registro a registro.
- Regla 8: Independencia Física
- Los datos deben ser accesibles desde la lógica de la base de datos aun cuando se modifique el almacenamiento físico subyacente.
- Regla 9: Independencia Lógica
- Los programas de aplicación no deben verse afectados por cambios en las tablas que no alteren la información que necesitan (por ejemplo, añadir una nueva columna).
- Regla 10: Independencia de Integridad
- Las reglas de integridad (restricciones) deben almacenarse en la base de datos (esquema), no en los programas de aplicación.
- Regla 11: Independencia de la Distribución
- El sublenguaje de datos debe permitir que sus instrucciones funcionen igualmente en una base de datos distribuida que en una centralizada.
- Regla 12: No Subversión
- Si el DBMS posee un lenguaje de bajo nivel que permite el recorrido registro a registro, este no puede utilizarse para incumplir las reglas relacionales definidas.
Objetivos y Componentes del Modelo Relacional
Objetivos Fundamentales del Modelo Relacional
- Independencia Física de los Datos: La forma de almacenar físicamente los datos no influye en su manipulación lógica.
- Independencia Lógica de los Datos: Los cambios en los objetos de la base de datos no deben implicar cambios en las aplicaciones que acceden a ella.
- Flexibilidad: La base de datos presenta vistas adecuadas a las características de las aplicaciones y usuarios que la van a utilizar.
- Uniformidad: Las estructuras lógicas de los datos siempre se presentan de la misma forma: una tabla.
- Sencillez: Fácil de entender y utilizar por los usuarios.
Componentes Clave del Modelo Relacional
- Relaciones (Tablas)
- Estructura que almacena los datos y se compone de atributos (columnas).
- Tuplas (Filas)
- Contenido de las relaciones, es decir, el conjunto de ocurrencias (filas) que almacena la relación.
- Clave Candidata
- Conjunto de atributos de una relación que identifican unívoca y mínimamente cada tupla.
Características de una Relación
- No admite filas duplicadas.
- Las filas y columnas no guardan un orden establecido.
- No se admiten atributos multivaluados (requisito de 1FN).