SlideShare uma empresa Scribd logo
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: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
 
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
Rafael Portela
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
Roberto Grande
 
Modelo E-R
Modelo E-RModelo E-R
Aplicativos2
Aplicativos2Aplicativos2
Aplicativos2
fabriciodenis
 
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 dados
Carlos 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 11
Anderson Andrade
 
Apostila Access 2000.pdf
Apostila Access 2000.pdfApostila Access 2000.pdf
Apostila Access 2000.pdf
ssuser382e50
 
Banco II - PostgreSQL - Revisão
Banco II - PostgreSQL - RevisãoBanco II - PostgreSQL - Revisão
Banco II - PostgreSQL - Revisão
Gustavo 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 estruturada
UNIPsystem
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1
Cláudio Amaral
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
Cris Fidelix
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introdução
Centro Paula Souza
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 

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 estudantes
Carlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
Carlos 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 inicial
Carlos 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 alunos
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
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
Carlos 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ático
Carlos 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
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
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 Environment
Carlos 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 Campus
Carlos 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 project
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
 
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
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
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
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
 

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

- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
JoeteCarvalho
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
Manuais Formação
 

Último (20)

- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.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