Saltar al contenido

Bases de datos

IGCSE Ciencias de la Computación · Tema 9

Lección de video para este tema Abrir la página de video
8:18

Bases de datos

Antes de las computadoras, una biblioteca guardaba un cajón como este. Una tarjeta por libro, cada una conteniendo los mismos pocos hechos, todos ordenados — para que un bibliotecario pudiera encontrar cualquier libro…

Narración en inglés · subtítulos en inglés y 中文 que puedes cambiar

Syllabus
Los candidatos deben ser capaces de: Notas y orientación
1 Definir una base de datos de una sola tabla a partir de requisitos dados de almacenamiento de datos • Incluyendo: – campos – registros – validación
2 Sugerir tipos de datos básicos adecuados • Incluyendo: – texto/alfanumérico – carácter – Booleano – entero – real – fecha/hora
3 Entender el propósito de una clave primaria e identificar una clave primaria adecuada para una tabla de base de datos dada
4 Leer, comprender y completar scripts de lenguaje de consulta estructurado (SQL) para consultar datos almacenados en una única tabla de base de datos • Limitado a: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Identificación de la salida generada por una sentencia SQL que consultará los contenidos dados de una tabla de base de datos

Fuente: Plan de estudios Cambridge International

9.1

¿Qué es una base de datos?

Una base de datos es un almacén organizado de datos, mantenido de manera que sea fácil buscar, ordenar y actualizar. En IGCSE trabaja con una base de datos de una sola tabla: todos los datos se mantienen en una única tabla.

Filas de pequeños cajones etiquetados en un catálogo de tarjetas de biblioteca
Un catálogo de tarjetas de biblioteca es una base de datos en papel — registros que puedes buscar y ordenar por índice
Filas de servidores en un centro de datos
Las bases de datos modernas a gran escala se almacenan en servidores dentro de centros de datos
9.2

Registros y campos

Una tabla de base de datos está compuesta por registros y campos.

  • Un registro es una fila en la tabla: todos los datos sobre una entidad (por ejemplo, un estudiante).
  • Un campo es una columna de la tabla: un dato que tiene cada registro (por ejemplo, «Nombre»).
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Aquí cada fila es un registro, y cada columna es un campo.

La tabla Estudiante donde cada fila está etiquetada como un registro, cada columna como un campo, y la columna StudentID resaltada como clave primaria
Cada fila es un registro y cada columna es un campo; la clave primaria (StudentID) es única para cada registro
9.3

Tipos de datos para los campos

Cada campo almacena un tipo de datos. Elige el tipo que mejor se adapte a los datos.

Un registro con un campo de cada tipo de dato: nombre «Amy» (texto/alfanumérico), inicial 'M' (carácter), miembro TRUE (booleano), edad 42 (entero), altura 1.62 (real), fecha de inscripción 14/03/2009 (fecha/hora)
Cada campo en un registro contiene un solo tipo de dato
Tipo de dato Se usa para Ejemplo
texto/alfanumérico letras, dígitos y símbolos «10A», «Amy»
carácter un solo carácter 'M'
Booleano uno de dos valores TRUE / FALSE
entero un número entero 42
real un número con punto decimal 3.5
fecha/hora una fecha o una hora 14/03/2009

Ejemplo resuelto. Elige el tipo de datos para cada campo de una tabla Member.

Campo Ejemplo Tipo de datos Por qué
MemberID M0042 texto contiene una letra
Phone 07712 345678 texto empieza con 0; nunca se usa en sumas
Age 15 entero número entero
Fee 12.50 real tiene punto decimal
Gender F carácter un solo carácter
Paid TRUE Booleano solo dos valores
Joined 01/09/2025 fecha/hora es una fecha

Un número de teléfono parece un número, pero es una trampa común en exámenes: si se almacena como entero perdería su primer 0, y nadie suma números de teléfono.

Vocabulario Entrenar
English Español
database/ˈdeɪtəbeɪs/ base de datos
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ base de datos de una sola tabla
record/ˈrekɔːd/ registro
field/fiːld/ campo
data type/ˈdeɪtə taɪp/ tipo de dato
text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ texto/alfanumérico
character/ˈkærɪktə/ carácter
Boolean/ˈbuːlɪən/ booleano
integer/ˈɪntɪdʒə/ entero
real/rɪəl/ real
date/time/deɪt taɪm/ fecha/hora
primary key/ˈpraɪməri kiː/ clave primaria
unique/juːˈniːk/ único
9.4

La clave primaria

Una clave primaria es un campo que contiene un valor único para cada registro. Dos registros no pueden tener la misma clave primaria, por lo que permite seleccionar exactamente un registro.

En la tabla anterior, StudentID es una buena clave primaria porque cada estudiante tiene un número diferente. Un campo como FormClass sería una mala clave primaria, porque muchos estudiantes comparten el mismo curso.

Ejemplo resuelto. ¿Qué campo de la tabla Member anterior debería ser la clave primaria? MemberID, porque a cada miembro se le asigna uno diferente. Age, Fee y Joined se repiten; incluso un nombre como Surname es una mala elección, porque dos miembros pueden compartir apellido. Una buena respuesta nombra el campo y indica que es único para cada registro.

9.5

Validación en una base de datos

Cuando los datos se introducen en una base de datos, las validaciones aseguran que sean lógicos —por ejemplo, un control de rango en un campo de edad, o un control de presencia para evitar dejar campos vacíos. (Viste estas validaciones en el tema 7.)

Una comprobación de rango en un campo de edad acepta 16 pero rechaza 200
Una comprobación de rango acepta valores razonables y rechaza el resto
Campo Control adecuado Rechaza
Age control de rango, 11 a 18 200
Surname control de presencia un campo vacío
Phone control de longitud, 11 caracteres 0771234
Cuota comprobación de tipo, un número «doce»
Unido comprobación de formato, DD/MM/AAAA 2025-9-1

Ejemplo resuelto (diseño de una tabla). Una escuela de baile quiere almacenar, para cada estudiante: un número de estudiante, su nombre, fecha de nacimiento, la calificación de su último examen (de 1 a 8), si ha pagado este período y la cuota mensual. Define una base de datos adecuada de una sola tabla.

Campo Tipo de dato Validación
PupilID (clave primaria) texto, p. ej., «D0153» comprobación de presencia; comprobación de formato (D + 4 dígitos)
PupilName texto comprobación de presencia
DateOfBirth fecha/hora comprobación de formato, DD/MM/AAAA
LastGrade entero comprobación de rango, de 1 a 8
PaidThisTerm booleano comprobación de tipo, TRUE/FALSE
MonthlyFee real comprobación de rango, mayor que 0

Da un nombre a la tabla (aquí Pupil), crea un campo para cada dato, asigna un tipo de dato a cada campo e indica qué campo es la clave primaria y por qué: PupilID es diferente para cada estudiante, mientras que dos estudiantes podrían compartir un nombre o una fecha de nacimiento.

Vocabulario Entrenar
English Español
validation/ˌvælɪˈdeɪʃn/ validación
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ lenguaje de consulta estructurado
9.6

Lenguaje de consulta estructurado (SQL)

Lenguaje de consulta estructurada (SQL) es un lenguaje utilizado para consultar una base de datos —para seleccionar los registros que desea. Debe comprender y ejecutar scripts SQL.

SELECT, FROM y WHERE

  • SELECT indica qué campos mostrar.
  • FROM indica qué tabla utilizar.
  • WHERE proporciona una condición, por lo que solo se muestran los registros coincidentes.
Una consulta SQL: SELECT name FROM students WHERE age > 15
SELECT elige campos, FROM nombra la tabla, WHERE establece la condición
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;

Esto muestra el nombre y el curso de cada estudiante que ha pagado las cuotas.

Usa * para seleccionar todos los campos:

SELECT *
FROM Student
WHERE FormClass = '10A';

ORDER BY

ORDER BY ordena los resultados. Utilice ASC para ascendente (menor primero, A→Z) o DESC para descendente (mayor primero, Z→A).

SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;

AND y OR

Une condiciones con AND (ambas deben ser verdaderas) u OR (al menos una debe ser verdadera).

Las condiciones utilizan estos operadores de comparación:

Operador Significado Ejemplo
= igual a FormClass = '10A'
<> distinto de FormClass <> '10A'
> y < mayor que, menor que Height > 100
>= y <= mayor o igual que, menor o igual que Price <= 5.00
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;

SUM y COUNT

  • SUM suma los valores de un campo numérico.
  • COUNT cuenta cuántos registros coinciden.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;

Esto cuenta cuántos estudiantes no han pagado. SUM funciona de manera similar, pero suma un campo numérico en lugar de contar filas.

SELECT SUM(Fee)
FROM Member
WHERE Paid = TRUE;

Esto suma los Fee de cada miembro que ha pagado y muestra un solo número. SUM necesita un campo numérico (entero o real); COUNT puede contar cualquier campo.

Calcular la salida

Para determinar la salida de un script SQL, léalo en este orden:

  1. FROM — qué tabla;
  2. WHERE — mantener solo los registros que cumplan la condición;
  3. SELECT — mostrar solo los campos elegidos;
  4. ORDER BY — poner los resultados en orden.
Cuatro pasos en orden: FROM (qué tabla), WHERE (mantener filas coincidentes), SELECT (mostrar campos elegidos), ORDER BY (ordenar resultados)
Lee una consulta SQL en este orden: FROM (qué tabla), WHERE (qué filas), SELECT (qué campos), ORDER BY (ordenar)

Siguiendo estos pasos, puedes escribir exactamente qué filas y columnas devuelve la consulta.

Ejemplo resuelto. La tabla Plant:

PlantID Nombre Tipo Altura Precio
P01 Rosa arbusto 120 8.50
P02 Albahaca hierba 30 2.00
P03 Acebo arbusto 300 15.00
P04 Menta hierba 40 1.50
P05 Lavanda arbusto 60 6.00

Proporcione la salida de:

SELECT Name, Price
FROM Plant
WHERE Type = 'shrub' AND Height < 200
ORDER BY Price DESC;
  1. FROM: la tabla Plant.
  2. WHERE: los arbustos son P01, P03 y P05; el Acebo mide 300 de alto, por lo que solo la Rosa y la Lavanda pasan el filtro.
  3. SELECT: solo Name y Price.
  4. ORDER BY Price DESC: del más caro al más barato.
Nombre Precio
Rosa 8.50
Lavanda 6.00

SELECT COUNT(PlantID) FROM Plant WHERE Type = 'herb'; daría como resultado 2, y SELECT SUM(Price) FROM Plant WHERE Type = 'herb'; daría como resultado 3.50.

Con OR, en cambio, pasan más registros: SELECT Name FROM Plant WHERE Type = 'herb' OR Price > 10; da como resultado albahaca, acebo y menta (las dos hierbas y el acebo porque su precio es superior a 10). Un registro que cumple ambas condiciones sigue mostrándose una sola vez.

Ejemplo resuelto. Una tabla Book tiene los campos Title, Author, Price e InStock. Escribe una consulta que muestre el título y el precio de cada libro de Orwell que esté en stock, ordenado del más barato al más caro.

SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;

Constrúyela en el orden de lectura: FROM nombra la tabla; WHERE mantiene solo los registros coincidentes, y como hay dos condiciones requieren AND; SELECT muestra solo los dos campos solicitados; ORDER BY … ASC los ordena. Los valores de texto van entre comillas, y solo los campos que pide la pregunta deben estar en SELECT — añadir Author simplemente porque se filtró por él es la forma más común de perder puntos aquí.

Explorar

SELECT … WHERE

Paso a paso por una consulta: DONDE filtra filas, SELECCIONAR selecciona columnas.

Vocabulario Entrenar
English Español
query/ˈkwɪərɪ/ consulta
condition/kənˈdɪʃn/ condición
ascending/əˈsendɪŋ/ ascendente
descending/dɪˈsendɪŋ/ descendente
9.7

Consejos para el examen

  • Un registro es una fila (todos los datos sobre una cosa); un campo es una columna (un elemento que tiene cada registro).
  • Una clave primaria debe ser única para cada registro, por lo que identifica exactamente un registro (StudentID, no FormClass).
  • Aprende las partes del SQL: SELECT (qué campos), FROM (qué tabla), WHERE (la condición), ORDER BY (ordenar, ASC o DESC).
  • Lee una consulta en el orden FROM → WHERE → SELECT → ORDER BY para calcular su salida.
  • COUNT cuenta los registros coincidentes; SUM suma un campo numérico.
  • Para diseñar una tabla, asigna a cada campo un nombre, un tipo de dato y una comprobación de validación, y justifica la clave primaria.
  • <> significa «distinto de»; los valores de texto necesitan comillas, los números y TRUE/FALSE no.

Lecciones interactivas sobre este tema

Trátalo paso a paso, con ejercicios de verificación instantánea.

Exámenes Anteriores

Más temas en IGCSE Ciencias de la Computación

Iniciar sesión o crear cuenta

IGCSE, A-Level & AP