SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Bases de dados: Relações [1:M] e [M:M]
Carlos Santos
LabMM 5 - NTC - DeCA - UA
Aula 04, 29-02-2012
BDs na modelação de problemas do mundo real…

Os problemas a modelar por uma BD, são normalmente constituídos por
múltiplas entidades (objectos)
  • Vendedores, Encomendas, Clientes, Artigos…

As entidades (objectos) têm relações entre si
  • Uma encomenda tem apenas um vendedor responsável
  • Um vendedor pode ser responsável por várias encomendas

Uma BD será uma representação de entidades (objetos) e das relações
existentes entre estas no mundo real.
Estratégias na análise de narrativas

Responder às seguintes perguntas para modelar a BD

  • Quais as entidades a considerar?
  • O que caracteriza cada uma dessas entidades?
  • Que dados das diferentes entidades, serão necessários armazenar/
    extrair?
  • Quais as tabelas a incluir na BD e como se caracterizam as suas colunas?
  • Qual a chave primária de cada tabela?
  • Que relações existem entre as tabelas?
Estratégias na análise de narrativas

Identificar os sujeitos/substantivos do texto da narrativa

  • Entidades/Objectos -> Tabelas

Identificar o que caracteriza cada entidade

  • Propriedades -> Colunas -> Tipo de dados -> Parâmetros

Identificar ou definir colunas que especifiquem univocamente cada
instância (registo) armazenada da entidade
  • Chaves candidatas -> Chaves primárias

Identificar e caracterizar (nos dois sentidos) as relações entre as
entidades existentes

  • Relações
Estratégias na análise de narrativas

Dicas:

  • Se nem todos os objectos dessa tabela podem ser representados através
    dos mesmo campos, então deve ser ponderada a hipótese de dividir essa
    tabela em várias tabelas.


  • Caso sejam identificadas tabelas com estruturas idênticas então deve ser
    ponderada a possibilidade de agrupar esses objectos numa única tabela.
Tipos de relações no mundo real

Um-para-um

  • Um objeto de uma tabela está relacionado apenas com um objeto da
    outra tabela
  • São relacões pouco comuns

Um-para-muitos

  • Um objeto de uma das tabelas pode estar relacionado com muitos objetos
    da outra tabela

Muitos-para muitos
  • Qualquer objeto de qualquer uma das tabelas pode estar relacionado com
    muitos objetos da outra tabela
Relações no mundo real

Notação Crow’s Foot (utilizada no MySQL Workbench)
Exemplo: loja de decoração
                                           Clientes
                                     NomeCliente
                                     ApelidoCliente
                                     MoradaCliente
                                     ContactoCliente
   Vendedores          Encomendas    Tipo (priv/empr)
NomeVend             nrEncomenda
ApelidoVend          DataEncomenda
MoradaVend           DataPagamento
Sexo
ContatoVend
DataNascimento
DataEntradaEmpresa
                                          Produtos
                                     NomeProd
                                     DescricaoProd
                                     Preco
                                     Peso
                                     Dimensoes
Exemplo: loja de decoração (modelo ER - lógico)
                                             Clientes
                                       idCliente
                                       NomeCliente
                                       ApelidoCliente
                                       MoradaCliente
   Vendedores          Encomendas      ContactoCliente
                                       Tipo (priv/empr)
idVend               nrEncomenda
NomeVend             DataEncomenda
ApelidoVend          DataPagamento
MoradaVend
Sexo
ContatoVend
DataNascimento
DataEntradaEmpresa                          Produtos
                                       idProduto
                                       NomeProd
                                       DescricaoProd
                                       Preco
                                       Peso
                                       Dimensoes
Modelo lógico vs modelo físico

O modelo lógico representa todas as lógicas inerentes ao problema:
tabelas, campos, chaves primárias e as suas relações.

O modelo físico é uma versão mais completa do modelo lógico, sendo
adicionada a informação necessária para que esse modelo possa ser
implementado num SGBDR.

Na maioria dos casos, esta passagem consiste na especificação dos
mecanismos que permitem implementar num SGBDR as relações
identificadas no modelo lógico. A ter em atenção:
  • É um processo baseado num conjunto de regras pré-determinadas;
  • Algumas ferramentas, por exemplo, o MySQL Workbench, permitem
    “automatizar” este processo.
Um para muitos [1:M]

Relações um-para-muitos: Como criar?

  • Identificar a chave primária da tabela do lado do “um”
  • Adicionar uma chave estrangeira na tabela do lado do “muitos” (o tipo
    de dados deste campo tem que ser idêntico ao tipo de dados da chave
    primária)
  • Criar uma ligação (JOIN) entre as duas tabelas com base nas duas
    chaves referidas anteriormente
Um para muitos [1:M]

  • Cada cliente poderá realizar várias encomendas
  • Cada encomenda será realizada apenas por um cliente

Tabela de partida (Clientes)
  • Chave primária (PK)
  • Sem valores nulos ou repetidos

Tabela de chegada (Encomendas)
  • Chave estrangeira (FK - foreign key)
  • Contem valores existentes na PK
     • Que podem repetir-se
     • Pode conter também valores nulos

Uma relação cria uma ligação (Join) entre as duas tabelas
Um para muitos [1:M]

  • Cada cliente poderá realizar várias encomendas
  • Cada encomenda será realizada apenas por um cliente




[1:n] Non-Identifying Relationship -------

  • Pode existir uma encomenda sem um cliente
  • FK Clientes_idCliente pode conter valores nulos
  • Pode existir um cliente sem uma encomenda
  • PK IdCliente pode conter valores inexistentes na FK Clientes_idCliente

Non-Identifying -> Entidades existem de forma independente!
Um para muitos [1:M]




          Clientes                            Encomendas
  idCliente     nomeCliente   nrEncomenda   dataEncomenda     Clientes_idCliente
     1                João         1         2010-­‐02-­‐23           1
     2               Maria         2         2010-­‐04-­‐11           2

     3               Manuel        3         2010-­‐03-­‐13           2
                                   4         2010-­‐05-­‐21           1

                                   5         2010-­‐06-­‐25
Um para muitos [M:M]

Relações muitos-para-muitos: Como criar?

  • Identificar as chave primária das duas tabela envolvidas na relação
  • Adiconar uma nova tabela de relação com duas chaves estrangeiras
    (que vão servir de ligação às chaves primárias das duas tabelas do
    modelo lógico)
  • A chave primária da nova tabela é obtida pela associação das duas
    chaves estrangeiras - chave composta
  • Criar duas ligações (JOIN) do tipo [1:M]:
     • Uma ligação (JOIN) da chave primária da primeira tabela para a chave
       estrangeira correspondente da tabela de relação
     • Uma ligação (JOIN) da chave primária da segunda tabela para a chave
       estrangeira correspondente da tabela de relação
Muitos para muitos [M:M]

  • Cada encomenda poderá conter vários produtos
  • Cada produto poderá ser pertencer a várias encomendas




                               Tabela de relação
                              com PK Composta



n:m Identifying Relationship ________

Tabela de relação

  • Chave primária é uma chave composta com as duas chaves estrangeiras
    das relações 1:M
  • Criada automaticamente pelo MySQL Workbench se Engine -> InnoDB
Muitos para muitos [M:M]

  • Cada encomenda poderá conter vários produtos
  • Cada produto poderá ser pertencer a várias encomendas




                               Tabela de relação
                              com PK Composta



Pode existir uma encomenda sem produtos

  • PK nrEncomendas pode conter valores que não existem ainda na FK
    
 Encomendas_nrEncomenda

Pode existir um produto que nunca foi encomendado
  • PK IdProduto pode conter valores que não existem ainda na FK
    Produtos_idProduto
Muitos para muitos [M:M]




     Encomendas                           Encomendas_has_Produtos                     Produtos
nrEncomenda   DataEncom          Encomendas_nrEncomenda   Produtos_idProduto   idProduto    nomeProd
     1        2008-­‐01-­‐16               1                        2             1           Cadeira
     2        2008-­‐02-­‐02               1                        3             2        Mesa	
  de	
  Sala
     3        2008-­‐03-­‐09               2                        2             3          Aparador
     4        2008-­‐04-­‐12                                                      4              Sofá
                                           3                        1
     5        2008-­‐05-­‐26
                                           3                        2
                                           3                        3
                                           5                        2
                                           5                        3


                               PROBLEMA: Como podemos adicionar
                                 uma “Cadeira” à encomenda 3?
Propriedades de uma relação
                                                        Clientes
                                                  idCliente
                                                  NomeCliente
                                                  ApelidoCliente
                                                  MoradaCliente
   Vendedores          Encomendas                 ContactoCliente
                                                  Tipo (priv/empr)
idVend               nrEncomenda
NomeVend             DataEncomenda
ApelidoVend          DataPagamento
MoradaVend
Sexo
ContatoVend
DataNascimento
DataEntradaEmpresa                                     Produtos
                                                  idProduto
                                                  NomeProd
                                     Quantidade
                                                  DescricaoProd
                                                  Preco
                                                  Peso
                                                  Dimensoes
Muitos para muitos [M:M] + prop. de relação




     Encomendas                              Encomendas_has_Produtos                            Produtos
nrEncomenda   DataEncom        Encomendas_nrEncomenda   Produtos_idProduto   quanHdade   idProduto    nomeProd
     1        2008-­‐01-­‐16             1                      2                1          1           Cadeira
     2        2008-­‐02-­‐02             1                      3                3          2        Mesa	
  de	
  Sala
     3        2008-­‐03-­‐09             2                      2                4          3          Aparador
     4        2008-­‐04-­‐12                                                                4              Sofá
                                         3                      1                5
     5        2008-­‐05-­‐26
                                         3                      2                1
                                         3                      3                2
                                         5                      2                5
                                         5                      3                4
Quanto custa?




              Encomendas_has_Produtos                                      Produtos
Encomendas_nrEncomenda   Produtos_idProduto   quanHdade   idProduto    nomeProd               preco
          1                      2                1          1           Cadeira              €50
          1                      3                3          2        Mesa	
  de	
  Sala      €800
          2                      2                4          3          Aparador              €3000
          3                      1                5          4              Sofá              €1200
          3                      2                1              Encomendas
          3                      3                2       nrEncomenda        DataEncom
          5                      2                5              1           2008-­‐01-­‐16
          5                      3                4              2           2008-­‐02-­‐02
                                                                 3           2008-­‐03-­‐09
                                                                 4           2008-­‐04-­‐12
                                                                 5           2008-­‐05-­‐26

Contenu connexe

Similaire à 04 LabMM4 - Bases de dados

LabMM4 (T05 - 12/13) - Relações 1:1
LabMM4 (T05 - 12/13) - Relações 1:1LabMM4 (T05 - 12/13) - Relações 1:1
LabMM4 (T05 - 12/13) - Relações 1:1
Carlos Santos
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
Walter Alves Pereira
 
Aula de Reforço Access
Aula de Reforço Access Aula de Reforço Access
Aula de Reforço Access
Daniel da Silva
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturada
UNIPsystem
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 

Similaire à 04 LabMM4 - Bases de dados (20)

LabMM4 (T05 - 12/13) - Relações 1:1
LabMM4 (T05 - 12/13) - Relações 1:1LabMM4 (T05 - 12/13) - Relações 1:1
LabMM4 (T05 - 12/13) - Relações 1:1
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Evoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoEvoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de Contrato
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 
Aplicativos2
Aplicativos2Aplicativos2
Aplicativos2
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
05 LabMM4 - Bases de dados
05 LabMM4 - Bases de dados05 LabMM4 - Bases de dados
05 LabMM4 - Bases de dados
 
Informática para Internet - Informática Aplicada - Aula 11
Informática para Internet - Informática Aplicada - Aula 11Informática para Internet - Informática Aplicada - Aula 11
Informática para Internet - Informática Aplicada - Aula 11
 
Apostila Access 2000.pdf
Apostila Access 2000.pdfApostila Access 2000.pdf
Apostila Access 2000.pdf
 
Banco II - PostgreSQL - Revisão
Banco II - PostgreSQL - RevisãoBanco II - PostgreSQL - Revisão
Banco II - PostgreSQL - Revisão
 
Busca de Documentos (Marilia TechDay 2011)
Busca de Documentos (Marilia TechDay 2011)Busca de Documentos (Marilia TechDay 2011)
Busca de Documentos (Marilia TechDay 2011)
 
Aula de Reforço Access
Aula de Reforço Access Aula de Reforço Access
Aula de Reforço Access
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturada
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introdução
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 

Plus de Carlos Santos

AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
Carlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
Carlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
Carlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
Carlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
Carlos Santos
 

Plus de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Dernier

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Dernier (20)

Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 

04 LabMM4 - Bases de dados

  • 1. Bases de dados: Relações [1:M] e [M:M] Carlos Santos LabMM 5 - NTC - DeCA - UA Aula 04, 29-02-2012
  • 2. BDs na modelação de problemas do mundo real… Os problemas a modelar por uma BD, são normalmente constituídos por múltiplas entidades (objectos) • Vendedores, Encomendas, Clientes, Artigos… As entidades (objectos) têm relações entre si • Uma encomenda tem apenas um vendedor responsável • Um vendedor pode ser responsável por várias encomendas Uma BD será uma representação de entidades (objetos) e das relações existentes entre estas no mundo real.
  • 3. Estratégias na análise de narrativas Responder às seguintes perguntas para modelar a BD • Quais as entidades a considerar? • O que caracteriza cada uma dessas entidades? • Que dados das diferentes entidades, serão necessários armazenar/ extrair? • Quais as tabelas a incluir na BD e como se caracterizam as suas colunas? • Qual a chave primária de cada tabela? • Que relações existem entre as tabelas?
  • 4. Estratégias na análise de narrativas Identificar os sujeitos/substantivos do texto da narrativa • Entidades/Objectos -> Tabelas Identificar o que caracteriza cada entidade • Propriedades -> Colunas -> Tipo de dados -> Parâmetros Identificar ou definir colunas que especifiquem univocamente cada instância (registo) armazenada da entidade • Chaves candidatas -> Chaves primárias Identificar e caracterizar (nos dois sentidos) as relações entre as entidades existentes • Relações
  • 5. Estratégias na análise de narrativas Dicas: • Se nem todos os objectos dessa tabela podem ser representados através dos mesmo campos, então deve ser ponderada a hipótese de dividir essa tabela em várias tabelas. • Caso sejam identificadas tabelas com estruturas idênticas então deve ser ponderada a possibilidade de agrupar esses objectos numa única tabela.
  • 6. Tipos de relações no mundo real Um-para-um • Um objeto de uma tabela está relacionado apenas com um objeto da outra tabela • São relacões pouco comuns Um-para-muitos • Um objeto de uma das tabelas pode estar relacionado com muitos objetos da outra tabela Muitos-para muitos • Qualquer objeto de qualquer uma das tabelas pode estar relacionado com muitos objetos da outra tabela
  • 7. Relações no mundo real Notação Crow’s Foot (utilizada no MySQL Workbench)
  • 8. Exemplo: loja de decoração Clientes NomeCliente ApelidoCliente MoradaCliente ContactoCliente Vendedores Encomendas Tipo (priv/empr) NomeVend nrEncomenda ApelidoVend DataEncomenda MoradaVend DataPagamento Sexo ContatoVend DataNascimento DataEntradaEmpresa Produtos NomeProd DescricaoProd Preco Peso Dimensoes
  • 9. Exemplo: loja de decoração (modelo ER - lógico) Clientes idCliente NomeCliente ApelidoCliente MoradaCliente Vendedores Encomendas ContactoCliente Tipo (priv/empr) idVend nrEncomenda NomeVend DataEncomenda ApelidoVend DataPagamento MoradaVend Sexo ContatoVend DataNascimento DataEntradaEmpresa Produtos idProduto NomeProd DescricaoProd Preco Peso Dimensoes
  • 10. Modelo lógico vs modelo físico O modelo lógico representa todas as lógicas inerentes ao problema: tabelas, campos, chaves primárias e as suas relações. O modelo físico é uma versão mais completa do modelo lógico, sendo adicionada a informação necessária para que esse modelo possa ser implementado num SGBDR. Na maioria dos casos, esta passagem consiste na especificação dos mecanismos que permitem implementar num SGBDR as relações identificadas no modelo lógico. A ter em atenção: • É um processo baseado num conjunto de regras pré-determinadas; • Algumas ferramentas, por exemplo, o MySQL Workbench, permitem “automatizar” este processo.
  • 11. Um para muitos [1:M] Relações um-para-muitos: Como criar? • Identificar a chave primária da tabela do lado do “um” • Adicionar uma chave estrangeira na tabela do lado do “muitos” (o tipo de dados deste campo tem que ser idêntico ao tipo de dados da chave primária) • Criar uma ligação (JOIN) entre as duas tabelas com base nas duas chaves referidas anteriormente
  • 12. Um para muitos [1:M] • Cada cliente poderá realizar várias encomendas • Cada encomenda será realizada apenas por um cliente Tabela de partida (Clientes) • Chave primária (PK) • Sem valores nulos ou repetidos Tabela de chegada (Encomendas) • Chave estrangeira (FK - foreign key) • Contem valores existentes na PK • Que podem repetir-se • Pode conter também valores nulos Uma relação cria uma ligação (Join) entre as duas tabelas
  • 13. Um para muitos [1:M] • Cada cliente poderá realizar várias encomendas • Cada encomenda será realizada apenas por um cliente [1:n] Non-Identifying Relationship ------- • Pode existir uma encomenda sem um cliente • FK Clientes_idCliente pode conter valores nulos • Pode existir um cliente sem uma encomenda • PK IdCliente pode conter valores inexistentes na FK Clientes_idCliente Non-Identifying -> Entidades existem de forma independente!
  • 14. Um para muitos [1:M] Clientes Encomendas idCliente nomeCliente nrEncomenda dataEncomenda Clientes_idCliente 1 João 1 2010-­‐02-­‐23 1 2 Maria 2 2010-­‐04-­‐11 2 3 Manuel 3 2010-­‐03-­‐13 2 4 2010-­‐05-­‐21 1 5 2010-­‐06-­‐25
  • 15. Um para muitos [M:M] Relações muitos-para-muitos: Como criar? • Identificar as chave primária das duas tabela envolvidas na relação • Adiconar uma nova tabela de relação com duas chaves estrangeiras (que vão servir de ligação às chaves primárias das duas tabelas do modelo lógico) • A chave primária da nova tabela é obtida pela associação das duas chaves estrangeiras - chave composta • Criar duas ligações (JOIN) do tipo [1:M]: • Uma ligação (JOIN) da chave primária da primeira tabela para a chave estrangeira correspondente da tabela de relação • Uma ligação (JOIN) da chave primária da segunda tabela para a chave estrangeira correspondente da tabela de relação
  • 16. Muitos para muitos [M:M] • Cada encomenda poderá conter vários produtos • Cada produto poderá ser pertencer a várias encomendas Tabela de relação com PK Composta n:m Identifying Relationship ________ Tabela de relação • Chave primária é uma chave composta com as duas chaves estrangeiras das relações 1:M • Criada automaticamente pelo MySQL Workbench se Engine -> InnoDB
  • 17. Muitos para muitos [M:M] • Cada encomenda poderá conter vários produtos • Cada produto poderá ser pertencer a várias encomendas Tabela de relação com PK Composta Pode existir uma encomenda sem produtos • PK nrEncomendas pode conter valores que não existem ainda na FK Encomendas_nrEncomenda Pode existir um produto que nunca foi encomendado • PK IdProduto pode conter valores que não existem ainda na FK Produtos_idProduto
  • 18. Muitos para muitos [M:M] Encomendas Encomendas_has_Produtos Produtos nrEncomenda DataEncom Encomendas_nrEncomenda Produtos_idProduto idProduto nomeProd 1 2008-­‐01-­‐16 1 2 1 Cadeira 2 2008-­‐02-­‐02 1 3 2 Mesa  de  Sala 3 2008-­‐03-­‐09 2 2 3 Aparador 4 2008-­‐04-­‐12 4 Sofá 3 1 5 2008-­‐05-­‐26 3 2 3 3 5 2 5 3 PROBLEMA: Como podemos adicionar uma “Cadeira” à encomenda 3?
  • 19. Propriedades de uma relação Clientes idCliente NomeCliente ApelidoCliente MoradaCliente Vendedores Encomendas ContactoCliente Tipo (priv/empr) idVend nrEncomenda NomeVend DataEncomenda ApelidoVend DataPagamento MoradaVend Sexo ContatoVend DataNascimento DataEntradaEmpresa Produtos idProduto NomeProd Quantidade DescricaoProd Preco Peso Dimensoes
  • 20. Muitos para muitos [M:M] + prop. de relação Encomendas Encomendas_has_Produtos Produtos nrEncomenda DataEncom Encomendas_nrEncomenda Produtos_idProduto quanHdade idProduto nomeProd 1 2008-­‐01-­‐16 1 2 1 1 Cadeira 2 2008-­‐02-­‐02 1 3 3 2 Mesa  de  Sala 3 2008-­‐03-­‐09 2 2 4 3 Aparador 4 2008-­‐04-­‐12 4 Sofá 3 1 5 5 2008-­‐05-­‐26 3 2 1 3 3 2 5 2 5 5 3 4
  • 21. Quanto custa? Encomendas_has_Produtos Produtos Encomendas_nrEncomenda Produtos_idProduto quanHdade idProduto nomeProd preco 1 2 1 1 Cadeira €50 1 3 3 2 Mesa  de  Sala €800 2 2 4 3 Aparador €3000 3 1 5 4 Sofá €1200 3 2 1 Encomendas 3 3 2 nrEncomenda DataEncom 5 2 5 1 2008-­‐01-­‐16 5 3 4 2 2008-­‐02-­‐02 3 2008-­‐03-­‐09 4 2008-­‐04-­‐12 5 2008-­‐05-­‐26