Modelagem de Dados
Introdução
A modelagem de dados é um processo muito importante do desenvolvimento de um software, pois está relacionado com a demonstração de como serão construídas as estruturas de dados que darão suporte aos processos de negócio, e como esses dados estarão organizados e quais relacionamentos podemos estabelecer entre eles. O principal papel da modelagem é descrever a abstração, que é o processo de trazer para o mundo digital as informações e requisitos que os clientes propuseram no mundo real, de modo a absorver o negócio de forma suficiente.
Essa modelagem é dividida entre conceitual, lógica e física. Neste documento, focaremos em demonstrar as duas primeiras etapas, a conceitual, com a documentação do Diagrama Entidade-Relacionamento, e a lógica, com o Diagrama Lógico de Dados e o Dicionário de Dados para complementá-lo.
Modelo Entidade-Relacionamento (ME-R)
Neste nível são levantadas as entidades, que buscam representar objetos da vida real, os atributos, que são suas características e os relacionamentos, que são o que faz associação entre uma e outra entidade (representando a relação entre esses objetos no mundo real), possuindo cada um sua própria cardinalidade.
Entidades
- VAGA
- EMPRESA
- CANDIDATO
- LOCALIZACAO
- CURSO
- INSTITUICAO
- ESCOLARIDADE
Atributos
- VAGA (idVaga, tituloVaga, descricaoVaga, modeloTrabalho, cargaHoraria, requisitos, privilegios, bolsa, siteVaga, status, cnpjEmpresa, idLocalizacao)
- EMPRESA (cnpj, nomeEmpresa, siteEmpresa, descricaoEmpresa, idLocalizacao)
- CANDIDATO (cpf, nomeCompleto, email, descricaoCandidato, curriculo, idEscolaridade, idInstituicao, idCurso, idLocalizacao)
- LOCALIZACAO (idLocalizacao, cidade, uf)
- CURSO (idCurso, nomeCurso, idEscolaridade)
- INSTITUICAO (idInstituicao, nomeInstituicao, idEscolaridade)
- ESCOLARIDADE (idEscolaridade, nomeEscolaridade)
Relacionamentos
- CANDIDATO deseja VAGA - Um CANDIDATO deseja uma ou várias VAGA, e uma VAGA é desejada por um ou vários CANDIDATO. Cardinalidade: n:m.
- VAGA possui LOCALIZACAO - Uma VAGA possui uma LOCALIZACAO, e uma LOCALIZACAO é possuída por uma ou várias VAGA. Cardinalidade: n:1.
- EMPRESA possui LOCALIZACAO - Uma EMPRESA possui uma LOCALIZACAO, e uma LOCALIZACAO é possuída por uma ou várias EMPRESA. Cardinalidade: n:1.
- CANDIDATO vive LOCALIZACAO - Um CANDIDATO vive em uma LOCALIZACAO, e uma LOCALIZACAO é vivida por um ou vários CANDIDATO. Cardinalidade: n:1.
- EMPRESA mantém VAGA - Uma EMPRESA mantém uma ou várias VAGA, e uma VAGA é mantida por uma EMPRESA. Cardinalidade: 1:n.
- CANDIDATO possui ESCOLARIDADE - Um CANDIDATO possui uma ESCOLARIDADE, e uma ESCOLARIDADE é possuída por um ou vários CANDIDATO. Cardinalidade: n:1.
- CANDIDATO estuda INSTITUICAO - Um CANDIDATO estuda em uma INSTITUICAO, e uma INSTITUICAO é onde estuda um ou vários CANDIDATO. Cardinalidade: n:1.
- CANDIDATO cursa CURSO - Um CANDIDATO cursa um CURSO, e um CURSO é cursado por um ou vários CANDIDATO. Cardinalidade: n:1.
- CURSO possui ESCOLARIDADE - Um CURSO possui uma ESCOLARIDADE, e uma ESCOLARIDADE é possuída por um ou vários CURSO. Cardinalidade: n:1.
Diagrama Entidade-Relacionamento (DE-R)
Diagrama Lógico de Dados (DLD)
Dicionário de Dados
Entidade: VAGA
Descrição: Define os dados de uma vaga de estágio sob processo seletivo.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
idVaga | chave primária, obrigatório | int | - | Identificador de uma vaga. |
tituloVaga | obrigatório | varchar | 50 | Título reduzido de uma vaga. |
descricaoVaga | obrigatório | varchar | 1000 | Descrição detalhada de uma vaga. |
modeloTrabalho | obrigatório | enum(‘Presencial’,’Remoto’,’Híbrido’) | - | Modelo de trabalho, sendo dividido entre presencial, remoto e híbrido. |
cargaHoraria | obrigatório | int | - | Carga horária de trabalho de uma vaga. |
requisitos | obrigatório | varchar | 1000 | Requisitos solicitados por uma vaga. |
privilegios | obrigatório | varchar | 1000 | Privilégios concedidos por uma vaga. |
bolsa | obrigatório | decimal | 6,2 | Valor monetário da bolsa concedida pela vaga. |
siteVaga | obrigatório | varchar | 200 | Site em que está hospedado o processo da vaga. |
status | obrigatório | boolean | - | Situação de uma vaga, sendo “true” = ativada e “false” = inativada. |
cnpjEmpresa | obrigatório | bigint | - | CNPJ da empresa que é proprietária de uma vaga. |
idLocalizacao | chave estrangeira, obrigatório | int | - | Identificador da localização de trabalho de uma vaga. |
Entidade: EMPRESA
Descrição: Define os dados de uma empresa que pode contratar estagiários.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
cnpj | chave primária, obrigatório | bigint | - | Número do CNPJ de uma empresa. |
nomeEmpresa | obrigatório | varchar | 100 | Nome de uma empresa. |
siteEmpresa | obrigatório | varchar | 200 | Site próprio da empresa. |
descricaoEmpresa | obrigatório | varchar | 1000 | Descrição detalhada de uma empresa. |
idLocalizacao | chave estrangeira, obrigatório | int | - | Identificador da localização de uma empresa |
Entidade: LOCALIZACAO
Descrição: Define os dados de uma localização dentro do Brasil.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
idLocalizacao | chave primária, obrigatório | int | - | Identificador de uma localização. |
cidade | obrigatório | varchar | 50 | Nome de uma cidade de uma localização. |
uf | obrigatório | char | 2 | Sigla do estado de uma localização. |
Entidade: CURSO
Descrição: Define os dados de um curso, seja universitário ou graus do ensino médio.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
idCurso | chave primária, obrigatório | int | - | Identificador de um curso. |
nomeCurso | obrigatório | varchar | 50 | Nome de um curso. |
idEscolaridade | chave estrangeira, obrigatório | int | - | Identificador de escolaridade de um curso. |
Entidade: INSTITUICAO
Descrição: Define os dados de uma instituição de ensino.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
idInstituicao | chave primária, obrigatório | int | - | Identificador de uma instituição. |
nomeInstituicao | obrigatório | varchar | 100 | Nome de uma instituição de ensino. |
idEscolaridade | chave estrangeira, obrigatório | int | - | Identificador de escolaridade de uma instituição. |
Entidade: ESCOLARIDADE
Descrição: Define os dados de um nível de escolaridade.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
idEscolaridade | chave primária, obrigatório | int | - | Identificador de uma escolaridade. |
nomeEscolaridade | obrigatório | varchar | 50 | Nome de uma escolaridade. |
Entidade: CANDIDATO
Descrição: Define os dados de um estudante candidato a estagiário.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
cpf | chave primária, obrigatório | int | - | Número do documento de CPF de um candidato. |
nomeCompleto | obrigatório | varchar | 200 | Nome de um candidato. |
obrigatório | varchar | 100 | Email de um candidato. | |
descricaoCandidato | optativo | varchar | 1000 | Descrição detalhada de um candidato. |
curriculo | optativo | blob | - | Arquivo do currículo de um candidato. |
idEscolaridade | chave estrangeira, obrigatório | int | - | Identificador da escolaridade de um candidato. |
idInstituicao | chave estrangeira, obrigatório | int | - | Identificador da instituição de ensino de um candidato. |
idCurso | chave estrangeira, obrigatório | int | - | Identificador do curso de um candidato. |
idLocalizacao | chave estrangeira, obrigatório | int | - | Identificador da localização de um candidato. |
Relacionamento: deseja
Descrição: Define relacionamento que corresponde a um candidato desejar (aplicar a) uma vaga, com cardinalidade n:m.
Atributo | Propriedades do atributo | Tipo de Dado | Tamanho | Descrição |
---|---|---|---|---|
cpfCandidato | chave estrangeira, obrigatório | int | - | Número do CPF de um candidato. |
idVaga | chave estrangeira, obrigatório | int | - | Identificador de uma vaga que um candidato deseja. |
dataInicioDeseja | obrigatório | date | - | Data de início de desejo em uma vaga. |
dataFimDeseja | optativo | date | - | Data de fim de desejo em uma vaga. |
Bibliografia
- Modelagem de dados. SAE UnB. Disponível aqui. Acesso em: 15 fev. 2022;
Versionamento
Versão | Data | Modificação | Autor(es) |
---|---|---|---|
1.0 | 16/02/2022 | Criação do documento | Guilherme de Morais e Ian Ferreira |
1.1 | 18/02/2022 | Correção de erros no Dicionário de Dados | Guilherme de Morais |