Modelagem de Relacionamentos e Chaves: Cenários de Negócio em Bancos de Dados

Aluno: Luiz Ihara RM 368484

Professor: William Luis Domingues

Cenário Escolhido

Cenário 5 – Gestão de Pessoas (RH)

Uma empresa quer organizar melhor sua gestão de pessoas.

Vamos pensar num APP para isso de forma que seja possível responder as perguntas abaixo. Se sim, o APP está em linha com o que a empresa quer.

  • Quem trabalha na empresa hoje?
  • Em quais áreas as pessoas atuam?
  • Quem lidera quem?
  • Como registrar mudanças ao longo do tempo?

Modelo Entidade-Relacionamento

Abaixo está a representação visual da modelagem de dados proposta para resolver o cenário do RH, atendendo ao histórico de mudanças e cardinalidade (1:N).

erDiagram FUNCIONARIO { int id PK string nome_completo string email date data_admissao string status } DEPARTAMENTO { int id PK string nome_departamento } CARGO { int id PK string titulo_cargo } HISTORICO_ALOCACAO { int id PK int funcionario_id FK int departamento_id FK int cargo_id FK int gestor_id FK date data_inicio date data_fim } FUNCIONARIO ||--o{ HISTORICO_ALOCACAO : "1 : N (possui)" DEPARTAMENTO ||--o{ HISTORICO_ALOCACAO : "1 : N (aloca)" CARGO ||--o{ HISTORICO_ALOCACAO : "1 : N (define)" FUNCIONARIO ||--o{ HISTORICO_ALOCACAO : "1 : N (gerencia como líder)"

Código erDiagram (Mermaid)

Código utilizado para gerar a modelagem acima, definindo as entidades, atributos, chaves (PK/FK) e as cardinalidades de relacionamento.

erDiagram
    FUNCIONARIO {
        int id PK
        string nome_completo
        string email
        date data_admissao
        string status
    }
    DEPARTAMENTO {
        int id PK
        string nome_departamento
    }
    CARGO {
        int id PK
        string titulo_cargo
    }
    HISTORICO_ALOCACAO {
        int id PK
        int funcionario_id FK
        int departamento_id FK
        int cargo_id FK
        int gestor_id FK
        date data_inicio
        date data_fim
    }

    FUNCIONARIO ||--o{ HISTORICO_ALOCACAO : "1 : N (possui)"
    DEPARTAMENTO ||--o{ HISTORICO_ALOCACAO : "1 : N (aloca)"
    CARGO ||--o{ HISTORICO_ALOCACAO : "1 : N (define)"
    FUNCIONARIO ||--o{ HISTORICO_ALOCACAO : "1 : N (gerencia como líder)"
🌐 Você está visitando o site de luizihara.github.io