Fundamentos de Bases de Datos: Modelos, Arquitectura y Administración
1. Independencia de Datos
La independencia de datos se logra mediante la arquitectura ANSI de tres niveles:
Nivel Interno
Describe la estructura física de almacenamiento de la base de datos. Emplea un modelo físico de datos y es donde residen los datos.
Nivel Conceptual
Describe la estructura lógica de toda la base de datos para la comunidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como entidades, atributos y relaciones.
Nivel Externo o de Vistas
Define múltiples esquemas externos o vistas de usuario. Cada esquema describe la visión particular de la base de datos para un grupo de usuarios, ocultando el resto.
El objetivo de esta arquitectura es separar las aplicaciones de la base de datos física.
2. Independencia Lógica
Es la capacidad de modificar el esquema lógico sin afectar a las aplicaciones. Ejemplo: Añadir cuentas de mercado de valores en un sistema bancario.
3. Independencia Física
Es la capacidad de modificar el esquema físico sin afectar a las aplicaciones. Estas modificaciones son necesarias para mejorar el rendimiento. Ejemplo: Reorganizar ficheros físicos para optimizar las consultas.
4. Características de los Modelos de Datos
Modelo Jerárquico
Organiza los datos en una estructura de árbol, donde un nodo padre puede tener varios hijos. Útil para grandes volúmenes de información y datos compartidos, creando estructuras estables y de alto rendimiento. Limitación: dificultad para representar la redundancia de datos.
Modelo de Red
Similar al jerárquico, pero un nodo hijo puede tener varios padres. Mejora la redundancia de datos del modelo jerárquico, pero su administración es compleja, siendo usado principalmente por programadores.
Modelo Relacional
El modelo más utilizado actualmente. Almacena datos en relaciones (tablas), donde el orden de los datos es irrelevante. Fácil de entender y usar, la información se recupera mediante consultas flexibles. Considera la base de datos como una colección de relaciones (tablas), donde cada fila es una tupla o registro y cada columna es un atributo o campo.
5. Funciones y Perfiles de Usuarios de SGBD
Administrador de la BD
Responsable de administrar la estructura de la base de datos. Perfil: Control total sobre la BD (todos los privilegios).
Diseñador de la BD
Define qué usuarios acceden a qué datos. Consideraciones importantes: velocidad de acceso y tamaño de la información. Perfil: Control total sobre los datos.
Programadores de Aplicaciones
Responsabilidades: codificar el sistema, documentarlo, planificar y ejecutar pruebas, corregir errores y diseñar (o asistir en el diseño) la base de datos. Perfil: Capacidad de trabajo en equipo, multifuncionalidad, resistencia a la presión, facilidad para aprender nuevos lenguajes y adaptación a los cambios tecnológicos.
Usuarios Finales
Consultan, actualizan y generan informes. Perfil: Varía según la aplicación.
6. Software Libre
Respeta la libertad de los usuarios: puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Suele ser gratuito o al costo de distribución, pero también puede ser comercial.
7. Ventajas e Inconvenientes del Software Libre
Ventajas
- Independencia tecnológica: el código fuente permite desarrollar nuevos productos.
- Libertad de uso y redistribución.
- Económico.
Inconvenientes
- Menor acabado estético y de usabilidad que el software propietario.
- Instalación compleja en algunos casos.
- Inexistencia de garantía del autor.
8. Base de Datos Distribuida (BDD)
Conjunto de bases de datos lógicamente relacionadas, distribuidas en diferentes espacios lógicos e interconectadas por una red.
9. Diccionario de Datos
Conjunto de metadatos que describe las características lógicas de los datos del sistema (nombre, descripción, alias, contenido y organización).
10. Administrar una BD vs. Administrar un SGBD
Administrar una BD es manejar los datos. Administrar un SGBD es administrar el software que gestiona la BD.
11. Problemas y Soluciones en la Administración de BD
BD con Miles de Usuarios Centrada en Consultas (Buscador)
Problema: Sobrecarga del servidor. Solución: Particiones múltiples por criterios (metas) y replicación en varios servidores.
Venta Online con Miles de Usuarios y Escrituras por Segundo
Problema: Bloqueo del insert. Solución: Distribuir el punto caliente entre varias tablas o particiones y actualizar las transacciones en línea.
12. MyISAM vs. InnoDB
InnoDB: Transacciones, claves foráneas, bloqueos y características ACID. Recomendado para uso intensivo de INSERT y UPDATE.
MyISAM: Mayor velocidad en consultas SELECT. Recomendado para aplicaciones con predominio de SELECT.
Ventajas de InnoDB: Soporte de transacciones, bloqueo de registros, características ACID.
Ventajas de MyISAM: Mayor velocidad de recuperación de datos.