SlideShare una empresa de Scribd logo
1 de 38
Modelagem Relacional e Normalização de Dados Juliana Alvares
Modelagem Relacional O Modelo de Dados Relacional representa os dados em um BD através de um conjunto de  Relações  (tabelas). Estas relações contêm informações sobre entidades ou relacionamentos  existentes no domínio da aplicação utilizada como alvo para a modelagem. Informalmente uma relação pode ser considerada como uma tabela de valores, onde cada linha desta tabela representa uma coleção de valores de dados inter relacionados Estes conjuntos de valores podem estar representando uma instância de uma entidade ou relacionamento da aplicação.
Modelagem Relacional Os nomes fornecidos às tabelas e às suas colunas podem auxiliar na compreensão do significado dos valores armazenados em cada uma das suas linhas. Em terminologia do Modelo Relacional, cada linha da relação é  denominada de  Tupla ,  o nome da coluna é denominado  Atributo  da relação. É importante assinalar que não se podem ter tuplas duplicadas em uma tabela.
FCODIGO  FNOME  FCATEGORIA  FCIDADE F1  Santos  20  Piracicaba F2  Machado  10  São Paulo F3  Almeida  30  São Paulo F4  Ferreira  20  Campinas F5  Rodrigues  30  São Carlos O  Domínio  consiste de um grupo de valores atômicos a partir dos quais um ou mais  atributos (ou colunas) retiram seus valores reais. Como por exemplo o domínio do atributo FCIDADE consiste no conjunto de todos os nomes legais de cidades. Modelagem Relacional
Modelagem Relacional O  Esquema de uma Relação  consiste de um conjunto de atributos que descrevem as  características dos elementos a ser modelados. É denotado por R(A1, A2, ...., An), onde cada atributo Ai toma seus valores a partir de um domínio Di; e R é o nome da relação. O número de atributos na relação n, consiste no grau da relação. Os domínios a partir dos quais os atributos da relação retiram seus valores não precisam ser necessariamente distintos. Como exemplo o esquema da relação apresentada na figura anterior é dado por: Fornecedor (FCodigo, FNome, FCategoria, FCidade)
Modelagem Relacional Como  Esquema de um BD Relacional  entende-se o conjunto de intenções (Esquemas  das Relações) definidas para todas as relações da Base, e um conjunto de restrições de integridade. Sobre os nomes fornecidos aos atributos, é permitido àqueles que representem conceitos semelhantes, possuir ou não o mesmo nome em diferentes relações. Da mesma forma, atributos representando conceitos diferentes podem possuir o mesmo nome. O conjunto de restrições de integridade define regras básicas que os valores dos atributos devem obedecer quando aparecerem em uma relação.
Modelagem Relacional A  Instância de uma Relação  consiste no conjunto de valores que cada atributo, definido  no esquema, assume em um determinado instante, formando o conjunto de tuplas. Ou seja, as  instâncias das relações formam os dados que são armazenados no BD. As relações apresentam as  seguintes características: a) Não há tuplas duplicadas em uma relação; b) Ordem das tuplas na relação não é relevante para diferenciar as relações; c) Os valores dos atributos devem ser atômicos, não sendo divisíveis em componentes.
Modelagem Relacional Chave  é um conjunto de atributos de uma relação e que pode ser utilizado para a  realização de qualquer operação que envolva atributos e valores de atributos.
Modelagem Relacional Uma relação pode ter várias chaves para identificação unívoca de suas  tuplas, onde cada uma é denominada de  Chave Candidata . Entre as chaves  candidatas é escolhida uma pelo DBA (durante a fase de projeto lógico) para ser suportada pelo SGBD e assim, é mantido automaticamente a restrição de  unicidade. Esta chave escolhida é denominada de  Chave Primária . Desta forma,  uma relação nunca apresentará tuplas repetidas em sua instância, o que significa a possibilidade de identificação de cada tupla separadamente uma da outra.
Modelagem Relacional Da relação apresentada para fornecedores, o conjunto {FCODIGO} é a chave primária da relação, uma vez que dois fornecedores não apresentarão o mesmo código.
Modelagem Relacional Um conjunto de atributos Fk em um esquema da relação R1 é uma  Chave Estrangeira  de  R1 se os atributos em Fk possuem o mesmo domínio que os atributos da chave primária de uma relação R2 e os valores de Fk em uma tupla de R1 devem ser os mesmos que ocorrem em tuplas de R2 ou serem nulos, e neste caso é dito que os atributos da Fk se referenciam à relação R2.
Modelagem Relacional Para exemplificar o conceito de chave estrangeira, considere as relações abaixo sobre Peças e Fornecedores, e das peças fornecidas por cada fornecedor (as chaves de cada relação se encontram grifadas): FORNECEDOR(FCODIGO, FNOME, FCATEGORIA, FCIDADE); PEÇA (PCODIGO, PNOME, PCOR, PESO, PCIDADE); FP (FPCODIGO,  FCODIGO ,  PCODIGO , QTDE);
Modelagem Relacional Entre as relações anteriores, pode-se observar que FCODIGO e PCODIGO quando aparecem na relação FP são chaves estrangeiras desta relação pois são chaves primárias das relações FORNECEDOR e PEÇA, respectivamente.
Normalização de Dados Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros.
 
Normalização de Dados Uma regra de ouro que devemos observar quando do projeto de um Banco de Dados baseado no Modelo Relacional de Dados é a de "não misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. Não devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetição desnecessária dos dados bem como inconsistência dos dados.
Normalização de Dados Normalmente após a aplicação das regras de normalização de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior de tabelas do que o originalmente existente. Este processo causa a simplificação dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manutenção.
Normalização de Dados Objetivos ,[object Object]
Facilidade de manipulações do banco de dados;
Facilidade de manutenção do sistema de Informação.
Normalização de Dados O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais (ou regras de normalização), na prática usamos um conjunto de três Formas Normais. Vejamos as três primeiras formas normais do processo de normalização de dados.
Normalização de Dados Primeira Forma Normal 1FN Uma relação estará na Primeira forma normal 1FN, se e somente se todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.
Normalização de Dados Procedimentos: a) Identificar a chave primária da entidade; b) Identificar o grupo repetitivo e removê-lo da entidade; c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo.
Normalização de Dados Exemplo da primeira forma normal Considere a tabela cliente abaixo: Cliente  Código_cliente  Nome  * Telefone  Endereço
Normalização de Dados Agora a tabela com os dados: Tabela desnormalizada, ou seja, não está na 1ª forma normal Analisando teremos:
Normalização de Dados Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma célula da tabela, logo ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma coluna diferente, como no exemplo a seguir: Tabela ainda não está na primeira forma normal
Normalização de Dados Mesmo com o ajuste acima, a tabela ainda não está na primeira forma normal, pois há clientes com mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar uma nova tabela para armazenar os números dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:
Normalização de Dados Tabela na 1ª forma normal  Tabela na 1ª forma normal
Normalização de Dados Nesse exemplo, foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita, contudo é possível manter a tabela original, admitindo-se valores duplos em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-3400-3563 e 19-3500-9650. Neste caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim, principalmente quando há poucos casos de repetição.
Normalização de Dados Segunda Forma Normal 2FN Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela).
Normalização de Dados Procedimentos: a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária; b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes .
Normalização de Dados Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas  N_pedido  Código_produto  Produto  Quant  Valor_unit  Subtotal
Normalização de Dados Agora a tabela com os dados: Tabela não está na segunda forma normal Analisando teremos:
Normalização de Dados O nome do produto depende do código do produto, porém não depende de N_pedido que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda. Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal. Veja o resultado:
Normalização de Dados Tabela na 2ª forma normal Tabela na 2ª forma normal
Normalização de Dados Terceira Forma Normal 3FN Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
Normalização de Dados Procedimentos: a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave; b) Removê-los. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
Normalização de Dados Exemplo da terceira forma normal Considere a tabela abaixo: Tabela não está na terceira forma normal

Más contenido relacionado

La actualidad más candente

Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dadosinfo_cimol
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitualMario Sergio
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Leinylson Fontinele
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Leinylson Fontinele
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Gustavo Zimmermann
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de DadosRoberto Grande
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacionalHélio Martins
 
Informática aplicada à administração 1
Informática aplicada à administração 1Informática aplicada à administração 1
Informática aplicada à administração 1Andrey Martins
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 

La actualidad más candente (20)

Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
 
Informática aplicada à administração 1
Informática aplicada à administração 1Informática aplicada à administração 1
Informática aplicada à administração 1
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 

Similar a Modelagem relacional e normalização de dados

Aula Modelo Relacional
Aula Modelo RelacionalAula Modelo Relacional
Aula Modelo RelacionalMauro Duarte
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de DadosKablo Skater Rail
 
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdf
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdfAula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdf
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdfnosbisantos
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normaisSandro Freitas
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosPatrícia Morais
 
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdfaula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdfSaraR49
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
Atps de banco de dados rel 1 3-4 atualizado formato ok
Atps de banco de dados rel 1 3-4  atualizado formato okAtps de banco de dados rel 1 3-4  atualizado formato ok
Atps de banco de dados rel 1 3-4 atualizado formato okThyvis Kalevi
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediárioaprcds
 
Oficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQLOficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQLRaphael Donaire Albino
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 

Similar a Modelagem relacional e normalização de dados (20)

Aula Modelo Relacional
Aula Modelo RelacionalAula Modelo Relacional
Aula Modelo Relacional
 
Aula1
Aula1Aula1
Aula1
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de Dados
 
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdf
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdfAula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdf
Aula_17-18_Modelo_Relacional_parte_III_BD_FMM.pdf
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normais
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdfaula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
 
Banco de Dados Relacional Estendido
Banco de Dados Relacional EstendidoBanco de Dados Relacional Estendido
Banco de Dados Relacional Estendido
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
Atps de banco de dados rel 1 3-4 atualizado formato ok
Atps de banco de dados rel 1 3-4  atualizado formato okAtps de banco de dados rel 1 3-4  atualizado formato ok
Atps de banco de dados rel 1 3-4 atualizado formato ok
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
 
Sistemas de Informação II
Sistemas de Informação IISistemas de Informação II
Sistemas de Informação II
 
Oficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQLOficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQL
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 

Modelagem relacional e normalização de dados

  • 1. Modelagem Relacional e Normalização de Dados Juliana Alvares
  • 2. Modelagem Relacional O Modelo de Dados Relacional representa os dados em um BD através de um conjunto de Relações (tabelas). Estas relações contêm informações sobre entidades ou relacionamentos existentes no domínio da aplicação utilizada como alvo para a modelagem. Informalmente uma relação pode ser considerada como uma tabela de valores, onde cada linha desta tabela representa uma coleção de valores de dados inter relacionados Estes conjuntos de valores podem estar representando uma instância de uma entidade ou relacionamento da aplicação.
  • 3. Modelagem Relacional Os nomes fornecidos às tabelas e às suas colunas podem auxiliar na compreensão do significado dos valores armazenados em cada uma das suas linhas. Em terminologia do Modelo Relacional, cada linha da relação é denominada de Tupla , o nome da coluna é denominado Atributo da relação. É importante assinalar que não se podem ter tuplas duplicadas em uma tabela.
  • 4. FCODIGO FNOME FCATEGORIA FCIDADE F1 Santos 20 Piracicaba F2 Machado 10 São Paulo F3 Almeida 30 São Paulo F4 Ferreira 20 Campinas F5 Rodrigues 30 São Carlos O Domínio consiste de um grupo de valores atômicos a partir dos quais um ou mais atributos (ou colunas) retiram seus valores reais. Como por exemplo o domínio do atributo FCIDADE consiste no conjunto de todos os nomes legais de cidades. Modelagem Relacional
  • 5. Modelagem Relacional O Esquema de uma Relação consiste de um conjunto de atributos que descrevem as características dos elementos a ser modelados. É denotado por R(A1, A2, ...., An), onde cada atributo Ai toma seus valores a partir de um domínio Di; e R é o nome da relação. O número de atributos na relação n, consiste no grau da relação. Os domínios a partir dos quais os atributos da relação retiram seus valores não precisam ser necessariamente distintos. Como exemplo o esquema da relação apresentada na figura anterior é dado por: Fornecedor (FCodigo, FNome, FCategoria, FCidade)
  • 6. Modelagem Relacional Como Esquema de um BD Relacional entende-se o conjunto de intenções (Esquemas das Relações) definidas para todas as relações da Base, e um conjunto de restrições de integridade. Sobre os nomes fornecidos aos atributos, é permitido àqueles que representem conceitos semelhantes, possuir ou não o mesmo nome em diferentes relações. Da mesma forma, atributos representando conceitos diferentes podem possuir o mesmo nome. O conjunto de restrições de integridade define regras básicas que os valores dos atributos devem obedecer quando aparecerem em uma relação.
  • 7. Modelagem Relacional A Instância de uma Relação consiste no conjunto de valores que cada atributo, definido no esquema, assume em um determinado instante, formando o conjunto de tuplas. Ou seja, as instâncias das relações formam os dados que são armazenados no BD. As relações apresentam as seguintes características: a) Não há tuplas duplicadas em uma relação; b) Ordem das tuplas na relação não é relevante para diferenciar as relações; c) Os valores dos atributos devem ser atômicos, não sendo divisíveis em componentes.
  • 8. Modelagem Relacional Chave é um conjunto de atributos de uma relação e que pode ser utilizado para a realização de qualquer operação que envolva atributos e valores de atributos.
  • 9. Modelagem Relacional Uma relação pode ter várias chaves para identificação unívoca de suas tuplas, onde cada uma é denominada de Chave Candidata . Entre as chaves candidatas é escolhida uma pelo DBA (durante a fase de projeto lógico) para ser suportada pelo SGBD e assim, é mantido automaticamente a restrição de unicidade. Esta chave escolhida é denominada de Chave Primária . Desta forma, uma relação nunca apresentará tuplas repetidas em sua instância, o que significa a possibilidade de identificação de cada tupla separadamente uma da outra.
  • 10. Modelagem Relacional Da relação apresentada para fornecedores, o conjunto {FCODIGO} é a chave primária da relação, uma vez que dois fornecedores não apresentarão o mesmo código.
  • 11. Modelagem Relacional Um conjunto de atributos Fk em um esquema da relação R1 é uma Chave Estrangeira de R1 se os atributos em Fk possuem o mesmo domínio que os atributos da chave primária de uma relação R2 e os valores de Fk em uma tupla de R1 devem ser os mesmos que ocorrem em tuplas de R2 ou serem nulos, e neste caso é dito que os atributos da Fk se referenciam à relação R2.
  • 12. Modelagem Relacional Para exemplificar o conceito de chave estrangeira, considere as relações abaixo sobre Peças e Fornecedores, e das peças fornecidas por cada fornecedor (as chaves de cada relação se encontram grifadas): FORNECEDOR(FCODIGO, FNOME, FCATEGORIA, FCIDADE); PEÇA (PCODIGO, PNOME, PCOR, PESO, PCIDADE); FP (FPCODIGO, FCODIGO , PCODIGO , QTDE);
  • 13. Modelagem Relacional Entre as relações anteriores, pode-se observar que FCODIGO e PCODIGO quando aparecem na relação FP são chaves estrangeiras desta relação pois são chaves primárias das relações FORNECEDOR e PEÇA, respectivamente.
  • 14. Normalização de Dados Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros.
  • 15.  
  • 16. Normalização de Dados Uma regra de ouro que devemos observar quando do projeto de um Banco de Dados baseado no Modelo Relacional de Dados é a de "não misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. Não devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetição desnecessária dos dados bem como inconsistência dos dados.
  • 17. Normalização de Dados Normalmente após a aplicação das regras de normalização de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior de tabelas do que o originalmente existente. Este processo causa a simplificação dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manutenção.
  • 18.
  • 19. Facilidade de manipulações do banco de dados;
  • 20. Facilidade de manutenção do sistema de Informação.
  • 21. Normalização de Dados O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais (ou regras de normalização), na prática usamos um conjunto de três Formas Normais. Vejamos as três primeiras formas normais do processo de normalização de dados.
  • 22. Normalização de Dados Primeira Forma Normal 1FN Uma relação estará na Primeira forma normal 1FN, se e somente se todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.
  • 23. Normalização de Dados Procedimentos: a) Identificar a chave primária da entidade; b) Identificar o grupo repetitivo e removê-lo da entidade; c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo.
  • 24. Normalização de Dados Exemplo da primeira forma normal Considere a tabela cliente abaixo: Cliente Código_cliente Nome * Telefone Endereço
  • 25. Normalização de Dados Agora a tabela com os dados: Tabela desnormalizada, ou seja, não está na 1ª forma normal Analisando teremos:
  • 26. Normalização de Dados Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma célula da tabela, logo ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma coluna diferente, como no exemplo a seguir: Tabela ainda não está na primeira forma normal
  • 27. Normalização de Dados Mesmo com o ajuste acima, a tabela ainda não está na primeira forma normal, pois há clientes com mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar uma nova tabela para armazenar os números dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:
  • 28. Normalização de Dados Tabela na 1ª forma normal Tabela na 1ª forma normal
  • 29. Normalização de Dados Nesse exemplo, foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita, contudo é possível manter a tabela original, admitindo-se valores duplos em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-3400-3563 e 19-3500-9650. Neste caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim, principalmente quando há poucos casos de repetição.
  • 30. Normalização de Dados Segunda Forma Normal 2FN Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela).
  • 31. Normalização de Dados Procedimentos: a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária; b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes .
  • 32. Normalização de Dados Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas N_pedido Código_produto Produto Quant Valor_unit Subtotal
  • 33. Normalização de Dados Agora a tabela com os dados: Tabela não está na segunda forma normal Analisando teremos:
  • 34. Normalização de Dados O nome do produto depende do código do produto, porém não depende de N_pedido que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda. Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal. Veja o resultado:
  • 35. Normalização de Dados Tabela na 2ª forma normal Tabela na 2ª forma normal
  • 36. Normalização de Dados Terceira Forma Normal 3FN Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
  • 37. Normalização de Dados Procedimentos: a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave; b) Removê-los. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
  • 38. Normalização de Dados Exemplo da terceira forma normal Considere a tabela abaixo: Tabela não está na terceira forma normal
  • 39. Normalização de Dados Considerando ainda a nossa tabela Venda, veremos que a mesma não está na terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir:
  • 40. Normalização de Dados Tabela na terceira forma normal