Ir al contenido principal
¿Te ayudamos?
oposiciones

Normalización de bases de datos: 8 ejercicios

12 min de lectura

Resuelve 8 ejercicios de normalización de bases de datos: cierres, claves candidatas, 3FN, BCNF, descomposición sin pérdida y preservación de dependencias.

La normalización de bases de datos exige justificar qué atributos determinan a cuáles. Reconocer palabras como “clave” o “dependencia transitiva” ayuda, pero no sustituye calcular un cierre o comprobar qué ocurre después de descomponer una relación.

Aquí tienes ocho ejercicios originales con cuatro alternativas y soluciones explicadas. Trabajan cierres, claves candidatas, tercera forma normal, Boyce-Codd y descomposiciones. Si antes quieres distinguir las restricciones declaradas en SQL, utiliza los casos resueltos de claves primarias y foráneas. Este cuaderno aborda el razonamiento sobre el esquema, sin ejecutar sentencias SQL.

Supuestos y notación

Cada ejercicio es independiente. Se utiliza el modelo relacional clásico: relaciones como conjuntos de tuplas, sin duplicados ni valores NULL. Todos los esquemas se suponen en primera forma normal, con valores atómicos. No se estudian aquí dependencias multivaluadas, 4FN ni 5FN.

F contiene las dependencias funcionales especificadas. Para resolver se utilizan esas dependencias y sus consecuencias lógicas, sin añadir otras reglas por intuición. XY representa el conjunto de atributos X e Y, no una concatenación de valores. X->Y significa que dos tuplas que coincidan en X deben coincidir también en Y. Esta regla no impide que valores distintos de X compartan un mismo valor de Y.

El cierre X+ reúne los atributos determinados por X bajo F. Para calcularlo, empieza con X y añade los atributos derechos de las dependencias cuyos atributos izquierdos ya tengas. Repite hasta que no cambie. Si alcanzas todos los atributos de la relación, X es superclave. Para ser candidata debe cumplir también minimalidad por inclusión: no puede sobrar ningún atributo.

ConceptoComprobación
Dependencia trivial X->aEl atributo a ya pertenece a X
Superclave XX+ contiene todos los atributos del esquema
Clave candidataSuperclave sin subconjunto propio que sea superclave
Atributo primoPertenece a alguna clave candidata

El criterio que decide 3FN y BCNF

Para una dependencia con un solo atributo a en el lado derecho, 3FN exige que sea trivial, que el determinante sea superclave o que a sea primo. BCNF, también llamada FNBC, admite las dos primeras posibilidades. Si el lado derecho contiene varios atributos, puedes separar sus dependencias para comprobarlos uno a uno.

Las condiciones se aplican a las dependencias que se deducen de F, no a reglas inventadas al mirar unas filas. No hay que exigir que todo determinante sea una clave candidata mínima: una superclave también satisface el requisito correspondiente.

Una descomposición presenta otras dos preguntas: si reconstruye mediante reunión natural cualquier relación válida al unir sus proyecciones, y si las dependencias proyectadas en las partes permiten imponer todas las originales. Son propiedades distintas. Los ejercicios finales te obligan a separarlas.

Ejercicio 1. Calcula un cierre sin añadir atributos

Sea R(K,L,M,N), con F = {K->L, L->M}. ¿Cuál es el cierre K+ respecto a F?

A. {K,L,M,N}.

B. {K,L}.

C. {K,L,M}.

D. {L,M}.

Ver solución del ejercicio 1

Correcta: C. Empiezas con K. Mediante K->L incorporas L; al disponer de L, la dependencia L->M permite añadir M. No hay ninguna dependencia que produzca N. Por tanto, K+ = {K,L,M}.

K no es superclave de R porque su cierre no alcanza N. La transitividad permite concluir K->M, pero no invertir L->M para obtener M->L ni introducir un atributo por aparecer en el nombre de la relación. El cierre siempre conserva el conjunto inicial: tampoco puede dar únicamente {L,M}.

Ejercicio 2. Encuentra todas las claves candidatas

Sea R(P,Q,R,S), con F = {P->Q, Q->P, PR->S}. ¿Cuál es la lista completa de claves candidatas?

A. P y Q.

B. PR únicamente.

C. PRS y QRS.

D. PR y QR.

Ver solución del ejercicio 2

Correcta: D. R no aparece en el lado derecho de ninguna dependencia, así que no puedes obtenerlo partiendo de atributos que lo excluyan: toda clave debe contener R. Con PR obtienes Q mediante P->Q y S mediante PR->S. Con QR obtienes P mediante Q->P y después S. Las claves candidatas son PR y QR.

Ambas son mínimas: R por sí solo no determina P ni Q; P y Q por separado tampoco determinan R ni S. Si añades S a PR o QR sigues teniendo superclaves, pero ya no son mínimas. Esta comprobación evita confundir una lista de superclaves válidas con la lista de candidatas que pide la pregunta.

Ejercicio 3. Localiza una violación de 3FN

Sea R(A,B,C), con F = {AB->C, A->C}. ¿Cuál de las siguientes dependencias viola la condición de 3FN?

A. AB->C.

B. A->C.

C. AB->A.

D. C->C.

Ver solución del ejercicio 3

Correcta: B. La única clave candidata es AB: necesitas A y B porque ninguna dependencia permite obtenerlos desde otros atributos. Por ello, C no es primo. En A->C, A no es superclave, la dependencia no es trivial y el atributo derecho C no pertenece a ninguna clave candidata. Es una violación de 3FN.

AB->C sí tiene una superclave como determinante. AB->A y C->C son triviales: su lado derecho ya está incluido en el izquierdo. Aunque las tres últimas dependencias sean verdaderas respecto al esquema, la pregunta no pide identificar una dependencia verdadera, sino la que incumple la forma normal.

Ejercicio 4. No basta con una clave de una columna

Sea R(U,V,W), con F = {U->V, V->W}. ¿Qué diagnóstico es correcto respecto a 3FN y BCNF?

A. No está en 3FN ni en BCNF.

B. Está en 3FN, pero no en BCNF.

C. Está en ambas.

D. Está en BCNF, pero no en 3FN.

Ver solución del ejercicio 4

Correcta: A. U+ alcanza U, V y W, de modo que U es la única clave candidata. Sin embargo, V+ = {V,W}: V no determina U y no es superclave. La dependencia V->W no es trivial y W no es primo. Por eso no está en 3FN ni en BCNF.

Que exista una clave de una sola columna no resuelve todas las formas normales. Aquí el dato decisivo es la dependencia entre V y W. Tampoco es posible estar en BCNF y fallar 3FN: BCNF impone una condición que basta para satisfacer también la tercera forma normal.

Ejercicio 5. Distingue 3FN de Boyce-Codd

Sea R(X,Y,Z), con F = {XY->Z, Z->Y}. ¿En qué situación se encuentra el esquema?

A. Está en 3FN y en BCNF.

B. No está en ninguna de las dos.

C. Está en BCNF, pero no en 3FN.

D. Está en 3FN, pero no en BCNF.

Ver solución del ejercicio 5

Correcta: D. Las claves candidatas son XY y XZ. XY determina Z directamente; XZ determina Y mediante Z->Y. Ningún subconjunto propio de esas dos combinaciones determina todos los atributos. En consecuencia, X, Y y Z son primos, porque cada uno pertenece a alguna clave candidata.

XY->Z cumple BCNF porque XY es superclave. En cambio, Z->Y tiene un determinante que no es superclave: Z+ = {Y,Z}, sin X. Esa dependencia impide BCNF, pero se admite en 3FN porque Y es primo. Por tanto, el esquema está en 3FN, pero no en BCNF. No elijas primero una primaria y descartes la otra candidata al decidir qué atributos son primos.

Ejercicio 6. Una descomposición que permite reconstruir

Sea R(H,J,K), con F = {H->J, J->K}. Se descompone en R1(H,J) y R2(J,K), usando sus proyecciones. ¿Qué afirmación es correcta?

A. Conserva las dependencias, pero puede producir tuplas espurias.

B. Es sin pérdida, pero no conserva J->K.

C. Es sin pérdida y conserva las dependencias de F.

D. Ni es sin pérdida ni conserva H->J.

Ver solución del ejercicio 6

Correcta: C. Las partes comparten J y J->JK se deduce de J->K junto con la dependencia trivial J->J. La intersección determina toda R2. Por el criterio de descomposición binaria, la reunión natural de las proyecciones reconstruye exactamente cualquier relación válida para F: la descomposición es sin pérdida.

También conserva las dependencias de F: H->J puede comprobarse en R1 y J->K en R2. Son dos propiedades diferentes que aquí se cumplen a la vez. Además, cada parte está en BCNF respecto a sus dependencias proyectadas: H es clave de R1 y J es clave de R2. Compartir alguna columna, por sí solo, no habría bastado para demostrar reconstrucción sin pérdida.

Ejercicio 7. Sin pérdida no significa preservar todo

Sea R(X,Y,Z), con F = {XY->Z, Z->Y}. Se descompone en R1(Y,Z) y R2(X,Z), con las dependencias proyectadas de F. ¿Cómo se clasifica esta descomposición?

A. Con pérdida y con preservación de todas las dependencias.

B. Sin pérdida, pero sin preservación de todas las dependencias.

C. Sin pérdida y con preservación de todas las dependencias.

D. Con pérdida y sin preservación de Z->Y.

Ver solución del ejercicio 7

Correcta: B. La intersección es Z y Z->YZ se deduce de F. Por tanto, la descomposición es sin pérdida. Sin embargo, la proyección sobre YZ conserva Z->Y y sobre XZ no hay dependencias no triviales que permitan recuperar XY->Z. La unión de las dependencias proyectadas no implica toda F: no se preservan todas las dependencias.

Este contraejemplo permite ver la diferencia. Supón que R1 contiene (y0,z1) y (y0,z2), y R2 contiene (x0,z1) y (x0,z2). Ambas partes satisfacen sus dependencias locales. Su reunión produce:

XYZ
x0y0z1
x0y0z2

Las dos filas comparten XY y difieren en Z: incumplen XY->Z. Esta reunión ilustra que las restricciones locales no bastan para imponer la dependencia original. No es una relación original válida para F; por tanto, no contradice la garantía sin pérdida, que se refiere a descomponer y reconstruir relaciones que sí cumplen F.

Ejercicio 8. Comprueba las tuplas espurias

Sea R(M,N,P), con F = {M->N}. Una relación válida contiene exactamente las filas (m1,n0,p1) y (m2,n0,p2). Se proyecta en R1(M,N) y R2(N,P) y se hace su reunión natural por N. ¿Qué resultado se obtiene?

A. Cuatro tuplas: las dos originales y dos espurias.

B. Dos tuplas: exactamente las originales.

C. Una tupla, porque N tiene un solo valor.

D. Cero tuplas, porque M no aparece en R2.

Ver solución del ejercicio 8

Correcta: A. R1 contiene (m1,n0) y (m2,n0); R2 contiene (n0,p1) y (n0,p2). Cada fila de R1 coincide por N con ambas filas de R2. Se obtienen cuatro tuplas:

MNPProcedencia
m1n0p1Original
m1n0p2Espuria
m2n0p1Espuria
m2n0p2Original

Las nuevas combinaciones no estaban en la relación inicial, que sí cumplía M->N. Ese único contraejemplo basta para demostrar que la descomposición propuesta no garantiza reconstrucción sin pérdida respecto a F.

La intersección N no determina M ni P con las dependencias dadas. Reunir por una columna común no restaura necesariamente la asociación entre las otras columnas. En este contexto, “con pérdida” no exige que desaparezcan filas: puede perderse información sobre qué combinaciones eran las originales, apareciendo tuplas espurias.

Clave y método de revisión

Las respuestas son 1C, 2D, 3B, 4A, 5D, 6C, 7B y 8A. Para corregirte, anota el paso que demuestra tu respuesta: el atributo que falta en un cierre, la minimalidad de una candidata, el determinante que no es superclave o la dependencia que las partes dejan de imponer.

En las descomposiciones, separa el argumento sobre todos los estados válidos del ejemplo con unas filas concretas. Un contraejemplo válido basta para refutar una garantía universal. En cambio, que una reunión de prueba salga bien no demuestra por sí solo que todas vayan a hacerlo.

Cómo continuar la preparación

El material de Analista Programador de Leganés es de pago e incluye un apartado sobre normalización. Esta práctica complementa ese tema con cierres y condiciones formales. Consulta el índice del material y las bases de tu proceso para valorar su alcance; estos ejercicios no son preguntas oficiales ni predicen un examen.

Referencias para contrastar el razonamiento

Las notas de CSCI 4380 de RPI sobre dependencias, cierres y formas normales permiten contrastar las definiciones. Para las descomposiciones, consulta el criterio de intersección para reconstrucción sin pérdida de Emory y las secciones de proyección y preservación de dependencias de RPI. Los supuestos, alternativas y tablas de esta colección son propios.

Preguntas frecuentes

¿Qué diferencia hay entre superclave y clave candidata?

Una superclave determina todos los atributos de la relación. Una clave candidata es una superclave mínima por inclusión: ninguno de sus subconjuntos propios sigue siendo superclave. Puede haber varias claves candidatas.

¿Qué es un atributo primo?

Es un atributo que pertenece a alguna clave candidata, aunque esa candidata no se haya elegido como clave primaria. Para decidirlo hay que considerar todas las candidatas.

¿Toda relación en 3FN está en BCNF?

No. 3FN admite ciertas dependencias con determinante que no es superclave cuando el atributo dependiente es primo. BCNF exige que el determinante de toda dependencia no trivial sea superclave.

¿Una descomposición sin pérdida conserva siempre las dependencias?

No. Reconstruir mediante la reunión natural las proyecciones de toda relación válida es una propiedad distinta de poder imponer las dependencias originales mediante las dependencias proyectadas en cada parte.

¿Basta con mirar unas filas para dar por probada una dependencia funcional?

No. Una muestra puede incumplir una dependencia y refutarla, pero que la cumpla no demuestra que sea una regla para todas las relaciones permitidas. En estos ejercicios las dependencias se dan como restricciones del esquema.