Buscar

Modelagem de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Prof: Jailton Cardoso da Cruz
A Abordagem Relacional
Prof. Jailton Cardoso
 A meta do projetista é produzir um modelo ou
representação de qualquer entidade que será
construída posteriormente.
 O processo combina:
◦ Intuição
◦ Julgamento baseado em experiências
◦ Heurísticas
◦ Critérios de julgamento da qualidade 
Prof. Jailton Cardoso
 Atividades Técnicas
◦ Projeto
 Projeto de dados
 Projeto Arquitetural
 Projeto Procedimental
◦ Codificação
◦ Testes
Prof. Jailton Cardoso
 Projeto de Dados
◦ Transforma o modelo de domínio de informação criado
durante a análise nas estruturas de dados que serão
exigidas para se implementar o software
 Projeto Arquitetural
◦ Define o relacionamento entre os grandes componentes
estruturais do programa
 Projeto Procedimental
◦ Transforma os componentes estruturais numa descrição
procedimental do software
Prof. Jailton Cardoso
Prof. Jailton Cardoso
 Modelagem de Dados
◦ Consiste da aplicação de técnicas para, a partir dos requisitos do
sistema, desenvolver o projeto do modelo de dados necessário
para armazenar os dados que darão suporte ao desenvolvimento
do modelo de processos
◦ Neste momento não estaremos preocupados nos processo e sim
nos objetos que compões este minimundo, identificando os
elemetos conceituais que são as entidades, relacionamentos e os
atributos das entidades.
Prof. Jailton Cardoso
 Modelagem de Dados
◦ Este processo, devido sua característica de ser independente de
software ou de hardware facilita a implementação da
independência física e lógica de dados.
◦ Desenvolver o modelo de dados é um processo criativo e, na
minha modesta opinião, o mais importante no projeto de um
sistema. É como criar música e poesia.
Prof. Jailton Cardoso
...
“Só queria discutir um ponto: a relação entre poesia e música 
no ato criativo. Há músico que faz a melodia e depois o poeta 
“coloca” a letra. Vinicius de Moraes teria feito isso com Tom 
Jobim, com Baden Powell e até com compositores clássicos. 
Pode ou não pode? 
Em sentido contrário, o músico “musicaliza” o poema como 
fez Joan Manuel Serrat com os versos esplêndidos de Antonio 
Machado e o nosso Fagner fez com um texto de Cecília 
Meireles.” ...
Disponível em: http://www.antoniomiranda.com.br/editorial/letra_d_musica.html
Prof. Jailton Cardoso
Prof. Jailton Cardoso
 Estratégias para Desenvolvimento do Projeto de Dados
 Podemos desenvolver o modelo de dados a partir de 
três elementos principais:
◦ Descrição Funcional
◦ Definição de Arquivo
◦ Documento
Prof. Jailton Cardoso
 Neste caso iremos criar o modelo de dados a partir de
uma descrição narrativa de processo, por meio escrito
ou falado, ou de algum processo do negócio.
Prof. Jailton Cardoso
Descrição Funcional
01. Uma determinada empresa fornece produtos e serviços de informática. Clientes fazem
02. pedidos de material ou serviços através de um formulário de pedidos. Cada cliente 
03. é identificado por um código pelo qual podemos ter acesso aos seus dados tais como
04. nome, endereço (rua, numero, bairro, cidade, cep), telefone, o tipo de cliente, se 
05. pessoa física ou jurídica, o número do CPF ou CNPJ e seu limite de crédito. Nos 
06. pedidos devemos informar os dados do cliente, o endereço de entrega, o tipo de frete
07. (CIF - por conta do cliente ou FOB – por conta do fornecedor), os dados da 
08. transportadora. Os itens do pedido devem ser detalhados, informando o código do 
09. produto (material ou serviço a ser fornecido), o nome do produto, a quantidade, 
10. unidade de medida o valor unitário e o valor total do referido item. O pedido deve ser 
11. totalizado no campo “Total do Pedido”. Informar também o código e o nome do 
12. vendedor a data do pedido e o prazo de entrega.
Prof. Jailton Cardoso
 Questões
◦ ¿ Sobre quais os objetos queremos manter informações
◦ ¿ Quais as informações de interesse do usuário. 
Devemos encontrar no caso descrito questões tais 
como:
 ¿ Quais produtos foram comprados por determinado cliente
 ¿ Qual o total de venda de um determinado vendedor
 ¿ Quais pedido foram transportados por determinada 
transportadora
 ¿ Quais os serviços pedidos
 ¿ Para qual(ais) cidade(s) foram efetuadas vendas
Prof. Jailton Cardoso
 Entidades: 
◦ Linha 1. Produtos e clientes (objeto 
concreto), serviços (objeto abstrato)
◦ Linha 2. Pedido (documento)
◦ Linha 4. Bairro, cidade (locais)
◦ Linha 8. Transportadora (pessoa jurídica)
◦ Linha 10. Unidade de medida (evento legal)
◦ Linha 12. Vendedor (pessoa física)
Prof. Jailton Cardoso
 Relacionamentos: 
◦ Linha 1,2: Clientes fazem pedidos
◦ Linha 7,8: Transportadora transporta
pedido
◦ Linha 8,9:Pedido possui produtos
◦ Vendedor emite pedido
Prof. Jailton Cardoso
Transportadora
Transporta
1
N
Cliente
Faz
1
N
Emite Vendedor
N
1
Pedido
Produto Composto
N
N
Prof. Jailton Cardoso
 Neste caso iremos criar o modelo de dados a partir de
uma descrição de um arquivo de um sistema legado
utilizando o processo de normalização.
◦ Modelo Relacional
◦ Sistema de Arquivo
◦ Formato TXT
Prof. Jailton Cardoso
*NUM_PEDIDO
COD_CLIENTE
NOME_CLIENTE
TIPO_CLIENTE
CGC_CPF_CLIENTE
ENDER_CLIENTE
TEL_CLIENTE
LIMITE_CRED_CLIENTE
ENDERECO_ENTREGA
TIPO_FRETE
TIPO_PEDIDO
QTDE_PRODUTO
#COD_PRODUTO
#NOME_PRODUTO
#SIGLA_UNIDADE_MEDIDA_PRODUTO
#UNIDADE_MEDIDA_PRODUTO
#QTD_PRODUTO
# VALOR_UNITARIO
#VALOR_TOT_PRODUTO
VALOR_TOT_PEDIDO
COD_VENDEDOR
NOME_VENDEDOR
COD_TRANSPORTADORA
NOME_TRANSPORTADORA
* Indica chave primária
# indica atributo multivalorado
Prof. Jailton Cardoso
 Conceito proposto E. F. Codd (1972)
 Processo matemático formal
 Fundamentado na teoria dos conjuntos
Prof. Jailton Cardoso
 Objetivo: criar um conjunto de entidades e 
relacionamentos que se apresentem livre de 
problemas tais como:
◦ Grupos repetitivos (atributos ou conjunto de 
atributos multivalorados)
◦ Anomalias de atualização
◦ Dependência funcional (parcial, em relação à 
chave primária composta, ou transitiva)
◦ Redundância de dados
◦ Garantir a unicidade dos dados
◦ Permitir uma representação semântica do modelo
Prof. Jailton Cardoso
 Anomalias de atualização e consulta
◦ Anomalia de inclusão
◦ Anomalia de remoção
◦ Anomalia de atualização
◦ Anomalias de consulta
Prof. Jailton Cardoso
 Vamos utilizar o exemplo para ilustrar o 
processo de normalização utilizando uma 
descrição de um arquivo de nota fiscal
 Onde utilizaremos a seguinte notação:
* chave primária
# item repetitivo (multivalorado)
Prof. Jailton Cardoso
 ¿ Quando ocorre – ocorre quando uma entidade
apresenta atributos ou grupos de atributos
repetitivos.
 ¿ Por que – uma tupla deve ser ATÔMICA, ou seja
indivisível.
 ¿ Como resolver –
◦ Eliminando o atributo ou grupo de atributos
multivalorados.
◦ Criando uma nova entidade com o atributo ou grupo de
atributos multivalorados, onde a chave primária da
entidade original fará parte da chave da entidade criada
além de outro(s) atributo(s) da nova entidade que garantam
a que não haverá duplicidade.
Prof. Jailton Cardoso
Pedido
*NUM_PEDIDO
COD_CLIENTE
NOME_CLIENTE
TIPO_CLIENTE
CGC_CPF_CLIENTE
ENDER_CLIENTE
TEL_CLIENTE
LIMITE_CRED_CLIENTE
ENDERECO_ENTREGA
TIPO_FRETE
TIPO_PEDIDO
QTDE_PRODUTO
VALOR_TOT_PEDIDO
COD_VENDEDOR
NOME_VENDEDOR
COD_TRANSPORTADORA
NOME_TRANSPORTADORA
Item_Pedido
*NUM_PEDIDO
*COD_PRODUTO
NOME_PRODUTO
SIGLA_UNIDADE_MEDIDA_PRODUTO
UNIDADE_MEDIDA_PRODUTO
QTD_PRODUTO
VALOR_UNITARIO
VALOR_TOT_PRODUTO
Observar que COD_PRODUTO foi escolhido
para compor a chave composta da entidade
Item_produto a fim de garantir que não ocorra
tuplas duplicadas
Pedido Item_PedidoPossui
1 N
Prof. Jailton Cardoso
 ¿ O que é – ocorre quando um atributo ou conjunto
de atributos depende funcionalmente de outro, ou
seja um atributo ou conjunto de atributos B
depende de um atributo A se A determina B.
 A → B, lê - se:
◦ A funcionalmente determina B
◦ B é funcionalmente dependente de A
◦ B éfunção de A
 Para cada valor de A só existe um valor de B.
Prof. Jailton Cardoso
 ¿ O que é – ocorre quando, em uma entidade que possui
chave primária composta, para cada atributo B depende
funcionalmente da chave composta completa e não parte
dela. Caso Um atributo B dependa de parte da chave ocorre
uma dependência PARCIAL em relação à chave composta.
 A, B, C → D (D é totalmente funcionalmente dependente de 
{A, B, C}) se para todo valor de {A, B, C} só existe um valor de 
D, e se D não é funcionalmente dependente de A, ou B, ou C.
Prof. Jailton Cardoso
 ¿ O que é – ocorre quando, em uma entidade, existe(m)
atributo(s) que depende(m) funcionalmente de um outro
atributo que não faz parte da chave. Esta análise deve ser
feita entre os atributos que não fazem parte da chave.
 A → B (B é funcionalmente dependente de A) e A é um 
atributo que não faz parte da chave primária.
 Ocorre dependência funcional transitiva quando o valor de
um atributo também pode ser obtido através de uma
expressão.
f(A) → B
◦ P. ex. data_nascimento e idade. O atributo idade pode ser 
obtido atraveés da subtração da data atual pela data do 
nascimento
Prof. Jailton Cardoso
 ¿ Como – uma entidade está na segunda forma
normal quando se encontra na 1FN e não existe
ocorrência de dependência funcional parcial.
 Então a segunda forma normal só se aplica a
entidades com chave concatenada.
 ¿ O que fazer – criar uma nova entidade cuja chave
primária será a parte da chave que gerou a
dependência e os atributos dependentes da parte
da chave.
 Na entidade Item_NF aplicaremos a 2FN
Prof. Jailton Cardoso
Item_Pedido
*NUM_Pedido
*COD_PRODUTO
QTDE_PRODUTO
VAL_UNIT_PRODUTO
VAL_TOTAL_PRODUTO
Pedido Item_PedidoPossui
1 N
Produto
*COD_PRODUTO
NOME_PRODUTO
VAL_UNIT_PRODUTO
SIG_UNID_MED_PROD
DSC_UNID_MED_PRO
Produto
Possui
1
N
Prof. Jailton Cardoso
 ¿ Como – uma entidade está na segunda forma
normal quando se encontra na 1FN e na 2FN e não
existe ocorrência de dependência funcional
transitiva, ou seja, todos os atributos dependem
unicamente da chave primária.
 ¿ O que fazer – criar uma nova entidade cuja chave
primária será o atributo que gerou a dependência e
os atributos dependentes deste atributo.
 Na entidade Pedido, Produto e Item_Pedido
aplicaremos a 3FN
Prof. Jailton Cardoso
 Aplicando a 3FN em Pedido
Pedido
*NUM_PEDIDO
COD_CLIENTE
ENDERECO_ENTREGA
TIPO_FRETE
TIPO_PEDIDO
COD_VENDEDOR
COD_TRANSPORTADORA
Vendedor
*COD_VENDEDOR
NOME_VENDEDOR
Cliente
*COD_CLIENTE
NOME_CLIENTE
TIPO_CLIENTE
CGC_CPF_CLIENTE
ENDER_CLIENTE
TEL_CLIENTE
LIMITE_CRED_CLIENTE
Transportadora
*COD_TRANSPORTADORA
NOME_TRANSPORTADORA
Prof. Jailton Cardoso
Transportadora
PedidoTransporta
1
N
Cliente
Faz
1
N
Emite Vendedor
N
1
Prof. Jailton Cardoso
Prof. Jailton Cardoso
Item_Pedido
*NUM_Pedido
*COD_PRODUTO
QTDE_PRODUTO
VAL-UNIT_PRODUTO
VAL_TOTAL_PRODUTO
Na tabela Item_Pedido, o 
atributo Val_total_produto é um 
atributo que pode ser calculado 
através da somatória do 
produto do valor unitário pela 
quantidade. Neste caso 
elimina-se o atributo.
Item_Pedido
*NUM_Pedido
*COD_PRODUTO
QTDE_PRODUTO
VAL_UNIT_PROD
Produto
*COD_PRODUTO
NOME_PRODUTO
VAL_UNIT_PRODUTO
SIG_UNID_MED_PROD
Unidade_medida
*COD_UNID_MEDIDA
DSC_UNID_MEDIDA
Considerações sobre o atributo Val_unit_produto
para fins de histórico, o valor unitário do produto 
deve se repetir na entidade item_pedido, pois em 
caso de mudança no valor do produto a nota 
fiscal ficará com valor diferente do valor emitido 
(anomalia de alteração) 
Transportadora
PedidoTransporta
1
N
Cliente
Faz
1
N
Emite Vendedor
N
1
Item_Pedido Possui
N
1
ProdutoCompõe
N
1
Unidade_medida
Possui
1
N
Prof. Jailton Cardoso
Prof. Jailton Cardoso
Prof. Jailton Cardoso
PEDIDO
Nr:__________ Data: ___/___/___
Tipo: Prod:_ Serv:_ Cliente:_______________ 
CGC/CPF: _________ End: _______________
Transp: __________ Vend: _______________
Tipo Frete: CIF:_ FOB:Transp:_____________
Cód Produto Qtd UM Vl.Unit Vl.Total
Vendedor: ___ Nome:_____________
Total:

Outros materiais