Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Point-Tills-Wiki Point-Tills-Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • 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
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Point Tils um aplicativo para interpretes de Lingua Brasileira de Sinais
  • Point-Tills-WikiPoint-Tills-Wiki
  • Wiki
  • banco_de_dados

Last edited by Augusto Baldino Oct 11, 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 Processo Design/Mockups Configuração Arquitetura Gerência BD Qualidade Frontend Backend

Banco de Dados

Esta página é dedicada ao banco de dados utilizado no projeto.

Sumário

  • Descrição
  • Modelagem
  • Tabelas e Relações

Descrição

O PostgreSQL é um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) de código aberto que oferece um ambiente altamente escalável e seguro para armazenamento e recuperação de dados. Sua arquitetura modular e flexível, combinada com recursos avançados como transações ACID e suporte a JSON, tornou-o uma escolha preferencial para este projeto.

Modelagem

Esquema Conceitual

A modelagem conceitual é a primeira etapa do processo de construção de um banco de dados. Ela tem como objetivo representar graficamente os dados e as relações do mundo real que se busca modelar, de forma independente de qualquer tecnologia ou SGBD.

Inicialmente, foi elaborada a modelagem conceitual com o objetivo de compreender as entidades presentes no domínio do problema e as relações existentes entre elas. Durante esse processo, o grupo identificou as seguintes entidades: Usuário, Cliente, Empresa, Atendimento, Avaliação, Intérprete, Especialidade e Disponibilidade. A partir dessa identificação, foram definidos os relacionamentos entre as entidades, representando a dinâmica do sistema de forma abstrata e independente de implementação. A equipe optou por não incluir os atributos nem as cardinalidades nessa etapa, concentrando esses detalhes na modelagem relacional, onde seriam mais adequadamente representados de acordo com as regras do modelo lógico de banco de dados.

image

Esquema Lógico

Concluída a modelagem conceitual, partiu-se para a modelagem lógica, onde o modelo abstrato foi transformado em uma estrutura relacional composta por tabelas normalizadas, com chaves primárias, estrangeiras e restrições de integridade, visando garantir a consistência dos dados e evitar redundâncias.

image

Em seguida, essa modelagem lógica é convertida em uma modelagem física, que consiste na criação do banco de dados real dentro de um SGBD específico. Nesta etapa serão gerados os scripts SQL para criar as tabelas, índices, relacionamentos e demais objetos necessários ao funcionamento do sistema.

Modelagem Física e Implementação

To do

Tabelas e Relações

user

Representa os usuários do sistema (clientes, intérpretes ou empresas).

Atributos: id (PK), email, password, phone, picture, status, type.

Relacionamentos: 1:1 com person (usuário pessoa física). 1:1 com enterprise (usuário pessoa jurídica). 1:N com location. N:N com specialties (via user_specialties). 1:N com appointment.

person

Armazena dados pessoais de um usuário físico.

Atributos: id (PK), name, gender, birthday, cpf.

Relacionamentos: 1:1 com user. 1:1 com interpreter. 1:N com appointment — uma pessoa pode ter vários atendimentos registrados na agenda do sistema.

location

Guarda informações de endereço relacionadas a um usuário.

Atributos: id (PK), UF, city, user_id.

Relacionamentos: FK para user.

enterprise

Empresa solicitante do serviço de interpretação.

Atributos: id (PK), corporate_reason, cnpj.

Relacionamentos: 1:1 com user (cada empresa é um usuário do sistema). 1:N com appointment (uma empresa pode solicitar vários atendimentos com intérprete).

specialties

Atributos: id (PK), name

Relacionamentos: N:N com user (via user_specialties)

interpreter

Atributos: id (PK), cnpj, rating, min_value, max_value, image_rights, modality, description

Relacionamentos: 1:1 com person (cada intérprete é uma pessoa) 1:N com interpreter_documents (um intérprete pode ter vários documentos) 1:N com schedule (um intérprete pode ter várias disponibilidades) 1:N com appointment (um intérprete pode realizar vários atendimentos)

user_specialties (tabela associativa)

Atributos: id (PK), user_id, specialtie_id

Relacionamentos: N:1 com user N:1 com specialties Implementa um relacionamento N:N entre user e specialties

interpreter_documents

Atributos: id (PK), interpreter_id, document

Relacionamentos: N:1 com interpreter (cada documento pertence a um intérprete)

schedule

Atributos: id (PK), day, start_time, end_time

Relacionamentos: N:1 com interpreter (um intérprete pode ter vários horários disponíveis)

appointment

Atributos: id (PK), UF, city, modality, date, description, status, interpreter_id, user_id, start_time, end_time

Relacionamentos: N:1 com user N:1 com interpreter N:1 com enterprise N:1 com person (quem será atendido)

rating

Atributos: id (PK), stars, description, appointment_id

Relacionamentos: 1:1 com appointment (cada avaliação está vinculada a um atendimento)

Clone repository

Logo-Dark_Blue

Point Tils


Home

Arquitetura

Backend

Banco de Dados

Configuração

Design/Mockups

Escopo

Frontend

Gerência

Processo

Qualidade


Sprint 0

Sprint 1

Sprint 2

Sprint 3

Sprint 4