Skip to content

Documentação de Modelagem Relacional de Banco de Dados

Versões

Data Versão Descrição Responsáveis
28/06/2025 0.1 Criação do documento Maelton Lima dos Santos
30/06/2025 0.2 Adiciona estrutura do documento Maelton Lima dos Santos
30/06/2025 0.3 Adiciona gerenciamento de autenticacao Maelton Lima dos Santos
30/06/2025 0.4 Adiciona gerenciamento de produtos Maelton Lima dos Santos
30/06/2025 0.5 Adiciona gerenciamento de clientes Maelton Lima dos Santos
01/07/2025 0.6 Adiciona gerenciamento de colaboradores Maelton Lima dos Santos
01/07/2025 0.7 Adiciona gerenciamento de contratos Maelton Lima dos Santos
01/07/2025 0.8 Adiciona gerenciamento de slas Maelton Lima dos Santos
01/07/2025 0.9 Adiciona gerenciamento de chamados Maelton Lima dos Santos
01/07/2025 0.10 Adiciona gerenciamento de chat Maelton Lima dos Santos
01/07/2025 0.11 Adiciona gerenciamento de faq Maelton Lima dos Santos
01/07/2025 0.12 Adiciona gerenciamento de feedback Maelton Lima dos Santos
01/07/2025 0.13 Adiciona gerenciamento de audit Maelton Lima dos Santos
01/07/2025 1.0 Adiciona modelo relacional Maelton Lima dos Santos

Descrição

Este documento apresenta a modelagem relacional do banco de dados do sistema BRISA Helpdesk, com o objetivo de descrever a estrutura lógica das tabelas, suas relações, restrições e propósitos dentro da aplicação.

Este documento será atualizado conforme novas entidades forem sendo adicionadas à base de dados e mudanças forem realizadas na estrutura existente.

Modelagem Completa

Principais Módulos da Aplicação

1. Gerenciamento de Autenticação

1.1 Modelo Conceitual

erDiagram
    Usuario }o--o| Pergunta_Seguranca : pode_ter
    Usuario }o--o{ Papel_no_Sitema : tem
    Papel_no_Sitema }o--o{ Privilegio_de_Uso : tem
    Usuario }o--o{ Servidor_oAuth : pode_autenticar_via
    Usuario ||--o| Cliente : especializa
    Usuario ||--o| Usuario_de_Cliente : especializa
    Usuario ||--o| Colaborador : especializa
    Cliente ||--o{ Usuario_de_Cliente : pode_ter

1.2 Descrição

O módulo de Gerenciamento de Autenticação gerencia a autenticação e autorização de usuários no sistema BRISA Helpdesk. Ele suporta três tipos de usuários que podem fazer login: Client (clientes, especialização em tb_client), ClientUser (usuários vinculados a clientes, especialização em tb_client_user), e Employee (funcionários, especialização em tb_employee).

O módulo inclui a gestão de credenciais de login, perguntas de segurança para recuperação de contas, papéis (roles) e privilégios para controle de acesso, além de suporte a autenticação via provedores OAuth2/OpenID Connect. Este módulo assegura acesso seguro e controlado às funcionalidades do sistema, com suporte a associações de papéis e permissões, bem como integração com provedores externos de autenticação.

As principais entidades incluem:

  • Usuários (tb_user): Armazena informações de autenticação dos usuários (Client, ClientUser, Employee), como nome de usuário, hash de senha e status da conta.
  • Perguntas de Segurança (tb_security_question): Contém perguntas usadas para recuperação de contas, associadas a respostas criptografadas por usuário.
  • Papéis (tb_role): Define os papéis do sistema que determinam níveis de acesso.
  • Privilégios (tb_privilege): Armazena permissões atômicas associadas a papéis.
  • Provedores OAuth (tb_oauth_provider): Configurações para autenticação via provedores externos, como Google ou Microsoft.
  • Associações de Usuários com Provedores OAuth (tb_user_oauth_provider): Relaciona usuários a contas externas de autenticação.
  • Relações M:N: Incluem associações entre usuários e papéis (tb_user_role) e entre papéis e privilégios (tb_role_privilege).
  • Tipos de Usuários:
    • Client: Representa clientes (pessoa física ou jurídica) registrados em tb_client.
    • ClientUser: Usuários vinculados a clientes, registrados em tb_client_user, com login próprio por cliente.
    • Employee: Funcionários da empresa, registrados em tb_employee.

1.3 Modelo Relacional

2. Gerenciamento de Produtos

2.1 Modelo Conceitual

erDiagram
    Item_de_Catalogo }o--|| Tipo : tem
    Item_de_Catalogo ||--o| Produto : especializa
    Item_de_Catalogo ||--o| Servico : especializa
    Item_de_Catalogo }o--o{ Contrato : pode_estar_associado_a
    Item_de_Catalogo }o--o{ SLA : pode_estar_associado_a

2.2 Descrição

O módulo de Gerenciamento de Produtos é responsável por gerenciar os itens do catálogo do sistema BRISA Helpdesk, que incluem produtos e serviços oferecidos aos clientes. Ele organiza os itens do catálogo em tipos específicos e permite a especialização em produtos (físicos ou não) e serviços (físicos ou não).

Este módulo é essencial para associar itens do catálogo a contratos (por meio da tabela tb_contract_catalog_item) e a acordos de nível de serviço (SLAs, por meio da tabela tb_sla_catalog_item), garantindo que os serviços e produtos disponíveis sejam corretamente classificados, rastreados e vinculados às obrigações contratuais e de atendimento do sistema.

As principais entidades incluem:

  • CatalogItem (tb_catalog_item): Tabela base que armazena informações gerais sobre itens do catálogo, como produtos e serviços.
  • CatalogItemType (tb_catalog_item_type): Define os tipos de classificação para itens do catálogo (e.g., "Hardware", "Software", "Suporte Técnico").
  • Product (tb_product): Especialização de CatalogItem que representa produtos, com a distinção de serem físicos ou não.
  • Service (tb_service): Especialização de CatalogItem que representa serviços, com a distinção de serem físicos ou não.
  • Contract (tb_contract): Representa contratos associados a clientes, que podem incluir múltiplos itens do catálogo.
  • SLA (tb_sla): Define acordos de nível de serviço, que podem estar associados a itens do catálogo para especificar tempos de resposta e resolução.

2.3 Modelo Relacional

3. Gerenciamento de Clientes

3.1 Modelo Conceitual

erDiagram
    Cliente }o--|| Tipo : tem
    Cliente }o--|| Status : tem
    Cliente }o--|| Endereco : tem
    Cliente }o--|| Telefone : tem
    Usuario ||--o| Cliente : especializa
    Cliente ||--o| Cliente_CPF : especializa
    Cliente ||--o| Cliente_CNPJ : especializa
    Cliente ||--o{ Usuario_de_Cliente : associa
    Usuario ||--o| Usuario_de_Cliente : especializa
    Cliente }o--o{ Setor_de_Mercado : associado_a
    Cliente }o--o{ Segmento_de_Mercado : associado_a
    Cliente_CNPJ }o--|| CompanyCategory : tem

3.2 Descrição

O módulo de Gerenciamento de Clientes é responsável por gerenciar as informações dos clientes no sistema BRISA Helpdesk, incluindo pessoas físicas (tb_individual_client) e jurídicas (tb_corporate_client), bem como usuários vinculados a clientes (tb_client_user). Ele categoriza os clientes por tipo, status, setores de negócios e segmentos, além de associar endereços e números de telefone.

Este módulo permite o rastreamento detalhado de informações de contato, classificações de clientes e suas associações com setores e segmentos de negócios, garantindo uma gestão eficiente das relações com os clientes.

As principais entidades incluem:

  • Client (tb_client): Tabela base para todos os clientes, vinculada a um usuário (tb_user) e associada a um tipo, status, endereço e telefone.
  • ClientType (tb_client_type): Define categorias de clientes (e.g., "Premium", "Standard").
  • ClientStatus (tb_client_status): Define os status possíveis para clientes (e.g., "Ativo", "Inativo").
  • IndividualClient (tb_individual_client): Especialização de Client para pessoas físicas, com informações como CPF e data de nascimento.
  • CorporateClient (tb_corporate_client): Especialização de Client para empresas, com informações como CNPJ e razão social.
  • Address (tb_address): Armazena informações de endereços físicos dos clientes.
  • Phone (tb_phone): Armazena números de telefone associados aos clientes.
  • ClientUser (tb_client_user): Representa usuários vinculados a clientes, com login próprio por cliente.
  • BusinessSector (tb_business_sector): Define setores de negócios (e.g., "Tecnologia", "Varejo") associados a clientes.
  • BusinessSegment (tb_business_segment): Define segmentos de negócios (e.g., "Software", "E-commerce") associados a clientes.
  • CompanyCategory (tb_company_category): Define categorias de empresas com base no tamanho (número de funcionários).

3.3 Modelo Relacional

4. Gerenciamento de Colaboradores

4.1 Modelo Conceitual

erDiagram
    Usuario ||--o| Colaborador : especializa
    Colaborador }o--o| Telefone : pode_ter
    Colaborador }o--o| Endereco : pode_ter
    Colaborador }o--|| Cargo : ocupa
    Colaborador }o--|| Status : tem
    Colaborador }o--o| Departamento : pode_ter
    Colaborador }o--o| Branch : pode_ter
    Colaborador }o--o{ Horario_de_Trabalho : associado_a
    Cargo }o--o{ JobSpecialization : pode_ter
    Colaborador |o--o{ Colaborador : pode_supervisionar
    Branch }o--|| Endereco : tem

4.2 Descrição

O módulo de Gerenciamento de Colaboradores é responsável por gerenciar as informações dos funcionários (employees) do sistema BRISA Helpdesk. Ele inclui detalhes sobre cargos, especializações, departamentos, filiais, status dos funcionários, horários de trabalho e informações de contato, como endereços e telefones.

Este módulo permite o rastreamento de hierarquias (supervisores), alocação de cargos e especializações, associação a departamentos e filiais, bem como a definição de horários de trabalho semanais, garantindo uma gestão eficiente dos recursos humanos da organização.

As principais entidades incluem:

  • Employee (tb_employee): Tabela base para funcionários, vinculada a um usuário (tb_user) e associada a cargos, departamentos, filiais, status e informações de contato.
  • JobPosition (tb_job_position): Define os cargos disponíveis na organização (e.g., "Técnico de Suporte", "Gerente").
  • JobSpecialization (tb_job_specialization): Define especializações que podem ser associadas a cargos (e.g., "Redes", "Segurança").
  • Department (tb_department): Representa departamentos dentro da organização (e.g., "TI", "RH").
  • Branch (tb_branch): Representa filiais da empresa, cada uma associada a um endereço.
  • EmployeeStatus (tb_employee_status): Define os status possíveis para funcionários (e.g., "Ativo", "Demitido").
  • WorkSchedule (tb_work_schedule): Define horários de trabalho semanais (e.g., dias da semana e horários).
  • User (tb_user): Entidade de autenticação que Employee especializa, contendo credenciais de login.
  • Address (tb_address): Armazena endereços físicos associados a funcionários e filiais.
  • Phone (tb_phone): Armazena números de telefone associados aos funcionários.

4.3 Modelo Relacional

5. Gerenciamento de Contratos

5.1 Modelo Conceitual

erDiagram
    Contrato }o--|| Status : tem
    Contrato }o--|| Tipo : tem
    Contrato }o--|| Cliente : tem
    Contrato }o--o{ Produto_Servico : possui
    Produto_Servico }o--o{ SLA : pode_ter
    Contrato }o--o{ Usuario_de_Cliente : pode_estar_associado_a
    Cliente ||--o{ Usuario_de_Cliente : pode_ter
    Contrato }o--o{ SLA : pode_estar_associado_a

5.2 Descrição

O módulo de Gerenciamento de Contratos é responsável por gerenciar os contratos associados aos clientes no sistema BRISA Helpdesk. Ele permite a criação, rastreamento e categorização de contratos, vinculando-os a clientes, usuários relacionados aos clientes (ClientUsers), itens do catálogo (produtos ou serviços) e acordos de nível de serviço (SLAs).

Este módulo assegura a gestão eficiente das obrigações contratuais, incluindo status, tipos de contratos, associações com itens do catálogo e SLAs, além de permitir que usuários vinculados a clientes (ClientUsers) sejam associados a contratos para facilitar a gestão de interações.

As principais entidades incluem:

  • Contract (tb_contract): Tabela base para contratos, associada a um cliente, tipo de contrato, status, itens do catálogo, SLAs e usuários vinculados a clientes.
  • ContractStatus (tb_contract_status): Define os status possíveis para contratos (e.g., "Ativo", "Cancelado").
  • ContractType (tb_contract_type): Define os tipos de contratos (e.g., "Manutenção", "Suporte").
  • Client (tb_client): Representa os clientes associados aos contratos.
  • ClientUser (tb_client_user): Representa usuários vinculados a clientes, que podem ser associados a contratos para gerenciar interações específicas.
  • CatalogItem (tb_catalog_item): Representa itens do catálogo (produtos ou serviços) vinculados aos contratos.
  • SLA (tb_sla): Define acordos de nível de serviço, associados a itens do catálogo vinculados a contratos.
  • ContractCatalogItem (tb_contract_catalog_item): Tabela de junção que associa contratos a itens do catálogo, permitindo múltiplos itens por contrato e múltiplos contratos por item.

5.3 Modelo Relacional

6. Gerenciamento de SLAs

6.1 Modelo Conceitual

erDiagram
    SLA }o--|| Status : tem
    SLA }o--|| Tipo : tem
    SLA }o--o{ Item_de_Catalogo : pode_estar_associada_a
    SLA }o--o{ Contrato : pode_estar_associada_a
    SLA }o--o{ Tipo_de_Chamado : pode_estar_associada_a
    SLA ||--o{ Calendario : tem
    Calendario }o--o{ Excecao : pode_ter

6.2 Descrição

O módulo de Gerenciamento de SLAs é responsável por gerenciar os Acordos de Nível de Serviço (SLAs) no sistema BRISA Helpdesk. Ele permite a criação, rastreamento e categorização de SLAs, que definem os tempos de resposta e resolução para serviços ou produtos associados a contratos, itens do catálogo ou tipos de chamados.

Os SLAs são vinculados a itens do catálogo (produtos ou serviços), contratos (indiretamente via itens do catálogo), e tipos de chamados para especificar os compromissos de atendimento. Cada SLA é associada a um calendário (tb_calendar) que define os períodos de operação, e esses calendários podem ter exceções (tb_calendar_exception) para feriados ou eventos específicos.

Este módulo assegura a gestão eficiente dos acordos de nível de serviço, incluindo status, prioridades (definidas na tabela tb_sla_priority), associações com itens do catálogo, contratos, tipos de chamados e calendários.

As principais entidades incluem:

  • SLA (tb_sla): Tabela base para acordos de nível de serviço, associada a um status, prioridade, itens do catálogo, tipos de chamados, contratos (via itens do catálogo) e calendário.
  • SLAPriority (tb_sla_priority): Define as prioridades de SLAs (e.g., "Alta", "Baixa"), anteriormente referida como tipo de SLA.
  • CatalogItem (tb_catalog_item): Representa itens do catálogo (produtos ou serviços) que pode ser associados aos SLAs.
  • Contract (tb_contract): Representa contratos associados a SLAs indiretamente via itens do catálogo ou que podem ser associados aos SLAs.
  • TicketType (tb_ticket_type): Define tipos de chamados (e.g., "Incidente", "Solicitação") que podem ser associados aos SLAs.
  • Calendar (tb_calendar): Define os períodos operacionais dos SLAs (e.g., horários de trabalho).
  • CalendarException (tb_calendar_exception): Define exceções nos calendários, como feriados ou eventos específicos.

6.3 Modelo Relacional

7. Gerenciamento de Chamados

7.1 Modelo Conceitual

erDiagram
    Chamado }o--|| SLA : tem
    Chamado }o--|| Contrato : tem
    Chamado }o--|| Cliente_do_Contrato : tem
    Chamado }o--|| Solicitante : tem
    Chamado }o--|| Produto_Servico : tem
    Chamado }o--|| Tipo : tem
    Chamado ||--o{ Anexo : pode_ter
    Chamado ||--o{ Sessao : pode_ter

    Sessao }o--|| Tipo : tem
    Sessao }o--|| Status : tem
    Sessao ||--o| Feedback : pode_ter
    Sessao ||--o{ Atendimento : pode_ter

    Atendimento }o--|| Agente : tem
    Atendimento }o--|| Tipo_Atendimento : tem
    Atendimento }o--|| Status : tem
    Atendimento ||--o{ Chat : pode_ter
    Atendimento ||--o{ FAQ : pode_ter

7.2 Descrição

O módulo de Gerenciamento de Chamados é responsável por gerenciar os chamados (tickets) no sistema BRISA Helpdesk. Ele permite a criação, rastreamento e resolução de chamados, associando-os a clientes, usuários vinculados a clientes (ClientUsers), funcionários, SLAs, itens do catálogo e anexos. Cada chamado pode ter múltiplas sessões (tb_session), que representam interações contínuas para resolução.

Cada sessão pode ter um atendimento (tb_interaction), que é classificado por um tipo de interação (e.g., "Telefone", "E-mail"). Um atendimento pode, opcionalmente, estar associado a um chat (tb_chat), uma FAQ (tb_faq) ou ambos, mas também pode não ter nenhum dos dois.

Este módulo assegura a gestão eficiente dos chamados, incluindo status, tipos, associações com SLAs, itens do catálogo, sessões, atendimentos e anexos.

7.3 Modelo Relacional

As relações foram extramamente reduzidas, observe as foreign keys para ter maior precisão.

8. Gerenciamento de Chats

8.1 Modelo Conceitual

erDiagram
    Chat }o--|| Status : tem
    Chat }o--|| Atendimento : tem
    Chat ||--o{ Mensagem : pode_ter
    Mensagem }o--|| Usuario : tem
    Mensagem ||--o{ Anexo : pode_ter

8.2 Descrição

O módulo de Gerenciamento de Chats é responsável por gerenciar as conversas de chat no sistema BRISA Helpdesk, que ocorrem como parte de atendimentos (tb_ticket_handling) associados a chamados (tickets). Os chats são vinculados a interações específicas, que por sua vez estão relacionadas a sessões de chamados.

Este módulo assegura a gestão eficiente das conversas, permitindo o rastreamento de interações de suporte e a associação com os respectivos chamados e usuários.

8.3 Modelo Relacional

9. Gerenciamento de Base de Conhecimento

9.1 Modelo Conceitual

erDiagram
    FAQ }o--|| Artigo : tem
    Artigo }o--o{ Categoria : pode_ter
    Artigo }o--o{ Tag : pode_ter

9.2 Descrição

O módulo de Gerenciamento de FAQ (Base de Conhecimento) é responsável por gerenciar as perguntas frequentes (FAQs) no sistema BRISA Helpdesk, que compõem a base de conhecimento utilizada para suporte e resolução de chamados.

As FAQs são organizadas por categorias e podem ser referenciadas em atendimentos (tb_ticket_handling) associados a sessões de chamados. Cada FAQ pode ser criada ou atualizada por usuários.

Este módulo assegura a gestão eficiente do conhecimento, permitindo o rastreamento de FAQs, suas categorias e associações com atendimentos em chamados.

9.3 Modelo Relacional

10. Gerenciamento de Feedback

10.1 Modelo Conceitual

erDiagram
    Feedback_de_Sessao |o--|| Usuario : tem
    Feedback_de_Sessao |o--|| Valor_de_Avaliacao : tem
    Feedback_de_Sessao |o--|| Sessao_de_Chamado : tem

10.2 Descrição

O módulo de Gerenciamento de Feedback é responsável por gerenciar os feedbacks fornecidos por usuários no sistema BRISA Helpdesk. Os feedbacks são associados às sessões de chamado e permitem que solicitantes avaliem a qualidade do atendimento ou serviço prestado.

Este módulo assegura a coleta e rastreamento de avaliações, vinculando-as aos respectivos chamados e usuários, para melhorar a experiência do cliente e a eficiência do suporte.

10.3 Modelo Relacional

11. Gerenciamento de Auditoria

11.1 Modelo Conceitual

erDiagram
    Auditoria |o--|| Tabela : tem
    Auditoria |o--|| Coluna : tem
    Auditoria |o--|| Identificador_de_Registro : tem
    Auditoria |o--|| Valor_Anterior : tem
    Auditoria |o--|| Novo_Valor : tem
    Auditoria |o--|| Responsavel : tem
    Auditoria |o--|| Data : tem    

11.2 Descrição

O módulo de Gerenciamento de Auditoria é responsável por gerenciar os registros de auditoria no sistema BRISA Helpdesk. Ele rastreia as ações realizadas por usuários.

Os registros de auditoria (tb_general_audit) capturam eventos relacionados a alterações ou exclusões no sistema, associados a um usuário específico, garantindo transparência e rastreabilidade das operações.

Este módulo assegura a gestão eficiente dos logs de auditoria, permitindo monitorar atividades realizadas por diferentes tipos de usuários.

11.3 Modelo Relacional