SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Bases de dados: Tabelas e chaves primárias
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 03, 21-02-2013
Tipos de dados e sua parametrização
MySQL Worksbench
Parametrização

(PK) PRIMARY KEY

  • Transforma a coluna numa chave primária
  • Nessa coluna não poderão existir valores nulos ou repetidos
  • Identifica de forma unívoca cada novo registo na tabela

(NN) NOT NULL
  • Nessa coluna não poderão existir valores nulos/vazios

(UQ) UNIQUE
  • Na coluna todos os valores serão únicos (com exceção dos nulos que se
    poderão repetir)
Parametrização

(ZF) ZEROFILL

  • Preenche com zeros à esquerda a representação de um valor numérico
     • 5 -> 000005

(AI) AUTO INCREMENT
  • Auto incrementa o valor inteiro que será armazenado na coluna a cada
    novo registo (último valor +1)
  • Usado normalmente com chaves primárias (PK)

(BIN) BINARY
  • Usado com os tipos CHAR e VARCHAR
Parametrização

Default

  • Define um valor por defeito para a coluna, caso não seja introduzido
    qualquer valor

(UN) UNSIGNED
  • Permite armazenar apenas valores positivos (sem sinal) do tipo de dados
    selecionado
Chaves primárias (PK)

Regra Nr. 2 (Codd) – Garantia de acesso

  • Qualquer e todo o dado armazenado numa base de dados relacional tem
    que ser garantidamente acessível através de uma combinação única de
    nome da tabela, valor da chave primária e nome da coluna (campo).

       id      nMec         Nome       Apelido      AnoEntradaUA   DataNascimento

       1       23594        João          Gomes         2002         10-04-1978

       2       34921        Lurdes        Costa         2008         19-02-1980

       3       33482       Manuel         Martins       2007         23-03-1981

       4       18923         Ana          Lopes         1995         08-12-1977


  • Todas as tabelas têm que possuir uma chave primária
  • Simples (uma coluna) ou Composta (associação de múltiplas colunas)
  • Todos os valores de uma chave primária têm que ser distintos e não
    nulos
Quais os erros?

    id    nMec      Nome       Apelido   AnoEntradaUA   DataNascimento



     1    23594     João       Gomes         2002         10-04-1978



    20    34921    Lurdes       Costa        2008         19-02-1980



     3    33482    Manuel      Martins       2007         23-03-1981



     4               Ana       Lopes         1995         08-12-1977



     3    22111   Bernardete   Aveiro        2004         04-12-1980



          43000     Marco      António       2000         24-10-1985
Quais os erros?

    id    nMec      Nome       Apelido   AnoEntradaUA   DataNascimento



     1    23594     João       Gomes         2002         10-04-1978



    20    34921    Lurdes       Costa        2008         19-02-1980



     3    33482    Manuel      Martins       2007         23-03-1981



     4     OK        Ana       Lopes         1995         08-12-1977



     3    22111   Bernardete   Aveiro        2004         04-12-1980



    NOK   43000     Marco      António       2000         24-10-1985
Chaves primárias (PK)

Como é que podemos obter uma boa chave primária?

  • Gestão automática através do SGBDR
     • Auto Increment no MySQL

Verificar se alguns dos campos da tabela têm as características
necessárias para serem considerados boas chaves primárias (chaves
candidatas)
  • Número de BI?
  • Número mecanográfico da UA?
  • Email da UA?
  • Número de telefone?
Chaves primárias (PK)

Valores únicos e não nulos não implicam que uma chave primária seja
constituída apenas por um campo da tabela!
  • A chave primária de uma tabela pode ser construída pela associação de
    vários campos (normalmente não se utilizam mais do que 2)
     • Código postal (3810-193)?
  • Como regra geral, podemos afirmar que é preferível evitar criar chaves
    primárias a partir de vários campos. No entanto, iremos verificar que em
    casos especiais a sua utilização é essencial!
Modela uma tabela

Identificar a entidade/conceito, cujos dados irão ser armazenados

Identificar as propriedades que caracterizam a entidade e que devem ser
armazenadas

  • Exemplo: Tabela para armazenar alunos da UA
     • Entidade: Aluno da UA
     • Propriedades: Características que descrevem um aluno da UA

                Aluno
              NumMec
                Nome
               Apelido
            AnoEntradaUA
           DataNascimento
Modelar uma tabela (dicas)

Perguntar sempre:

  • Que dados quero armazenar na tabela?
  • Que dados quero extrair da tabela?

Garantir a consistência dos dados
  • Escolher o tipo de dados mais adequado para cada coluna
  • Parametrizar os dados que irão ser armazenados em cada coluna

Não armazenar dados redundantes
  • Não armazenar dados que possam ser calculados através de outros
    existentes na tabela (ou na BD)
  • Otimizar o armazenamento de dados que se repitam frequentemente...
BD com uma única tabela (Problemas)

Narrativa

  • Armazenar todas as encomendas de uma loja de decoração, sendo
    necessário registar o nome do vendedor, a data da encomenda, o nome
    do cliente e o custo da encomenda


            Encomenda
              NrEnco
            NomeVend
             DataEnco
            NomeCliente
        CustoEncomenda
Será uma solução adequada?

                            Encomenda

 NrEnco    NomeVend        DataEnco       NomeCliente        CustoEnco

   1       João Tomás      01-03-2000   Sr. António Mateus      200

   2       Maria Costa     01-06-1999    António Mateus         150

   3       Maria Costa     01-06-1999     Manuel Lopes          100

   4      Manuel Ribeiro   01-10-2002   Prof. Ant. Mateus       300

   5         Maria C.      01-06-1999      Luis Sousa           200
Será uma solução adequada?

                            Encomenda

 NrEnco    NomeVend        DataEnco       NomeCliente        CustoEnco

   1       João Tomás      01-03-2000   Sr. António Mateus      200

   2       Maria Costa     01-06-1999    António Mateus         150

   3       Maria Costa     01-06-1999     Manuel Lopes          100

   4      Manuel Ribeiro   01-10-2002   Prof. Ant. Mateus       300

   5         Maria C.      01-06-1999      Luis Sousa           200
Problemas com tabelas únicas

Informação redundante

  • Informação é repetida na tabela
  • Ocupa mais espaço e potencia consultas com respostas mais lentas
  • Torna o processo de inserir novos dados repetitivo e demorado

Erros de tipografia
  • Por lapso os dados podem ser introduzidos com erros
  • Diferentes operadores podem tratar a mesma informação de modo
    distinto

Atualizar ou modificar informação
  • Operações de alteração ou modificação de dados podem ser difíceis de
    implementar para dados que são repetidos muitas vezes na tabela
Solução - BD com várias tabelas!

Narrativa: identificar entidades/objetos (procurar nomes)

  • Armazenar todas as encomendas de uma loja de decoração, sendo
    necessário registar o nome do vendedor, a data da encomenda, o nome
    do cliente e o custo da encomenda
Solução - BD com várias tabelas!
                                          Encomenda
               NrEnco            NrVend    DataEnco                NrCli   CustoEnco
                  1                1      01-­‐03-­‐2000             1       200
                  2                2      01-­‐06-­‐1999             1       150
                  3                2      01-­‐06-­‐1999             2       100
                  4                3      01-­‐10-­‐2002             1       300
                  5                2      01-­‐06-­‐1999             3       200




  Vendedor                                                 Cliente
  NrVend     NomeVend                                      NrCli            NomeCliente
  1          João	
  Tomás                                 1                António	
  	
  Mateus
  2          Maria	
  Costa                                2                Manuel	
  Lopes
  3          Manuel	
  Ribeiro                             3                Luís	
  Sousa
Problemas foram resolvidos?

Informação redundante

  • A informação de cada vendedor é armazenada apenas uma vez na tabela
    VENDEDORES
  • Para cada encomenda o espaço ocupado para armazenar a informação do
    vendedor é muito reduzido
  • Para cada encomenda, caso sejam adotadas as estratégias adequadas,
    identificar o vendedor é um processo rápido e simples

Erros de tipografia

  • Se existirem erros eles apenas são introduzidos uma vez
  • Possibilidade de erros introduzidos por diferentes operadores é reduzida

Atualizar ou modificar informação

  • Qualquer tipo de alteração relativa à informação dos vendedores apenas tem
    que ser realizada num único local, sendo por isso um processo simples e rápido
    de realizar

Más contenido relacionado

Más de Carlos Santos

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

Más 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
 
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)
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
 

Último

QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
RogrioGonalves41
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 

Último (20)

Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 

LabMM4 (T03 - 12/13) - Chaves primárias

  • 1. Bases de dados: Tabelas e chaves primárias Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 03, 21-02-2013
  • 2. Tipos de dados e sua parametrização MySQL Worksbench
  • 3. Parametrização (PK) PRIMARY KEY • Transforma a coluna numa chave primária • Nessa coluna não poderão existir valores nulos ou repetidos • Identifica de forma unívoca cada novo registo na tabela (NN) NOT NULL • Nessa coluna não poderão existir valores nulos/vazios (UQ) UNIQUE • Na coluna todos os valores serão únicos (com exceção dos nulos que se poderão repetir)
  • 4. Parametrização (ZF) ZEROFILL • Preenche com zeros à esquerda a representação de um valor numérico • 5 -> 000005 (AI) AUTO INCREMENT • Auto incrementa o valor inteiro que será armazenado na coluna a cada novo registo (último valor +1) • Usado normalmente com chaves primárias (PK) (BIN) BINARY • Usado com os tipos CHAR e VARCHAR
  • 5. Parametrização Default • Define um valor por defeito para a coluna, caso não seja introduzido qualquer valor (UN) UNSIGNED • Permite armazenar apenas valores positivos (sem sinal) do tipo de dados selecionado
  • 6. Chaves primárias (PK) Regra Nr. 2 (Codd) – Garantia de acesso • Qualquer e todo o dado armazenado numa base de dados relacional tem que ser garantidamente acessível através de uma combinação única de nome da tabela, valor da chave primária e nome da coluna (campo). id nMec Nome Apelido AnoEntradaUA DataNascimento 1 23594 João Gomes 2002 10-04-1978 2 34921 Lurdes Costa 2008 19-02-1980 3 33482 Manuel Martins 2007 23-03-1981 4 18923 Ana Lopes 1995 08-12-1977 • Todas as tabelas têm que possuir uma chave primária • Simples (uma coluna) ou Composta (associação de múltiplas colunas) • Todos os valores de uma chave primária têm que ser distintos e não nulos
  • 7. Quais os erros? id nMec Nome Apelido AnoEntradaUA DataNascimento 1 23594 João Gomes 2002 10-04-1978 20 34921 Lurdes Costa 2008 19-02-1980 3 33482 Manuel Martins 2007 23-03-1981 4 Ana Lopes 1995 08-12-1977 3 22111 Bernardete Aveiro 2004 04-12-1980 43000 Marco António 2000 24-10-1985
  • 8. Quais os erros? id nMec Nome Apelido AnoEntradaUA DataNascimento 1 23594 João Gomes 2002 10-04-1978 20 34921 Lurdes Costa 2008 19-02-1980 3 33482 Manuel Martins 2007 23-03-1981 4 OK Ana Lopes 1995 08-12-1977 3 22111 Bernardete Aveiro 2004 04-12-1980 NOK 43000 Marco António 2000 24-10-1985
  • 9. Chaves primárias (PK) Como é que podemos obter uma boa chave primária? • Gestão automática através do SGBDR • Auto Increment no MySQL Verificar se alguns dos campos da tabela têm as características necessárias para serem considerados boas chaves primárias (chaves candidatas) • Número de BI? • Número mecanográfico da UA? • Email da UA? • Número de telefone?
  • 10. Chaves primárias (PK) Valores únicos e não nulos não implicam que uma chave primária seja constituída apenas por um campo da tabela! • A chave primária de uma tabela pode ser construída pela associação de vários campos (normalmente não se utilizam mais do que 2) • Código postal (3810-193)? • Como regra geral, podemos afirmar que é preferível evitar criar chaves primárias a partir de vários campos. No entanto, iremos verificar que em casos especiais a sua utilização é essencial!
  • 11. Modela uma tabela Identificar a entidade/conceito, cujos dados irão ser armazenados Identificar as propriedades que caracterizam a entidade e que devem ser armazenadas • Exemplo: Tabela para armazenar alunos da UA • Entidade: Aluno da UA • Propriedades: Características que descrevem um aluno da UA Aluno NumMec Nome Apelido AnoEntradaUA DataNascimento
  • 12. Modelar uma tabela (dicas) Perguntar sempre: • Que dados quero armazenar na tabela? • Que dados quero extrair da tabela? Garantir a consistência dos dados • Escolher o tipo de dados mais adequado para cada coluna • Parametrizar os dados que irão ser armazenados em cada coluna Não armazenar dados redundantes • Não armazenar dados que possam ser calculados através de outros existentes na tabela (ou na BD) • Otimizar o armazenamento de dados que se repitam frequentemente...
  • 13. BD com uma única tabela (Problemas) Narrativa • Armazenar todas as encomendas de uma loja de decoração, sendo necessário registar o nome do vendedor, a data da encomenda, o nome do cliente e o custo da encomenda Encomenda NrEnco NomeVend DataEnco NomeCliente CustoEncomenda
  • 14. Será uma solução adequada? Encomenda NrEnco NomeVend DataEnco NomeCliente CustoEnco 1 João Tomás 01-03-2000 Sr. António Mateus 200 2 Maria Costa 01-06-1999 António Mateus 150 3 Maria Costa 01-06-1999 Manuel Lopes 100 4 Manuel Ribeiro 01-10-2002 Prof. Ant. Mateus 300 5 Maria C. 01-06-1999 Luis Sousa 200
  • 15. Será uma solução adequada? Encomenda NrEnco NomeVend DataEnco NomeCliente CustoEnco 1 João Tomás 01-03-2000 Sr. António Mateus 200 2 Maria Costa 01-06-1999 António Mateus 150 3 Maria Costa 01-06-1999 Manuel Lopes 100 4 Manuel Ribeiro 01-10-2002 Prof. Ant. Mateus 300 5 Maria C. 01-06-1999 Luis Sousa 200
  • 16. Problemas com tabelas únicas Informação redundante • Informação é repetida na tabela • Ocupa mais espaço e potencia consultas com respostas mais lentas • Torna o processo de inserir novos dados repetitivo e demorado Erros de tipografia • Por lapso os dados podem ser introduzidos com erros • Diferentes operadores podem tratar a mesma informação de modo distinto Atualizar ou modificar informação • Operações de alteração ou modificação de dados podem ser difíceis de implementar para dados que são repetidos muitas vezes na tabela
  • 17. Solução - BD com várias tabelas! Narrativa: identificar entidades/objetos (procurar nomes) • Armazenar todas as encomendas de uma loja de decoração, sendo necessário registar o nome do vendedor, a data da encomenda, o nome do cliente e o custo da encomenda
  • 18. Solução - BD com várias tabelas! Encomenda NrEnco NrVend DataEnco NrCli CustoEnco 1 1 01-­‐03-­‐2000 1 200 2 2 01-­‐06-­‐1999 1 150 3 2 01-­‐06-­‐1999 2 100 4 3 01-­‐10-­‐2002 1 300 5 2 01-­‐06-­‐1999 3 200 Vendedor Cliente NrVend NomeVend NrCli NomeCliente 1 João  Tomás 1 António    Mateus 2 Maria  Costa 2 Manuel  Lopes 3 Manuel  Ribeiro 3 Luís  Sousa
  • 19. Problemas foram resolvidos? Informação redundante • A informação de cada vendedor é armazenada apenas uma vez na tabela VENDEDORES • Para cada encomenda o espaço ocupado para armazenar a informação do vendedor é muito reduzido • Para cada encomenda, caso sejam adotadas as estratégias adequadas, identificar o vendedor é um processo rápido e simples Erros de tipografia • Se existirem erros eles apenas são introduzidos uma vez • Possibilidade de erros introduzidos por diferentes operadores é reduzida Atualizar ou modificar informação • Qualquer tipo de alteração relativa à informação dos vendedores apenas tem que ser realizada num único local, sendo por isso um processo simples e rápido de realizar