Bases de Datos
Una base de datos es un conjunto organizado de datos relacionados,
almacenados de manera eficiente para facilitar su acceso, gestión y
actualización. Su objetivo es proporcionar información precisa,
consistente y disponible.
Tipos de Bases de Datos
BD Relacionales (RDBMS): Basadas en tablas relacionadas entre sí
(MySQL, PostgreSQL).
BD No Relacionales (NoSQL): Usan estructuras como documentos,
grafos o claves-valor (MongoDB, Redis).
BD Orientadas a Objetos: Almacenan datos como objetos, similares a
la programación orientada a objetos (db4o, ObjectDB).
Modelos de Bases de Datos
El modelo define cómo se estructuran y manipulan los datos en una
BD.
Modelo Relacional: Basado en tablas (entidades) y relaciones.
Modelo Jerárquico: Organiza los datos en una estructura de árbol.
Modelo de Red: Representa datos mediante grafos.
Modelo Documental (NoSQL): Usa documentos JSON o BSON.
Componentes del Modelo Relacional
Tablas (Entidades)
Una tabla es una estructura que almacena datos en filas (registros) y
columnas (atributos).
Atributos
Son las columnas de una tabla y representan las características de la
entidad. Cada atributo tiene un nombre y un tipo de dato.
Relaciones
Definen cómo se vinculan las tablas entre sí.
Uno a Uno (1:1): Cada registro en una tabla se relaciona con uno en
otra tabla.
Uno a Muchos (1:N): Un registro en una tabla se relaciona con varios
en otra.
Muchos a Muchos (N:M): Varios registros en una tabla se relacionan
con varios en otra.
Cardinalidad
Especifica el número de instancias de una entidad que pueden estar
asociadas a instancias de otra entidad.
Claves en Bases de Datos
Clave Primaria (Primary Key): Identifica de manera única cada registro
en una tabla.
Clave Foránea (Foreign Key): Relaciona una tabla con otra a través de
la clave primaria.
Clave Candidata: Un atributo que podría ser clave primaria, pero no
se usa como tal.
Clave Compuesta: Clave primaria formada por dos o más atributos.
Parámetros para DBMS (Sistemas de Gestión de Bases de Datos)
ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad): Garantiza
transacciones fiables.
Índices: Mejoran la velocidad de búsqueda en tablas grandes.
Normalización: Elimina redundancia y asegura integridad de datos.
Backups: Respaldo de la base de datos.
Comandos SQL (Structured Query Language)
Comandos DDL (Data Definition Language)
Definen la estructura de la base de datos.
CREATE TABLE Clientes (
Id_cliente INT PRIMARY KEY,
Nombre VARCHAR(50),
Correo VARCHAR(50)
);
ALTER TABLE Clientes ADD telefono VARCHAR(15);
DROP TABLE Clientes;
Comandos DML (Data Manipulation Language)
Manipulan los datos de las tablas.
INSERT INTO Clientes (id_cliente, nombre, correo)
UPDATE Clientes SET correo = ‘[email protected]’ WHERE id_cliente
= 1;
DELETE FROM Clientes WHERE id_cliente = 1;
Comandos DQL (Data Query Language)
Consultan datos almacenados.
SELECT * FROM Clientes;
SELECT nombre, correo FROM Clientes WHERE id_cliente = 1;
Comandos DCL (Data Control Language)
Controlan permisos de usuario.
GRANT SELECT, INSERT ON Clientes TO usuario;
REVOKE INSERT ON Clientes FROM usuario;
Validación de Datos
Restricciones (Constraints): Reglas aplicadas a columnas.
NOT NULL: El campo no puede ser nulo.
UNIQUE: El valor debe ser único.
CHECK: Verifica una condición específica.
DEFAULT: Asigna un valor predeterminado.
CREATE TABLE Productos (
Id_producto INT PRIMARY KEY,
Nombre VARCHAR(50) NOT NULL,
Precio FLOAT CHECK (precio > 0),
Stock INT DEFAULT 0
);
Consultas SQL Avanzadas
Consultas con JOIN
Combina datos de dos o más tablas.
SELECT Clientes.nombre, Pedidos.producto
FROM Clientes
JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;
Consultas con Funciones Agregadas
Realizan cálculos en columnas.
SELECT COUNT(*) AS total_clientes FROM Clientes;
SELECT AVG(precio) AS precio_promedio FROM Productos;
Subconsultas
Consulta dentro de otra consulta.
SELECT nombre FROM Clientes
WHERE id_cliente IN (
SELECT id_cliente FROM Pedidos WHERE producto = ‘Laptop’
);