Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização |
---|
Banco de Dados
Descrição
Antes de iniciar a modelagem do banco de bancos do projeto, foi realizado um estudo do contexto da equipe e das tecnologias possíveis que poderiam ser utilizadas. Em primeiro lugar, foi feita uma enquete com todos os integrantes do time a respeito de seus conhecimentos técnicos, incluindo conhecimentos sobre banco de dados. Com base nos resultados dessa enquete, percebeu-se que seria mais adequado, quando se tratando da curva de aprendizado, utilizar um banco de dados relacional, uma vez que este tipo de tecnologia é algo abordado nas disciplinas do curso de Engenharia de Software.
Além disso, durante os encontros síncronos da equipe, foram discutidas as duas possibilidades de banco de dados (relacional e não-relacional), e a equipe chegou à conclusão de que o modelo relacional seria o ideal para este projeto, tendo em vista que existem muitas relações diretas entre as entidades e que os dados não se repetem com frequência. Assim, optou-se por utilizar o PostgreSQL, pois este é um banco de simples utilização e para o qual existe bastante material didático disponível.
Sumário
Modelagem
Esquema Conceitual
Esquema Lógico
Implementação
Knex
Para a interação com o banco de dados, optou-se por utilizar o Knex como query builder, de forma a tornar o código menos dependente de um banco de dados específico e a facilitar as consultas e alterações no esquema do banco de dados.
Migrations com Knex
No projeto são utilizadas migrations para auxiliar no versionamento das alterações no esquema do banco de dados que são feitas. Para cada uma dessas alterações (ex.: criação de nova tabela), deve ser criado um arquivo de migration a partir do comando abaixo:
npx knex migrate:make nome_da_migration -x ts
Neste arquivo, estarão criados por padrão dois métodos vazios: up e down. O método up é executado para aplicar esta atualização no esquema do banco, enquanto o método down é executado para desfazer esta atualização, retornando para uma versão anterior do esquema. Assim, seguindo o exemplo da nova tabela, no método up deve ser construída uma sentença para criar esta tabela, enquanto o método down seria utilizado para remover esta tabela.
Para atualizar o banco de dados a partir das migrations, execute o comando abaixo.
npx knex migrate:latest
Materiais para estudos sobre Knex
Schemas
TBD
Postgrees
TBD