← Volver a los quizzesQuiz gratuito

Fundamentos y arquitectura de PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto, reconocido por su robustez, extensibilidad y cumplimiento de estándares SQL. En este curso…

10 preguntas~5 min
Fundamentos y arquitectura de PostgreSQL — Qwi
0 / 10
Puntuación: 0%
1

En PostgreSQL, ¿qué sublenguaje se encarga de crear o modificar la estructura de una tabla?

2

Si una transacción en PostgreSQL falla a la mitad, ¿qué comando se utiliza para revertir los cambios realizados hasta ese punto?

3

¿Cuál es la diferencia principal entre la restricción PRIMARY KEY y UNIQUE en PostgreSQL?

4

En un entorno con múltiples nodos, ¿qué efecto tiene el comando COMMIT en PostgreSQL?

5

¿Qué mecanismo de PostgreSQL permite que dos transacciones lean la misma fila sin bloquearse mutuamente?

6

Al crear una tabla en PostgreSQL, ¿qué tipo de dato se usa típicamente para una columna que actúa como identificador autoincremental?

7

¿Cuál es la ventaja principal del índice B‑Tree frente a un índice Hash en PostgreSQL?

8

En el modelo cliente‑servidor de PostgreSQL, ¿qué proceso padre gestiona las conexiones entrantes y crea canales independientes para cada usuario?

9

Si una tabla tiene una restricción FOREIGN KEY que apunta a otra tabla, ¿qué ocurre al intentar eliminar la tabla padre sin usar CASCADE?

10

¿Cuál es la sintaxis correcta para crear una base de datos en PostgreSQL con propietario y codificación UTF8?

Fundamentos y arquitectura de PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto, reconocido por su robustez, extensibilidad y cumplimiento de estándares SQL. En este curso exploraremos los conceptos clave que sustentan su arquitectura, los sublenguajes SQL que lo componen y los mecanismos de concurrencia y control de transacciones que lo hacen fiable en entornos críticos.

1. Sublenguajes SQL en PostgreSQL

SQL se divide en varios sublenguajes, cada uno con una responsabilidad específica dentro de la base de datos.

  • DDL – Data Definition Language: define la estructura de los objetos (tablas, índices, esquemas). Ejemplo: CREATE TABLE, ALTER TABLE.
  • DML – Data Manipulation Language: manipula los datos almacenados. Ejemplo: INSERT, UPDATE, DELETE.
  • DCL – Data Control Language: controla permisos y roles. Ejemplo: GRANT, REVOKE.
  • TCL – Transaction Control Language: gestiona transacciones. Ejemplo: BEGIN, COMMIT, ROLLBACK.

En la práctica, cuando necesites crear o modificar la estructura de una tabla, debes usar DDL. Recuerda el mnemónico “DDL = Define la Dibuja la Lógica” para no confundirlo con los demás sublenguajes.

2. Control de transacciones

Una transacción agrupa una serie de operaciones que deben ejecutarse como una unidad atómica. PostgreSQL sigue el modelo ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad).

  • BEGIN: inicia la transacción.
  • COMMIT: confirma los cambios y los hace permanentes.
  • ROLLBACK: revierte todos los cambios si ocurre un error.
  • SAVEPOINT: crea puntos intermedios dentro de la transacción para revertir parcialmente.

Si una transacción falla a la mitad, el comando ROLLBACK es el que deshace los cambios realizados hasta ese punto. Piensa en Revertir = ROLLBACK.

3. Restricciones de unicidad: PRIMARY KEY vs UNIQUE

Ambas restricciones garantizan que los valores no se repitan, pero difieren en su comportamiento frente a NULL y en la cantidad que se pueden definir.

  • PRIMARY KEY: no permite NULL, crea automáticamente un índice único y solo puede existir una por tabla.
  • UNIQUE: permite un único NULL por columna y se pueden definir varias restricciones UNIQUE en la misma tabla.

El mnemónico útil es: “PK = Perfecto, sin Null; UNIQ = permite Unicidad, pero acepta Null”. Así, la llave primaria actúa como la identidad obligatoria de cada fila, mientras que UNIQUE es una regla opcional de no repetición.

4. COMMIT en entornos multi‑nodo

En arquitecturas distribuidas, PostgreSQL puede operar con varios nodos (por ejemplo, mediante replicación streaming). Cuando se ejecuta COMMIT, el servidor informa a todos los nodos que la transacción ha finalizado y que sus cambios son permanentes. Esto garantiza la consistencia entre el nodo primario y los secundarios.

Recuerda: COMMIT = “COM”unicación “MIT” (mitigación) a todos los nodos: la transacción ya está “mitigada” y es permanente.

5. Concurrencia sin bloqueos: MVCC

PostgreSQL utiliza MVCC (Multiversion Concurrency Control) para permitir que múltiples transacciones lean la misma fila sin bloquearse mutuamente. Cada transacción ve una “instantánea” de la base de datos en el momento de su inicio, mientras que las escrituras generan nuevas versiones de las filas.

Este mecanismo permite lecturas consistentes y mejora el rendimiento en entornos con alta concurrencia.

6. Tipos de dato autoincrementales

Para crear una columna que actúe como identificador autoincremental, PostgreSQL ofrece el tipo SERIAL. Al declarar una columna como SERIAL, el motor crea automáticamente una secuencia interna y asigna valores únicos y consecutivos a cada fila insertada.

Recuerda el truco: “S” de “Secuencia” → SERIAL. Si necesitas un rango mayor, puedes usar BIGSERIAL, que funciona de forma similar pero con un rango de valores más amplio.

7. Índices: B‑Tree vs Hash

Los índices son estructuras que aceleran la búsqueda de datos. PostgreSQL soporta varios tipos, siendo los más comunes B‑Tree y Hash.

  • B‑Tree: permite búsquedas por rango, ordenamiento y es el índice predeterminado. Ideal para consultas con operadores <, >, BETWEEN, ORDER BY.
  • Hash: solo admite comparaciones de igualdad (=) y suele ser menos flexible.

El mnemónico: “B‑Tree **B**usca **R**angos, **E**n orden” (B‑R‑E). Cuando necesites “entre X y Y” o “ordenar”, elige B‑Tree; si solo buscas igualdad exacta, considera Hash.

8. Arquitectura cliente‑servidor: el proceso Postmaster

En el modelo cliente‑servidor de PostgreSQL, el proceso padre que gestiona todas las conexiones entrantes se llama postmaster. Cada vez que un cliente se conecta, el postmaster crea un proceso hijo dedicado que maneja esa sesión de forma aislada.

Imagina al postmaster como el recepcionista de un hotel que asigna una habitación (proceso) a cada huésped (usuario). Este diseño garantiza que una falla en una sesión no afecte a las demás.

9. Resumen de conceptos clave

  • DDL define la estructura de la base de datos.
  • ROLLBACK revierte una transacción fallida.
  • PRIMARY KEY no permite NULL; UNIQUE sí permite un NULL y puede haber varias.
  • COMMIT notifica a todos los nodos que la transacción es permanente.
  • MVCC permite lecturas concurrentes sin bloqueos.
  • SERIAL crea columnas autoincrementales mediante secuencias.
  • B‑Tree soporta búsquedas por rango y ordenamiento; Hash solo igualdad.
  • Postmaster es el proceso padre que administra conexiones.

Dominar estos conceptos te permitirá diseñar bases de datos PostgreSQL eficientes, seguras y escalables.