Pular para o conteúdo

Bancos de Dados

Ciência da Computação IGCSE · Tópico 9

Ver Slides Treinar
Videoaula para este tópico Abrir a página do vídeo
8:18

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 e 中文 que você pode alternar

Programa
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

Fonte: Programa Cambridge International

9.1

O que é um banco de dados?

Um banco de dados é um repositório organizado de informações, mantido para facilitar buscas, ordenação e atualizações. No IGCSE, você trabalha com um banco de dados de tabela única — todas as informações estão contidas em uma única tabela.

Fileiras de gavetas pequenas rotuladas num catálogo de cartões de biblioteca
Um catálogo de cartões de biblioteca é um banco de dados em papel — registros que você pode pesquisar e ordenar por índice
Fileiras de servidores num data center
Grandes bancos de dados modernos são armazenados em servidores em data centers
9.2

Registros e campos

Uma tabela de banco de dados é feita de registros e campos.

  • Um registro é uma linha na tabela — todos os dados sobre um único item (por exemplo, um aluno).
  • Um campo é uma coluna da tabela — uma informação que todo registro possui (por exemplo, “Nome”).
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Aqui cada row (linha) é um record, e cada column (coluna) é um field.

A tabela Student com cada linha rotulada como um record, cada coluna como um field, e a coluna StudentID destacada como a chave primária
Cada linha é um record e cada coluna é um field; a chave primária (StudentID) é única para cada record
Vocabulário Treinar
English Português
database/ˈdeɪtəbeɪs/ banco de dados
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ banco de dados de tabela única
record/ˈrekɔːd/ registro
field/fiːld/ campo
9.3

Tipos de dados para campos

Cada campo armazena um tipo de dado. Escolha o tipo que melhor se adapta à informação.

Um registro com um campo de cada tipo de dado: Nome “Amy” (texto/alfanumérico), Inicial 'M' (caractere), Membro TRUE (booleano), Idade 42 (inteiro), Altura 1.62 (real), Data de entrada 14/03/2009 (data/hora)
Cada campo em um registro armazena um único tipo de dados
Data type Usado para Exemplo
texto/alfanumérico letras, algarismos e símbolos “10A”, “Amy”
caractere um único caractere 'M'
Booleano um de dois valores TRUE / FALSE
inteiro um número inteiro 42
real um número com ponto decimal 3.5
data/hora uma data ou uma hora 14/03/2009

Exemplo resolvido. Escolha o tipo de dado para cada campo de uma tabela Member.

Campo Exemplo Tipo de dado Por quê
ID_Membro M0042 texto contém uma letra
Telefone 07712 345678 texto começa com 0; nunca usado em cálculos
Idade 15 inteiro número inteiro
Taxa 12.50 real possui ponto decimal
Gênero F caractere um caractere
Pago TRUE Booleano apenas dois valores
Ingressou 01/09/2025 data/hora uma data

Um número de telefone parece um número, mas é uma armadilha comum em exames: armazenado como inteiro, perderia seu primeiro 0, e ninguém soma números de telefone.

Vocabulário Treinar
English Português
data type/ˈdeɪtə taɪp/ tipo de dado
text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ texto/alphanumerico
character/ˈkærɪktə/ caractere
Boolean/ˈbuːlɪən/ booleano
integer/ˈɪntɪdʒə/ inteiro
real/rɪəl/ real
date/time/deɪt taɪm/ data/hora
9.4

A chave primária

Uma chave primária é um campo que contém um valor único para cada registro. Nenhum outro registro pode ter a mesma chave primária, permitindo identificar exatamente um registro.

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.

Exemplo resolvido. Qual campo da tabela Member acima deve ser a chave primária? MemberID, pois cada membro recebe um diferente. Age, Fee e Joined se repetem; até um nome como Surname é uma má escolha, pois dois membros podem compartilhar o sobrenome. Uma boa resposta cita o campo e afirma que é único para cada registro.

Vocabulário Treinar
English Português
primary key/ˈpraɪməri kiː/ chave primária
9.5

Validação em um banco de dados

Quando os dados são inseridos no banco de dados, as validações verificam se são sensatas — por exemplo, um controle de faixa etária ou um controle de presença para evitar campos vazios. (Você viu esses controles no tópico 7.)

Uma verificação de intervalo num campo de idade aceita 16 mas rejeita 200
Um check de intervalo aceita valores sensatos e rejeita os restantes
Campo Verificação adequada Rejeita
Idade controle de faixa, 11 a 18 200
Sobrenome controle de presença um campo vazio
Telefone controle de comprimento, 11 caracteres 0771234
Mensalidade verificação de tipo, um número “doze”
Ingressou controle de formato, DD/MM/AAAA 2025-9-1

Exemplo resolvido (projeto de uma tabela). Uma escola de dança deseja armazenar, para cada aluno: um número de aluno, o nome do aluno, a data de nascimento, a nota do último exame (de 1 a 8), se ele pagou o período letivo atual e o valor da mensalidade. Defina um banco de dados adequado com uma única tabela.

Campo Tipo de dado Validação
ID do aluno (chave primária) texto, por exemplo, “D0153” verificação de presença; verificação de formato (D + 4 dígitos)
Nome do aluno texto verificação de presença
Data de nascimento data/hora verificação de formato, DD/MM/AAAA
Última nota inteiro verificação de intervalo, de 1 a 8
Pagou o período letivo booleano verificação de tipo, TRUE/FALSE
Mensalidade real verificação de intervalo, maior que 0

Dê um nome à tabela (aqui, Pupil), crie um campo para cada informação, indique um tipo de dado para cada campo e diga qual campo é a chave primária e por quê: PupilID é diferente para cada aluno, enquanto dois alunos podem ter o mesmo nome ou a mesma data de nascimento.

Vocabulário Treinar
English Português
validation/ˌvælɪˈdeɪʃn/ validação
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ linguagem de consulta estruturada
9.6

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) é uma linguagem usada para consultar um banco de dados — para selecionar os registros desejados. Você deve compreender e executar scripts SQL.

SELECT, FROM e WHERE

  • SELECT diz quais fields mostrar.
  • FROM diz qual table usar.
  • WHERE fornece uma condição, mostrando apenas os registros correspondentes.
Uma consulta SQL: SELECT name FROM students WHERE age > 15
SELECT escolhe campos, FROM nomeia a tabela, WHERE define a condição
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 crescente (menor primeiro, A→Z) ou DESC para 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).

As condições usam estes operadores de comparação:

Operador Significado Exemplo
= igual a FormClass = '10A'
<> diferente de FormClass <> '10A'
> e < maior que, menor que Height > 100
>= e <= maior ou igual a, menor ou igual a Price <= 5.00
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;

SUM e COUNT

  • SUM soma os valores num campo numérico.
  • COUNT conta 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.

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

Isso soma a Fee de todos os membros que pagaram e exibe um único número. SUM exige um campo numérico (inteiro ou real); COUNT pode contar qualquer campo.

Calculando a saída

Para encontrar a saída de um script SQL, leia-o nesta ordem:

  1. FROM — qual table;
  2. WHERE — manter apenas os records que correspondem à condição;
  3. SELECT — mostrar apenas os fields escolhidos;
  4. ORDER BY — colocar os resultados em ordem.
Quatro passos em ordem: FROM (qual table), WHERE (manter linhas correspondentes), SELECT (mostrar fields escolhidos), ORDER BY (ordenar resultados)
Leia uma consulta SQL nesta ordem: FROM (qual table), WHERE (quais linhas), SELECT (quais fields), ORDER BY (ordenar)

Seguindo esses passos, você pode escrever exatamente quais linhas e colunas a consulta retornará.

Exemplo resolvido. A tabela Plant:

IDPlanta Nome Tipo Altura Preço
P01 Rosa arbusto 120 8.50
P02 Manjericão erva aromática 30 2.00
P03 Azevinho arbusto 300 15.00
P04 Hortelã erva aromática 40 1.50
P05 Lavanda arbusto 60 6.00

Dê a saída de:

SELECT Name, Price
FROM Plant
WHERE Type = 'shrub' AND Height < 200
ORDER BY Price DESC;
  1. FROM: a tabela Plant.
  2. WHERE: os arbustos são P01, P03 e P05; o Azevinho tem altura de 300, então apenas Rosa e Lavanda passam.
  3. SELECT: apenas Name e Price.
  4. ORDER BY Price DESC: primeiro os mais caros.
Nome Preço
Rosa 8.50
Lavanda 6.00

SELECT COUNT(PlantID) FROM Plant WHERE Type = 'herb'; resultaria em 2, e SELECT SUM(Price) FROM Plant WHERE Type = 'herb'; resultaria em 3.50.

Com OR, mais registros são selecionados: SELECT Name FROM Plant WHERE Type = 'herb' OR Price > 10; retorna manjericão, azevinho e hortelã (as duas ervas e o azevinho porque seu preço é superior a 10). Um registro que atende a ambas as condições ainda é exibido apenas uma vez.

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.

Explorar

SELECT … WHERE

Passe por uma consulta: WHERE filtra linhas, SELECT escolhe colunas.

Vocabulário Treinar
English Português
query/ˈkwɪərɪ/ consulta
condition/kənˈdɪʃn/ condição
ascending/əˈsendɪŋ/ crescente
descending/dɪˈsendɪŋ/ decrescente
9.7

Dicas de prova

  • Um record é uma linha (todos os dados sobre uma coisa); um field é 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.
  • COUNT conta os records correspondentes; SUM soma um campo numérico.
  • Para projetar uma tabela, dê a cada campo um nome, um tipo de dado e uma verificação de validação, e justifique a chave primária.
  • <> significa “diferente de”; valores de texto precisam de aspas, números e TRUE/FALSE não precisam.
Vocabulário Treinar
English Português
unique/juːˈniːk/ único

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Provas Anteriores

Mais tópicos em Ciência da Computação IGCSE

Entrar ou criar conta

IGCSE, A-Level & AP