El modelo relacional de E. F. Codd (1970) representa los datos como relaciones, es decir, conjuntos de tuplas sin duplicados. Dos reglas de integridad son esenciales: la integridad de entidad prohíbe que cualquier atributo de la clave primaria tome el valor NULL, y la integridad referencial exige que toda clave foránea coincida con un valor existente de la clave primaria o candidata referenciada, o bien sea completamente NULL. Una dependencia funcional X→Y se cumple cuando cada par de tuplas que coincide en X también coincide en Y. Un atributo primo pertenece a alguna clave candidata; uno no primo, a ninguna: esta distinción sustenta la 2FN y la 3FN.
La normalización elimina redundancias por etapas:
En SQL (ISO/IEC 9075), el orden lógico de evaluación es FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. La cláusula WHERE filtra filas antes de agrupar y no admite funciones de agregación; HAVING filtra grupos tras GROUP BY y sí las admite. COUNT(*) cuenta todas las filas, incluidas las que contienen NULL, mientras que COUNT(columna), SUM, AVG, MIN y MAX ignoran los NULL. Cualquier comparación con NULL (por ejemplo, columna = NULL) devuelve UNKNOWN —no TRUE—, por lo que la nulidad se prueba con IS NULL e IS NOT NULL. Un INNER JOIN devuelve solo las filas con coincidencia en ambas tablas; un LEFT OUTER JOIN conserva todas las de la izquierda y rellena con NULL las columnas de la derecha sin correspondencia. Como SQL admite multiconjuntos (tablas con filas repetidas), DISTINCT elimina los duplicados del resultado. En DDL, la clave primaria se declara con PRIMARY KEY, que combina las restricciones UNIQUE y NOT NULL.
Completa el repaso con las propiedades ACID de las transacciones, el control de concurrencia mediante bloqueo en dos fases (2PL), el uso de índices para optimizar consultas y las nociones básicas de aprendizaje: supervisado (con datos etiquetados) frente a no supervisado (sin etiquetas).
1. En el modelo relacional formulado por E. F. Codd (1970), una relación se define formalmente como un conjunto de tuplas. ¿Qué consecuencia directa tiene esta definición basada en teoría de conjuntos?
Por definición, una relación es un conjunto de tuplas y en teoría de conjuntos no existen elementos duplicados ni orden entre ellos; por eso una relación no puede tener dos tuplas idénticas. (E. F. Codd, A Relational Model of Data for Large Shared Data Banks, CACM 13(6), 1970; ISO/IEC 9075.)
2. Un analista necesita, en álgebra relacional, obtener el nombre y el correo de los empleados del departamento de Sistemas, a partir de la relación Empleado(NumEmpleado, Nombre, Correo, Departamento). ¿Qué combinación de operadores debe aplicar, en el orden correcto?
Debe filtrarse primero con la selección σ y proyectar después, pues proyectar antes sobre Nombre y Correo eliminaría la columna Departamento necesaria para aplicar el filtro. (Silberschatz, Korth & Sudarshan, Fundamentos de Bases de Datos, cap. de álgebra relacional; formalismo original de E. F. Codd (1970).)
3. ¿Cuál es la condición que debe cumplir una relación para estar en Primera Forma Normal (1FN)?
La 1FN exige valores atómicos y monovaluados por atributo, sin grupos repetitivos; las otras opciones describen 2FN, 3FN y FNBC respectivamente. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de normalización; concepto original de E. F. Codd (1970).)
4. La tabla Empleado incluye el atributo Telefonos, en el que se almacenan varios números telefónicos de un mismo empleado separados por comas dentro de una sola celda. ¿Qué forma normal viola directamente este diseño?
Almacenar varios valores en un mismo atributo viola la 1FN, que exige valores atómicos e indivisibles por atributo. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de normalización.)
5. En una relación Inscripcion con clave primaria compuesta (NumControl, Materia), el atributo NombreAlumno depende únicamente de NumControl, mientras que Calificacion depende de la combinación completa de ambos atributos. ¿Qué tipo de dependencia presenta NombreAlumno y qué forma normal ocasiona que el esquema no cumpla?
NombreAlumno depende solo de una parte (NumControl) de la clave primaria compuesta, lo que constituye una dependencia parcial y viola la 2FN; no es transitiva, pues NumControl es un atributo primo por formar parte de la clave. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos; 2FN definida por E. F. Codd (1971).)
6. En la relación Empleado(NumEmpleado, Departamento, GerenteDepartamento), el atributo GerenteDepartamento depende de Departamento, y Departamento depende de la clave primaria NumEmpleado. ¿Qué tipo de dependencia representa GerenteDepartamento sobre NumEmpleado y qué forma normal viola?
GerenteDepartamento depende de un atributo no primo (Departamento) y no directamente de la clave primaria, lo que constituye una dependencia transitiva que viola la 3FN. (Silberschatz, Korth & Sudarshan, Fundamentos de Bases de Datos; 3FN definida por E. F. Codd (1971).)
7. ¿En qué se diferencia la Forma Normal de Boyce-Codd (FNBC) respecto de la Tercera Forma Normal (3FN)?
La FNBC generaliza la 3FN al exigir superclave en el determinante de cualquier dependencia no trivial, incluso entre atributos primos, por lo que es más estricta. (Silberschatz et al., Fundamentos de Bases de Datos; FNBC atribuida a R. Boyce y E. F. Codd (1974).)
8. En la tabla Cliente, el atributo Telefono contiene NULL en varios registros. Un desarrollador ejecuta SELECT * FROM Cliente WHERE Telefono = NULL; y no obtiene ninguna fila, ni siquiera las que tienen Telefono en NULL. ¿Cuál es la causa correcta de este resultado, según la lógica de tres valores de SQL?
En la lógica de tres valores de SQL, columna = NULL evalúa a UNKNOWN y nunca a TRUE; para probar nulidad se requieren los predicados IS NULL / IS NOT NULL. (ISO/IEC 9075 (estándar SQL), lógica de tres valores (TRUE/FALSE/UNKNOWN).)
9. En el contexto de dependencias funcionales, ¿qué significa que una relación cumple X→Y?
Una dependencia funcional X→Y significa que X determina de forma única el valor de Y en toda la relación. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de dependencias funcionales.)
10. ¿Qué establece la regla de integridad de entidad en el modelo relacional?
La integridad de entidad prohíbe valores NULL en cualquier atributo de la clave primaria, para garantizar que cada tupla sea identificable; la opción sobre claves foráneas describe integridad referencial. (C. J. Date, Introducción a los Sistemas de Bases de Datos; regla de integridad del modelo relacional de E. F. Codd.)
11. Un desarrollador intenta insertar en la tabla Pedido un registro cuyo atributo IdCliente hace referencia a un cliente que no existe en la tabla Cliente. Según la regla de integridad referencial, ¿qué debe ocurrir?
La integridad referencial exige que toda clave foránea coincida con una clave existente en la tabla referenciada o sea NULL; un valor sin correspondencia debe rechazarse. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos; modelo relacional de E. F. Codd.)
12. La tabla Cliente contiene 10 filas; en 3 de ellas el atributo Telefono es NULL. Se ejecutan dos consultas: SELECT COUNT(*) FROM Cliente; y SELECT COUNT(Telefono) FROM Cliente; ¿qué resultado arroja cada una, respectivamente?
COUNT(*) cuenta las 10 filas totales de la tabla, mientras que COUNT(Telefono) ignora las 3 filas con NULL y cuenta solo 7. (ISO/IEC 9075 (estándar SQL), funciones de agregación (set functions).)
13. Un analista desea listar los departamentos cuyo salario promedio supera los $15,000 pesos mensuales, a partir de la tabla Empleado agrupada por departamento. ¿En qué cláusula debe colocar la condición AVG(Salario) > 15000?
HAVING filtra después de GROUP BY y admite funciones de agregación como AVG; WHERE actúa antes de agrupar y no puede usar funciones agregadas. (ISO/IEC 9075 (estándar SQL), cláusulas de la sentencia SELECT.)
14. Un reporte debe incluir a todos los empleados, incluso a quienes aún no tienen un departamento asignado, y mostrar NULL en los datos del departamento cuando no exista coincidencia. Las tablas son Empleado (izquierda) y Departamento (derecha). ¿Qué tipo de reunión (join) debe usarse?
El LEFT OUTER JOIN preserva todas las filas de la tabla izquierda (Empleado) y coloca NULL en las columnas de la derecha cuando no hay coincidencia; INNER JOIN excluiría a los empleados sin departamento. (ISO/IEC 9075 (estándar SQL), joined tables.)
15. En el contexto de las propiedades ACID de una transacción, ¿qué garantiza la propiedad de Atomicidad?
La Atomicidad trata la transacción como una unidad indivisible: se ejecuta completa o se revierte por completo; las otras opciones describen Consistencia, Durabilidad y Aislamiento. (Härder & Reuter, Principles of Transaction-Oriented Database Recovery, ACM Computing Surveys, 1983 (origen del acrónimo ACID); J. Gray, The Transaction Concept, 1981.)
16. Una aplicación bancaria transfiere $5,000 pesos de la cuenta A a la cuenta B mediante dos operaciones: primero resta el monto de A y después lo suma a B. El sistema falla justo después de restar el monto de A, antes de sumarlo a B. Si la base de datos garantiza correctamente la Atomicidad, ¿qué debe ocurrir al reiniciar?
La Atomicidad exige que, ante una falla a mitad de la transacción, todas sus operaciones se reviertan; la cuenta A debe recuperar su saldo original mediante ROLLBACK. (J. Gray, The Transaction Concept: Virtues and Limitations, 1981; Silberschatz, Korth & Sudarshan, Fundamentos de Bases de Datos, cap. de transacciones.)
17. ¿Qué garantiza la propiedad de Consistencia dentro de las propiedades ACID?
La Consistencia asegura que las reglas de integridad del esquema (claves, restricciones) se mantengan antes y después de cada transacción; las demás opciones describen Aislamiento, Durabilidad y Atomicidad. (Härder & Reuter, Principles of Transaction-Oriented Database Recovery, 1983; Silberschatz et al., Fundamentos de Bases de Datos.)
18. La tabla Cuenta tiene una restricción CHECK que impide que el atributo Saldo sea negativo. Una transacción intenta dejar el saldo de una cuenta en -200 pesos tras un retiro. ¿Qué propiedad ACID obliga al sistema a rechazar o revertir esta transacción?
Violar una restricción CHECK deja a la base de datos en un estado inválido, lo cual corresponde directamente a la propiedad de Consistencia. (Silberschatz, Korth & Sudarshan, Fundamentos de Bases de Datos, cap. de transacciones.)
19. ¿Qué garantiza la propiedad de Aislamiento (Isolation) en las transacciones de una base de datos?
El Aislamiento garantiza que el resultado de ejecutar transacciones concurrentes sea equivalente a ejecutarlas en algún orden secuencial (serializabilidad); las otras opciones describen Durabilidad, Atomicidad e integridad referencial. (Härder & Reuter, Principles of Transaction-Oriented Database Recovery, 1983; Silberschatz et al., Fundamentos de Bases de Datos, cap. de control de concurrencia.)
20. La Transacción 1 actualiza el saldo de una cuenta pero aún no ejecuta COMMIT. La Transacción 2 lee ese saldo modificado y toma una decisión con base en él. Después, la Transacción 1 ejecuta ROLLBACK. ¿Qué fenómeno describe la lectura realizada por la Transacción 2?
Leer un valor modificado pero aún no confirmado, que luego se revierte, es exactamente una lectura sucia (dirty read), un fenómeno que un buen Aislamiento debe evitar. (ISO/IEC 9075 (estándar SQL), niveles de aislamiento de transacciones; Berenson et al., A Critique of ANSI SQL Isolation Levels, 1995.)
21. De los cuatro niveles estándar de aislamiento definidos en SQL (Read Uncommitted, Read Committed, Repeatable Read y Serializable), ¿cuál evita por completo los tres fenómenos de lectura sucia, lectura no repetible y lectura fantasma?
Solo Serializable, el nivel más estricto, elimina los tres fenómenos; Repeatable Read evita lecturas sucias y no repetibles pero, según el estándar SQL, permite lecturas fantasma. (ISO/IEC 9075 (estándar SQL), niveles de aislamiento; Berenson et al., A Critique of ANSI SQL Isolation Levels, 1995.)
22. ¿Qué garantiza la propiedad de Durabilidad en una transacción de base de datos?
La Durabilidad asegura que, una vez ejecutado el COMMIT, los cambios sobrevivan a cualquier falla posterior; las demás opciones describen Atomicidad, Consistencia y Aislamiento. (Härder & Reuter, Principles of Transaction-Oriented Database Recovery, 1983; Silberschatz et al., Fundamentos de Bases de Datos.)
23. Inmediatamente después de que una transacción ejecuta COMMIT, el servidor sufre un corte de energía antes de escribir los cambios en el archivo de datos en disco. Al reiniciar, el sistema recupera exitosamente los cambios confirmados. ¿Qué mecanismo típico permite garantizar la Durabilidad en este escenario?
El write-ahead log (WAL) registra los cambios en disco antes de confirmar la transacción, lo que permite rehacerlos durante la recuperación tras una falla y así garantizar la Durabilidad. (Mohan et al., ARIES: A Transaction Recovery Method, ACM TODS, 1992; Silberschatz et al., Fundamentos de Bases de Datos, cap. de recuperación.)
24. Todas las siguientes situaciones son consecuencias directas de la propiedad de Atomicidad en una transacción, EXCEPTO:
Impedir que una transacción lea datos no confirmados de otra es responsabilidad del Aislamiento, no de la Atomicidad; las demás opciones sí describen consecuencias directas de la Atomicidad. (Härder & Reuter, Principles of Transaction-Oriented Database Recovery, 1983; Silberschatz et al., Fundamentos de Bases de Datos.)
25. En el modelo entidad-relación, un atributo que puede tomar más de un valor para una misma entidad (por ejemplo, los números telefónicos de un empleado) se clasifica como:
Un atributo multivaluado admite varios valores simultáneos para una misma entidad, como los teléfonos de un empleado; el simple y el compuesto toman un solo valor (atómico o estructurado) y el derivado se calcula a partir de otro atributo. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de modelado entidad-relación.)
26. En el modelo entidad-relación, un atributo cuyo valor se calcula a partir del valor de otro atributo almacenado, como la 'Edad' calculada a partir de 'Fecha_nacimiento', se denomina atributo:
Un atributo derivado no se almacena directamente, sino que se obtiene mediante un cálculo sobre otro atributo almacenado; no debe confundirse con el atributo compuesto, que se subdivide en partes con significado propio. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de modelado entidad-relación.)
27. En una relación (vínculo) binaria del modelo ER, si cada instancia de la entidad A puede asociarse con muchas instancias de la entidad B, pero cada instancia de B se asocia con una sola instancia de A, la razón de cardinalidad de dicha relación (de A hacia B) es:
Cuando una instancia del lado A se relaciona con muchas de B, pero cada instancia de B se relaciona con una sola de A, la razón de cardinalidad se expresa como 1:N; escribirla como N:1 invierte el orden convencional de los lados de la relación. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de restricciones de razón de cardinalidad.)
28. Un analista describe el siguiente esquema: 'Cada Departamento tiene un único Gerente responsable, y cada empleado puede ser gerente de a lo sumo un departamento.' ¿Qué razón de cardinalidad describe correctamente la relación Dirige entre Departamento y Empleado (gerente)?
Ambos lados de la relación quedan limitados a una sola instancia asociada (un departamento con un gerente, y un gerente con un solo departamento), lo que corresponde a una cardinalidad 1:1, el ejemplo clásico de Departamento-Gerente. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de restricciones de razón de cardinalidad (ejemplo Departamento-Gerente).)
29. En el esquema ER de una empresa, la entidad Dependiente solo puede existir si está asociada mediante la relación identificadora 'Tiene_dependiente' con la entidad Empleado, y su clave se compone del nombre del dependiente junto con la clave del empleado del cual depende. ¿Qué tipo de entidad es Dependiente?
Una entidad débil no posee una clave propia que la identifique de forma independiente; se identifica combinando su clave parcial (discriminador) con la clave primaria de la entidad propietaria a través de la relación identificadora. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de entidades y relaciones débiles.)
30. En notación de Chen para el modelo entidad-relación, la restricción de participación TOTAL de una entidad en una relación significa que:
La participación total (u obligatoria) exige que cada instancia de la entidad aparezca relacionada con al menos una instancia de la otra entidad; la opción que habla de 'al menos una instancia' de la entidad describe de forma imprecisa la restricción y no equivale a la definición formal. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de restricciones de participación (total y parcial).)
31. En el modelo entidad-relación extendido (EER), cuando cada instancia de la superclase puede pertenecer, como máximo, a una sola subclase dentro de una especialización, dicha especialización se clasifica como:
En una especialización disjunta, cada instancia de la superclase pertenece a lo sumo a una subclase (categorías mutuamente excluyentes); en la solapada una misma instancia puede pertenecer a varias subclases a la vez, mientras que total/parcial es una restricción distinta de participación. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de especialización y generalización (EER).)
32. Un ingeniero de bases de datos debe transformar a esquema relacional una relación M:N llamada Inscribe entre las entidades Alumno y Curso, la cual además tiene el atributo propio 'Calificación'. ¿Cuál es la forma correcta de representar esta relación en el modelo relacional?
Las relaciones M:N no pueden representarse con una clave foránea en ninguna de las dos tablas participantes; requieren una tabla independiente cuya clave primaria combine las claves foráneas de ambas entidades, donde además se colocan los atributos propios de la relación como Calificación. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de mapeo de ER a relacional (algoritmo de 7 pasos).)
33. Al mapear una relación binaria con razón de cardinalidad 1:N del modelo ER al modelo relacional, la clave foránea que referencia a la entidad del lado '1' debe colocarse en:
En una relación 1:N, la clave foránea se coloca en la tabla del lado 'N' (el de participación múltiple), apuntando a la clave primaria del lado '1'; a diferencia de las relaciones M:N, no se necesita crear una tabla adicional. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de mapeo de ER a relacional.)
34. Un diagrama entidad-relación contiene 3 entidades fuertes, 1 entidad débil, una relación binaria 1:N, una relación binaria M:N y un atributo multivaluado. Aplicando el algoritmo estándar de mapeo de ER a esquema relacional, ¿cuántas tablas se generan en total?
Cada entidad fuerte genera una tabla (3), la entidad débil suma una tabla más que incorpora la clave del propietario (4), la relación 1:N no genera tabla nueva porque se resuelve con una clave foránea, la relación M:N sí genera una tabla independiente (5) y el atributo multivaluado requiere su propia tabla (6). (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de algoritmo de mapeo ER a relacional (7 pasos).)
35. Un caso describe una relación ternaria 'Suministra' entre las entidades Proveedor, Pieza y Proyecto, donde la cantidad suministrada depende de la combinación específica de los tres elementos. ¿Dónde debe colocarse el atributo Cantidad al mapear este esquema al modelo relacional?
Al igual que en las relaciones M:N binarias, una relación de grado tres requiere una tabla independiente cuya clave primaria combine las claves foráneas de las tres entidades participantes; el atributo Cantidad, que depende de la combinación completa, se almacena en esa tabla. (Elmasri & Navathe, Fundamentos de Sistemas de Bases de Datos, cap. de relaciones de grado mayor a dos (ternarias).)