Informática

Banco de dados relacional, chaves e relacionamentos

6 min de leituraPodcast de 24 min13 questões

Cai no edital de Agente PF, Escrivão PF, Papiloscopista PF, Polícia Penal Federal

Para revisar

Resumo

No modelo relacional (Codd, 1970), os dados ficam em relações, as tabelas. O sistema gerenciador de banco de dados (SGBD) controla acesso, integridade, concorrência e recuperação.

  • Tabela: linhas são tuplas (registros); colunas são atributos (campos).
  • Chave primária: identifica cada linha; não aceita nulo nem repetição.
  • Chave estrangeira: referencia a chave de outra tabela; pode repetir e pode ser nula.
  • Relacionamentos: 1:1, 1:N e N:N; o N:N exige tabela associativa.
  • ACID: atomicidade, consistência, isolamento e durabilidade.
  • Normalização: reduz redundância e anomalias.

Entenda

Estrutura relacional

Termo formalTermo informal
RelaçãoTabela
TuplaLinha, registro
AtributoColuna, campo
DomínioConjunto de valores válidos do atributo
GrauNúmero de atributos (colunas)
CardinalidadeNúmero de tuplas (linhas)

Ex.: a tabela VEICULO(placa, renavam, ano), com 500 linhas, tem grau 3 e cardinalidade 500.

Chave primária e chaves candidatas

Chave candidata é o conjunto mínimo de colunas que identifica cada linha. Uma delas é escolhida como chave primária (PK); as outras ficam como chaves alternativas, com restrição UNIQUE. A PK não aceita valor nulo nem repetido. A tabela tem uma só PK, que pode ser composta por várias colunas. A chave natural usa dado do mundo real (CPF); a substituta é um identificador gerado pelo sistema.

Ex.: em PESSOA(id, cpf, nome), id e cpf são candidatas. Escolhida id como PK, cpf vira chave alternativa.

Chave estrangeira e integridade referencial

A chave estrangeira (FK) é a coluna que referencia a PK, ou uma coluna UNIQUE, de outra tabela. Garante a integridade referencial: o valor da FK existe na tabela referenciada ou é nulo. A FK pode se repetir. As ações referenciais definem o que ocorre com os filhos quando o pai é apagado:

  • CASCADE: apaga também os filhos.
  • SET NULL: anula a FK dos filhos.
  • RESTRICT ou NO ACTION: impede apagar pai que tenha filhos.

Ex.: VEICULO(placa, cpf_dono), em que cpf_dono é FK para PESSOA. Três veículos podem ter o mesmo cpf_dono. Com ON DELETE CASCADE, apagar a pessoa apaga os três veículos.

Restrições de integridade

  • De domínio: o valor respeita o tipo e a faixa permitida.
  • De entidade: a PK é única e não nula.
  • Referencial: a FK aponta para registro existente ou é nula.

Ex.: gravar o ano "20X5" viola o domínio. Gravar veículo sem placa, sendo a placa a PK, viola a integridade de entidade. Gravar cpf_dono inexistente em PESSOA viola a referencial.

Relacionamentos

  • 1:1: a FK fica em uma das tabelas, com restrição de unicidade.
  • 1:N: a FK fica na tabela do lado N.
  • N:N: exige uma terceira tabela, a associativa, com as FKs das duas.

Ex.: uma pessoa pode ser investigada em vários inquéritos, e um inquérito pode ter várias pessoas. Cria-se INVESTIGADO(cpf, num_inquerito).

Transações e ACID

Transação é o conjunto de operações tratado como unidade.

  • Atomicidade: tudo é executado, ou nada tem efeito.
  • Consistência: o banco sai de um estado válido para outro estado válido.
  • Isolamento: transações simultâneas não interferem entre si.
  • Durabilidade: o que foi confirmado (commit) persiste, mesmo após falha.

Ex.: transferência bancária debita uma conta e credita outra. Se o sistema cai depois do débito e antes do crédito, a atomicidade desfaz o débito.

Normalização

Organiza as tabelas para reduzir redundância e evitar anomalias de inclusão, alteração e exclusão.

  • 1FN: todos os atributos têm valores atômicos; sem grupos repetidos.
  • 2FN: está na 1FN e não há dependência parcial da chave primária.
  • 3FN: está na 2FN e não há dependência transitiva.

A desnormalização é escolha consciente em favor do desempenho de leitura, comum em data warehouse.

Ex.: PEDIDO(num, cod_cliente, nome_cliente). O nome depende do código do cliente, que depende do número do pedido: dependência transitiva, que fere a 3FN. O nome vai para a tabela CLIENTE.

Índices, catálogo e níveis de abstração

  • Índice: acelera a busca; em troca, ocupa espaço e torna as gravações mais lentas.
  • Dicionário de dados (catálogo): guarda os metadados de tabelas, colunas e restrições.
  • Arquitetura de três níveis (ANSI/SPARC): externo (visões do usuário), conceitual (lógico) e interno (físico). A separação dá independência de dados: muda-se um nível sem alterar os outros.

Ex.: criar índice em placa torna rápida a busca por placa. Cada novo veículo gravado, porém, também atualiza o índice.

Quadro

PontoChave primáriaChave estrangeira
FunçãoIdentificar a linhaLigar a outra tabela
Aceita nuloNãoSim
Aceita repetiçãoNãoSim
Quantas por tabelaUma (simples ou composta)Várias
Integridade garantidaDe entidadeReferencial

Como a banca cobra

  • "A chave estrangeira não pode conter valores repetidos." → errado (no 1:N, vários filhos apontam para o mesmo pai).
  • "A chave primária pode conter valores nulos e repetidos." → errado (não aceita nulo nem repetição).
  • "A atomicidade garante que uma transação seja executada por completo ou não tenha nenhum efeito." → certo.
  • "O relacionamento muitos-para-muitos é implementado incluindo-se a chave primária de uma tabela como chave estrangeira na outra, sem tabela adicional." → errado (exige tabela associativa).
  • "O grau de uma relação corresponde ao número de atributos, e a cardinalidade, ao número de tuplas." → certo.
  • "A chave estrangeira pode assumir valor nulo sem violar a integridade referencial." → certo.
  • "Com ON DELETE CASCADE, a exclusão do registro pai mantém inalterados os registros filhos." → errado (os filhos também são apagados).
  • "A criação de índices acelera as consultas sem custo de espaço nem impacto nas operações de escrita." → errado (ocupa espaço e torna a escrita mais lenta).
  • "Uma tabela está na terceira forma normal quando, estando na segunda, não apresenta dependências transitivas." → certo.
  • Detalhe que derruba o item: a banca atribui à FK as restrições da PK e troca as letras do ACID. Persistir após falha é durabilidade; "tudo ou nada" é atomicidade.

Revisão rápida

  1. O que é tupla?Revelar

    Uma linha da tabela.

  2. A chave primária aceita nulo?Revelar

    Não; nem repetição.

  3. A chave estrangeira pode repetir e ser nula?Revelar

    Pode.

  4. Como se implementa o relacionamento N:N?Revelar

    Com tabela associativa.

  5. O que a atomicidade garante?Revelar

    Tudo ou nada na transação.

  6. O que a durabilidade garante?Revelar

    Que o confirmado persiste após falha.

  7. O que a 3FN elimina?Revelar

    Dependências transitivas.

  8. Grau e cardinalidade de uma relação são o quê?Revelar

    Número de colunas e número de linhas.

Referência

Mapa mental

  • Estrutura
    • Relação = tabela
    • Tupla = linha; atributo = coluna
    • Grau: colunas; cardinalidade: linhas
    • SGBD controla acesso e integridade
  • Chaves
    • PK: única, não nula
    • Candidata e alternativa (UNIQUE)
    • FK: integridade referencial, aceita repetição
    • N:N exige tabela associativa
  • Integridade e transações
    • Domínio, entidade, referencial
    • ACID: atomicidade, consistência, isolamento, durabilidade
    • CASCADE, SET NULL, RESTRICT
  • Normalização
    • 1FN: valores atômicos
    • 2FN: sem dependência parcial
    • 3FN: sem dependência transitiva
  • ⚠️ Pegadinha
    • Uma PK por tabela, pode ser composta

Estude Agente PF no app

Grátis, sem cartão

Começar, é grátis

Estude este tópico no app

Grátis, sem cartão. Tudo do PRO liberado.

Criar conta grátis