Saltar al contenido

A.3 · Bases de datos

Diploma del Bachillerato Internacional · IB Diploma · Computer Science · SL · Tema 3

3.1

Alcance y requisitos previos

Enfoque SL soportado. Objetivo de primera evaluación 2027; PDF oficial devuelve 403; la brief adquirida anterior es la evaluación final 2026. Las guías, evaluaciones y requisitos prácticos restantes conservan sus retenciones registradas.

Requisitos previos: lea las cantidades y unidades indicadas, utilice aritmética y las condiciones del modelo a continuación. Cada lección desarrolla su propio método antes de la transferencia independiente.

Estos son ejemplos didácticos originales o explícitamente ficticios, no mediciones reales ni investigaciones evaluadas completas de estudiantes.

3.2

Bases de datos relacionales: una clave y una relación

¿Qué explicaría esta observación?

  • Duplicar la dirección de un usuario en cada orden puede producir registros conflictivos cuando la dirección cambia.
  • Comience con una predicción. Enuncie las cantidades o características que compararía, luego decida qué evidencia podría distinguir entre dos explicaciones.

Construya el modelo

  • Una tabla relacional contiene filas y atributos. Una clave primaria identifica una fila; una clave foránea se vincula a una clave referenciada en otra tabla. La normalización puede reducir la duplicación evitable y las anomalías de actualización mientras preserva relaciones significativas.
  • clave primaria: Conjunto de atributos que identifica únicamente una fila de tabla; clave foránea: Conjunto de atributos que referencia una clave en otra tabla.
Bases de datos relacionales: una clave y una relación: diagrama original de caso resuelto

Elija evidencias que puedan probarlo

  • Una unión (join) combina filas según una condición especificada. El conteo de resultados depende de la cardinalidad de la relación y los filtros. Una restricción de clave foránea aplica una regla de relación; no cifra automáticamente datos personales.
  • Diseñe un pequeño juego de datos sintético de usuario-pedido sin información personal real. Declare claves, pruebe inserciones duplicadas y de referencia faltante, luego verifique el resultado de una consulta contra una tabla esperada calculada manualmente.

Trabaje desde cantidades conocidas

  • Indique los valores conocidos y sus unidades. Elija la relación porque sus supuestos se ajustan a este caso, luego reordénela antes de la sustitución.
  • Conocido: cuatro clientes tienen respectivamente 2, 0, 3 y 1 pedidos. Una unión interna de cliente a pedido devuelve 2 + 0 + 3 + 1 = 6 filas. Una unión izquierda también retiene al cliente sin pedido como una fila coincidente nula, dando 7 aquí.

Ejemplo:

Tres clientes tienen 1, 3 y 2 pedidos. ¿Cuántas filas devuelve la unión interna de cliente-pedido? Use la misma secuencia: cantidades conocidas → modelo → relación → sustitución → unidad e interpretación.


Verifique la conclusión y sus límites

  • Una clave primaria no necesita ser un nombre de persona. Una unión (join) no es una simple concatenación de tablas. Utilice consultas parametrizadas para datos no fiables en lugar de construir SQL a partir de cadenas crudas.
  • Vuelva a la observación original. Explique qué respalda el resultado, qué condiciones asume y una forma de probar una explicación alternativa.

Advertencia:

Una clave foránea cifra automáticamente cada fila. Esta afirmación es falsa: Una clave primaria no necesita ser un nombre de persona. Una unión (join) no es una simple concatenación de tablas. Utilice consultas parametrizadas para datos no fiables en lugar de construir SQL a partir de cadenas crudas.

Clave:

Bases de datos relacionales: una clave y una relación: Una unión combina filas según una condición especificada. El conteo de resultados depende de la cardinalidad de la relación y los filtros. Una restricción de clave foránea impone una regla de relación; no cifra automáticamente los datos personales.

Trazabilidad ejecutable y límite

import sqlite3
db = sqlite3.connect(":memory:")
db.executescript("""CREATE TABLE c(id INTEGER PRIMARY KEY);
CREATE TABLE o(id INTEGER PRIMARY KEY, cid INTEGER);
INSERT INTO c VALUES(1),(2),(3);
INSERT INTO o VALUES(10,1),(11,1),(12,3);""")
for kind in ["INNER", "LEFT"]:
    sql = f"SELECT COUNT(*),COUNT(o.id) FROM c {kind} JOIN o ON c.id=o.cid"
    print(kind, db.execute(sql).fetchone())
db.close()

Salida esperada:

INNER (3, 3)
LEFT (4, 3)

La unión izquierda conserva el cliente 2 con campos de pedido nulos. COUNT(*) incluye esa fila, mientras que COUNT(o.id) excluye los nulos. Las claves primarias distinguen registros; el conteo de clientes no es igual al conteo de pedidos. La palabra clave de unión interpolada proviene de una lista interna fija, no de entrada del usuario.

Vocabulario Entrenar
English Español
primary key/ˈpraɪməri kiː/ clave primaria
foreign key/ˈfɒrən kiː/ clave foránea

Más temas en Diploma del Bachillerato Internacional · IB Diploma · Computer Science · SL

Iniciar sesión o crear cuenta

IGCSE, A-Level & AP