2026-1-LegisKids

Banco de Dados

Objetivo

Analisar as opções de banco de dados disponíveis para o projeto e definir a tecnologia mais adequada para a arquitetura escolhida, considerando compatibilidade com o backend em Python + Flask e as necessidades futuras do sistema.

A escolha correta do banco de dados é importante para garantir:

O que é um banco de dados e qual sua importância?

Um banco de dados é uma coleção organizada de informações armazenadas eletronicamente.

Seu gerenciamento é feito por um:

SGBD (Sistema de Gerenciamento de Banco de Dados)

DBMS (Data Bank Management System)

Exemplos:

Um banco de dados é importante porque permite:

Sem um banco de dados bem definido, o sistema pode sofrer com:

Tipos de banco de dados

Os bancos de dados podem ser divididos em dois grandes grupos.

Como já definido no estudo anterior, o ideal, claramente, é um banco relacional (SQL).

A seguir há um breve resumo de o que é um SQL e porque será usado para o projeto.

Bancos relacionais (SQL)

Armazenam dados em:

Exemplo:

id nome email
1 João joao@email.com

Vantagens:

Exemplos:

Por que o projeto deve usar SQL

Para o contexto atual do projeto, os dados serão:

Exemplo:

Isso torna um banco relacional mais adequado.

Tecnologias avaliadas

Foram consideradas as seguintes opções:

PostgreSQL

Vantagens

Limitações

MySQL

Vantagens

Limitações

SQLite

Vantagens

Limitações

Comparação técnica

Critério PostgreSQL MySQL SQLite
Python Excelente Muito bom Excelente
Flask Excelente Muito bom Excelente
SQLAlchemy Excelente Excelente Excelente
psycopg Nativo Não Não
JSON Excelente Bom Limitado
Escalabilidade Alta Média/Alta Baixa
Produção Excelente Muito bom Fraco
Testes locais Bom Bom Excelente

Compatibilidade com o backend

Python

O backend será desenvolvido em:

Python

Todos os bancos avaliados possuem suporte, porém o PostgreSQL possui melhor integração para aplicações robustas.

Bibliotecas utilizadas:

Flask

O Flask se integra facilmente com PostgreSQL via URI:

python postgresql+psycopg://usuario:senha@localhost/banco

Exemplo de configuração:

app.config[“SQLALCHEMY_DATABASE_URI”]=”postgresql+psycopg://user:password@localhost/projeto”

SQLAlchemy

O SQLAlchemy oferece:

O PostgreSQL possui excelente suporte.

Compatibilidade com futura integração com IA

O sistema poderá futuramente integrar:

O PostgreSQL oferece vantagens importantes:

JSONB

Permite armazenar:

Exemplo:

{ “sentimento”:”positivo”, “confianca”:0.92 }

Extensões futuras

PostgreSQL suporta:

Isso facilita integração futura com:

Facilidade para a equipe

A escolha também considera a equipe.

O PostgreSQL apresenta:

Benefícios para o time:

Banco recomendado: PostgreSQL

Justificativa da escolha

O PostgreSQL foi escolhido porque oferece:

Uso recomendado no projeto

Ambiente local

Durante desenvolvimento:

Produção

Em produção:

Próximos estudos necessários

Após a definição do banco, a equipe deverá aprofundar os estudos em:

Modelagem de dados

Estudar:

SQL básico

Aprender:

SQLAlchemy ORM

Entender:

Migrações

Estudar:

Para:

Performance futura

Investigar:

Riscos evitados com essa decisão

A escolha antecipada evita:

Conclusão

Após análise técnica das alternativas, o banco de dados definido para o projeto é:

PostgreSQL

A escolha oferece segurança técnica para o presente e flexibilidade para a evolução futura do sistema.