Escolar Documentos
Profissional Documentos
Cultura Documentos
FUNÇÕES
.
Zamboni, Ricardo
MDA Fol.: 2
Capítulo 1
Modelagem de dados - Básico
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
1. ESTRATÉGIA
4. CONSTRUÇÃO
5. DOCUMENTAÇÃO
6. TRANSIÇÃO
7. PRODUÇÃO
ANÁLISE DE DADOS
• É o requerimento do negócio.
Strogonoff Carne/Frango/Camarão
Champignon
Tomate
Creme de Leite
Temperos :
Sal
Cebola
Molho Inglês
• Componentes :
2. Dicionário de Dados - DD
Ex.: Automóvel ? :
- Definição Ruim :
- Definição Melhor :
- O Dado é da Empresa.
- Analistas de Sistemas
- Administrador de Dados
- Usuário
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
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
Sintaxe Robusta
Um MER documenta e organiza uma especificação de maneira clara e precisa.
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.
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
Exemplos
Os seguintes itens podem ser considerados necessários em uma especificação de um departamento
pessoal :
EMPREGADO
DEPARTAMENTO
PROJETO
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
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.
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
Siga os passos abaixo para identificar e modelar entidades baseado em uma especificação formal.
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
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. “
Solução :
Perguntas Adicionais:-
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)
um e somente um
Exemplos
Leia o relacionamento entre EMPREGADO e DEPARTAMENTO :
EMPREGADO DEPARTAMENTO
associado a
responsável por
EMPREGADO DEPARTAMENTO
responsável por
possui
recebedor do
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 :
Exercício 1-3
Solução:
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:
Tipos de Relacionamentos
Existem 3 tipos de relacionamentos. São eles:
Exemplo
Existe um relacionamento M:1 entre a entidade CLIENTE e VENDEDOR.
CLIENTE VENDEDOR
atendido por
atende
Exemplo
Existe um relacionamento M:M entre ESTUDANTE e CURSO
ESTUDANTE CURSO
matriculado em
possui
EMPREGADO PROJETO
associado a
desenvolvido por
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
Exemplo
A seguinte matriz mostra um conjunto de relacionamentos entre quatro entidades
Exemplo
Desenhe um diagrama baseado na matriz de relacionamento acima. Escreva os nomes dos
relacionamentos e adicione a opcionalidade e graus necessários.
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
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.
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.
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
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
Exemplo
Leia o relacionamento representado pelo seguinte diagrama.
EMPREGADO DEPARTAMENTO
associado a
responsável por
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
Solução :
Exercício 1-6
“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. “
Solução :
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.
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
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).
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
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
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 :
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
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
gerencia
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
ASSOCIAÇÃO
# * data da associação
* duração
o posição
de para
associado a associado a
EMPREGADO PROJETO
#* id #* numero
* nome * titulo
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
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.
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 :
Classificando os Atributos
COMPOSTOS
DETERMINANTES
MULTIVALORADOS
GLOBAIS
SIMPLES
RELACIONAMENTO
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
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).
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
.
CLIENTE
# id cliente
razão social
limite de crédito
telefone residencial
telefone comercial
telefone cobrança
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.
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:-
O atributo é multivalorado.
Exemplos:-
Exemplo:-
Exercício:-
Solução:
Capítulo 2
Modelagem de dados - Normalização e Formas
Normais
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.
É REVERSÌVEL
(Discutível)
Terminologia da Normalização
DOMÍNIO :
Exemplos:
RELAÇÃO :
Exemplo:
TUPLA :
Exemplo:
CHAVE :
Exemplo:
Exemplo:
Empregado
(matrícula, nome, sexo, rendimento mensal : mês,
salário)
Dependência Funcional :
MD - Zamboni, Ricardo Página 67
MDA Fol.: 68
Exemplo:
Empregado
matrícula nome sexo nível salário
salarial
Formas Normais
(1FN) Primeira Forma Normal
Enunciado:
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
1(FN) Solução:
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
Enunciado:
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:
Exemplo:
Cada instância de banco e número da conta determinam valores específicos para balancete e data
Se um atributo não é dependente do UID da entidade ao qual ele faz parte , ele deve ser
removido.
Enunciado:
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
ORDEM_PRODUÇÂO
#* número_ordem
* cód_produto
* nome produto
* peso padrão
* data_ordem
•
Atributo Dependência
Número_ordem
Data_ordem
Código_produto
Nome_produto
Peso padrão
PRODUTO
ORDEM_PRODUÇÃO #* cód_produto
#* número_ordem efetuado para
* nome produto
* data_ordem * peso padrão
associado
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 :
Exercício
Considere que a seguinte relação
PROJETO
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.
Em caso de não estar em 2FN, como alterar esta relação para que passe a estar na
2ª Forma Normal?
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
Solução :
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 :
Enunciado:
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
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
Relacionamento M:N
ENTIDADE
INTERSEÇÃO
OU
ENTIDADE INTERSEÇÃO
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
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
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
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 :