Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A api
  • 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
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mentha
  • api
  • Wiki
  • Modelagem mongodb
  • 1. visao geral

1. visao geral · Changes

Page history
Update 1. visao geral authored Apr 04, 2018 by Rafael Companhoni's avatar Rafael Companhoni
Hide whitespace changes
Inline Side-by-side
modelagem-mongodb/1.-visao-geral.md
View page @ ab55da04
......@@ -4,20 +4,43 @@ O processo de modelagem segue as orientações dos livros **'Data Modeling for M
Tem como objetivo dar uma visão geral dos requisitos do negócio e consiste nas seguintes tarefas:
1. **Responder as perguntas estratégicas do negócio**.
2. **Identificar e definir conceitos (entidades)**.
3. **Definir o relacionamentos entre as entidades**.
4. **Definição do 'modelo conceitual'.**
5. **Revisar com o cliente que o modelo está correto.**
1. Responder as perguntas estratégicas do negócio.
2. Identificar e definir conceitos (entidades).
3. Definir o relacionamentos entre as entidades.
4. Definição do 'modelo conceitual'.
5. Revisar com o cliente que o modelo está correto.
## Modelo Lógico
Nesta etapa já temos as entidades e relacionamentos então o objetivo é normalizar o modelo (observar que até este ponto o processo serve tanto para bancos relacionais como para não-relacionais):
* 1FN (atomicidade)
* 2FN (tabelas aninhadas)
* 3FN (atributos independentes)
Nesta etapa já temos as entidades e relacionamentos então o objetivo é normalizar o modelo (observar que até este ponto o processo serve tanto para bancos relacionais como para não-relacionais). Consiste nas seguintes etapas:
Ao final, teremos um modelo lógico normalizado, indicando as propriedades e relacionamentos corrigidos.
* **Criação do 'Dicionário de Dados'**: documentação que define claramente os tipos de cada propriedade (de cada entidade) e uma descrição do significado das propriedades que possuírem regras específicas.
* **Normalização**.
### Primeira Forma Normal (atomicidade dos atributos)
Todo atributo deve possuir um único valor e deve prover uma informação que é pertinente apenas à chave primária da entidade. Na prática, observe os seguintes pontos:
* **Atributos multivalorados**: quando um único atributo possui mais de um valor.
* **Atributos repetidos**: atributos que possuem o mesmo significado e se repetem para uma mesma entrada.
No exemplo, o atributo multivalorado *Nome* foi quebrado em *Nome* e *Sobrenome* e os atributos repetidos *Telefone1* e *Telefone2* foram reduzidos para *Telefone* apenas.
![1fn](/uploads/c27854a61c0ecc89c569a58aa42c3748/1fn.png)
### Segunda Forma Normal (entidades aninhadas)
A entidade estará na 2FN se já estiver na 1FN e se cada atributo não-primário for dependente exclusivamente da chave-primária. No exemplo a entidade original possui propriedades referentes ao fabricante e ao modelo de uma escova de dentes. Após a separação em duas entidades todos os atributos não-chave são pertinentes apenas à chave primária.
![2fn](/uploads/887cd34ea882056466845a1d0b864194/2fn.png)
### Terceira Forma Normal (transitividade funcional)
Ocorre quando uma propriedade é 'computada' a partir de uma ou mais outras propriedades (não-chave) da entidade.
No exemplo abaixo, a entidade *Funcionario* possui as propriedades *DataAdminissao* e *DataDemissao*. Adicionalmente possui uma propriedade *Ativo*, que indica se o funcionário ainda encontra-se contratado pela empresa. A propriedade *Ativo* na realidade é uma propriedade que se pode inferir a partir de *DataDemissao*, ou seja, é redundante e pode ser eliminada.
![3fn](/uploads/9cc9a911024983bf9c6b40b1bd0479f0/3fn.png)
## Modelo Físico
......
Clone repository
  • commit e branches
  • configurar ambiente de desenvolvimento
  • endpoints
  • engenharia de requisitos
  • estrutura analítica do projeto
  • glossario e modelo
  • Home
  • modelagem mongodb
    • 1. visao geral
    • 2. modelo conceitual
    • 2.1. mapeamento
  • reunioes
  • roadmap
  • sprints
  • termo de abertura do projeto
  • ux