Pular para o conteúdo

Bancos de Dados

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

Treinar
Videoaula para este tópico Abrir a página do vídeo
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
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 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.

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
Vocabulário Treinar
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.

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
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.

Tipos de campo: text (um nome), number (uma idade), date/time (uma data de nascimento), boolean (sim/não)
Tipos de campo: texto, número, data/hora e booleano
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
Vocabulário Treinar
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.

Vocabulário Treinar
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.)

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
Vocabulário Treinar
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

  • SELECT diz quais fields mostrar.
  • FROM diz qual table usar.
  • WHERE fornece uma condition 条件 (condição), para que apenas os records correspondentes sejam mostrados.
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 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

  • 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.

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. 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
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.
  • COUNT conta os records correspondentes; SUM soma um campo numérico.

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 do IGCSE

Entrar ou criar conta

IGCSE, A-Level & AP