Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Coopera RS
  • Wiki
  • Wiki
  • banco de dados

Last edited by Arthur Zanella Lovato Jun 22, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

banco de dados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Infra Código BD

Documentação do Banco de dados

Neste projeto, utilizamos um banco de dados misto, com a base em um banco de dados relacional - utilizando o PostgreSQL - para os dados de quase toda a aplicação, exceto pela lógica dos carrinhos de compras dos usuários, que foi feita de maneira não relacional - utilizando o Redis - para ter um melhor desempenho com esses registros de maior volatilidade.

Banco de Dados Relacional PostgreSQL 15

Neste projeto, utilizamos o PostgreSQL 15 como nosso sistema de gerenciamento de banco de dados. O PostgreSQL é um sistema de banco de dados relacional de código aberto altamente confiável e poderoso, que oferece suporte a uma variedade de recursos avançados, como transações, indexação eficiente e consultas complexas.

Modelo Conceitual

A modelagem conceitual foi feita utilizando a ferramenta Astah Professional:

Captura_de_tela_2025-06-18_212403

Modelo Lógico

A modelagem lógica foi feita utilizando a ferramenta online DrawSQL, por oferecer suporte às funcionalidades específicas do PostgreSQL:

drawSQL-image-export-2025-06-16 image

Funções de Acesso

Foram feitas Stored Procedures para limitar o acesso ao banco, de maneira que seja controlada. Foram feitas funções para todos os métodos necessários de inserção, remoção, atualização e visualização dos dados.

PostgreSQL 15

image

  • Desempenho: O PostgreSQL é conhecido por seu desempenho excepcional, especialmente quando se trata de consultas complexas e grandes conjuntos de dados.
  • Confiabilidade: É altamente confiável, com suporte a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para garantir a integridade dos dados.
  • Escalabilidade: O PostgreSQL é escalável e pode lidar com cargas de trabalho crescentes à medida que o projeto se expande.

Banco de Dados Não Relacional com Redis

Neste projeto, utilizamos o Redis como nosso sistema de gerenciamento de banco de dados não relacional. O Redis é um banco de dados em memória de código aberto, amplamente utilizado por sua alta performance, simplicidade e suporte a estruturas de dados avançadas, como listas, conjuntos, hashes e strings.

Utilizamos uma estrutura em JSON com a lista de itens do carrinho, contendo todas as informações necessárias em cada item, e indexado pelo ID do usuário, aproveitando que o carrinho e o usuário tem uma relação 1-1.

{
	"id_user": 17,
	"id_store": 3,
	"items": [
		{
			"id": 9,
			"storeID": 3,
			"name": "Produto 1",
			"description": "Produto teste",
			"photos": [
				"https://example.com/photo.jpg"
			],
			"category": [
				{
					"id": 1,
					"name": "Roupas"
				}
			],
			"variant": {
				"price": 10,
				"stock": 1,
				"options": {
					"Cor": "Vermelho",
					"Tamanho": "M"
				}
			},
			"quantity": 5,
			"lastUpdated": "2025-06-16T17:28:04.576495"
		}
	]
}

Redis

image

  • Desempenho: O Redis é extremamente rápido, oferecendo operações com latência muito baixa, uma vez que armazena todos os dados diretamente na memória. Isso o torna ideal para aplicações que exigem respostas em tempo real.

  • Confiabilidade: Apesar de ser um banco em memória, o Redis oferece mecanismos robustos de persistência, como snapshots e log de operações (AOF), garantindo a durabilidade dos dados mesmo em caso de falhas.

  • Escalabilidade: O Redis é altamente escalável, suportando replicação, particionamento de dados (sharding) e integração com soluções de alta disponibilidade (Redis Sentinel) e escalabilidade horizontal (Redis Cluster), permitindo seu uso em aplicações com grande volume de acessos simultâneos.

Clone repository
  • API Backend
  • Escopo e Cronograma
  • Frontend
  • Processo
  • arquitetura
  • banco de dados
  • codigo
  • configuracao
  • design
    • mockups
  • Home
  • infraestrutura