StudyToCert

Data+ / Lecciones · English

CompTIA Data+ DA0-002

Bases de datos relacionales: tablas, claves primarias y foráneas, normalización y relaciones

Una base de datos relacional almacena los datos en tablas, también llamadas relaciones. Cada tabla describe un tipo de cosa, como clientes, productos o pedidos. Cada fila es una instancia de esa cosa y cada columna es un atributo con un tipo de dato definido. La mayoría de los sistemas empresariales, incluidas las aplicaciones de ventas, finanzas y recursos humanos, guardan sus datos en bases de datos relacionales como PostgreSQL, MySQL, SQL Server u Oracle, y se consultan con SQL.

Una clave primaria (primary key) es la columna, o combinación de columnas, que identifica de forma única cada fila. No puede ser nula ni repetirse. CustomerID en una tabla Customers es una clave primaria típica. Una clave formada por dos o más columnas es una clave compuesta (composite key), por ejemplo OrderID más LineNumber en una tabla de líneas de pedido. Una clave natural proviene del negocio (un número de identificación fiscal); una clave sustituta (surrogate key) es un número artificial que genera la base de datos y que permanece estable aunque cambien los valores del negocio.

Una clave foránea (foreign key) es una columna de una tabla que hace referencia a la clave primaria de otra tabla. Orders.CustomerID apunta a Customers.CustomerID. La base de datos puede hacer cumplir la integridad referencial: rechaza un pedido de un cliente que no existe y puede impedir que se elimine un cliente que todavía tiene pedidos. Las relaciones tienen una cardinalidad. La de uno a muchos es la más común (un cliente, muchos pedidos). La de uno a uno es menos frecuente (una persona y un registro de pasaporte). La de muchos a muchos (estudiantes y cursos) necesita una tabla de unión (junction table) que contenga ambas claves.

La normalización es el proceso de organizar las tablas para reducir la redundancia y los problemas de actualización. En la primera forma normal (1NF), cada columna contiene un valor atómico, sin listas en una celda ni grupos de columnas repetidos. En la segunda forma normal (2NF), cada columna que no es clave depende de toda la clave primaria, no de una parte de una clave compuesta. En la tercera forma normal (3NF), las columnas que no son clave dependen solo de la clave, no de otras columnas que no son clave. La ciudad de un cliente no debería guardarse en cada fila de pedido; pertenece a la tabla Customers, una sola vez.

Los diseños normalizados son adecuados para los sistemas transaccionales porque cada hecho se almacena una sola vez, así que las actualizaciones son rápidas y consistentes. El costo es que el análisis necesita muchos joins. Por eso los sistemas de reportes a menudo desnormalizan, copiando atributos descriptivos en tablas más anchas para que las consultas sean más simples y rápidas. Ninguna opción es incorrecta: el diseño adecuado depende de si la carga de trabajo consiste en escribir transacciones o en leer para analizar.

Términos clave

Primary key (clave primaria)
Una columna o conjunto de columnas cuyos valores identifican de forma única cada fila y nunca son nulos.
Foreign key (clave foránea)
Una columna que hace referencia a la clave primaria de otra tabla, vinculando las tablas y haciendo cumplir la integridad referencial.
Normalization (normalización)
Organizar las tablas en formas normales (1NF, 2NF, 3NF) para que cada hecho se almacene una sola vez, reduciendo la redundancia y las anomalías de actualización.
Junction table (tabla de unión)
Una tabla que contiene pares de claves foráneas y resuelve una relación de muchos a muchos.
Ejemplo real

Una tienda pequeña guardaba los pedidos en una sola hoja de cálculo con el nombre, el correo y la dirección del cliente repetidos en cada fila. Cuando un cliente cambiaba de correo, algunas filas se actualizaban y otras no. Pasar a una tabla Customers (con CustomerID como clave primaria) y una tabla Orders con una clave foránea CustomerID significa que el correo se guarda una sola vez y cada pedido se vincula al valor actual.

Consejo para el examen: Si una pregunta te pide qué columna vincula dos tablas, la respuesta es la clave foránea en la tabla del lado 'muchos'. Si pregunta qué elimina los datos repetidos del cliente en cada fila de pedido, la respuesta es la normalización.

Comprueba lo que sabes

¿Cómo modelas una relación de muchos a muchos entre estudiantes y cursos?

Creas una tabla de unión, como Enrollments, con las claves foráneas StudentID y CourseID (que juntas suelen formar una clave primaria compuesta).

¿Por qué una base de datos de reportes podría desnormalizar los datos a propósito?

Menos joins hacen que las consultas analíticas sean más simples y rápidas, y los sistemas de reportes son principalmente de lectura, así que la redundancia es una compensación aceptable.

Estudia Data+ gratis
Plan semana a semana con lecciones, cuestionarios, simulaciones de examen y práctica, en español.
Abrir el plan de estudio