Jazzy Hernan Alcantara Jurado ITIID D 31
1. Fundamentos de Bases de Datos
¿Qué es una Base de Datos?
Una base de datos es un conjunto de datos relacionados que se almacenan y organizan de forma estructurada
para su fácil acceso, manipulación y actualización. El propósito principal de una base de datos es almacenar
información de manera eficiente, minimizar redundancia y facilitar la consulta de datos por múltiples usuarios
simultáneamente.
Características de una Base de Datos
• Compartida: Accesible por múltiples usuarios y sistemas.
• Persistente: La información persiste incluso si el sistema se apaga.
• Segura: Se controla el acceso a los datos mediante permisos y roles.
• Escalable: Puede crecer en tamaño y complejidad.
• Control de Redundancia: Se minimiza la duplicación de datos.
• Integridad de los Datos: Las reglas garantizan que los datos sean válidos y consistentes.
• Concurrencia: Permite múltiples operaciones simultáneas sin afectar la integridad.
Funciones de una Base de Datos
• Definición de datos: Definir estructuras como tablas, relaciones y restricciones.
• Manipulación de datos: Permite operaciones de inserción, eliminación, actualización y consulta.
• Control de concurrencia: Administra el acceso simultáneo sin conflictos.
• Recuperación ante fallos: Mecanismos para recuperar datos después de fallas.
• Seguridad: Control de acceso y privilegios.
Elementos de una Base de Datos
• Datos: Información real almacenada.
• Esquema: Estructura lógica de la base de datos (tablas, columnas, tipos de datos).
• Usuarios:
o Administrador de BD
o Diseñadores
o Programadores
o Usuarios finales
• Lenguajes: DDL, DML, DCL y TCL.
• SGBD: Software que gestiona la base de datos.
Componentes de un Sistema de Base de Datos
1. Hardware: Servidores, almacenamiento, redes.
2. Software:
o Sistema operativo
o SGBD (MySQL, PostgreSQL, etc.)
3. Datos: Información organizada según el modelo de datos.
4. Usuarios:
o Administradores
o Desarrolladores
o Analistas
o Usuarios finales
5. Procedimientos: Reglas y políticas para usar y mantener el sistema.
2. Bases de Datos Relacionales y No Relacionales
Bases de Datos Relacionales
• Organizan los datos en tablas (relaciones).
• Cada fila es un registro y cada columna un atributo.
• Utilizan el lenguaje SQL para consultas y operaciones.
• Se basan en el modelo relacional propuesto por E.F. Codd.
Ventajas:
• Integridad de datos mediante restricciones.
• Flexibilidad en consultas complejas.
• Normalización para evitar redundancia.
Elementos clave:
• Tablas
• Claves primarias y foráneas
• Relaciones entre entidades
• Índices
Ejemplos: MySQL, PostgreSQL, Oracle, SQL Server
Bases de Datos No Relacionales (NoSQL)
• No utilizan el modelo tabular, sino estructuras como documentos, pares clave-valor, grafos o columnas.
• Diseñadas para trabajar con grandes volúmenes de datos no estructurados.
Tipos:
• Documentales: MongoDB
• Clave-Valor: Redis
• Columnar: Cassandra
• Grafos: Neo4j
Ventajas:
• Escalabilidad horizontal
• Flexibilidad en el esquema
• Alto rendimiento en escritura/lectura
• Ideal para Big Data, redes sociales, IoT
Desventajas:
• No suelen garantizar consistencia estricta (eventual consistency)
• Menor soporte para transacciones complejas
3. Diccionario de Datos
¿Qué es?
El diccionario de datos es un repositorio o base de datos auxiliar que describe los datos contenidos en una
base de datos, incluyendo su significado, relaciones, origen, uso y formato.
¿Para qué sirve?
• Documentación del sistema
• Validación y auditoría
• Ayuda al diseño y mantenimiento de la base de datos
• Mejora la comunicación entre usuarios y desarrolladores
Características
• Puede ser automatizado o manual
• Contiene descripciones de estructuras de datos
• Incluye relaciones y restricciones
• Puede integrarse dentro del SGBD
Elementos del Diccionario
• Nombre del campo
• Tipo de dato
• Longitud
• Reglas de validación
• Valor por defecto
• Relación con otras entidades
• Claves primarias y foráneas
4. Gestores de Bases de Datos Relacionales y No Relacionales
¿Qué es un SGBD?
Un Sistema Gestor de Base de Datos (SGBD) es un conjunto de programas que permite crear, manipular y
administrar bases de datos.
SGBD Relacional
• Estructura basada en tablas
• Soporte para transacciones ACID
• Lenguaje SQL
Características:
• Integridad referencial
• Consultas complejas
• Seguridad y control de acceso
Ejemplos:
• MySQL
• PostgreSQL
• SQL Server
• Oracle DB
SGBD No Relacional
• Modelos flexibles sin esquemas fijos
• Escalabilidad horizontal
• Alta disponibilidad
Características:
• Optimizado para datos no estructurados
• Bajo acoplamiento entre entidades
• Arquitectura distribuida
Ejemplos:
• MongoDB (Documental)
• Cassandra (Columna)
• Redis (Clave-valor)
• Neo4j (Grafo)
5. Normalización
¿Qué es?
La normalización es el proceso de organizar los datos para:
• Eliminar la redundancia
• Mejorar la integridad
• Asegurar dependencia lógica
Objetivos
• Minimizar duplicaciones
• Facilitar mantenimiento
• Mejorar eficiencia en actualizaciones
Formas Normales
1. 1FN (Primera forma normal):
o Eliminar grupos repetitivos.
o Cada campo debe contener un solo valor.
2. 2FN (Segunda forma normal):
o Cumplir 1FN + eliminar dependencia parcial de la clave primaria.
3. 3FN (Tercera forma normal):
o Cumplir 2FN + eliminar dependencias transitivas.
4. BCNF y superiores:
o Reglas avanzadas para garantizar integridad en diseños más complejos.
6. Lenguaje DDL y DML
Lenguaje DDL (Data Definition Language)
Se usa para definir estructuras de datos, como tablas, índices, vistas.
Comandos:
• CREATE: Crear objetos como tablas, vistas.
• ALTER: Modificar estructuras existentes.
• DROP: Eliminar estructuras.
• TRUNCATE: Eliminar todos los registros sin borrar la estructura.
Lenguaje DML (Data Manipulation Language)
Permite manipular los datos reales contenidos en las estructuras.
Comandos:
• SELECT: Consultar datos.
• INSERT: Añadir nuevos datos.
• UPDATE: Modificar datos existentes.
• DELETE: Eliminar datos.