Está en la página 1de 14

Ayudantia (?

)
Indices y transacciones
Sebastián Torrealba
sebastian.torrealba@usm.cl
¿Qué es un indice?
Un índice en una base de datos es una estructura que acelera la
búsqueda y recuperación de datos en una tabla.
¿Qué tipos de indicen existen?
Existen varios, pero los que usaremos en el ramo son los
siguientes:
Índices B-Tree: Ideales para búsquedas en valores de columnas
individuales y operaciones de igualdad, rango y ordenación.
Índices Hash: Eficientes para búsquedas exactas en valores
únicos, pero no son adecuados para rangos o búsquedas
parciales.
¿Qué es un B-Tree?
En las ciencias de la computación, los árboles-B o B-árboles son
estructuras de datos de árbol que se encuentran comúnmente
en las implementaciones de bases de datos y sistemas de
archivos. Al igual que los árboles binarios de búsqueda, son
árboles balanceados de búsqueda, pero cada nodo puede
poseer más de dos hijos.
Imagen de un B-Tree
¿Qué es el hash?
El hashing es un proceso matemático que toma una entrada (o
"clave") y la transforma en una cadena de caracteres de longitud
fija, que generalmente es una representación numérica o
alfanumérica hexadecimal. Esta cadena resultante se conoce
como "valor hash" o "resumen hash".
Imagen de hashing
¿Cómo usar indices en PostgreSQL?
CREATE TABLE ejemplo (
id serial PRIMARY KEY,
nombre varchar(255),
edad integer,
-- Índice B-Tree en la columna 'nombre'
INDEX idx_nombre USING BTREE (nombre),
-- Índice Hash en la columna 'edad'
INDEX idx_edad_hash USING HASH (edad)
);
¿Qué son las transacciones?
Las transacciones en PostgreSQL son secuencias de operaciones
de base de datos que se realizan como una sola unidad.
¿Para qué sirve?
Aseguran la integridad de los datos y permiten operaciones
"todo o nada".
¿Que se puede usar?
Incluyen comandos como INSERT, UPDATE y DELETE.
Se inician con BEGIN y se confirman con COMMIT o se deshacen
con ROLLBACK.
Garantizan la consistencia y durabilidad de los datos en la base
de datos.
Ejemplo de una transacción
BEGIN;

UPDATE cuentas
SET saldo = saldo - 100
WHERE nombre = 'Cuenta A';

UPDATE cuentas
SET saldo = saldo + 100
WHERE nombre = 'Cuenta B';

COMMIT;
Ejemplo del uso del Rollback
BEGIN;

INSERT INTO pedidos (cliente, producto, cantidad)


VALUES ('Cliente A', 'Producto X', 5);

UPDATE inventario
SET cantidad = cantidad - 5
WHERE producto = 'Producto X';

IF FOUND THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
Fin de la
ayudantia

Así es como Tadeo te enseñó a


optimizar consultas y hacer
transacciones

También podría gustarte