Leitura Suja (Dirty Read): Uma transação lê dados modificados por outra transação que ainda não foi confirmada (e pode ser desfeita).
Leitura Não Repetível (Non-Repeatable Read): Uma transação lê o mesmo dado duas vezes e obtém valores diferentes porque outra transação o alterou entre as leituras.
Leitura Fantasma (Phantom Read): Uma transação executa uma consulta duas vezes e obtém conjuntos diferentes de linhas porque outra transação inseriu ou removeu linhas que satisfazem a condição da consulta.
Modelo de dados: conjunto de conceitos usados para descrever a estrutura de um banco de dados
O uso de locks não está associado com A de ACID (Atomicidade, consistência, isolamento e durabilidade), mas sim com o I. Os bloqueios (locks) são mecanismos usados em sistemas de banco de dados para controlar o acesso concorrente a dados garantindo o isolamento!
Índice B-tree (índice árvore B) é a estrutura de dados usada em índices multiníveis dinâmicos em banco de dados relacionais, que garantem que tais estruturas sempre estejam balanceadas e que o espaço desperdiçado pela exclusão de itens de dados, se houver, nunca se torne excessivo. É aplicado em colunas com alto grau de cardinalidade. Permite uma busca rápida em grandes bases de dados, sendo o índice mais comum entre os SGBD.
Integridade de domínio - Restrições deste tipo especificam que o valor de um campo deve obedecer a definição de valores admitidos na especificação da coluna na tabela (o domínio da coluna).
Deadlock (Impasse): Situação em que duas ou mais transações esperam indefinidamente umas pelas outras para liberar locks. Requer detecção e resolução (ex: abortar uma transação).
Muitos-para-Muitos (N:M): Uma instância de A se relaciona com várias de B, e vice-versa. Geralmente, um relacionamento N:M é transformado em uma nova entidade (entidade associativa) e dois relacionamentos 1:N.
Operações Fundamentais:
Seleção (σ): Filtra tuplas (linhas) de uma relação que satisfazem uma condição. Ex: σsalario > 5000(FUNCIONARIO)
Projeção (π): Seleciona colunas (atributos) de uma relação, eliminando duplicatas. Ex: πnome, salario(FUNCIONARIO)
União (∪): Combina tuplas de duas relações compatíveis (mesma aridade e domínios compatíveis), eliminando duplicatas.
Diferença (-): Retorna tuplas que estão na primeira relação mas não na segunda (relações compatíveis).
Produto Cartesiano (×): Combina cada tupla de uma relação com cada tupla de outra.
Renomeação (ρ): Altera o nome de uma relação ou de seus atributos.
Cláusula WHERE (condições de filtro em uma tabela) geralmente vira Seleção (σ).
Cláusula SELECT (escolha de colunas) geralmente vira Projeção (π).
Restrição de domínio é o conjunto de possíveis valores que um atributo pode receber.
Restrição de integridade: UNIQUE, NOT NULL
a chave estraNgeira fica no lado N
Segunda Forma Normal (2FN):
Não deve haver dependências parciais. Isso significa que todos os atributos não chave devem depender funcionalmente da chave primária completa.
→ Este critério só é relevante para tabelas com chaves primárias compostas.
Atributos Calculados/Derivados: São uma armadilha comum! Eles introduzem dependências transitivas e, portanto, violam a 3FN.
Pelos Axiomas de Armstrong, podemos trabalhar com as dependências:
Reflexibilidade: Se X ⊇ (contém) Y, então X → Y.
Expansibilidade: Se X → Y , então X Z → Y Z para qualquer Z.
Transitividade: Se X→Y e Y → Z, então X → Z.
União: Se X → Y e X → Z, então X → Y Z.
Decomposição: Se X → Y Z , então X → Y e X → Z.
Acumulação: X → Y então X Z → Y
Pelos Axiomas de Armstrong:
Reflexibilidade: Se X ⊇ (contém) Y, então X → Y.
Expansibilidade: Se X → Y , então X Z → Y Z para qualquer Z.
Transitividade: Se X→Y e Y → Z, então X → Z.
União: Se X → Y e X → Z, então X → Y Z.
Decomposição: Se X → Y Z , então X → Y e X → Z.
Acumulação: X → Y então X Z → Y
Segunda Forma Normal (2FN):
Não deve haver dependências parciais. Isso significa que todos os atributos não chave devem depender funcionalmente da chave primária completa.
→ Este critério só é relevante para tabelas com chaves primárias compostas.