SlideShare uma empresa Scribd logo
1 de 28
Projeto de Banco de
     Dados – Aula 5

Prof. Rônney machado de Moraes, M.Sc.
ronney.moraes@pitagoras.com.br
rmmoraes@ig.com.br


                                        1
Objetivos

Considerando o modelo relacional (como modelo a ser implementado):


 Caracterizar modelos conceituais e lógicos
 Mostrar a relação entre os dois níveis de modelagem
 Obter o modelo conceitual a partir do modelo lógico




                                                                 2
Transformações entre modelos




                               3
Passos do projeto lógico

Um modelo ER pode gerar
diversos modelos lógicos
contendo as informações
especificadas, implicando:


 Diferentes performances
 Maior facilidade ou
dificuldade no
desenvolvimento e
manutenção do sistema
construído sobre o BD.           MODELO RELACIONAL INICIAL!
                                                              4
Transformação ER para relacional

As regras a seguir são baseadas na experiência acumulada (consenso)
por muitos autores no projeto de muitas bases de dados diferentes, e tem
os seguintes objetivos:


 Obter um banco de dados que permita boa performance de instruções
de consulta e alteração do banco de dados (diminuindo o acesso a disco)
 Obter um banco de dados que simplifique o desenvolvimento e a
manutenção de aplicações.


  Além destes, as regras de transformação procuram obter um banco de
               dados que ocupe pouco espaço em disco.
                                                                      5
Regras a serem seguidas

 Evitar junções - ter os dados necessários a uma consulta
em uma única linha.
 Diminuir o número de chaves primárias.




 Evitar campos opcionais (null em SQL). Principalmente
quando a obrigatoriedade ou não no preenchimento do campo
depende de outros campos.
                                                             6
Regras a serem seguidas


 Estas regras usam como entrada, além do próprio
 modelo ER, também alguns conhecimentos sobre
   volumes de dados e volumes de transações.
    Esses conhecimentos permitem escolher uma
   alternativa de implementação, quando diversas
alternativas podem ser usadas para implementar um
             conceito da abordagem ER.


                                               7
Implementação inicial de entidades

     Esse passo é razoavelmente óbvio: cada entidade é
traduzida para uma tabela. Neste processo, cada atributo da
    entidade define uma coluna desta tabela. Os atributos
  identificadores da entidade correspondem às colunas que
            compõem a chave primária da tabela.




                          Chave Primária (pk)
                                                         8
Nomes de atributos e colunas

   Data de nascimento                              dataNasc

    Data de admissão                             dataAdmissao



Sufixar ou prefixar o coluna que será chave primária porque
esta pode aparecer como chave estrangeira em outra tabela:
     Código Pessoa                                codPessoa


                                               Padronizar
                                          (cod, num, no, dat, dt)

O nome da tabela pode ser utilizado como qualificador para o nome da
                               coluna!
                                                                    9
Relacionamento identificador




                               10
Relacionamento identificador




                               11
Implementação de relacionamentos


  O fator determinante para a tradução a adotar no
caso de relacionamentos é a cardinalidade mínima e
      máxima das entidades que participam do
                  relacionamento.




                                               12
Relacionamento como tabela própria




                   Chave Primária (pk)


                             Chave estrangeira (fk)



                                                 13
Relacionamento como colunas adicionais




Possível apenas quando uma das entidades que participa do
      relacionamento tem cardinalidade máxima um.

                                                            14
Fusão de entidades em tabelas




Possível apenas quando o relacionamento é do tipo 1:1




                                                        15
+ sobre
implementação de
 relacionamentos




                   16
Relacionamentos 1:1
        Ambas as entidades tem participação opcional




                                        Maximiza junções




 Minimiza junções
Colunas Opcionais
                                                           17
Relacionamentos 1:1
Uma entidade tem participação opcional e a outra obrigatória




                  Fusão das tabelas



                                      Adição de coluna na
                                          entidade com
                                      participação opcional
                                                               18
Relacionamentos 1:n
     A entidade com cardinalidade “n” é opcional




                          Adição de colunas




                           Tabela própria

                                                   19
Relacionamentos com grau maior que dois




                                          20
Implementação de generalização/especialização


1) uso de uma única tabela para toda hierarquia de generalização/especialização

 Chave primária correspondente ao identificador da entidade mais genérico
 Caso não exista, uma coluna Tipo, que identifica que tipo de entidade
especializada está sendo representada por cada linha da tabela
 Uma coluna para cada atributo da entidade genérica
 Colunas referentes aos relacionamentos dos quais participa a entidade genérica
e que sejam implementados através da alternativa de adicionar colunas à tabela da
entidade genérica
 Uma coluna para cada atributo de cada entidade especializada (estas colunas
devem ser definidas como opcionais, já que somente terão valores quando a linha
for referente à entidade especializada em questão)
 Colunas referentes aos relacionamentos dos quais participa cada entidade
especializada e que sejam implementados através da alternativa de adicionar
colunas à tabela da entidade (estas colunas devem ser definidas como opcionais,
já que somente terão valores quando a linha for referente à entidade especializada
em questão)
                                                                              21
Implementação de generalização/especialização




                                           22
Implementação de generalização/especialização


2) uso de uma tabela para cada entidade.




                                                       23
Vantagens entre as abordagens

Implementação com tabela única
 Todos os dados referentes a uma ocorrência de entidade genérica, bem como
os dados referentes a ocorrências de sua especialização, estão em uma única
linha.
 A chave primária é armazenada uma única vez, ao contrário da alternativa com
múltiplas tabelas.


Implementação com uma tabela por entidade especializada
 As colunas opcionais que aparecem são apenas aquelas referentes a atributos
que podem ser vazios do ponto de vista da aplicação.
 O controle das colunas opcionais pode ficar mais a cargo no SGDB e não da
aplicação.
                                                                              24
Refinamento do Modelo



   Em todo processo de engenharia, está envolvido um
   compromisso entre o ideal e o realizável dentro das
     restrições de recursos impostas pelas prática.



 Relacionamentos mutuamente exclusivos
 Simulação de atributos multi-valorados
 Informações redundantes


                                                         25
Relacionamentos mutuamente exclusivos




Desvantagem: Nesta alternativa, não é possível especificar ao
    SGBD que o campo CIC/CGC é chave estrangeira.
                                                                26
Simulação de atributos multi-valorados




                                         27
Informações redundantes




                          28

Mais conteúdo relacionado

Mais procurados

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
julianaveregue
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componentes
elliando dias
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Ticianne Darin
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
Nadia Habu
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
elliando dias
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
julianaveregue
 

Mais procurados (15)

Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componentes
 
[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
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
 
Componentes
ComponentesComponentes
Componentes
 
Normalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normalNormalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normal
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalização
 
Modelagem - Diagrama de objetos by Kiwia
Modelagem - Diagrama de objetos by KiwiaModelagem - Diagrama de objetos by Kiwia
Modelagem - Diagrama de objetos by Kiwia
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 

Destaque

Modelagem
ModelagemModelagem
Modelagem
prsimon
 
Introdução a banco de dados à modelagem e
Introdução a banco  de dados à modelagem eIntrodução a banco  de dados à modelagem e
Introdução a banco de dados à modelagem e
Frank Lira
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
samuelthiago
 

Destaque (6)

Projeto de Banco de Dados
Projeto de Banco de DadosProjeto de Banco de Dados
Projeto de Banco de Dados
 
Aula 06 normalização
Aula 06 normalizaçãoAula 06 normalização
Aula 06 normalização
 
1 semestre-aula8-introducao-dd le-dml
1 semestre-aula8-introducao-dd le-dml1 semestre-aula8-introducao-dd le-dml
1 semestre-aula8-introducao-dd le-dml
 
Modelagem
ModelagemModelagem
Modelagem
 
Introdução a banco de dados à modelagem e
Introdução a banco  de dados à modelagem eIntrodução a banco  de dados à modelagem e
Introdução a banco de dados à modelagem e
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 

Semelhante a Aula5pbd

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
nosbisantos
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt
Alan5263
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para Bibliotecários
Luciano Ramalho
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
Hélio Martins
 
Apresentação CMP151
Apresentação CMP151Apresentação CMP151
Apresentação CMP151
fgiacomel
 
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
Raphael Donaire Albino
 
Modelo de Entidades e Relacionamentos
Modelo de Entidades e RelacionamentosModelo de Entidades e Relacionamentos
Modelo de Entidades e Relacionamentos
Robson Silva Espig
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
rosimaracorsino
 

Semelhante a Aula5pbd (20)

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
 
TI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosTI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de Dados
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt
 
935
935935
935
 
Modelos de base de dados
Modelos de base de dadosModelos de base de dados
Modelos de base de dados
 
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
 
Comparison
ComparisonComparison
Comparison
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
J530 11 relationships
J530 11 relationshipsJ530 11 relationships
J530 11 relationships
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para Bibliotecários
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para Bibliotecarios
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
 
Apresentação CMP151
Apresentação CMP151Apresentação CMP151
Apresentação CMP151
 
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
 
Modelo de Entidades e Relacionamentos
Modelo de Entidades e RelacionamentosModelo de Entidades e Relacionamentos
Modelo de Entidades e Relacionamentos
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
TechDays 2010 - Introdução ao NHibernate
TechDays 2010 - Introdução ao NHibernateTechDays 2010 - Introdução ao NHibernate
TechDays 2010 - Introdução ao NHibernate
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Community Launch 2010 - Novos recursos C# 4.0
Community Launch 2010 - Novos recursos C# 4.0Community Launch 2010 - Novos recursos C# 4.0
Community Launch 2010 - Novos recursos C# 4.0
 
Sistemas de Informação II
Sistemas de Informação IISistemas de Informação II
Sistemas de Informação II
 

Último

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Aula5pbd

  • 1. Projeto de Banco de Dados – Aula 5 Prof. Rônney machado de Moraes, M.Sc. ronney.moraes@pitagoras.com.br rmmoraes@ig.com.br 1
  • 2. Objetivos Considerando o modelo relacional (como modelo a ser implementado):  Caracterizar modelos conceituais e lógicos  Mostrar a relação entre os dois níveis de modelagem  Obter o modelo conceitual a partir do modelo lógico 2
  • 4. Passos do projeto lógico Um modelo ER pode gerar diversos modelos lógicos contendo as informações especificadas, implicando:  Diferentes performances  Maior facilidade ou dificuldade no desenvolvimento e manutenção do sistema construído sobre o BD. MODELO RELACIONAL INICIAL! 4
  • 5. Transformação ER para relacional As regras a seguir são baseadas na experiência acumulada (consenso) por muitos autores no projeto de muitas bases de dados diferentes, e tem os seguintes objetivos:  Obter um banco de dados que permita boa performance de instruções de consulta e alteração do banco de dados (diminuindo o acesso a disco)  Obter um banco de dados que simplifique o desenvolvimento e a manutenção de aplicações. Além destes, as regras de transformação procuram obter um banco de dados que ocupe pouco espaço em disco. 5
  • 6. Regras a serem seguidas  Evitar junções - ter os dados necessários a uma consulta em uma única linha.  Diminuir o número de chaves primárias.  Evitar campos opcionais (null em SQL). Principalmente quando a obrigatoriedade ou não no preenchimento do campo depende de outros campos. 6
  • 7. Regras a serem seguidas Estas regras usam como entrada, além do próprio modelo ER, também alguns conhecimentos sobre volumes de dados e volumes de transações. Esses conhecimentos permitem escolher uma alternativa de implementação, quando diversas alternativas podem ser usadas para implementar um conceito da abordagem ER. 7
  • 8. Implementação inicial de entidades Esse passo é razoavelmente óbvio: cada entidade é traduzida para uma tabela. Neste processo, cada atributo da entidade define uma coluna desta tabela. Os atributos identificadores da entidade correspondem às colunas que compõem a chave primária da tabela. Chave Primária (pk) 8
  • 9. Nomes de atributos e colunas Data de nascimento dataNasc Data de admissão dataAdmissao Sufixar ou prefixar o coluna que será chave primária porque esta pode aparecer como chave estrangeira em outra tabela: Código Pessoa codPessoa Padronizar (cod, num, no, dat, dt) O nome da tabela pode ser utilizado como qualificador para o nome da coluna! 9
  • 12. Implementação de relacionamentos O fator determinante para a tradução a adotar no caso de relacionamentos é a cardinalidade mínima e máxima das entidades que participam do relacionamento. 12
  • 13. Relacionamento como tabela própria Chave Primária (pk) Chave estrangeira (fk) 13
  • 14. Relacionamento como colunas adicionais Possível apenas quando uma das entidades que participa do relacionamento tem cardinalidade máxima um. 14
  • 15. Fusão de entidades em tabelas Possível apenas quando o relacionamento é do tipo 1:1 15
  • 16. + sobre implementação de relacionamentos 16
  • 17. Relacionamentos 1:1 Ambas as entidades tem participação opcional Maximiza junções Minimiza junções Colunas Opcionais 17
  • 18. Relacionamentos 1:1 Uma entidade tem participação opcional e a outra obrigatória Fusão das tabelas Adição de coluna na entidade com participação opcional 18
  • 19. Relacionamentos 1:n A entidade com cardinalidade “n” é opcional Adição de colunas Tabela própria 19
  • 20. Relacionamentos com grau maior que dois 20
  • 21. Implementação de generalização/especialização 1) uso de uma única tabela para toda hierarquia de generalização/especialização  Chave primária correspondente ao identificador da entidade mais genérico  Caso não exista, uma coluna Tipo, que identifica que tipo de entidade especializada está sendo representada por cada linha da tabela  Uma coluna para cada atributo da entidade genérica  Colunas referentes aos relacionamentos dos quais participa a entidade genérica e que sejam implementados através da alternativa de adicionar colunas à tabela da entidade genérica  Uma coluna para cada atributo de cada entidade especializada (estas colunas devem ser definidas como opcionais, já que somente terão valores quando a linha for referente à entidade especializada em questão)  Colunas referentes aos relacionamentos dos quais participa cada entidade especializada e que sejam implementados através da alternativa de adicionar colunas à tabela da entidade (estas colunas devem ser definidas como opcionais, já que somente terão valores quando a linha for referente à entidade especializada em questão) 21
  • 23. Implementação de generalização/especialização 2) uso de uma tabela para cada entidade. 23
  • 24. Vantagens entre as abordagens Implementação com tabela única  Todos os dados referentes a uma ocorrência de entidade genérica, bem como os dados referentes a ocorrências de sua especialização, estão em uma única linha.  A chave primária é armazenada uma única vez, ao contrário da alternativa com múltiplas tabelas. Implementação com uma tabela por entidade especializada  As colunas opcionais que aparecem são apenas aquelas referentes a atributos que podem ser vazios do ponto de vista da aplicação.  O controle das colunas opcionais pode ficar mais a cargo no SGDB e não da aplicação. 24
  • 25. Refinamento do Modelo Em todo processo de engenharia, está envolvido um compromisso entre o ideal e o realizável dentro das restrições de recursos impostas pelas prática.  Relacionamentos mutuamente exclusivos  Simulação de atributos multi-valorados  Informações redundantes 25
  • 26. Relacionamentos mutuamente exclusivos Desvantagem: Nesta alternativa, não é possível especificar ao SGBD que o campo CIC/CGC é chave estrangeira. 26
  • 27. Simulação de atributos multi-valorados 27