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

Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholacleanelima11
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
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
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
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
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
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
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......suporte24hcamin
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
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
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
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)

Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
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
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
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.
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
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...
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
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
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
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