Manual de aula Percurso

TECNOLOGIAS DE INFORMAÇÃO / UC00602

Modelar bases de
dados relacionais

Dos primeiros dados a um modelo bem estruturado.
Um percurso prático para compreender, relacionar e organizar informação.

25 horas17 temas15 atividadesManuel Loureiro

O teu percurso de aprendizagem

6 blocos · do simples ao complexo

UM CASO QUE ACOMPANHA AS AULAS

Papelaria Horizonte

Clientes, produtos e encomendas. Partimos de uma lista desorganizada e construímos, passo a passo, um modelo relacional coerente.

Conhecer as regras do caso
ClienteEncomendaProdutoLinhaEncomenda

Como trabalhar com o manual

Lê a explicação, acompanha o exemplo e resolve a atividade antes da discussão em aula. Regista as respostas no teu caderno ou num documento e guarda as versões dos modelos. Usa dados fictícios.

Não precisas de saber SQL para começar. Podes desenhar em papel ou numa aplicação de diagramas. A experimentação num SGBD pode complementar as aulas.

TEMA 01 / FUNDAMENTOS

Dos dados à informação

Um dado é um valor registado: 3, 101 ou 12/09/2026. Isoladamente, pode dizer pouco. Quando sabemos que 3 é a quantidade de cadernos da encomenda 101, o valor ganha significado. A informação resulta da interpretação dos dados num contexto.

Uma situação concreta

EncomendaClienteProdutoQuantidade
101AnaCaderno3
101AnaCaneta2
102BrunoCaderno1

Há três linhas, mas apenas duas encomendas. A encomenda 101 contém dois produtos. Contar linhas como se fossem encomendas produziria uma informação errada. Antes de calcular, é necessário perceber o que cada linha representa.

Uma base de dados é um conjunto organizado de dados relacionados. O seu modelo descreve a estrutura desses dados e as regras que os ligam. No modelo relacional, organizamos a informação em relações, habitualmente representadas por tabelas.

Guardar e consultar

A mesma base de dados pode responder a perguntas diferentes: quais os produtos de uma encomenda, quantas encomendas fez um cliente ou que quantidade de um produto foi encomendada. Para isso, é necessário guardar os factos com significado consistente.

Dados corretos não garantem, por si só, uma interpretação correta. A pergunta, a unidade de medida e o período analisado também fazem parte do contexto. “Vendeu 20” é diferente de “vendeu 20 unidades nesta semana”.

Atividade 1

Tempo de referência: 30 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Identifique três dados da tabela e escreva uma frase que os transforme em informação.

2. Quantas unidades de caderno foram encomendadas? Mostre como chegou ao resultado.

3. Pode saber o valor total das encomendas? Indique os dados em falta.

4. Explique por que motivo três linhas não significam três encomendas.

TEMA 02 / FUNDAMENTOS

O SGBD e a organização do sistema

O Sistema de Gestão de Bases de Dados, ou SGBD, é o software que permite definir estruturas, guardar e consultar dados e controlar o acesso. A base de dados é o conjunto organizado de dados; o SGBD é o software que o gere.

Num sistema cliente-servidor, uma aplicação envia pedidos ao servidor de base de dados. O SGBD interpreta esses pedidos, verifica permissões e regras e acede aos dados guardados. O resultado regressa à aplicação, que o apresenta ao utilizador.

Componentes e funções

ComponenteFunção
Aplicação clienteRecebe ações do utilizador e apresenta resultados.
Processamento de pedidosInterpreta as operações e organiza a sua execução.
Gestão de transaçõesCoordena alterações que devem ser tratadas em conjunto.
Armazenamento e recuperaçãoGere dados em ficheiros e mecanismos de recuperação.
Catálogo de metadadosGuarda descrições de tabelas, campos, tipos e restrições.

O utilizador normalmente trabalha através do SGBD e não altera diretamente os seus ficheiros internos. Uma cópia de segurança permite recuperar dados; o modelo, por si só, não substitui essa proteção.

Três níveis de descrição

O nível conceptual descreve o negócio, como Cliente e Encomenda. O nível lógico define tabelas, chaves e relações. O nível físico concretiza a estrutura num SGBD, incluindo tipos de dados e índices. Uma vista pode apresentar apenas parte da informação a um utilizador.

Atividade 2

Tempo de referência: 35 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Explique a diferença entre base de dados, SGBD e aplicação cliente.

2. Classifique estas decisões: identificar Cliente; definir a chave de Encomenda; escolher o tipo inteiro para um campo.

3. Porque deve uma aplicação pedir ao SGBD que altere os dados em vez de editar os ficheiros internos?

TEMA 03 / ESTRUTURA

Tabelas registos e campos

Uma tabela representa um conjunto de ocorrências com a mesma estrutura. Cada registo, ou linha, corresponde a uma ocorrência; cada campo, ou coluna, descreve uma característica. O nome de um campo deve ajudar a compreender o valor que contém.

id_produtodesignacaopreco_atual
10Caderno2,50
20Caneta1,20
30Pasta3,00

Esta tabela tem três registos e três campos. O produto 10 não é “a primeira linha”: é o produto identificado pelo valor 10. A ordem das linhas pode mudar sem alterar o significado dos dados. Uma ordenação de apresentação deve ser pedida explicitamente.

Domínio e significado

O domínio de um campo define os valores admissíveis. Uma quantidade pode aceitar apenas inteiros positivos. Uma data deve ser uma data válida. Um telefone é habitualmente texto, pois não é usado em cálculos e pode conter um indicativo ou zeros iniciais.

NULL representa a ausência de um valor, por exemplo um contacto ainda desconhecido. Não significa automaticamente zero, texto vazio ou “não”. É necessário documentar quando essa ausência é permitida e o que significa no sistema.

Estrutura e conteúdo

O esquema descreve os campos e as regras da tabela. Os dados são o seu conteúdo num determinado momento. Acrescentar um produto altera os dados; acrescentar o campo categoria altera o esquema.

Atividade 3

Tempo de referência: 40 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Defina os campos de uma tabela Cliente com identificador, nome e contacto opcional.

2. Indique um domínio para cada campo e dê um exemplo válido e outro inválido.

3. Explique por que razão o telefone deve ser tratado como texto.

4. Distinga acrescentar um cliente de acrescentar um campo à tabela.

TEMA 04 / ESTRUTURA

Chaves e identificação dos registos

Uma chave candidata é um conjunto mínimo de atributos que identifica cada registo de forma única. “Mínimo” significa que nenhum dos seus atributos pode ser retirado sem perder essa propriedade. Escolhemos uma das chaves candidatas como chave primária, ou PK.

As outras chaves candidatas são chaves alternativas. Uma chave simples usa um atributo; uma chave composta usa mais de um. Uma chave natural tem significado no negócio. Uma chave artificial, como um identificador interno, é criada para identificar o registo.

Exemplo resolvido

Dois clientes podem ter o mesmo nome, por isso nome não é uma boa chave primária. No nosso caso, id_cliente é um identificador interno único. Um número fiscal só seria uma chave candidata se as regras garantissem que está presente e é único para todos os clientes abrangidos.

Uma chave estrangeira, ou FK, referencia uma chave primária ou outra chave com unicidade adequada noutra tabela, ou na própria tabela. Em Encomenda, id_cliente indica a quem pertence a encomenda. Pode repetir-se porque um cliente pode ter várias encomendas.

TabelaPKFK
Clienteid_clienteNenhuma neste modelo
Encomendaid_encomendaid_cliente referencia Cliente
LinhaEncomendaid_encomenda + id_produtoReferências a Encomenda e Produto

Na nossa regra simplificada, cada produto aparece uma só vez em cada encomenda; a quantidade acumula as unidades. Por isso, o par id_encomenda e id_produto identifica uma linha. Se a regra mudar, será necessário rever a chave.

Atividade 4

Tempo de referência: 40 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Explique por que motivo uma FK pode repetir-se, mas uma PK não.

2. Dê um exemplo de duas linhas de encomenda com o mesmo produto e encomendas diferentes.

3. Se o mesmo produto puder aparecer duas vezes na mesma encomenda com descontos diferentes, que alteração propõe à identificação das linhas?

TEMA 05 / ESTRUTURA

Integridade e regras de negócio

A integridade protege a coerência dos dados. As restrições traduzem parte das regras do negócio em condições verificáveis. Uma base de dados pode aceitar valores tecnicamente válidos que, ainda assim, violam uma regra não implementada.

Tipo de integridadeRegra no nosso caso
De entidadeA PK identifica cada registo e não aceita valores nulos.
ReferencialCada id_cliente de Encomenda corresponde a um cliente existente.
De domínioquantidade é inteira e maior do que zero.
Regra de negócioUma encomenda confirmada tem pelo menos uma linha.

Exemplo resolvido

Existem os clientes 1 e 2. Uma encomenda com id_cliente igual a 9 deve ser recusada: aponta para um cliente inexistente. Se id_cliente fosse opcional, NULL poderia representar uma relação ausente; aqui cada encomenda tem obrigatoriamente um cliente.

Eliminar um cliente com encomendas exige uma decisão. Neste caso, bloqueamos a eliminação enquanto houver referências. Apagar em cascata pode eliminar dados dependentes; só faz sentido quando corresponde às regras definidas. Não deve ser escolhido por conveniência.

Uma FK garante a existência da referência, mas não obriga uma encomenda a ter linhas. Algumas regras precisam de operações coordenadas ou de validação adicional na aplicação ou no SGBD. A transação permite tratar um conjunto de alterações como uma unidade.

Atividade 5

Tempo de referência: 45 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Classifique os erros: PK repetida, quantidade negativa, cliente inexistente e encomenda confirmada sem linhas.

2. Proponha uma regra para impedir preços negativos. O preço zero deve ser permitido? Declare o pressuposto.

3. Explique o que deve acontecer ao tentar eliminar um produto já usado numa encomenda.

4. Escreva dois testes válidos e dois inválidos para LinhaEncomenda.

TEMA 06 / MODELAÇÃO

Analisar o problema antes de desenhar

Modelar começa por compreender o que o sistema tem de guardar e que perguntas deve responder. Uma frase vaga deve ser transformada em regras que possam ser discutidas e testadas. Não se deduzem todas as regras a partir de uma pequena amostra de dados.

Requisitos da Papelaria Horizonte

  • Cada cliente tem identificador, nome e um contacto opcional. Pode existir antes de fazer uma encomenda.
  • Cada encomenda tem identificador, data e exatamente um cliente. Neste modelo apenas guardamos encomendas confirmadas, com uma ou mais linhas.
  • Cada produto tem identificador, designação e preço atual. Pode existir sem ter sido encomendado.
  • Cada linha pertence a uma encomenda e refere um produto; guarda quantidade e preço unitário praticado.
  • O mesmo produto aparece no máximo uma vez em cada encomenda. O preço praticado pode diferir do preço atual.

Fronteiras comportamento e implementação

A fronteira define o que pertence ao sistema: clientes, produtos e encomendas estão incluídos; salários, pagamentos, stock e documentos fiscais ficam fora deste exercício. O comportamento descreve operações e regras, como confirmar uma encomenda. A implementação concretiza essas decisões em tabelas e restrições.

Exemplo de operação: selecionar um cliente existente, criar a encomenda, adicionar os produtos e quantidades e confirmar o conjunto. Se faltar um produto válido ou uma quantidade positiva, a operação não fica concluída.

Atividade 6

Tempo de referência: 45 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Escreva três perguntas que a base de dados deve conseguir responder.

2. Identifique duas questões que teria de esclarecer se fossem permitidas encomendas sem cliente identificado.

3. Explique por que motivo a gestão de stock exigiria novos requisitos.

4. Redija uma regra testável para a quantidade e outra para a repetição de produtos.

TEMA 07 / MODELAÇÃO

Entidades atributos e ocorrências

Uma entidade representa um tipo de objeto ou acontecimento relevante para o problema: Cliente, Produto ou Encomenda. Uma ocorrência é um exemplo concreto desse tipo: o cliente 1 ou a encomenda 101. Um atributo descreve uma característica da entidade.

Tipos de atributos

TipoExemplo e interpretação
Simplesid_produto é tratado como uma unidade neste modelo.
CompostoUma morada pode decompor-se em rua, código postal e localidade.
MonovaloradoCada encomenda tem uma data.
MultivaloradoUm cliente pode ter vários contactos, se o requisito o permitir.
DerivadoO total resulta das quantidades e dos preços praticados.

A decomposição depende das necessidades. Se for necessário pesquisar por localidade, misturá-la com toda a morada dificulta essa utilização. Um atributo multivalorado não deve ser convertido numa lista de valores dentro de uma célula do modelo relacional.

Exemplo resolvido

“A Ana fez uma encomenda de três cadernos” contém uma ocorrência de Cliente, uma de Encomenda e uma de Produto. A quantidade 3 pertence à associação entre a encomenda e o produto: o mesmo produto pode ter outra quantidade noutra encomenda.

A quantidade não é um atributo permanente de Produto. O preço atual pertence ao produto, mas o preço praticado pertence à linha da encomenda, porque descreve aquela compra. Esta distinção permite manter o histórico de valores.

Atividade 7

Tempo de referência: 45 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Identifique as entidades e os atributos na frase: “Bruno fez a encomenda 102 em 12/09/2026 e comprou duas pastas a 3 euros cada”.

2. Se um cliente tiver três contactos, proponha uma estrutura que não use contacto1, contacto2 e contacto3.

3. Explique por que razão o total da encomenda é um atributo derivado.

TEMA 08 / MODELAÇÃO

Relações e cardinalidades

Uma relação associa ocorrências de entidades. A cardinalidade máxima indica quantas ocorrências podem estar associadas; a mínima indica se a participação é obrigatória. Neste manual usamos pares mínimo e máximo: 0..1, 1..1, 0..N e 1..N.

Partindo de uma ocorrênciaOcorrências associadas
Cliente para Encomenda0..N encomendas por cliente
Encomenda para Cliente1..1 cliente por encomenda
Encomenda para LinhaEncomenda1..N linhas por encomenda confirmada
LinhaEncomenda para Produto1..1 produto por linha
Produto para LinhaEncomenda0..N linhas por produto

N significa “muitos”, sem fixar um número concreto. Uma relação 1:N liga uma ocorrência de um lado a várias do outro. N:M permite várias ocorrências em ambos os sentidos. Uma relação 1:1 limita ambos os lados a uma ocorrência, sem definir, por si só, se a participação é obrigatória.

Exemplo resolvido

Uma encomenda pode incluir vários produtos e um produto pode surgir em várias encomendas. Conceptualmente, Encomenda e Produto têm uma relação N:M. Para guardar quantidade e preço praticado, a associação será representada por LinhaEncomenda.

Ao desenhar, inclua uma legenda da notação utilizada. Em diferentes notações, os símbolos podem ter convenções de leitura distintas. Confirme sempre a relação com duas frases: “para uma ocorrência de A, quantas B?” e “para uma ocorrência de B, quantas A?”.

Atividade 8

Tempo de referência: 50 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Desenhe Cliente e Encomenda e escreva as duas frases que justificam a cardinalidade.

2. Desenhe a relação conceptual entre Encomenda e Produto.

3. Se cada cliente puder ter, no máximo, um cartão e cada cartão pertencer a um único cliente, determine máximos e mínimos, admitindo clientes sem cartão.

TEMA 09 / REPRESENTAÇÃO

Construir o modelo relacional

Na transformação para o modelo relacional, cada entidade origina normalmente uma tabela. Definem-se as chaves e colocam-se as referências de forma a representar as relações sem listas de identificadores dentro das células.

RelaçãoTransformação habitual
1:NA FK fica na tabela do lado N.
N:MCriar uma tabela associativa com referências aos dois lados.
1:1Usar uma FK com unicidade; a localização depende da participação e do significado.

Esquema relacional do caso

Cliente(id_cliente [PK], nome, contacto)

Produto(id_produto [PK], designacao, preco_atual)

Encomenda(id_encomenda [PK], data, id_cliente [FK])

LinhaEncomenda(id_encomenda [PK, FK], id_produto [PK, FK], quantidade, preco_unitario)

Os dois atributos assinalados como PK em LinhaEncomenda formam uma única chave composta. Não são duas chaves primárias independentes. id_cliente referencia Cliente; as duas FK da linha referenciam Encomenda e Produto, respetivamente.

Modelo relacional da Papelaria HorizonteCliente tem zero a muitas encomendas. Cada encomenda pertence a um cliente e tem uma ou mais linhas. Cada linha pertence a uma encomenda e referencia um produto. Cada produto pode existir em zero a muitas linhas.ClienteEncomendaProdutoLinhaEncomendaPK id_clientenome · contactoPK id_encomendaFK id_cliente · dataPK id_produtodesignacao · preco_atualPK / FK id_encomendaPK / FK id_produtoquantidade · preco_unitario10..N11..N10..N
As duas marcações PK em LinhaEncomenda formam uma só chave composta. Cada cardinalidade junto a uma tabela indica quantos registos dessa tabela podem corresponder a um registo do outro lado.

O que conseguimos representar

Um cliente pode ter várias encomendas sem repetirmos o seu nome em todas. Cada encomenda pode ter vários produtos através das linhas. O preço atual pode mudar sem alterar o preço guardado na encomenda. O total calcula-se somando quantidade × preco_unitario de cada linha.

Atividade 9

Tempo de referência: 50 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Construa um diagrama das quatro tabelas e marque todas as PK e FK.

2. Explique por que motivo não guardamos uma lista de produtos em Encomenda.

3. Acrescente a regra “um cliente tem vários contactos” e atualize o modelo.

4. Indique que restrição distingue uma FK de uma relação 1:1 de uma FK de uma relação 1:N.

TEMA 10 / REPRESENTAÇÃO

Do modelo ao dicionário de dados

O dicionário de dados documenta cada campo: significado, tipo, obrigatoriedade e restrições. Permite que pessoas diferentes interpretem o modelo da mesma maneira. Os tipos concretos devem ser confirmados no SGBD utilizado; aqui descrevemos escolhas gerais.

CampoTipo propostoRegra
Cliente.id_clienteInteiroPK e obrigatório
Cliente.nomeTexto até 100 caracteresObrigatório; não aceitar só espaços
Cliente.contactoTexto até 100 caracteresOpcional; um contacto neste caso
Produto.preco_atualDecimal com 2 casasObrigatório e não negativo
Encomenda.dataDataObrigatória
Encomenda.id_clienteInteiroFK obrigatória
LinhaEncomenda.quantidadeInteiroObrigatório e positivo
LinhaEncomenda.preco_unitarioDecimal com 2 casasObrigatório e não negativo

A dimensão dos campos e os limites numéricos dependem do negócio. Valores monetários exigem representação decimal adequada. Um índice pode acelerar pesquisas, mas ocupa espaço e tem custo nas alterações; não substitui a definição das regras.

Procedimento de validação

Primeiro confirme o esquema e as referências. Depois introduza alguns registos fictícios e experimente operações válidas e inválidas. Registe o resultado esperado e o observado. Se existir implementação no SGBD, distinga as regras declaradas nas tabelas das que são verificadas pela aplicação.

Atividade 10

Tempo de referência: 50 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Complete o dicionário com os campos em falta das quatro tabelas.

2. Escolha limites para preços e quantidades e justifique-os.

3. Prepare um teste para a PK composta e outro para a FK de Encomenda.

4. Explique por que motivo a existência de um índice não garante que uma quantidade é positiva.

TEMA 11 / NORMALIZAÇÃO

Porque precisamos de normalizar

Normalizar é organizar relações com base nas dependências entre atributos, reduzindo redundâncias e anomalias. Não significa eliminar todos os valores repetidos. Uma FK repetida pode ser necessária para representar corretamente uma relação 1:N.

Uma lista ainda não normalizada

EncomendaClienteProdutos e quantidades
1011 Ana10 Caderno × 3; 20 Caneta × 2
1022 Bruno10 Caderno × 1
1031 Ana30 Pasta × 2

A última coluna guarda um grupo repetido de produtos. Não existe uma estrutura uniforme para cada item. Acrescentar produto1, produto2 e produto3 criaria um limite artificial e obrigaria a alterar o esquema para encomendas maiores.

Três anomalias

Atualização: se o nome do cliente aparecer em muitas linhas, uma mudança pode ser aplicada apenas a algumas. Inserção: se produtos só existirem dentro de encomendas, não podemos registar um novo produto sem inventar uma encomenda. Eliminação: apagar a única encomenda de um produto pode fazer perder a sua descrição.

Dependência funcional

Escrevemos A → B quando o valor de A determina um único valor de B segundo as regras do problema. Por exemplo, id_cliente → nome. A repetição de um nome não implica que nome → id_cliente: duas pessoas podem ter o mesmo nome.

Atividade 11

Tempo de referência: 40 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Descreva uma anomalia de atualização usando o cliente Ana.

2. Explique como registar um produto ainda sem encomendas na estrutura atual.

3. Escreva uma dependência funcional de Produto e outra de Encomenda.

4. Porque não podemos descobrir todas as dependências apenas observando três linhas?

TEMA 12 / NORMALIZAÇÃO

Primeira forma normal

Uma relação em primeira forma normal, ou 1FN, não contém grupos repetidos nem listas de valores dentro de um atributo: cada posição contém um único valor do domínio escolhido. A atomicidade depende do significado adotado; um texto não precisa de ser dividido em letras.

Transformação resolvida

Transformamos a lista em linhas, uma por produto de cada encomenda. Os campos data e preco_unitario também fazem parte da relação, embora estejam omitidos nesta amostra para facilitar a leitura.

Enc.ClienteNomeProdutoDesignaçãoQtd.
1011Ana10Caderno3
1011Ana20Caneta2
1022Bruno10Caderno1
1031Ana30Pasta2

A relação completa é R(id_encomenda, data, id_cliente, nome, id_produto, designacao, quantidade, preco_unitario). A chave candidata considerada neste exercício é o par (id_encomenda, id_produto), porque um produto só pode aparecer uma vez em cada encomenda.

A estrutura já não tem listas e está em 1FN, mas repete o nome do cliente e a descrição do produto. A primeira forma normal não resolve todas as anomalias. Precisamos de analisar de que atributos depende cada informação.

Uma distinção necessária

Três unidades do mesmo produto ocupam uma linha com quantidade 3. Três produtos diferentes ocupam três linhas. O que identifica o registo é a combinação definida pela regra, não o número de unidades.

Atividade 12

Tempo de referência: 40 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Converta em 1FN: encomenda 104, cliente 3 Carla, produtos 10 Caderno × 2 e 30 Pasta × 1.

2. Indique a chave e justifique-a.

3. Dê um exemplo de repetição que continua presente depois da transformação.

4. Explique por que motivo acrescentar uma PK artificial não elimina uma lista de produtos numa célula.

TEMA 13 / NORMALIZAÇÃO

Segunda forma normal

Uma relação está em segunda forma normal, ou 2FN, se estiver em 1FN e nenhum atributo não primo depender apenas de parte de uma chave candidata composta. Um atributo primo pertence a alguma chave candidata. Neste exercício consideramos apenas a chave candidata composta indicada na tema anterior.

Analisar as dependências

DeterminanteAtributos determinados
id_encomendadata e id_cliente; também nome através de id_cliente
id_produtodesignacao
id_encomenda + id_produtoquantidade e preco_unitario

A data depende apenas da encomenda, e a designação depende apenas do produto. São dependências parciais em relação à chave composta. A quantidade e o preço praticado descrevem a combinação encomenda-produto.

Decomposição resolvida

Encomenda_2FN(id_encomenda [PK], data, id_cliente, nome)

Produto(id_produto [PK], designacao)

LinhaEncomenda(id_encomenda [PK, FK], id_produto [PK, FK], quantidade, preco_unitario)

A data deixa de se repetir em cada linha de produto, e a designação passa a ser guardada uma vez por produto. Encomenda_2FN ainda repete o nome de clientes com várias encomendas. Esse problema será tratado na 3FN.

Se todas as chaves candidatas forem simples, não há uma parte própria de uma chave à qual um atributo possa ficar dependente; estando em 1FN, a relação satisfaz a 2FN. Acrescentar um identificador artificial não elimina dependências das outras chaves candidatas.

Atividade 13

Tempo de referência: 45 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Na relação Inscricao(id_formando, id_curso, nome_formando, titulo_curso, nota), admita uma inscrição por par e identifique dependências parciais.

2. Decomponha a relação em 2FN e assinale PK e FK.

3. Explique por que motivo a nota fica na inscrição, e não no formando.

TEMA 14 / NORMALIZAÇÃO

Terceira forma normal

Uma relação está em terceira forma normal, ou 3FN, se, para cada dependência funcional não trivial X → A, X for uma superchave ou A for um atributo primo. Uma superchave identifica os registos, podendo incluir atributos desnecessários; uma chave candidata é uma superchave mínima.

Nos exemplos deste manual, a verificação prática consiste em partir da 2FN e retirar dependências transitivas de atributos não primos em relação à chave. É necessário conhecer as regras do negócio para fazer esta análise.

Transformação resolvida

Em Encomenda_2FN, id_encomendaid_cliente e id_cliente → nome. O nome depende da chave através do cliente. Como id_cliente não identifica uma encomenda e nome não é primo, esta dependência impede a 3FN.

Cliente(id_cliente [PK], nome)

Encomenda(id_encomenda [PK], data, id_cliente [FK])

Produto e LinhaEncomenda mantêm a estrutura obtida na 2FN. Com as dependências assumidas, as quatro relações ficam em 3FN. Acrescentamos contacto a Cliente e preco_atual a Produto para completar os requisitos do caso.

Preservar os factos

A separação não pode perder encomendas nem criar associações falsas. A ligação entre Encomenda e Cliente usa id_cliente, que é único em Cliente. Assim, cada encomenda recupera exatamente o cliente correspondente. As dependências principais ficam verificáveis nas tabelas onde os factos são guardados.

O preço praticado na encomenda não é uma cópia dispensável do preço atual: representa um facto histórico diferente. Alterar preco_atual não deve alterar automaticamente os valores de encomendas anteriores.

Atividade 14

Tempo de referência: 45 minutos. Regista as respostas no teu caderno ou num documento de trabalho.

1. Normalize: Equipamento(id_equipamento, descricao, id_sala, nome_sala), sabendo que cada sala tem um único nome.

2. Justifique por que mantém id_sala em Equipamento.

3. Explique a diferença entre repetir um facto e guardar factos de momentos diferentes.

TEMA 15 / APLICAÇÃO

Oficina de validação do modelo

Utilize o esquema da tema 9 para reconstruir os dados seguintes nas quatro tabelas. Esta oficina articula modelação, normalização e verificação. Tempo de referência: 75 minutos, incluído no bloco final de quatro horas.

EncomendaDataClienteProdutos e preços praticados
10112/09/20261 Ana10 Caderno: 3 × 2,50; 20 Caneta: 2 × 1,20
10212/09/20262 Bruno10 Caderno: 1 × 2,50
10313/09/20261 Ana30 Pasta: 2 × 3,00

No catálogo atual, o caderno custa 2,80 euros, a caneta 1,20 euros e a pasta 3,00 euros. Existe ainda o produto 40, Borracha, a 0,80 euros, sem encomendas. A cliente 3, Carla, está registada mas ainda não encomendou. Os contactos não foram fornecidos.

Tarefas

  • Preencha as quatro tabelas sem perder clientes nem produtos sem encomendas.
  • Assinale cada PK e FK. Confirme a chave composta das linhas.
  • Calcule o total de cada encomenda a partir dos preços praticados.
  • Altere o nome da cliente 1 para Ana Martins e indique quantos registos precisam de alteração.
  • Mostre onde fica guardado o produto 40 e justifique por que não precisa de inventar uma encomenda.

Testes a executar ou simular

Tente criar uma encomenda para o cliente 99; repetir o produto 10 na encomenda 101; inserir quantidade zero; eliminar um produto referenciado. Para cada tentativa, indique o resultado esperado e a regra que o justifica.

Verificação de controlo

O conjunto final deve conter 3 clientes, 4 produtos, 3 encomendas e 4 linhas de encomenda. A encomenda 101 totaliza 9,90 euros. Se obtiver outro resultado, reveja a multiplicação das quantidades e a distinção entre preço atual e preço praticado.

TEMA 16 / APLICAÇÃO

Proteção de dados e revisão entre pares

Um modelo também deve considerar as pessoas a quem os dados dizem respeito. O RGPD estabelece princípios como finalidade, minimização, exatidão, limitação da conservação e segurança. A proteção de dados deve ser considerada desde a conceção do sistema [2, artigos 5 e 25].

Em termos de modelação, justifique a necessidade de cada campo pessoal, planeie quem pode aceder aos dados e evite recolher informação sem finalidade definida. Um identificador interno continua a poder estar associado a uma pessoa; substituir o nome por um código não garante anonimização.

Neste manual, os nomes e os restantes dados são fictícios. Não use listas reais de clientes ou colegas nos exercícios. As decisões concretas sobre fundamentos de tratamento e conservação devem ser enquadradas pela organização e pelas regras aplicáveis.

Atividade 15

Tempo de referência: 35 minutos. Trabalhe em pares e depois registe as suas conclusões individualmente.

  • Para registar encomendas, alguém propõe guardar nome, contacto, religião, data de nascimento e uma fotografia do cliente. Identifique os campos cuja necessidade não está demonstrada.
  • Proponha uma forma de distinguir os acessos de quem apenas consulta encomendas e de quem gere os dados dos clientes.
  • Explique por que razão usar dados fictícios é adequado para esta atividade.

Revisão do trabalho de outro grupo

Tempo de referência: 25 minutos. Troquem os modelos da oficina e verifiquem: há chaves em todas as tabelas? As cardinalidades correspondem às regras? As FK apontam para chaves adequadas? Há listas em células? O preço histórico está protegido de alterações ao catálogo?

Entreguem dois comentários fundamentados: um ponto correto e uma melhoria necessária. O grupo revisto deve aceitar a sugestão ou justificar a manutenção da sua decisão. O objetivo é praticar análise, responsabilidade e comunicação técnica.

TEMA 17 / APLICAÇÃO

Desafio individual e avaliação

Tempo proposto: 80 minutos de trabalho individual e 25 minutos de discussão ou verificação oral, completando as quatro horas do bloco final. As verificações individuais podem decorrer durante o trabalho. O formador define as condições e os recursos permitidos.

Enunciado

Um centro de formação regista formandos e ações de formação. Cada formando tem identificador, nome e contacto opcional. Cada ação tem identificador, designação e data de início. Um formando pode inscrever-se em várias ações e uma ação pode ter vários formandos. Há uma só inscrição por par formando-ação. Cada inscrição guarda a data de inscrição e uma classificação final opcional, de 0 a 20. Formandos e ações podem existir sem inscrições.

A lista inicial tem os campos id_formando, nome, contacto, id_acao, designacao_acao, data_inicio, data_inscricao e classificacao. Os dados pessoais dependem do formando; a designação e o início dependem da ação; a inscrição e a classificação dependem do par.

Entregas

  • Identifique entidades, atributos e regras, incluindo a interpretação da classificação ausente.
  • Desenhe o modelo com cardinalidades mínimas e máximas.
  • Apresente a normalização da lista e o esquema final com PK e FK.
  • Defina tipos e restrições para os campos e crie exemplos fictícios.
  • Descreva dois testes que devem ser aceites e dois que devem ser recusados.
  • Explique oralmente uma escolha e adapte o modelo a uma alteração apresentada pelo formador.
Critério propostoPontos
Requisitos e identificação de entidades e atributos4
Relações e cardinalidades4
Chaves e integridade4
Normalização e justificação das dependências4
Validação dos dados e explicação individual4
Total20

Em cada critério: 4 pontos para uma solução correta e fundamentada; 3 para pequenas falhas; 2 para compreensão parcial; 1 para uma tentativa com erros essenciais; 0 para ausência de evidência. Esta grelha é uma proposta de trabalho, não uma regra do referencial.

CONSULTA / UC00602

Glossário e fontes

TermoSignificado
AtributoCaracterística de uma entidade; representada por um campo.
CardinalidadeNúmero mínimo e máximo de ocorrências associadas.
Chave candidataConjunto mínimo de atributos que identifica um registo.
Chave estrangeiraAtributo ou conjunto que referencia uma chave noutra relação ou na própria.
Chave primáriaChave candidata escolhida para identificar os registos.
Dependência funcionalRegra pela qual um valor de X determina um único valor de Y.
EntidadeTipo de objeto ou acontecimento relevante para o sistema.
Integridade referencialCoerência das referências entre registos.
NormalizaçãoOrganização de relações com base nas suas dependências.
NULLAusência de valor, interpretada de acordo com o campo.
SGBDSoftware que gere bases de dados.
TransaçãoConjunto de operações tratado como uma unidade.

Fontes e enquadramento

[1] Catálogo de Qualificações. UC00602 — Modelar bases de dados relacionais. Documento disponibilizado pelo formador, criado em 22/03/2025. Realizações na página 1, conhecimentos e critérios na página 2 e recursos na página 3.

[2] Parlamento Europeu e Conselho. Regulamento (UE) 2016/679, artigos 5 e 25. EUR-Lex. Consulta em 12/09/2026. Consultar no EUR-Lex ↗

A duração de 25 horas foi indicada pelo formador. A sequência, os tempos, os exemplos, os exercícios e a grelha de avaliação são propostas pedagógicas deste manual. O percurso até à 3FN concretiza o tema da normalização para esta ação.

O manual sempre à mão

Adiciona a aplicação ao teu dispositivo para abrir os temas diretamente.

No telemóvel ou tablet

No iPhone ou iPad, abre o menu Partilhar e escolhe «Adicionar ao ecrã principal». No Android, procura «Instalar aplicação» ou «Adicionar ao ecrã principal» no menu do navegador.

No computador

Procura a opção de instalação na barra de endereço ou no menu do navegador. Se não estiver disponível, podes continuar a usar o website.

Para usar offline, mantém o primeiro acesso aberto até surgir «Manual disponível offline» no rodapé. As ligações para sites externos precisam de Internet.