Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🍃 UNIDADE VI: NOSQL E ARQUITETURA DE DOCUMENTOS

Bem-vindo(a) à fronteira atual da Engenharia de Dados corporativa. A partir de agora, expandiremos a sua mente arquitetural para além do clássico paradigma relacional. 🛡️🧩


Objetivo: Compreender as motivações essenciais que deram origem ao movimento NoSQL, suas diferenças arquiteturais em relação aos sistemas RDBMS, e o impacto estratégico do Teorema CAP na concepção de sistemas distribuídos de escala global.


📗 PASSO 1: A Origem do Paradigma "Not Only SQL"

Por mais de três décadas, bancos como PostgreSQL e SQL Server dominaram absolutos. Contudo, com o advento das Redes Sociais, da Internet das Coisas (IoT) e de volumes na casa dos Petabytes, o modelo relacional rígido sofreu impactos em escalabilidade.

Surgiram então os bancos de dados não-relacionais (NoSQL), priorizando velocidade massiva de leitura/escrita e esquemas flexíveis. Atualmente, o termo é amplamente aceito como Not Only SQL (Não Apenas SQL), indicando que ele complementa o relacional, e não tenta substitui-lo de forma arrogante. 🛡️


📗 PASSO 2: O Desafio Estratégico do Teorema CAP

Ao abandonarmos um único servidor potente e passarmos a rodar bancos de dados cruzando oceanos em centenas de máquinas (clusters), esbarramos numa lei física da engenharia de computação postulada por Eric Brewer: O Teorema CAP.

Para qualquer banco de dados distribuído de grande escala, é matematicamente impossível garantir simultaneamente as 3 propriedades abaixo:

  1. C (Consistência): Todos os clientes enxergam a mesma informação simultaneamente.
  2. A (Disponibilidade): O sistema responde sempre, mesmo que dados estejam desatualizados.
  3. P (Tolerância à Partição): O sistema sobrevive se um cabo de rede for cortado entre o Brasil e o Japão.

📊 Balanço Arquitetural (Teorema CAP)

flowchart TD
    CAP{⚖️ Teorema CAP}
    CAP -->|CP| MGB[MongoDB / HBase]
    CAP -->|AP| CAS[Cassandra / DynamoDB]
    CAP -->|CA| RDB[PostgreSQL / MySQL]

    subgraph Prioridade CP
        direction TB
        MGB_info(Garante Consistência<br/>Resiste à quedas de rede<br/>Mas pode falhar na Disponibilidade)
    end
    
    subgraph Prioridade AP 
        direction TB
         CAS_info(Sempre Disponível<br/>Resiste à quedas de rede<br/>Consistência eventual)
    end

⚠️ Atenção: Em sistemas complexos nativos da nuvem (Cloud Native), as "Partições" (quedas de comunicação entre os hubs nos EUA e Europa, por exemplo) não são probabilidades, são certezas. Portanto, você deve escolher na realidade entre CP ou AP. 🛡️


📗 PASSO 3: Por que o MongoDB 7.0 LTS?

Dentre de dezenas de modalidades de sistemas "NoSQL", o MongoDB domina a vasta maioria dos cenários contemporâneos.

  1. Arquitetura baseada em Documentos: Os dados não são forçados em matrizes bi-dimensionais (tabelas e colunas). Eles fluem de forma hierárquica usando BSON (Uma versão binária de hiper-performance do JSON).
  2. Schema Dinâmico (Flexible Schema): Um usuário pode ter um endereço com número de casa e outro usuário com lote, andar de apartamento, tudo sob a mesma entidade sem precisar gerar "colunas nulas".
  3. Filosofia CP: Ele prioriza a Consistência dos dados acima de tudo através do sistema elegante do seu "Replica Set".

💡 Nota do Arquiteto: Você não precisa escolher entre relacional e NoSQL. A arquitetura corporativa moderna utiliza a Persistência Poliglota: Usar PostgreSQL 🐘 para auditoria financeira e MongoDB 🍃 para a navegação acelerada de um feed infinito. 🚀🛡️