← tópicos

Específicos · Bancos de Dados

Relacional: tabelas, esquema rígido, ACID, níveis de isolamento

Metade do tópico é transação e concorrência. Quase todo item errado descreve uma propriedade corretamente e assina com o nome da vizinha — leia a descrição, decida o que é, e só então olhe o nome.

Média41 itens no tópico

A ideia que organiza o assunto

Um banco relacional é um conjunto de relações, e uma relação é um conjunto não ordenado de tuplas. Tudo o que o modelo oferece decorre daí: como não há ordem nem ponteiro, o relacionamento entre duas tabelas existe por valor — uma coluna guarda o valor que aparece em outra — e não por endereço, como no modelo em rede, nem por posição numa árvore, como no hierárquico.

Mas o tópico, medido, não é sobre a estrutura da tabela. Dos 41 itens do corpus, 23 são sobre transação, concorrência e o que o SGBD garante quando duas pessoas escrevem ao mesmo tempo; 8 sobre esquema e estrutura; 4 sobre álgebra relacional. O assunto real é o que acontece quando uma operação pode falhar no meio ou colidir com outra — e as quatro letras de ACID são o vocabulário com que a banca fala disso.

A ideia que torna o resto derivável: cada letra de ACID resolve um problema diferente, e o item errado quase sempre troca uma pela outra. Atomicidade é tudo ou nada; isolamento é como se estivesse sozinha; durabilidade é sobrevive à queda; consistência é o banco continua válido. São promessas distintas, com mecanismos distintos — bloqueio para isolamento, log para atomicidade e durabilidade — e confundi-las é o erro mais cobrado aqui.

Como funciona

A transação. Unidade lógica de trabalho: pode conter várias operações de leitura e escrita, e o SGBD trata o conjunto como indivisível. O ciclo é BEGIN TRANSACTIONCOMMIT ou ROLLBACK, com SAVEPOINT para desfazer parcialmente. O ponto de commit é o momento em que a atomicidade está resolvida e a durabilidade passa a ser responsabilidade do sistema.

Atomicidade, com a ressalva que decide itens. Atomicidade garante que a transação seja inteiramente efetivada ou inteiramente desfeita. Ela não garante que a transação termine com sucesso — uma transação que falha e é revertida cumpriu a atomicidade perfeitamente. Essa distinção aparece em três itens do corpus e é o que separa duas redações quase idênticas.

Isolamento e os níveis. Isolamento é a promessa de que a execução concorrente produza o mesmo resultado que a execução em série. Os níveis relaxam essa promessa em troca de desempenho:

nívelleitura sujanão repetívelfantasma
read uncommittedpermitepermitepermite
read committedprevinepermitepermite
repeatable readprevineprevinepermite
serializableprevineprevineprevine

A linha que o corpus efetivamente cobra é a do repeatable read, que previne a leitura não repetível e ainda admite a leitura fantasma — a linha nova que aparece entre duas execuções da mesma consulta.

Bloqueio e deadlock. O bloqueio é o mecanismo do isolamento. O binário tem dois estados e impede qualquer outro acesso, leitura ou escrita; o par compartilhado/exclusivo deixa vários leitores conviverem e dá exclusividade só a quem escreve. Bloqueios recíprocos produzem deadlock, que o SGBD detecta e resolve sozinho, abortando uma das transações — não devolvendo o problema à aplicação. O PostgreSQL faz isso automaticamente.

Log e recuperação. O log registra, por operação, o identificador da transação, o identificador do item de dados, o valor antigo e o valor novo. É com ele que o SGBD desfaz (atomicidade) e refaz (durabilidade). Recuperação e controle de concorrência não são independentes: o que pode ser desfeito depende de quem enxergou o quê.

Esquema × estado. O esquema é a intensão — a descrição da estrutura, que muda por DDL. O estado, ou instância, é a extensão — os dados, que mudam por INSERT, UPDATE e DELETE. Um INSERT não altera o esquema. E o esquema é agrupamento lógico: quem separa fisicamente é o tablespace.

Álgebra relacional. Operações sobre relações que produzem relações — a propriedade de fechamento, que é o que permite encadear consultas. Seleção (σ) escolhe linhas e projeção (π) escolhe colunas: as duas são unárias. União e interseção exigem compatibilidade de união — mesmo grau e domínios compatíveis, e não nomes de coluna iguais.

O que decide os itens

par que a banca confundeo que cada um é
atomicidade × isolamentotudo-ou-nada × como-se-estivesse-sozinha
atomicidade × “concluir com sucesso”reverter também cumpre a atomicidade
bloqueio × logisolamento × atomicidade e durabilidade
consistência × confidencialidadeo C de ACID não é segurança
repeatable read × serializablefantasma ainda passa no primeiro
serializable × read uncommittedquem lê dado não confirmado é o segundo
projeção × junçãoprojeção é unária, sobre colunas
esquema × estadoestrutura × dados
esquema × tablespacelógico × físico
relacional × rede × hierárquicovalor × ponteiro × árvore

Dois fatos que valem por vários itens:

Como a CEBRASPE derruba você aqui

Medido sobre os 41 itens do tópico: 18 Certo, 22 Errado, 1 sem explicação.

A descrição está certa e o nome está errado — 13 dos 22 itens errados (59%). É, de longe, o movimento dominante, e é o mesmo que a nota de Modelagem mede na outra metade da disciplina. A frase descreve uma propriedade com precisão de manual e assina com o nome da propriedade vizinha:

“Atomicidade é a propriedade que garante que as transações não sejam afetadas pelo funcionamento de outras transações” — a descrição é de isolamento.

“As propriedades ACID de uma transação garantem atomicidade, confidencialidade, isolamento e durabilidade” — o C é consistência.

“Projeção é uma operação binária que realiza a junção de duas tabelas” — a descrição é de junção; projeção é unária.

A defesa é mecânica e vale para o tópico inteiro: leia a descrição até o fim, decida sozinho o que ela define, e só então olhe o substantivo na frente.

A inversão de uma relação de dependência — 4 de 22. O item afirma que duas coisas são independentes quando uma depende da outra, ou o contrário: “O esquema de recuperação do banco de dados independe do esquema de controle de concorrência”; “as estruturas de dados lógicas não são separadas das estruturas de armazenamento físico”.

A propriedade levada ao absoluto — 3 de 22. “A atomicidade é uma característica exclusiva de bancos de dados relacionais”; “as operações de união e interseção são válidas somente [se os nomes das colunas forem iguais]”. Aqui vale a regra geral do corpus: o absoluto que pertence à definição sobrevive, o que o examinador acrescenta não.

Onde o tópico não te derruba. Nenhum item do corpus cobra o nome de um nível de isolamento pela anomalia que ele permite em forma de tabela, e as expressões leitura suja, read committed e phantom em inglês não aparecem uma única vez — o corpus fala em fantasma e descreve o comportamento. Decorar a tabela dos quatro níveis rende dois itens; entender que repeatable read ainda deixa passar o fantasma rende os dois.

Erros clássicos

Praticar40 itens