/banco-de-dados

Aulas, exercícios e resumos das matérias: banco de dados I, II, III.

Primary LanguagePLpgSQLMIT LicenseMIT

Banco de Dados

Codacy Badge License License License

INE5613 - Banco de Dados I


INE5426 - Banco de Dados II


INE5600 - Banco de Dados III


Noções Básicas

Linguagens SQL

  • DDL (Linguagem de Definição de Dados), que lida com esquemas e descrições de banco de dados.
  • DML (Linguagem de Manipulação de Dados), que lida com a manipulação de dados e inclui instruções SQL mais comuns, como SELECT, INSERT, UPDATE, DELETE etc.
  • DCL (Linguagem de Controle de Dados), que inclui comandos como GRANT, e principalmente relacionado com direitos, permissões e outros controles do sistema de banco de dados.

Tipos de Dados

SQL Joins



Bancos de Dados Distribuidos

Transações

É qualquer execução única de um programa usuário que exerce uma série de operações.

Propriedades

Todo banco de dados RELACIONAL deve possuir as propriedades ACID:

  • ATOMICIDADE: todas as operações de uma transação são realizadas.
  • CONSISTENCIA: leva o DB de um estado consistente para outro estado consistente.
  • INDEPENDENCIA: o processamento de transações não deve interferir em outras transações.
  • DURABILIDADE: resultados de operações confirmadas não devem interferir em outras transações.

Controle de transações

Controle de transações serve para garantir as caracteristicas fundamentais de uma transação (ACID).

Escalonamento de transações

  • com lock
  • otimista

Protocolo 2phase commit

  • Preparação: um dos participantes é eleito coordenador e envia a cada nodo uma solicitação para preparar para o commit.
  • Commit: se todos os nodos participantes estão prontos, o coordenador envia um sinal de commit para cada participante e depois executa
    • Se um nodo falhar na preparação do coomit, o coordenador manda um sinal de rollback para todos.
    • Se o nodo coordenador cair: haverá um backup que será eleito. Em seguida por broadcast, os outros nodos são avisados da mundança.

Deadlocks

...


Otimização de Consultas

É sempre necessário levar em conta:

  • replicação dos dados
  • reconstrução das relações a partir de fragmentos
  • tempo de recuperação
  • tempo de processamento
  • transmissão pela rede

Fragmentação de Dados

Um dado ou relação será fragmentado e armazenado em diferentes nodos.
A fragmentação pode ser de 2 formas:

  • Horizontal: os fragmentos são definidos por SELEÇÃO
  • Vertical: os fragmentos são definidos por PROJEÇÃO

Livros de Referência



Gmail GitHub LinkedIn GitHub Website GitHub Creative Commons License