| Os candidatos devem ser capazes de: | Notas e orientações |
|---|---|
| 1 Definir um banco de dados de tabela única a partir de requisitos de armazenamento de dados dados | • Incluindo: – campos – registros – validação |
| 2 Sugerir tipos de dados básicos adequados | • Incluindo: – texto/alfanumérico – character – Booleano – inteiro – real – data/hora |
| 3 Compreender o propósito de uma chave primária e identificar uma chave primária adequada para uma tabela de banco de dados dada | |
| 4 Ler, compreender e completar scripts de linguagem de consulta estruturada (SQL) para consultar dados armazenados em uma única tabela de banco de dados | • Limitado a: – SELECT – FROM – WHERE – ORDER BY DESCENDENTE – ORDER BY ASCENDENTE – SUM – COUNT – AND – OR • Identificar a saída fornecida por uma instrução SQL que consultará o conteúdo dado de uma tabela de banco de dados |
Bancos de Dados
Ciência da Computação do IGCSE · Tópico 9
8:17
Bancos de Dados
Antes dos computadores, uma biblioteca mantinha uma gaveta assim. Um cartão por livro, cada um contendo as mesmas poucas informações, todos organizados — para que um bibliotecário pudesse encontrar qualquer livro…
Narração em inglês · Legendas em inglês + 中文 gravadas
Programa
Fonte: Programa Cambridge International
9.1
O que é um banco de dados?
Um database 数据库 (banco de dados) é um repositório organizado de dados, mantido para facilitar a pesquisa, ordenação e atualização. No IGCSE você trabalha com um single-table database 单表数据库 (banco de dados de tabela única) — todos os dados estão em uma única tabela.


| Inglês | Chinês | Pinyin |
|---|---|---|
| database/ˈdeɪtəbeɪs/ | 数据库 | shù jù kù |
| single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ | 单表数据库 | dān biǎo shù jù kù |
9.2
Registros e campos
Uma tabela de banco de dados é feita de registros e campos.
- Um record 记录 (registro) é uma linha na tabela — todos os dados sobre uma coisa (por exemplo, um aluno).
- Um campo 字段 (campo) é uma coluna na tabela — uma peça de dados que todo registro tem (por exemplo "Nome").
| StudentID | FirstName | DateOfBirth | FormClass | FeesPaid |
|---|---|---|---|---|
| 1 | Amy | 14/03/2009 | 10A | VERDADEIRO |
| 2 | Ben | 02/11/2008 | 10B | FALSO |
Aqui cada row (linha) é um record, e cada column (coluna) é um field.

| Inglês | Chinês | Pinyin |
|---|---|---|
| record/ˈrekɔːd/ | 记录 | jì lù |
| field/fiːld/ | 字段 | zì duàn |
9.3
Tipos de dados para campos
Cada campo armazena um único data type 数据类型 (tipo de dado). Você escolhe o tipo que melhor se adapta aos dados.

| Data type | Usado para | Exemplo |
|---|---|---|
| text/alphanumeric 文本 (texto/alfanumérico) | letras, dígitos e símbolos | "10A", "Amy" |
| character 字符 (caractere) | um único caractere | 'M' |
| Boolean 布尔值 (booleano) | um de dois valores | TRUE / FALSE |
| integer 整数 (inteiro) | um número inteiro | 42 |
| real 实数 (real) | um número com ponto decimal | 3.5 |
| date/time 日期时间 (data/hora) | uma data ou uma hora | 14/03/2009 |
| Inglês | Chinês | Pinyin |
|---|---|---|
| data type/ˈdeɪtə taɪp/ | 数据类型 | shù jù lèi xíng |
| text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ | 文本 | wén běn |
| character/ˈkærɪktə/ | 字符 | zì fú |
| Boolean/ˈbuːlɪən/ | 布尔值 | bù ěr zhí |
| integer/ˈɪntɪdʒə/ | 整数 | zhěng shù |
| real/rɪəl/ | 实数 | shí shù |
| date/time/deɪt taɪm/ | 日期时间 | rì qī shí jiān |
9.4
A chave primária
Uma primary key 主键 (chave primária) é um campo que armazena um valor unique 唯一 (único) para cada record. Nenhum dois records podem ter a mesma chave primária, então ela permite selecionar exatamente um record.
Na tabela acima, StudentID é uma boa primary key porque cada aluno tem um número diferente. Um campo como FormClass seria uma má primary key, porque muitos alunos compartilham a mesma classe.
| Inglês | Chinês | Pinyin |
|---|---|---|
| primary key/ˈpraɪməri kiː/ | 主键 | zhǔ jiàn |
| unique/juːˈniːk/ | 唯一的 | wéi yī de |
9.5
Validação em um banco de dados
Quando dados são inseridos em um banco de dados, as verificações de validation 验证 (validação) garantem que sejam sensatas — por exemplo, uma verificação de intervalo num campo de idade, ou uma verificação de presença para garantir que um campo não fique vazio. (Você viu essas verificações no tópico 7.)

| Inglês | Chinês | Pinyin |
|---|---|---|
| validation/ˌvælɪˈdeɪʃn/ | 验证 | yàn zhèng |
9.6
Linguagem de Consulta Estruturada (SQL)
Structured Query Language 结构化查询语言 (SQL) é uma linguagem usada para query 查询 (consultar) um banco de dados — para extrair os records que você deseja. Você deve entender e completar scripts SQL.
SELECT, FROM e WHERE
SELECTdiz quais fields mostrar.FROMdiz qual table usar.WHEREfornece uma condition 条件 (condição), para que apenas os records correspondentes sejam mostrados.

SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;
Isso mostra o primeiro nome e a classe de cada aluno que pagou as taxas.
Use * para selecionar todos os fields:
SELECT *
FROM Student
WHERE FormClass = '10A';
ORDER BY
ORDER BY ordena os resultados. Use ASC para ascendente 升序 (crescente, menor primeiro, A→Z) ou DESC para descendente 降序 (decrescente, maior primeiro, Z→A).
SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;
AND e OR
Junte condições com AND (ambas devem ser verdadeiras) ou OR (pelo menos uma deve ser verdadeira).
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;
SUM e COUNT
SUMsoma os valores num campo numérico.COUNTconta quantos records correspondem.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;
Isso conta quantos alunos não pagaram. SUM funciona da mesma forma, mas soma um campo numérico em vez de contar linhas.
Calculando a saída
Para encontrar a saída de um script SQL, leia-o nesta ordem:
FROM— qual table;WHERE— manter apenas os records que correspondem à condição;SELECT— mostrar apenas os fields escolhidos;ORDER BY— colocar os resultados em ordem.

Seguindo esses passos, você pode escrever exatamente quais linhas e colunas a consulta retornará.
Exemplo resolvido. Uma table Book tem os fields Title, Author, Price e InStock. Escreva uma query mostrando o título e o preço de cada livro de Orwell que está em estoque, do mais barato ao mais caro.
SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;
Construa na ordem de leitura: FROM nomeia a table; WHERE mantém apenas os records correspondentes, e como há duas condições elas precisam de AND; SELECT mostra apenas os dois fields pedidos; ORDER BY … ASC os ordena. Valores de texto vão entre aspas, e apenas os fields que a pergunta pede pertencem em SELECT - adicionar Author apenas porque você filtrou por ele é a maneira mais comum de perder pontos aqui.
SELECT … WHERE
Passe por uma consulta: WHERE filtra linhas, SELECT escolhe colunas.
| Inglês | Chinês | Pinyin |
|---|---|---|
| structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ | 结构化查询语言 | jié gòu huà chá xún yǔ yán |
| query/ˈkwɪərɪ/ | 查询 | chá xún |
| condition/kənˈdɪʃn/ | 条件 | tiáo jiàn |
| ascending/əˈsendɪŋ/ | 升序 | shēng xù |
| descending/dɪˈsendɪŋ/ | 降序 | jiàng xù |
9.7
Dicas de prova
- Um record é uma linha (todos os dados sobre uma coisa); um campo é uma coluna (um item que todo record tem).
- Uma primary key deve ser unique para cada record, assim ela seleciona exatamente um record (StudentID, não FormClass).
- Aprenda as partes do SQL:
SELECT(quais fields),FROM(qual table),WHERE(a condição),ORDER BY(ordenação, ASC ou DESC). - Leia uma query na ordem FROM → WHERE → SELECT → ORDER BY para calcular sua saída.
COUNTconta os records correspondentes;SUMsoma um campo numérico.
Aulas interativas sobre este tópico
Passe por ele passo a passo, com exercícios de verificação instantânea.