Você está na página 1de 85

MODELAGEM DE DADOS E

FUNÇÕES

.
Zamboni, Ricardo
MDA Fol.: 2

Capítulo 1
Modelagem de dados - Básico

MD - Zamboni, Ricardo Página 2


MDA Fol.: 3

Objetivos deste capítulo

1 Identificar e Modelar Entidades


2 Analisar e modelar os relacionamentos entre as entidades
3 Analisar e Modelar atributos
4 Destacar os identificadores únicos de cada entidade
5 Desenvolver um modelo Entidade-Relacionamento baseado em uma
especificação

MD - Zamboni, Ricardo Página 3


MDA Fol.: 4

MODELO ORACLE

PARA

DESENVOLVIMENTO DE SISTEMAS

1. ESTRATÉGIA

2. ANÁLISE

3. DESIGN

4. CONSTRUÇÃO

5 DOCUMENTAÇÃO

6. TRANSIÇÃO

7. PRODUÇÃO

MD - Zamboni, Ricardo Página 4


MDA Fol.: 5

1. ESTRATÉGIA

. Equipamentos para o desenvolvimento do


projeto.
. Local de trabalho.
. Metodologia a ser adotada - Peter Chain,
James Martin, Backman (Oracle).
. Técnicas a serem aplicadas.

2. ANÁLISE - PROJETO LÓGICO

. Estudo do problema proposto.


. Modelagem - MER, DFD, DHF, etc...

3. DESIGN - PROJETO FÍSICO

. Tabulação das informações.


. Projeto das Bases de Dados.
. Projeto do Sistema.

4. CONSTRUÇÃO

. Construir os Códigos - Programas.


. Gerar Bases de Dados.

5. DOCUMENTAÇÃO

. Documentar todas as etapas do


desenvolvimento do sistema.

MD - Zamboni, Ricardo Página 5


MDA Fol.: 6

6. TRANSIÇÃO

. Processo paralelo entre o velho e o novo


aplicativo.

7. PRODUÇÃO

. Sistema em execução normal.


. Estado de manutibilidade.
. Treinamento.
. Tunning.
. Back-up.
. Feed-Back.

MD - Zamboni, Ricardo Página 6


MDA Fol.: 7

ANÁLISE DE DADOS

É um conjunto de técnicas que permitem


investigar a realidade do ponto de vista de
seus dados, independentemente dos
processos que a manipulam.

• É o requerimento do negócio.

• Ex.: Pratos Ingredientes

Strogonoff Carne/Frango/Camarão
Champignon
Tomate
Creme de Leite
Temperos :
Sal
Cebola
Molho Inglês

MD - Zamboni, Ricardo Página 7


MDA Fol.: 8

TÉCNICAS PARA ANÁLISE DE DADOS

1. Normalização - Codd - 1972

2. Modelagem de Dados - Peter Chen - 1976

PRODUTO DA ANÁLISE DE DADOS

• O produto da Análise de Dados é o Modelo


de Dados, que descreve a empresa através
de seus dados.

• Componentes :

1. Modelo Entidade-Relacionamento - MER

2. Dicionário de Dados - DD

MD - Zamboni, Ricardo Página 8


MDA Fol.: 9

FINALIDADES DA ANÁLISE DE DADOS

1. Conhecer melhor o problema.

Ex.: Automóvel ? :

- Definição Ruim :

Veículo para transportar pessoas.

- Definição Melhor :

Veículo de 4 rodas, impulsionado por


um motor de combustão interna,
projetado para transportar pessoas.

2. Evitar problemas de redundância de dados.

Ex.: Aluno - Características :


- Secretaria
- Tesouraria
- Biblioteca

MD - Zamboni, Ricardo Página 9


MDA Fol.: 10

3. Permitir o compartilhamento dos dados.

- O Dado é da Empresa.

- Ex.: Ingredientes de uma receita culinária


para Molho - Dá para mais de um
prato.

4. Ferramenta para a Administração de Dados

- Integração dos dados da empresa.

- O Dado é um recurso da empresa, tanto


quanto os recursos: Humanos, Financeiros,
Tecnológicos, Equipamentos.

5. Ferramenta para o Desenvolvimento de


Sistemas.

- Ajuda na investigação dos Processos -


D.F.D. - D.H.S. - Análise Funcional.

MD - Zamboni, Ricardo Página 10


MDA Fol.: 11

QUEM FAZ A ANÁLISE DE DADOS

- Analistas de Sistemas

- Administrador de Dados

- Usuário

MD - Zamboni, Ricardo Página 11


MDA Fol.: 12

FUNÇÕES DO ADMINISTRADOR DE DADOS

1. Gerenciar os Dados - Recurso da empresa.

2. Construir e manter o Modelo Conceitual de


Dados da empresa.

3. Manter um registro com a descrição de todos


os dados existentes na empresa - Dicionário
de Dados.

4. Divulgar aos usuários e analistas, as


descrições dos dados da empresa.

5. Promover a integração entre os diversos


sistemas de aplicação.

6. Facilitar o desenvolvimento de aplicações para


os dados.

MD - Zamboni, Ricardo Página 12


MDA Fol.: 13

RAZÕES PARA ABORDAR UM SISTEMA

A PARTIR DOS DADOS

- Dados são mais estáveis do que as funções.

- A abordagem funcional leva, normalmente, a


sistemas isolados e arquivos redundantes,
enquanto a abordagem pelos dados permite
obter aplicativos que compartilham dados.

MD - Zamboni, Ricardo Página 13


MDA Fol.: 14

Modelo de dados Conceitual


O modelo de dados conceitual é o primeiro passo para o processo de desenvolvimento de um
banco de dados, e é executado durante os estágios da estratégia e análise do ciclo de vida do
desenvolvimento de um projeto.

Especificação do negócio

Estratégia
Modelo de
Dados
Conceitual
Análise
Modelo Entidade-Relacionamento
Definições das Entidades
Projeto do
Projeto Banco de dados

Implementação
Implementação do
Banco de dados

Sistema

A meta da modelagem de dados é desenvolver um modelo de entidade-relacionamento (MER) que


represente a especificação do negócio.

Exemplo
O seguinte MER representa informações sobre um departamento de recursos humanos.

EMPREGADO
#* número associado a
* nome DEPARTAMENTO
o cargo #* número
* data de entrada * nome
* salario responsável por * localização
* comissão

Componentes do MER

MD - Zamboni, Ricardo Página 14


MDA Fol.: 15
• Entidades
• Relacionamentos
• Atributos

Um modelo entidade-relacionamento (MER) é um meio efetivo para estabelecer e documentar


uma especificação.

Sintaxe Robusta
Um MER documenta e organiza uma especificação de maneira clara e precisa.

Comunicação com o usuário


O usuário pode entender facilmente a forma de representação gráfica utilizada.

Facilidade no desenvolvimento
Um MER pode ser facilmente definido e refinado.

Definição do escopo
Um MER fornece uma ilustração clara do escopo da especificação.

Integração entre aplicações


Um MER fornece um método onde torna-se simples o ‘LINK’ entre diferentes aplicações.

Entidades
Uma entidade é uma idéia de significância sobre qual informação necessitamos conhecer.

Definições
• Um objeto de interesse de um negócio
• Uma classe ou categoria de idéia
• Uma idéia identificada por um nome

MD - Zamboni, Ricardo Página 15


MDA Fol.: 16

Exemplos
Os seguintes itens podem ser considerados necessários em uma especificação de um departamento
pessoal :
EMPREGADO
DEPARTAMENTO
PROJETO

Os atributos descrevem as entidades e são pontos específicos a serem conhecidos.

Exemplo
Possíveis atributos da entidade EMPREGADO :
número do registro, nome e salário
Possíveis atributos da entidade DEPARTAMENTO :
nome, número e localização

Convenções
• Caixas com dimensões quaisquer
• O nome da entidade deve ser único e singular
• Nomes opcionais entre parênteses
• Nomes dos atributos em minúsculo

Exemplos

EMPREGADO DEPARTAMENTO
(FUNCIONÁRIO) numero
número do registro nome
nome localização
salário

CLIENTE PROJETO
nome código
cargo titúlo
telefone descrição
endereço localização

Cada entidade deve ter múltiplas ocorrências ou instâncias (registros).

MD - Zamboni, Ricardo Página 16


MDA Fol.: 17
Exemplos
A entidade EMPREGADO tem as seguintes ocorrências:
José da Silva, Maria dos Reis, Manoel dos Santos
A entidade DEPARTAMENTO tem as seguintes ocorrências:
finanças, jurídico, administrativo
Cada instância possui valores específicos para os atributos.

Exemplo
A entidade EMPREGADO tem atributos número, nome e salário.
número : 10000
nome :José da silva
salário : R$1.500,00
Obs: Cada instância (registro) deve ter uma forma única de ser identificada dentro de uma mesma
entidade. Um atributo ou conjunto de atributos que representa esta forma de identificação é chamado de
identificador único (UID).

Exemplo
Cada empregado tem um número de registro. Número de registro é uma chave candidata a ser o
UID da entidade EMPREGADO.

MD - Zamboni, Ricardo Página 17


MDA Fol.: 18

Exemplo
Quais atributos podem ser UID das seguintes entidades ?

EMPREGADO DEPARTAMENTO
número do registro numero
nome nome
salário localização

CLIENTE PROJETO
nome código
cargo titúlo
telefone descrição
endereço localização

Identificar e Modelar entidades

Siga os passos abaixo para identificar e modelar entidades baseado em uma especificação formal.

1 Examinar os substântivos da especificação. Eles são significantes ?


2 Nomear as entidades.
3 Examinar informações de interesse sobre a entidade que são importantes no projeto
(atributos).
4 Cada instância da entidade é identificável ? Qual atributo ou atributos serve(m) como
UID ?
5 Escrever uma descrição para a entidade :
Exemplo: José da silva e Maria dos reis são empregados.
6 Desenhar cada entidade e listar seus atributos.

MD - Zamboni, Ricardo Página 18


MDA Fol.: 19

Exemplo
Identificar e modelar as entidades a partir das seguintes informações
“Sou gerente de uma empresa de treinamento que ministra cursos de caráter técnico. Ministramos
vários cursos, que são identificados por um código, nome e preço. Os cursos “Introdução ao UNIX” e
“Programando em C” são alguns de nossos cursos mais populares.
A duração de cada curso pode variar de um a quatro dias.
Um instrutor pode ensinar vários cursos. Paul Rogers e Maria Gonzales são dois dos nossos
melhores instrutores.
Mantemos aqui o nome e o telefone de cada instrutor. Nós criamos um curso e alocamos um
único instrutor para este curso criado.
Os alunos (clientes) podem participar de vários cursos. O Jamie Brow, da AT&T, assiste a todos
os cursos que oferecemos. Além do nome, mantemos também o número do telefone dos alunos. Alguns de
nossos alunos e instrutores não possuem telefone.”

Solução

CURSO
código
nome INSTRUTOR
preço
duração (PROFESSOR)
nome
telefone

ALUNO
(CLIENTE)
nome
telefone

MD - Zamboni, Ricardo Página 19


MDA Fol.: 20

Exercício 1-1

Identificar e modelar as entidades para o conjunto de informações abaixo. Liste os atributos para
cada uma das entidades encontradas.
“Sou proprietário de uma pequena loja de vídeo. Temos mais de 3000 fitas e queremos um sistema
para controlá-las.
Cada fita contém um número e um formato que deve ser Beta ou VHS. Sempre temos uma fita
para cada filme, e cada fita tem apenas um filme. Não temos aqui nenhum filme que requeira mais que uma
fita.
Para cada filme, precisamos saber seu título e categoria (comédia, suspense, terror, etc). Muitos de
nossos filmes tem mais de uma cópia. Para cada filme, fornecemos um ID e então controlamos qual filme
uma fita contém.
Freqüentemente, as pessoas alugam filmes pesquisando pelos atores que atuam no filme desejado.
John Wayne e Katherine Hepburn são muito populares. Queremos manter informações sobre os atores que
atuam em nossos filmes. Nem todos os filmes são estrelados por atores e só mantemos aqui registro dos
atores que atuam em filmes disponíveis em nossa locadora. Os clientes gostam de saber a data de
nascimento de um ator, bem como o seu verdadeiro nome.
Temos muitos clientes. Apenas alugamos filmes para pessoas inscritas em nosso cadastro. Para
cada sócio da locadora mantemos seu nome, telefone e endereço. Claro que cada sócio possui um número
de identificação. Além disso mantemos o status de crédito de cada um.
Queremos controlar os aluguéis de filmes. Um cliente pode alugar vários filmes ao mesmo tempo.
Apenas mantemos os aluguéis correntes (pendentes). Não controlamos histórico de locações. “

MD - Zamboni, Ricardo Página 20


MDA Fol.: 21

Solução :

Perguntas Adicionais:-

1-) Caso eu cadastre um ator c/data de nascimento errada, qual


será a conseqüência?

2-) A Frase “Queremos controlar... de locações” é coerente? Por


qual motivo?

3-) Se quisermos controlar o histórico das locações, este esquema


será alterado? Por qual motivo?

MD - Zamboni, Ricardo Página 21


MDA Fol.: 22

Relacionamentos
Um relacionamento é uma associação significante entre duas entidades, ou entre uma entidade e
ela mesma (auto-relacionamento).
Sintaxe do relacionamento:
pode ser um ou mais
Cada entidade1 ou nome do relacionamento ou entidade 2
deve ser um e somente um

Exemplo
Relacionamento entre instrutor e curso :
Cada curso pode ser ministrado por um e somente um instrutor .
Cada instrutor pode ministrar um ou mais cursos.
Cada direção do relacionamento tem :

• um nome
• uma opcionalidade
• um grau
Convenções
Os nomes dos relacionamentos devem estar em letras minúsculas.

Opcionalidade
opcional (pode ser)

Mandatório (deve ser)


Grau
um ou mais

um e somente um

Exemplos
Leia o relacionamento entre EMPREGADO e DEPARTAMENTO :

EMPREGADO DEPARTAMENTO
associado a

responsável por

Leia primeiro da esquerda para a direita e depois da direita para a esquerda.

• Esquerda para a direita

MD - Zamboni, Ricardo Página 22


MDA Fol.: 23
EMPREGADO DEPARTAMENTO
associado a

Cada EMPREGADO deve estar associado a um somente um DEPARTAMENTO.

• Direita para a esquerda

EMPREGADO DEPARTAMENTO

responsável por

Cada DEPARTAMENTO pode ser responsável por um ou mais EMPREGADOS.


Relacionamento entre ESTUDANTE e CURSO :

ESTUDANTE matriculado em CURSO

possui

Cada ESTUDANTE pode estar matriculado em um ou mais CURSOS.


Cada CURSO pode ter um ou mais ESTUDANTES.

MD - Zamboni, Ricardo Página 23


MDA Fol.: 24

Relacionamento entre HOLLERITE e EMPREGADO.

HOLLERITE para EMPREGADO

recebedor do

Cada HOLLERITE deve ser para um e somente um EMPREGADO


Cada EMPREGADO pode ser recebedor de um ou mais HOLLERITES

MD - Zamboni, Ricardo Página 24


MDA Fol.: 25

Exercício 1-2
Escreva as sentenças de relacionamento para o seguinte diagrama :

PEDIDO ITEM
número formado por número
tipo descrição
parte de

gerado armazenado
por em

efetua armazena
CLIENTE ARMAZEM
nome id
endereço

Solução :

MD - Zamboni, Ricardo Página 25


MDA Fol.: 26

Exercício 1-3

Desenhe um diagrama de Entidade-Relacionamento para as sentenças abaixo:

1. Cada EMPREGADO deve ser associado a um e somente um


DEPARTAMENTO.
2. Cada DEPARTAMENTO pode ser responsável por um ou mais
EMPREGADOS.
3. Cada EMPREGADO pode ser associado a uma ou mais ATIVIDADES.
4. Cada ATIVIDADE pode ser executada por um ou mais EMPREGADOS.

Solução:

MD - Zamboni, Ricardo Página 26


MDA Fol.: 27

Exercício 1-4
Desenhe um diagrama de Entidade-Relacionamento para as sentenças abaixo:
Cada BASEDADOS deve ser formada por um ou mais TABLESPACEs.
Cada TABLESPACE deve ser formada por um ou mais FILEs.
Cada BLOCK deve ser parte de um e somente um EXTENT.
Cada FILE pode ser parte de uma e somente uma TABLESPACE.
Cada TABLESPACE pode ser dividida em um ou mais SEGMENTs.
Cada SEGMENT deve ser constituído de um ou mais EXTENTs.
Cada EXTENT deve ser composto de um ou mais BLOCKs.
Cada TABLESPACE deve ser parte de um e somente uma BASEDADOS.
Cada EXTENT deve ser incluído em um e somente um SEGMENT.
Cada FILE deve ser residente em um e somente um DISK.
Cada DISK pode ser hospedeiro para um ou mais FILEs.
Cada SEGMENT deve ser incluído em uma e somente uma TABLESPACE.

Solução:

MD - Zamboni, Ricardo Página 27


MDA Fol.: 28

Tipos de Relacionamentos
Existem 3 tipos de relacionamentos. São eles:

• Relacionamento muitos para um


• Relacionamento muitos para muitos
• Relacionamento um para um
Relacionamento muitos para um
Um relacionamento muitos para um (M para 1 ou M:1) tem um grau de um ou mais em uma
direção e grau de um e somente um em outra direção.

Exemplo
Existe um relacionamento M:1 entre a entidade CLIENTE e VENDEDOR.

CLIENTE VENDEDOR
atendido por

atende

Cada CLIENTE deve ser atendido por um e somente um VENDEDOR.


Cada VENDEDOR pode atender um ou mais CLIENTEs.

Relacionamento muitos para muitos


Um relacionamento muitos para muitos (M para M ou M:M) tem grau de um ou mais nas duas
direções.

Exemplo
Existe um relacionamento M:M entre ESTUDANTE e CURSO

ESTUDANTE CURSO
matriculado em

possui

MD - Zamboni, Ricardo Página 28


MDA Fol.: 29
Cada ESTUDANTE pode ser matriculado em um ou mais CURSOS.
Cada CURSO pode possuir um ou mais ESTUDANTES.

Existe um relacionamento M:M entre EMPREGADO e PROJETO.

EMPREGADO PROJETO
associado a

desenvolvido por

Cada EMPREGADO pode estar associado a um ou mais PROJETOS.


Cada PROJETO pode ser desenvolvido por um ou mais EMPREGADOS.

Relacionamento um para um
Um relacionamento um para um (1 para 1 ou 1:1) tem um grau de um e somente um em ambas
direções.

Exemplo
Existe um relacionamento 1:1 entre MICROCOMPUTADOR e MOTHERBOARD.

MICROCOMPUTADOR MOTHERBOARD
tem

incorporada em

Cada MICROCOMPUTADOR deve ter uma e somente uma MOTHERBOARD.


Cada MOTHERBOARD pode estar incorporada em um e somente um MICROCOMPUTADOR.

MD - Zamboni, Ricardo Página 29


MDA Fol.: 30

Usando uma Matriz de relacionamentos


Utilizamos uma matriz de relacionamentos como auxilio para detectar os relacionamentos
existentes entre as entidades encontradas em uma dada especificação.

• Uma matriz de relacionamento mostra se existe relacionamento entre


entidades e qual entidade está relacionada com outra entidade;
• Todas as entidades devem ser listadas na primeira linha e na primeira coluna
da matriz;
• Se existe um relacionamento então o nome deste relacionamento deve ser
colocado na interseção entre as entidades;
• Senão existe relacionamento, coloca-se um traço na interseção;
• Para cada relacionamento existente tem um relacionamento inverso abaixo da
linha diagonal;
• Relacionamentos recursivos (entre uma mesma entidade) são representados
nos boxes diagonais.

Exemplo
A seguinte matriz mostra um conjunto de relacionamentos entre quatro entidades

CLIENTE ITEM PEDIDO ARMAZÉM


CLIENTE efetua
ITEM parte de armazenado em
PEDIDO gerado por formado por
ARMAZÉM armazena

A entidade CLIENTE está relacionada com pedido e o nome do relacionamento é efetua.


OBS: Podemos mapear o conteúdo de uma matriz de relacionamento para um diagrama E-R.

Exemplo
Desenhe um diagrama baseado na matriz de relacionamento acima. Escreva os nomes dos
relacionamentos e adicione a opcionalidade e graus necessários.

MD - Zamboni, Ricardo Página 30


MDA Fol.: 31

Solução :

PEDIDO ITEM
número formado por número
tipo descrição
parte de

gerado armazenado
por em

efetua armazena
CLIENTE ARMAZEM
nome id
endereço

MD - Zamboni, Ricardo Página 31


MDA Fol.: 32

Analisar e modelar relacionamentos


Siga os passos abaixo para analisar e modelar os relacionamentos :
1. Determine a existência do relacionamento;
2. Nomeie cada direção do relacionamento;
3. Determine a opcionalidade de cada direção do relacionamento;
4. Determine o grau de cada direção do relacionamento;
5. Leia o relacionamento para validá-lo.

Passo1 - Determinando a existência do relacionamento


Determinar a existência de um relacionamento se faz examinando cada entidade para saber se
existe um relacionamento entre elas.
Faça a seguinte pergunta:
Existe um relacionamento significante entre a entidade A e a entidade B ?

Exemplo
Considere as entidades DEPARTAMENTO e EMPREGADO.
Existe um relacionamento significante entre DEPARTAMENTO e EMPREGADO ?
Sim, existe.
Considere agora as entidades DEPARTAMENTO e ATIVIDADE.
Existe um relacionamento significante entre DEPARTAMENTO e ATIVIDADE?
Não, não existe.
Podemos utilizar uma matriz de relacionamentos para examinar sistematicamente cada entidade
em relação a outra entidade.

Exemplo
Escreva as entidades ATIVIDADE, DEPARTAMENTO e EMPREGADO na matriz e marque os
relacionamentos existentes.

ATIVIDADE DEPARTAMENTO EMPREGADO


ATIVIDADE 
DEPARTAMENTO 
EMPREGADO  

MD - Zamboni, Ricardo Página 32


MDA Fol.: 33

Passo 2 - Nomear o relacionamento


Nomear cada direção do relacionamento.
Como a entidade A está relacionada com a entidade B ?
A entidade A é (está) nome do relacionamento com a entidade B.
Como a entidade B está relacionada com a entidade A ?
A entidade B é (está) nome do relacionamento com a entidade A.

Exemplo
Considere o relacionamento entre DEPARTAMENTO e EMPREGADO.
Como DEPARTAMENTO se relaciona com EMPREGADO ?
Cada DEPARTAMENTO é responsável por um EMPREGADO.
Como EMPREGADO se relaciona com DEPARTAMENTO ?
Cada EMPREGADO está associado a um DEPARTAMENTO.
Coloque os nomes dos relacionamentos entre DEPARTAMENTO e EMPREGADO.

ATIVIDADE DEPARTAMENTO EMPREGADO


ATIVIDADE 
DEPARTAMENTO responsável por
EMPREGADO  associado a

Passo 3 - Determinar a opcionalidade dos relacionamentos


Determinamos a opcionalidade de cada direção do relacionamento.
Pergunta :
A entidade A deve ou pode estar relacionada com a entidade B ?
A entidade B deve ou pode estar relacionada com a entidade A ?

Exemplo
Considere o relacionamento entre DEPARTAMENTO e EMPREGADO.
Um EMPREGADO deve ou pode estar associado a um DEPARTAMENTO ?
Deve.
Um DEPARTAMENTO deve ou pode ser responsável por um empregado ?
Pode.
Desenhando a opcionalidade.

EMPREGADO DEPARTAMENTO
associado a

responsável por

MD - Zamboni, Ricardo Página 33


MDA Fol.: 34

Passo 4 - Determinar o grau dos relacionamentos


Devemos determinar o grau do relacionamento nas duas direções.
Pergunta:
A entidade A pode (ou deve) ser nome do relacionamento mais que uma entidade B?
A entidade B pode (ou deve) ser nome do relacionamento mais que uma entidade A?

Exemplo
Considere o relacionamento entre DEPARTAMENTO e EMPREGADO.
Um EMPREGADO pode estar associado a mais que um DEPARTAMENTO?
Não.
Um DEPARTAMENTO pode ser responsável por mais que um EMPREGADO?
Sim.
Adicionando o grau.

EMPREGADO DEPARTAMENTO
associado a

responsável por

MD - Zamboni, Ricardo Página 34


MDA Fol.: 35

Passo 5 - Validar o relacionamento


Reexamine o MER e valide o relacionamento.

Exemplo
Leia o relacionamento representado pelo seguinte diagrama.

EMPREGADO DEPARTAMENTO
associado a

responsável por

Cada EMPREGADO deve ser associado a um e somente um DEPARTAMENTO.


Cada DEPARTAMENTO pode ser responsável por um ou mais EMPREGADOS.

MD - Zamboni, Ricardo Página 35


MDA Fol.: 36

Exercício 1-5
Analisar e modelar os relacionamentos do conjunto de informações abaixo. Utilize a matriz de
relacionamentos para detectar a existência de relacionamentos entre as entidades.

“ Sou gerente de uma empresa de treinamento que ministra cursos de caráter técnico. Ministramos
vários cursos, que são identificados por um código, nome e preço. Os cursos “Introdução ao UNIX” e
“Programando em C” são alguns de nossos cursos mais populares.
A duração de cada curso pode variar de um a quatro dias.
Um instrutor pode ensinar vários cursos. Paul Rogers e Maria Gonzales são dois dos nossos
melhores instrutores.
Mantemos aqui o nome e o telefone de cada instrutor. Nós criamos um curso e alocamos um
único instrutor para este curso criado.
Os alunos (clientes) podem participar de vários cursos. O Jamie Brow, da AT&T, assiste a todos
os cursos que oferecemos. Além do nome, mantemos também o número do telefone dos alunos. Alguns de
nossos alunos e instrutores não possuem telefone.”

CURSO
código INSTRUTOR
nome (PROFESSOR)
preço nome
duração telefone

ALUNO
(CLIENTE)
nome
telefone

MD - Zamboni, Ricardo Página 36


MDA Fol.: 37

Solução :

MD - Zamboni, Ricardo Página 37


MDA Fol.: 38

Exercício 1-6

Analisar e modelar os relacionamentos do seguinte conjunto de informações. Utilize a matriz de


relacionamentos para detectar a existência de relacionamentos entre as entidades.

“Sou proprietário de uma pequena loja de vídeo. Temos mais de 3000 fitas e queremos um s istema
para controlá-las.
Cada fita contém um número e um formato que deve ser Beta ou VHS. Sempre temos uma fita
para cada filme, e cada fita tem apenas um filme. Não temos aqui nenhum filme que requeira mais que uma
fita.
Para cada filme, precisamos saber seu título e categoria (comédia, suspense, terror, etc). Muitos de
nossos filmes tem mais de uma cópia. Para cada filme, fornecemos um ID e então controlamos qual filme
uma fita contém.
Freqüentemente, as pessoas alugam filmes pesquisando pelos atores que atuam no filme desejado.
John Wayne e Katherine Hepburn são muito populares. Queremos manter informações sobre os atores que
atuam em nossos filmes. Nem todos os filmes são estrelados por atores e só mantemos aqui registro dos
atores que atuam em filmes disponíveis em nossa locadora. Os clientes gostam de saber a data de
nascimento de um ator, bem como o seu verdadeiro nome.
Temos muitos clientes. Apenas alugamos filmes para pessoas inscritas em nosso cadastro. Para
cada sócio da locadora mantemos seu nome, telefone e endereço. Claro que cada sócio possui um número
de identificação. Além disso mantemos o status de crédito de cada um.
Queremos controlar os aluguéis de filmes. Um cliente pode alugar vários filmes ao mesmo tempo.
Apenas mantemos os aluguéis correntes (pendentes). Não controlamos histórico de locações. “

MD - Zamboni, Ricardo Página 38


MDA Fol.: 39

Solução :

MD - Zamboni, Ricardo Página 39


MDA Fol.: 40

Layout do diagrama de Entidade-Relacionamento


Devemos procurar construir um diagrama de fácil leitura e entendimento para as pessoas que vão
trabalhar com este diagrama.
Algumas regras a serem seguidas:

• Desenhe as entidades em caixas;


• Desenhe os relacionamentos na horizontal ou vertical;
• Use um ângulo de 30º ou 60º para relacionamentosexclusivos (apresentado
posteriormente);
• Faça o desenho espaçado para evitar congestionamentos;
• Dê preferência as linhas paralelas para evitar cruzamentos;
• Utilize textos não ambíguos;
• Evite abreviações e apelidos nos nomes de entidades, atributos e
relacionamentos;
• Adicione adjetivos para melhorar o entendimento, se necessário;
• Alinhe os textos horizontalmente;
• Coloque o nome do relacionamento próximo a entidade que o gerou.

Atributos
Atributos são informações que necessitam ser conhecidas sobre uma entidade. Atributos
descrevem uma entidade qualificando, identificando, classificando, quantificando ou expressando o estado
da mesma.
Abaixo temos alguns atributos da entidade EMPREGADO:
Número do registro identifica um empregado;
Nome qualifica um empregado;
Categoria de salário (mensal ou horista) classifica um empregado;
Idade quantifica um empregado;
Status do empregado (ativo, afastado ou inativo) expressa o estado de um empregado.
OBS : Atributos representam um tipo de descrição ou detalhe, não uma instância.

Exemplo
77605 e 76311 são valores do atributo registro do empregado
João da Silva é um valor do atributo nome do empregado.

MD - Zamboni, Ricardo Página 40


MDA Fol.: 41

Convenções
• Os nomes dos atributos devem ser singulares e escritos em letra minúscula;
• A lista de atributos devem estar dentro da caixa da sua respectiva entidade.

Exemplo

CURSO
código INSTRUTOR
nome (PROFESSOR)
preço nome
duração telefone

ALUNO
nome
telefone

Podemos “quebrar” um determinado atributo em outros atributos.

Exemplo

ITEM ITEM
número número
tipo
vendedor

O número de um item pode ser expandido para tipo do item, vendedor que efetuou a venda e
número do item.
Obs : Devemos também verificar se cada atributo tem um único valor para cada instância da
entidade. Um atributo multi-valorado (1º Forma Normal) não é um atributo válido (será visto nos próximos
capítulos).

Outras considerações a serem tomadas:


Devemos verificar se um atributo não é derivado nem calculado através do valor de outro atributo
existente.
Derivações mais comuns :
Contagem, totalização, máximo, mínimo, média, etc.
Não devemos incluir este tipo de atributo no diagrama.

MD - Zamboni, Ricardo Página 41


MDA Fol.: 42

Distinção entre atributos e entidades


Se um atributo possui outros atributos, então ele passa a ser uma entidade.

Exemplo
Determine se todos os atributos de EMPREGADO são realmente válidos.

EMPREGAGO DEPENDENTE
EMPREGADO nome nome
nome data de aniversário
número de dependentes

O número de dependentes é um atributo de empregado, mas se é necessário para cada dependente


conhecer o nome e idade, então o atributo número de dependentes transforma-se na entidade
DEPENDENTE.

Opcionalidade dos atributos


Identificar cada atributo utilizando uma marca para indicar a opcionalidade destes atributos.
Temos dois tipos de atributos. São eles:

Atributos mandatórios
Um valor deve ser conhecido para cada ocorrência.
É marcado com um *.

Atributos opcionais
Um valor pode ser conhecido ou não para cada ocorrência.
Marcado com um o.

Exemplo
Identificar os atributos para a entidade CLIENTE. Determinar suas opcionalidades.

CLIENTE
* código
* nome
o profissão
* sexo
o peso

Podemos utilizar um exemplo de dados para as instâncias a fim de validar a opcionalidade dos
atributos.

Exemplo

MD - Zamboni, Ricardo Página 42


MDA Fol.: 43
Os atributos da entidade CLIENTE estão corretos? Utilize o quadro abaixo para validá-los.
Nome da entidade : CLIENTE
Nome do código nome profissão sexo peso
atributo
opcionalidade * * o * o
exemplos 110 João Analista M
301 José Programador M 85
134 Pedro Operador M 78
340 Maria F 67

Como identificar os atributos


Para identificar os atributos, devemos examinar as notas da especificação ou questionar o usuário.
Questionando o usuário :
Qual informação você necessita conhecer sobre a entidade X?
Qual informação você gostaria que fosse mostrada na tela ou impressa?

MD - Zamboni, Ricardo Página 43


MDA Fol.: 44

Exercício 1-7
Desenvolva um MER para a especificação abaixo. Especifique os atributos de cada entidade e a
opcionalidade dos mesmos. Não esqueça de criar os relacionamentos.
“Nosso grupo de usuários possui mais de 200 membros. Necessitamos de um Sistema de
Informação para controlar nossos assuntos.
Definitivamente, precisamos automatizar nosso cadastro de membros. Para cada membro,
precisamos manter seu nome, título, endereço para correspondência, telefone comercial, tipo de membro
(individual ou empresa) e se o membro está ou não em dia com a taxa anual que cobramos dele pela sua
participação no grupo. Esta taxa é cobrada em Janeiro para todos os membros.
Também gostaríamos de controlar e manter as empresas que cada membro trabalha. Note que os
nossos membros podem trocar de empresa ou prestar serviço em várias empresas.. Alguns membros podem
estar sem emprego no momento. Para cada empresa, mantemos o nome, endereço e o tipo do negócio.
Mantemos apenas o endereço principal de cada empresa, não consideramos filiais.
Vários eventos são agendados anualmente. Alguns de nossos eventos anuais são: “Encontro da
Primavera”, “Congresso de Novembro”, “Encontro do Outono”, etc. Programamos também eventos
especiais. Por exemplo, tivemos no mês passado o “Case Day”, no qual Richard Barker veio da Inglaterra
especialmente para um dia de palestras.
Nossos eventos são realizados em vários locais da cidade ( Hotel Sheraton, Anhembi, etc).
Queremos manter informações sobre os eventos, tais como, data do evento, nome, número
máximo de participantes, local, custo total e comentários que os participantes fizeram a respeito do evento.
Esses comentários não possuem ligação com quem o fez. Note que para um mesmo evento podem ser feitos
vários comentários.
Desejamos manter informações sobre quais membros assistem a quais eventos. Alguns membros
são bem ativos e participam sempre. Outros nem tanto e alguns somente querem receber nosso jornalzinho.
Gostaríamos de registrar também qual tipo de plataforma um membro utiliza. Cada membro pode
utilizar tipos de computadores diferentes. Temos um sistema de identificação de três dígitos para cada
plataforma. Assim, 001 é para IBM/MVS, 002 é para IBM/VM, 003 para VAX/VMS, 020 para OS/2, 030
para PC/DOS, 050 para SUN UNIX e 080 para outras plataformas.
Também associamos cada membro com áreas de interesse: saúde, farmacêutica, recursos
humanos, financeira, etc. As aplicações devem ser portáveis, portanto não relacionamos área de interesse
com plataformas.”

Solução :

MD - Zamboni, Ricardo Página 44


MDA Fol.: 45

Identificadores Únicos
Um identificador único é qualquer combinação de atributos e/ou relacionamentos que serve para
identificar uma ocorrência de uma entidade.
Por exemplo, cada ocorrência de DEPARTAMENTO possui um UID que é o número do
departamento.

DEPARTAMENTO
#* numero
* nome

Para um bilhete de teatro, cada bilhete é identificado através da data da apresentação em conjunto
com o número da cadeira. Levamos em consideração que não apresentamos dois espetáculos no mesmo
dia.

BILHETE
#* data da apresentação
#* numero da cadeira

Uma entidade deve ter um UID ou não é uma entidade.


Uma entidade pode ter um identificador único gerado através de um relacionamento.

Exemplo
No setor financeiro cada banco possui um número, tal como os bancos , cada conta também possui
um número único. Qual o UID da entidade CONTA?

CONTA BANCO
número gerenciado por #* numero

gerencia

O UID da entidade CONTA é a concatenação do número do banco com o número da conta.

MD - Zamboni, Ricardo Página 45


MDA Fol.: 46
Usamos uma barra para indicar que o relacionamento é parte do UID da entidade.

CONTA gerenciado por BANCO


#* número #* numero

gerencia

Uma entidade pode ser unicamente identificada através de múltiplos relacionamentos.

Exemplo
Uma especificação trata de empregado e projetos. Empregados são associados aos projetos através
da entidade ASSOCIAÇÃO.
Um empregado pode se vincular a vários projetos, tal como um simples projeto pode ter vários
empregados trabalhando nele. Temos então o seguinte MER.

ASSOCIAÇÃO
* data da associação
* duração
o posição

de para

associado a associado a
EMPREGADO PROJETO
#* id #* numero
* nome * titulo

MD - Zamboni, Ricardo Página 46


MDA Fol.: 47

Qual o UID da entidade ASSOCIAÇÃO ?

ASSOCIAÇÃO
# * data da associação
* duração
o posição

de para

associado a associado a
EMPREGADO PROJETO
#* id #* numero
* nome * titulo

O UID da entidade é formado pelo número do projeto em adição ao id do empregado e a data da


associação.
Uma entidade pode ter mais que um UID.

Exemplo
Qual o UID da entidade EMPREGADO ?

EMPREGADO
* numero de registro
* cpf
* nome
* data de nascimento

Neste caso, tanto o numero do registro quanto o cpf serviriam como UID. Quando isto acontece
chamamos um UID de primário e o outro de secundário ou chave candidata. A Representação de uma
chave candidata é através do símbolo (#).

EMPREGADO
#* numero de registro
(#)* cpf
* nome
* data de nascimento

MD - Zamboni, Ricardo Página 47


MDA Fol.: 48
Quando uma entidade não possui UID podemos criar um UID artificial para identificar a entidade.

Exemplo
Qual o UID da entidade CLIENTE ?

CLIENTE
* nome
* endereço

Poderíamos utilizar o nome, mas correríamos o risco de ter dois clientes com o mesmo nome.

CLIENTE
#* código
* nome
* endereço

Cria-se então um atributo artificial chamado código que será único para cada cliente.

MD - Zamboni, Ricardo Página 48


MDA Fol.: 49

Exercício 1-8
Desenhe novamente os diagramas encontrados nos exercícios 1-5, 1-6 e 1-7 e identifique o UID de
cada entidade.

Solução :

MD - Zamboni, Ricardo Página 49


MDA Fol.: 50

Atributos Classificação e Cardinalidade


Visando um melhor entendimento acerca das técnicas associadas a
modelagem de dados, torna-se necessário a identificação dos atributos
conforme segue:.

Classificando os Atributos

Os atributos podem ser classificados e divididos sumariamente


em:

COMPOSTOS

DETERMINANTES

MULTIVALORADOS

GLOBAIS

SIMPLES

RELACIONAMENTO

MD - Zamboni, Ricardo Página 50


MDA Fol.: 51

COMPOSTOS

Definição:
São atributos cuja própria natureza pode ser desdobrada em sub-
atributos.

Exemplo:
ENTIDADE :
CLIENTE
# id cliente
razão social
limite de crédito
local situado
.
No caso, local situado representa o endereço do cliente de forma a
ser desdobrado em sub-atributos, conforme segue:-
CLIENTE
# id cliente
razão social
limite de crédito
endereço
cidade
bairro
cep
unidade da federação

MD - Zamboni, Ricardo Página 51


MDA Fol.: 52

DETERMINANTES ou IDENTIFICADORES (UID)

Definição:
Identificam univocamente uma ocorrência de uma entidade. São
referenciados como sendo UID. Podem ser compostos de um ou mais
atributos.

Exemplo:
ENTIDADE : Sistema para gerenciar várias empresas e vários
produtos de forma independente.

PRODUTO (ITEM)
# id empresa
# id produto
nome do produto
unidade de venda
quantidade disponível
.
No caso, a entidade produto possui 2 atributos identificadores, o id
empresa (código da empresa) e o id produto (código do produto para uma
determinada empresa).

MD - Zamboni, Ricardo Página 52


MDA Fol.: 53

MULTIVALORADOS

Definição:
A existência do número do mesmo(OCORRÊNCIA) não é uniforme
para todos.

Exemplo:
ENTIDADE :
CLIENTE
# id cliente
razão social
limite de crédito
telefone
.

No caso, telefone pode ser classificado por telefone comercial,


cobrança, residencial. A classificação deste cria em primeira análise outros
atributos associados a entidade.

CLIENTE
# id cliente
razão social
limite de crédito
telefone residencial
telefone comercial
telefone cobrança

MD - Zamboni, Ricardo Página 53


MDA Fol.: 54

GLOBAIS

Definição:
Possuem o mesmo valor para todas a linhas da entidade. Muitas
vezes estão ligados a exigências legais e não se preocupam com a
existência de redundância.

Exemplo:
ENTIDADE :
FUNCIONARIO
# id empresa
# id chapa
nome
salário família
.
O valor para o salário família será o mesmo para todas as linhas da
entidade.

SIMPLES

Definição:
Incorporados em todas as classificações anteriores, excluindo-se os
COMPOSTOS.

MD - Zamboni, Ricardo Página 54


MDA Fol.: 55

Atributos Cardinalidade
A cardinalidade caracteriza o mínimo ou máximo número de valores
de atributos associados a cada instante da entidade ou relacionamento.
Definição Formal:-

Seja A um atributo da entidade E

Se MIN-cardinalidade (A,E) = 0 então

O atributo é opcional. Pode ser nulo (null) ou vazio para linhas


da entidade.

Se MIN-cardinalidade (A,E) = 1 então

O atributo é mandatório. Pelo menos 1 valor do atributo deve


ser especificado para todas as linhas.

Se MAX-cardinalidade (A,E) = 1 então

O atributo é monovalorado (simples).

Se MAX-cardinalidade (A,E) > 1 então

O atributo é multivalorado.

O VALOR DEFAULT (PADRÃO) É (1;1) onde o valor a esquerda


representa o mínimo e o da direita o máximo.Atributos identificadores são
sempre (1;1).

MD - Zamboni, Ricardo Página 55


MDA Fol.: 56

Exemplos:-

Entidade Atributo Cardinalidade


PESSOA nome min-card=1 max-card=1
(1;1)
PESSOA passaporte (0;1)
PESSOA títulos acadêmicos (0;N)
FUNCIONÁRIO chapa (1;1)
FUNCIONÁRIO pis (1;1)

Detalhando o quadro em função dos atributos:-


 Cada pessoa possui no mínimo 1 valor de nome e no máximo 1 valor
 É mandatória a existência de um nome;
 Cada pessoa possui no mínimo nenhum passaporte(não possui) e no
máximo 1; (discutível);
 Cada pessoa possui no mínimo nenhum título acadêmico
(não possui) e no máximo vários;
 Cada funcionário possui um único número de chapa;
 Cada funcionário possui um único número de pis;

A cardinalidade também pode indicar STATUS/situação dentro das


entidades.

MD - Zamboni, Ricardo Página 56


MDA Fol.: 57

Exemplo:-

NOTAS FISCAIS: DATA CANCELAMENTO

CLIENTES : TÍTULOS PROTESTADOS

MD - Zamboni, Ricardo Página 57


MDA Fol.: 58

Exercício:-

O grupo de empresas denominado XYZ possui um departamento de


recursos humanos. Este, é responsável por manter os registros de
empregados das várias empresas do grupo.O registro de funcionário
relaciona vários elementos, dentre os quais destacamos os telefones do
funcionário (para um contato em caso de acidente), o sexo, data de
nascimento, salário família, nome, data de admissão e departamento em que
o mesmo está alocado.A empresa também solicita que os funcionários
identifiquem quantos filhos eventualmente possuem e quais os nomes e
data de nascimento dos mesmos. Desta forma, é possível calcular o custo
eventualmente alocado para a construção de uma nova creche que será
mantida pela empresa. Esta é uma ação que motiva os funcionários além de
visar a diminuição da freqüência de faltas por motivos particulares. Além
de manter os dados atualizados, são calculados mensalmente os vários
lançamentos (de débito ou crédito) para cálculo da folha de pagamento.
Além dos descontos exigidos por lei (como IR, sindicato, etc.) ainda são
efetuados lançamentos associados ao grêmio e a loja de fábrica (compras
realizadas) por estes funcionários. Nossa loja de fábrica vende todos os
produtos produzidos no grupo além de outros produtos de terceiros (arroz,
feijão, café, etc.).
Crie um MER e seus respectivos relacionamentos e atributos,
classificando os atributos de cada entidade envolvida assim como
representando suas cardinalidades.

Solução:

MD - Zamboni, Ricardo Página 58


MDA Fol.: 59

MD - Zamboni, Ricardo Página 59


MDA Fol.: 60

Capítulo 2
Modelagem de dados - Normalização e Formas
Normais

MD - Zamboni, Ricardo Página 60


MDA Fol.: 61

Normalização De Dados

Conceitos:
 Os conceitos e técnicas de Normalização foram desenvolvidos por E.
F. Codd da IBM e outros, baseados na teoria dos conjuntos.

 É um processo que inspeciona um determinado conjunto de relações,


produzindo eventualmente , outros conjunto que tenham estrutura
mais simples e regular.

Todo o PROJETISTA DE SISTEMAS dotado de experiência,


bom senso e um mínimo de questionamento tende a produzir
relações normalizadas sem saber o que isto significa !!!

TENDER NÃO É GARANTIA DE QUE VENHA A


FAZER !!!

 Tanto para Sistemas Manuais como para os Informatizados,


geralmente é mais fácil e mais econômico modificar a lógica de um
processo do que alterar a estrutura dos dados.

 Consequentemente, quanto mais simples e mais geral for à estrutura


dos dados, mais fácil e econômico será efetuar mudanças nos dados.

 A Normalização tem o objetivo de organizar e simplificar o conteúdo


das Estruturas de Dados - Tabelas/Arquivos.

 É uma técnica de Análise de Dados, como o MER - Modelo


Entidade-Relacionamento, que tem aplicação em casos particulares de
sistemas e de ambientes de dados.

MD - Zamboni, Ricardo Página 61


MDA Fol.: 62
 A técnica procura identificar em documentos, arquivos e outras fontes
de dados existentes, estruturas complexas a serem simplificadas e
redundâncias a serem eliminadas.

 Os produtos da técnica de Normalização, são as chamadas Relações


Normalizadas - formas de arquivamento mais simples, que contém
os mesmos dados do arquivo original, sem os defeitos que este
arquivo possa apresentar.

 No processo, as relações passam por regras chamadas de


“FORMAS NORMAIS”. (1FN, 2FN, 3FN, ...)

O processo é visto como importante pois:

 É REVERSÌVEL

 ELIMINA REDUNDÂNCIA DE DADOS

(Discutível)

 PERMITE QUE O PROBLEMA DO

MUNDO REAL SEJA MODELADO DE

FORMA MAIS SIMPLES E FLEXÍVEL

MD - Zamboni, Ricardo Página 62


MDA Fol.: 63

Terminologia da Normalização
DOMÍNIO :

 Dá-se o nome de Domínio ao conjunto de valores


que um determinado elemento de dados pode
assumir.

Exemplos:

- O conjunto formado pelos valores :


M=Masculino e F=Feminino

É o domínio do elemento de dados Sexo.


matrícula nome sexo
123 Cristina F
456 Tibúrcio M
264 Manoel M

- O conjunto formado pelos valores :


Matrícula do Aluno
É o conjunto de todas as matrículas existentes.

Matrícula nome sexo


123 Cristina F
456 Joaquim M
555 Rambo M
 O conceito de Domínio, está relacionado com
o conceito de Atributo do MER.

MD - Zamboni, Ricardo Página 63


MDA Fol.: 64

RELAÇÃO :

 É uma estrutura de dados representada por uma


tabela bidimensional - linha / coluna, que
expressa uma associação entre os elementos de
dados que a compõe.

 Podemos definir uma Relação como sendo um


sub-conjunto do produto cartesiano de diversos
domínios.

Exemplo:

A relação Empregado pode ser definida como sendo


os trios ordenados formados pelos domínios dos
elementos de dados : matrícula, nome e sexo :

Empregado (matrícula, nome, sexo)

matrícula nome sexo


123 Cristina F
456 Joaquim M

O conceito de relação se assemelha ao conceito de


Tabela / Arquivo.

MD - Zamboni, Ricardo Página 64


MDA Fol.: 65

TUPLA :

 Chama-se Tupla, cada uma das combinações de


valores de domínios que formam a relação.

 Quando se representa a relação através de uma


Tabela, cada linha dessa Tabela é uma Tupla.

 O conceito de Tupla é semelhante ao de registro


para arquivos físicos.

Exemplo:

Produto (código, descrição, peso)

código descrição peso


a001 parafuso 0,001
a002 alicate 0,200
a003 porca 0,002
a004 prego 0,001

MD - Zamboni, Ricardo Página 65


MDA Fol.: 66

CHAVE :

 Toda relação possui um domínio ou um conjunto


de domínios para os quais cada Tupla possui um
único valor. (DISCUTÍVEL)

 A este domínio ou conjunto de domínios, dá-se o


nome de Chave .

Exemplo:

Empregado (matrícula, nome, sexo)

matrícula nome sexo


123 Cristina F
456 Joaquim M
122 Paulo M

- Na relação Empregado, o domínio Matrícula é a


Chave, porque não existem duas tuplas com o mesmo
valor para Matrícula. O mesmo não se pode dizer para
Nome ou Sexo.

- Na notação de relações, a chave é identificada,


sublinhando-se o nome do domínio (ou domínios)
correspondente.

MD - Zamboni, Ricardo Página 66


MDA Fol.: 67

RELAÇÕES QUE CONTÉM RELAÇÕES :

 Uma relação pode conter como domínio toda uma


outra relação.

 A este tipo de relação damos o nome de Grupo


Repetitivo.

Exemplo:

Empregado
(matrícula, nome, sexo, rendimento mensal : mês,
salário)

matrícula nome sexo rendimento mensal Salário


123 José M 1200,00 500,00
124 Maria F 2100,00 500,00
125 Cristina F 3600,00 500,00

A relação Rendimento Mensal pode ter diversos


valores para cada Matrícula.

Dependência Funcional :
MD - Zamboni, Ricardo Página 67
MDA Fol.: 68

 Um domínio é funcionalmente dependente de


outro, quando um determinado valor do
segundo, está sempre associado a um
determinado valor do primeiro, num dado
instante.

Exemplo:
Empregado
matrícula nome sexo nível salário
salarial

- Nível Salarial é dependente funcional de matrícula,


uma vez que a cada valor de matrícula somente está
associado um único nível salarial.

- O domínio salário é funcionalmente dependente de


nível salarial, porque se atribui um único valor de
salário para cada valor de nível salarial.

MD - Zamboni, Ricardo Página 68


MDA Fol.: 69

Formas Normais
(1FN) Primeira Forma Normal

Enunciado:

Os atributos componentes da entidade devem ter valores


singulares;

Processo
 Consiste em retirar da estrutura os elementos repetitivos, ou seja,
aqueles dados que podem compor uma estrutura de vetor. Podemos
afirma que uma estrutura está normalizada na 1FN, se não possuir
elementos repetitivos.
 A 1a Forma Normal prega que todos os atributos de uma tabela
devem ser atômicos (indivisíveis), ou seja, não são permitidos
atributos multivalorados, atributos compostos ou atributos
multivalorados compostos.

Exemplo FORNECEDOR
#* cgc
* telefones
* endereço_cliente

Fornecedor
cgc Telefones 1 Endereço_cliente
telefone n
125 62037540 Rua Lucerna
60995650 144 São Paulo
62042110
458 91339955 Rua Bavária 65
Sorocaba

No caso telefone é multivalorado e endereço é composto !!!

MD - Zamboni, Ricardo Página 69


MDA Fol.: 70

1(FN) Solução:

Criar 2 entidades, alterando a estrutura do modelo inicial e


seus respectivos atributos!!!

Fornecedor
cgc rua número cidade
458 Rua Bavária 65 Sorocaba
125 Rua Lucerna 144 São Paulo
cgc_telefone
código_cgc telefone_fornecedor
125 60995650
125 62037540
125 62042110
458 91339955

Exemplo
Dada a entidade FORNECEDOR, a mesma encontra-se na 1FN ?

FORNECEDOR
#* id_forn
* data de cotação

No caso, data de cotação poderá possuir valores repetidos (mais de uma cotação em mesma data
para um mesmo fornecedor). A entidade não encontra-se na 1ª forma. Para solucionar o problema, criamos
uma nova entidade

COTAÇÃO
FORNECEDOR
#* data de cotação feito por #* id_forn
o resultado
realiza a

MD - Zamboni, Ricardo Página 70


MDA Fol.: 71

(2FN) Segunda Forma Normal

Enunciado:

Estará em 2FN quando estiver em 1FN e quando todos


os atributos da entidade devem depender do atributo
identificador;

Processo
 Consiste em retirar das estruturas que possuem chaves compostas
(campo chave sendo formado por mais de um campo), os elementos
que são funcionalmente dependentes de parte da chave. Podemos
afirmar que uma estrutura está na 2FN, se ela estiver na 1FN e não
possuir campos que são funcionalmente dependente de parte da
chave.

Exercício
Dada a entidade ESTOQUE, a mesma está em 2FN?.

ESTOQUE
#* código_prod
* qtde_disp
* qtde_retida
* qtde_não_disponível

Resposta:

MD - Zamboni, Ricardo Página 71


MDA Fol.: 72
.

Exemplo:

Validar os atributos das entidades CONTA e BANCO


BANCO
CONTA #* numero
#* numero gerenciado por
* nome
* balancete
* data de abertura
* localização do banco contêm

Cada instância de banco e número da conta determinam valores específicos para balancete e data

de abertura, porém o atributo localização do banco é invalido.

Ele é dependente de banco e não de número da entidade CONTA.

Se um atributo não é dependente do UID da entidade ao qual ele faz parte , ele deve ser

removido.

MD - Zamboni, Ricardo Página 72


MDA Fol.: 73

(3FN)Terceira Forma Normal

Enunciado:

Estará em 3FN quando estiver em 2FN e sendo que um


atributo não UID não poderá ser dependente de outro
atributo não UID;

Processo
 Consiste em retirar das estruturas os campos que são
funcionalmente dependentes de outros campos que não são
chaves. Podemos afirmar que uma estrutura está na 3FN, se ela
estiver na 2FN e não possuir campos dependentes de outros
campos não chaves.

Exemplo

ORDEM_PRODUÇÃO

número_ordem cód_produto nome_produto peso_padrão data_ordem

OS001 A001 TUBO 0,001 15/09/2001

OS001 X888 TINTA 0,002 15/09/2001

OS001 Y777 TAMPA 0,001 15/09/2001

OS001 Z666 PONTA 0,003 15/09/2001

ORDEM_PRODUÇÂO
#* número_ordem
* cód_produto
* nome produto
* peso padrão
* data_ordem

MD - Zamboni, Ricardo Página 73


MDA Fol.: 74

Quais atributos são dependentes totalmente do número


de ordem? E do código do produto?

Atributo Dependência
Número_ordem

Data_ordem

Código_produto

Nome_produto

Peso padrão

Portanto para 3FN temos:

PRODUTO
ORDEM_PRODUÇÃO #* cód_produto
#* número_ordem efetuado para
* nome produto
* data_ordem * peso padrão

associado

MD - Zamboni, Ricardo Página 74


MDA Fol.: 75

Exercícios
Normalizar o modelo abaixo.
1. Incluir valores para validação
2. Transformar 1FN, 2FN e 3FN
3. Desenhar o MER completo
FUNCIONARIO
cod_func nome_func nome_depende cod_dept nome_dept salário cccusto end_func

Solução :

MD - Zamboni, Ricardo Página 75


MDA Fol.: 76

Exercício
Considere que a seguinte relação

PROJETO

num-projeto chapa- orçamento horas-trabalhadas


empregado

Para cada projeto existente sabe-se qual o seu orçamento e quais os empregados
que nele trabalham. Um empregado pode trabalhar em vários projetos, devendo-
se saber quantas horas já trabalhou em cada projeto.

A relação encontra-se em 1FN?

A relação encontra-se em 2FN?

Em caso de não estar em 2FN, como alterar esta relação para que passe a estar na
2ª Forma Normal?

MD - Zamboni, Ricardo Página 76


MDA Fol.: 77

Exercício
Normalizar a seguinte relação, desenhando o MER completo da solução:
PEDIDO
núm.do pedido data pedido núm.cliente endereço cliente código item
descrição do item qtde solicitada preço unitário total pedido unidade de venda
condição_pagto data entrega uf_cliente unidade_item peso_padrão

Obs.: Os atributos em negrito indicam grupos repetitivos.

Solução :

MD - Zamboni, Ricardo Página 77


MDA Fol.: 78

Exercício
Normalizar a seguinte relação, desenhando o MER completo da solução:
FATURA
núm.da fatura cgc do cliente série_fatura data_fatura código item
descrição do item qtde do item preço unitário total fatura unidade de venda
condição_pagto data_emissão transportadora unidade_item valor item
cgcempr inscriçãoempr inscricaocliente lojacliente nome cliente
uf cliente

Solução :

MD - Zamboni, Ricardo Página 78


MDA Fol.: 79

Relacionamentos com múltiplos Graus M:M

Enunciado:

Se o relacionamento expresso entre duas entidades for de


natureza M:N, devemos avaliar as entidades de forma a
adicionar uma entidade (dita com interseção) entre as
entidades relacionadas;

Processo
 Consiste em retirar da estrutura elementos que possam atender de
forma clara as duas entidades. É um processo que visa melhorar os
acessos e minimizar eventuais problemas de desempenho.
 Os atributos identificadores da entidade de interseção são compostos
pelos relacionamentos de origem.

Exemplo
O relacionamento abaixo possui um relacionamento M:N. Como descobrimos o preço de compra
para um FORNECEDOR ?

ITEM_COMPRADO
Cditem nome descrição

FORNECEDOR
Cgc nome_forn

ITEM_COMPRADO FORNECEDOR
#* cditem Comprado de #* cgc
* nome_item * nome_forn
* descrição_item vende

MD - Zamboni, Ricardo Página 79


MDA Fol.: 80

Solução :

ITEM_COMPRADO FORNECEDOR
* preço comprado de #* cgc
* quantid. por pacote * nome_forn
* medida vende

relacionado

compõem
ITEM
#* cditem
* nome_item
* descrição_item

MD - Zamboni, Ricardo Página 80


MDA Fol.: 81

Layout para Representação

Relacionamento M:N

Representação das Interseções

ENTIDADE
INTERSEÇÃO

OU

ENTIDADE INTERSEÇÃO

MD - Zamboni, Ricardo Página 81


MDA Fol.: 82

Exemplo
Queremos saber a data que cada estudante se matriculou em um determinado curso, bem como a
data de conclusão e a nota final.

ESTUDANTE CURSO
#* id matriculado em #* código
* nome * nome
* telefone contem o duração
o preço

Solução :

MATRICULA
* data da matricula
* data de conclusão
* nota final

para para
identificado por efetuado por

ESTUDANTE CURSO
#* id #* código
* nome * nome
* telefone * duração
* preço

Os atributos de matricula são data de matricula, data de conclusão e grau.


O UID de matricula é formado do UID de ESTUDANTE e CURSO.
No exemplo abaixo, o UID é formado também por um atributo da entidade interseção.

MD - Zamboni, Ricardo Página 82


MDA Fol.: 83

Exemplo
Queremos saber a data que cada engenheiro foi associado a um projeto e a sua duração.

ENGENHEIRO PROJETO
#* crea lotado a #* númproj
* nome_enge * desc_proj
controlado
por

Solução :
ASSOCIAÇÃO
#* data da associação
# num_proj
#crea
* duração

para de
ligado a sujeito a

ENGENHEIRO PROJETO
#* crea #* num_proj
* nome_enge * desc_proj

Exemplo
Queremos saber o preço de um produto específico vendido por um determinado vendedor.

PRODUTO VENDEDOR
#* id vendido pelo #* código
* nome * nome
* descrição vende

MD - Zamboni, Ricardo Página 83


MDA Fol.: 84

Solução :

ITEM VENDEDOR
#* número de catálogo vendido por #* código
* preço * nome
* quantid. por pacote vende
* medida
formado
por

tem
PRODUTO
#* id
* nome
* decrição

Acrescentamos então um atributo para ser o UID da entidade ITEM.

MD - Zamboni, Ricardo Página 84


MDA Fol.: 85

Exercício
Dado o relacionamento M:N entre CLIENTE e PRODUTO, adicione os atributos data do pedido,
quantidade unitária e preço unitário.

CLIENTE PRODUTO
#* id solicitante de #* número
* nome * nome
pedido por * medida

Solução :

MD - Zamboni, Ricardo Página 85

Você também pode gostar