Este projeto foi desenvolvido com o objetivo de estudar o uso de ORM (Object-Relational Mapping) e INDEX em bancos de dados. Utiliza ORM para preencher uma base de dados com informações cadastrais aleatórias e realiza um benchmark para comparar o tempo de inserção e consulta de tabelas com e sem o uso de INDEX.
O foco deste projeto é explorar o funcionamento do ORM, que é uma técnica que permite mapear objetos Python para tabelas em bancos de dados relacionais, simplificando operações de banco de dados e melhorando a legibilidade do código. Além disso, o projeto investiga o uso de INDEX, que é uma estrutura de dados em bancos de dados que melhora a velocidade de recuperação de informações em consultas.
O projeto utiliza as seguintes linguagens e ferramentas:
- SqlAlchemy: Uma poderosa biblioteca de SQL em Python que fornece recursos flexíveis para a comunicação com bancos de dados.
- Jupyter Notebook: Uma aplicação online que permite criar e compartilhar código interativo, facilitando o processo de exploração e análise de dados.
- Faker: Um pacote Python que permite gerar dados falsos de forma realista, útil para preencher uma base de dados com informações aleatórias.
- Random: Um módulo Python que oferece funções para geração de números pseudoaleatórios.
- UUID: Um módulo Python para geração de IDs (identificadores) únicos e aleatórios.
- Python (versão 3.6 ou superior)
Recomenda-se que você crie um ambiente virtual Python para isolar as dependências deste projeto. Você pode usar ferramentas como virtualenv ou conda para criar o ambiente virtual. Além disso, é importante entender os conceitos de ORM e INDEX antes de explorar este projeto, para aproveitar ao máximo o aprendizado e a análise dos resultados.