Clase 03 · 17 minGratis

Llaves primarias, foráneas y bases no relacionales

Clase 3 del curso gratis SQL desde Cero: cómo identificar cada registro con una llave primaria, cómo relacionar tablas con llaves foráneas y cuándo aparecen las bases de datos no relacionales.

Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube

Llave primaria: el documento de identidad del registro

La llave primaria (primary key) es una columna cuyos valores no se repiten y nunca están vacíos: identifica cada registro sin ambigüedad. En una tabla de clientes, el nombre no sirve (hay muchas Ana Gómez); el número de documento, sí .

Si los datos no traen nada único, se le delega al sistema: una columna que se llena sola con un número que va aumentando .

Pruébalo · base vacía

Dos clientes con el mismo nombre, pero con id distinto: ya no hay confusión. Ahora intenta insertar a mano un id que ya existe (INSERT INTO clientes VALUES (1, 'Luis', 20);) y mira el error.

Llave foránea: la referencia a otra tabla

Una llave foránea (foreign key) es una columna que apunta a la llave primaria de otra tabla . La tabla de órdenes no repite el nombre ni la edad del cliente: guarda su id, y con eso se va a buscar el resto a la tabla de clientes .

  • En ordenes, el cliente_id sí se repite: un cliente puede tener muchas órdenes .
  • Cada tabla tiene una llave primaria (que puede combinar varias columnas), pero puede tener varias foráneas.
  • Nombrarla cliente_id es convención, no obligación. Sigue una convención y tu yo del futuro (o quien herede tu código) te lo agradecerá .
Pruébalo · base vacía

La línea FOREIGN KEY … REFERENCES se lee casi literal: la llave foránea cliente_id hace referencia al id de clientes . Agrega al final INSERT INTO ordenes VALUES (4, 99, 10); y ejecuta: el cliente 99 no existe y la base se niega. Esa es la integridad referencial.

Bases de datos no relacionales

En una base relacional, agregar un tipo de dato nuevo implica cambiar la estructura de la tabla . Cuando los datos crecieron a escala de redes sociales (millones de usuarios, formatos que cambian todo el tiempo) aparecieron las no relacionales (NoSQL), que no necesariamente guardan tablas :

  • Grafos: nodos y relaciones, ideales para redes de amigos o recomendaciones (Neo4j) .
  • Clave-valor: rapidísimas para lecturas simples (Redis) .
  • Columnares: Cassandra, por ejemplo.
  • Documentos: guardan objetos JSON (JavaScript Object Notation), como MongoDB .

Las marcas relacionales y sus dialectos

MySQL, PostgreSQL, SQL Server, Oracle y SQLite hablan SQL estándar, con pequeñas diferencias: un comando que funciona en una puede escribirse distinto en otra . En este curso usamos SQLite, y cuando algo cambie respecto a otros motores lo vas a ver señalado.

El reto de esta clase

Crea autores y libros. Cada libro tiene un id, un titulo y un autor_id que es llave foránea hacia autores(id). Inserta un autor y dos libros suyos.

Reto · base vacía

Sigue con la clase 4

SELECT y WHERE: traer y filtrar datos

Seguir el canal de WhatsApp