... | @@ -4,20 +4,43 @@ O processo de modelagem segue as orientações dos livros **'Data Modeling for M |
... | @@ -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:
|
|
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**.
|
|
1. Responder as perguntas estratégicas do negócio.
|
|
2. **Identificar e definir conceitos (entidades)**.
|
|
2. Identificar e definir conceitos (entidades).
|
|
3. **Definir o relacionamentos entre as entidades**.
|
|
3. Definir o relacionamentos entre as entidades.
|
|
4. **Definição do 'modelo conceitual'.**
|
|
4. Definição do 'modelo conceitual'.
|
|
5. **Revisar com o cliente que o modelo está correto.**
|
|
5. Revisar com o cliente que o modelo está correto.
|
|
|
|
|
|
## Modelo Lógico
|
|
## 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):
|
|
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:
|
|
* 1FN (atomicidade)
|
|
|
|
* 2FN (tabelas aninhadas)
|
|
|
|
* 3FN (atributos independentes)
|
|
|
|
|
|
|
|
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
|
|
## Modelo Físico
|
|
|
|
|
... | | ... | |