SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a 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:1Carlos Santos
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
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 ContratoRafael Portela
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Miguel Aquino
 
05 LabMM4 - Bases de dados
05 LabMM4 - Bases de dados05 LabMM4 - Bases de dados
05 LabMM4 - Bases de dadosCarlos Santos
 
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 11Anderson Andrade
 
Apostila Access 2000.pdf
Apostila Access 2000.pdfApostila Access 2000.pdf
Apostila Access 2000.pdfssuser382e50
 
Banco II - PostgreSQL - Revisão
Banco II - PostgreSQL - RevisãoBanco II - PostgreSQL - Revisão
Banco II - PostgreSQL - RevisãoGustavo Sávio
 
Busca de Documentos (Marilia TechDay 2011)
Busca de Documentos (Marilia TechDay 2011)Busca de Documentos (Marilia TechDay 2011)
Busca de Documentos (Marilia TechDay 2011)Fabrício Catae
 
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 estruturadaUNIPsystem
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1Cláudio Amaral
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introduçãoCentro Paula Souza
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 

Semelhante a 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
 

Mais de Carlos Santos

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?Carlos Santos
 
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 estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
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 inicialCarlos Santos
 
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 alunosCarlos 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 alunosCarlos Santos
 
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...Carlos Santos
 
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áticoCarlos Santos
 
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)Carlos Santos
 
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 EnvironmentCarlos Santos
 
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 CampusCarlos Santos
 
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 projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
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 DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos 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çãoCarlos 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
 

Mais 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)
 

Último

Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
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.pptxLuizHenriquedeAlmeid6
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
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éisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 

Último (20)

Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
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
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
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
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 

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