|
|
|
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [**BD**](bd) | [Qualidade](qualidade) | [Utilização](utilizacao) |
|
|
|
|
| :--------------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: |
|
|
|
|
|
|
|
|
# Seção de Banco de Dados do Projeto
|
|
|
|
|
|
|
|
## Sumário
|
|
|
|
|
|
|
|
- [Introdução](#introdução)
|
|
|
|
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
|
|
|
|
- [PostgreSQL](#postgresql)
|
|
|
|
- [Prisma](#prisma)
|
|
|
|
- [Arquitetura do Banco de Dados](#arquitetura-do-banco-de-dados)
|
|
|
|
- [Considerações de Segurança](#considerações-de-segurança)
|
|
|
|
- [Diagramas](#diagramas)
|
|
|
|
|
|
|
|
## Introdução
|
|
|
|
|
|
|
|
Esta seção da Wiki é dedicada a fornecer informações detalhadas sobre a implementação e manutenção do banco de dados no nosso projeto. Utilizamos o PostgreSQL como nosso banco de dados relacional e o Prisma como nosso Object-Relational Mapping (ORM) para facilitar a comunicação e manipulação de dados entre nosso código e o banco de dados.
|
|
|
|
|
|
|
|
## Tecnologias Utilizadas
|
|
|
|
![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)
|
|
|
|
![Prisma](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white)
|
|
|
|
|
|
|
|
|
|
|
|
### PostgreSQL
|
|
|
|
|
|
|
|
O PostgreSQL é um sistema de gerenciamento de banco de dados relacional de código aberto. Ele é conhecido por sua robustez, escalabilidade e por cumprir os padrões SQL de forma rigorosa. Algumas de suas características avançadas incluem:
|
|
|
|
|
|
|
|
- Transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade)
|
|
|
|
- Suporte extensivo a tipos de dados
|
|
|
|
- Índices personalizáveis
|
|
|
|
- Capacidades de armazenamento JSON
|
|
|
|
- Extensibilidade e suporte a PL/pgSQL, PL/Tcl, PL/Perl e Java
|
|
|
|
|
|
|
|
### Prisma
|
|
|
|
|
|
|
|
O Prisma é um ORM moderno utilizado para acessar de forma fácil e segura bancos de dados em aplicações Node.js e TypeScript. Ele fornece uma camada de abstração sobre SQL que permite realizar operações CRUD de forma simplificada. As principais vantagens de utilizar o Prisma incluem:
|
|
|
|
|
|
|
|
- Modelagem de dados eficiente
|
|
|
|
- Migrações de banco de dados simplificadas
|
|
|
|
- Um API de consulta fortemente tipada
|
|
|
|
- Operações CRUD otimizadas
|
|
|
|
|
|
|
|
## Arquitetura do Banco de Dados
|
|
|
|
|
|
|
|
A arquitetura do nosso banco de dados foi projetada para otimizar o desempenho, garantir a segurança dos dados e permitir escalabilidade fácil. Temos várias tabelas inter-relacionadas, que são acessadas e manipuladas através de nossa API, utilizando o Prisma como intermediário para essas operações.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### Diagramas
|
|
|
|
|
|
|
|
Abaixo podemos visualizar o diagrama entidade-relacionamento do projeto DoBem feito com a ferramenta DrawSql. As entidades abaixo e seus relacionamentos visam a implementar todos os fluxos elicitados nos requisitos do projeto.
|
|
|
|
|
|
|
|
![image](uploads/4abc9a675dd25e95f1223f2cc6816e94/image.png)
|
|
|
|
|
|
|
|
## Considerações de Segurança
|
|
|
|
|
|
|
|
- **Autenticação**: Utilizamos métodos seguros de autenticação para garantir que apenas usuários autorizados tenham acesso ao banco de dados.
|
|
|
|
- **Criptografia**: Todos os dados sensíveis são criptografados antes de serem armazenados.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
Espero que esta documentação ofereça uma visão clara e abrangente do nosso sistema de banco de dados. Qualquer dúvida ou contribuição para aprimorar esta documentação é sempre bem-vinda. |