SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Bases de dados: Integridade referencial e
Normalização
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 09, 14-03-2013
Erros comuns na integridade dos dados

Erros tipográficos na introdução dos dados

Erros na introdução de dados num campo, cujo conjunto de valores
possíveis deveria estar bem delimitado (escolher um país da lista de países)

  • Na BD poder-se-ão usar tipos de dados como o SET e ENUM ou tabelas
    dicionário

Erros entre os dados introduzidos em diferentes campos

  • Exemplo: todas as datas relacionadas com a vida de um indivíduo têm de
    ser posteriores à data do seu nascimento

Prevenir ou minorar os efeitos destes erros com:

  • HTML/JavaScript
  • PHP
  • MySQL
Integridade referencial

A integridade referencial implica que se deva garantir que todos os
valores atribuídos à FK (tabela de chegada) existam do lado da PK (tabela
de partida)



No mySQL, o motor InnoDB, com o seu suporte a chaves estrangeiras, já
implementa mecanismos de preservação da integridade referencial da BD

Existe no entanto um “problema”:

  • Quando um registo da tabela de partida (do lado da PK) é removido o que
    deve acontecer ao(s) registo(s) na tabela de chegada (do lado da 
 FK) que
    o referenciava(m)?
Integridade referencial

Removendo na tabela CLIENTES, o registo onde a PK toma o valor 2 o que
acontecerá aos registos na tabela ENCOMENDAS onde a FK toma esse
valor?

         CLIENTES                                         ENCOMENDAS
  idCLIENTES      Nome       idENCOMENDAS   DataEncomenda DataPagamento CLIENTES_idCLIENTES
       1           João            1          2008-­‐02-­‐23    2008-­‐01-­‐25   1
       2          Maria            2          2008-­‐04-­‐11    2008-­‐02-­‐23   2
       3          Manuel           3          2008-­‐03-­‐13    2008-­‐03-­‐23   2
                                   4          2008-­‐05-­‐21    2008-­‐04-­‐23   3
                                   5          2008-­‐06-­‐25    2008-­‐08-­‐23   2




Em muitos casos não se removem registos! Os registos “removidos” são
guardados num estado de inactivos/invisíveis.

Solução: Adicionar coluna extra à tabela (estado: activo/inactivo, 0/1)
Integridade referencial

No Workbench, no separador Foreign Keys da tabela de chegada (do lado
da FK), devem configurar-se as Foreign Key Options

Isso permite decidir o que acontece na tabela de chegada, quando se
actualiza/apaga um registo na tabela de partida (do lado da PK)
Foreign Key Options [Foreign Key Constraints]

RESTRICT

  • Não é permitido atualizar/apagar um registo na tabela de partida se este
    tiver registos relacionados na tabela de chegada

NO ACTION
  • Funcionamento idêntico ao RESTRICT

CASCADE
  • Ao atualizar/apagar um registo na tabela de partida essa operação é
    executada também nos registos relacionados na tabela de chegada
SET NULL

  • Ao actualizar/apagar um registo na tabela de partida, são colocados a
    NULL os valores da chave estrangeira nos registos relacionados (isto só é
    possível, se a definição da FK o permitir, por exemplo, se não tiver sido
    parametrizada com o NOT NULL)
CASCADE DELETE

Resultados potencialmente catastróficos para a base de dados!

  • Imaginemos um cenário de uma BD para uma loja que só tem um
    vendedor e que está associado a todas as vendas efetuadas.
     • Se todas as relações da BD estiverem com CASCADE DELETE, o que
       acontece se o vendedor for apagado?
E se for uma actualização do valor da chave
primária?

Os mecanismos que permitem definir como reagir ao evento de apagar
existem também para o evento de actualizar.
Normalização

Processo de organizar os campos e tabelas de uma base de dados
relacional de modo a minimizar a redundância e dependência dos dados
  • é essencial para que se possa tirar partido do SQL

Objetivos:
  • libertar a BD de anomalias de edição
  • minimizar necessidades de redesenho da BD quando é necessário
    estender a sua implementação
  • tornar o modelo de dados mais informativo para os utilizadores
  • evitar tendência do modelo relativamente a um determinado padrão de
    queries

(http://en.wikipedia.org/wiki/Database_normalization)
Primeira regra de normalização (First normal form)

Eliminação de grupos repetitivos:

  • A primeira regra de normalização envolve a eliminação de grupos
    repetitivos dentro de um qualquer campo.

                                  ENCOMENDAS


     NrEncom   DataEncomenda   DataPagamento     Produto      Quantidade


                                               Mesa de Sala      1
        1        12-09-2000      12-09-2000       Sofá           2
                                                 Cadeira         12

                                                 Cadeira          2
        2        30-08-2001      11-12-2001
                                                Aparador          1

        3        21-01-2000      24-01-2000       Sofá            3
Segunda regra de normalização
(Second normal form)

Eliminação de dados redundantes (na tabela):

  • a primeira regra de normalização tem que ser respeitada;
  • todos os campos que não fazem parte da chave primária são
    funcionalmente dependentes da totalidade da chave primária; isto é, não
    podem existir campos que são dependentes apenas de uma parte da
    chave primária.

                            ENCOM_PROD
     NrEncom   ID_Produto         Produto      Quantidade
        1          1              Cadeira         12
        1          2            Mesa de Sala       1
        2          3             Aparador          2

  • Neste caso, o campo “Produto” é dependente do campo “ID_Produto”
    que é apenas uma parte da chave primária, logo a tabela não se encontra
    de acordo com a segunda regra de normalização.
Terceira regra de normalização (Third normal form)

Eliminação de campos que não são dependente das chaves:

  • a segunda regra de normalização tem que ser respeitada;
  • todos os campos que não são chaves têm que ser independentes entre si.
    Ou seja, para os campos que não são chaves, o valor de uma dado
    campo não pode depender do valor de outro campo.
                            VENDEDOR
    NrVendedor   Nome       Apelido    CodPostal    Localidade
        1        João       Tomás         3810        Aveiro
        1        Maria      Costa         3830        Ílhavo
        2        Manuel     Ribeiro       1000       Lisboa
  • Neste caso, o campo “Localidade” é dependente do campo “CodPostal”,
    logo a tabela não se encontra de acordo com a terceira regra de
    normalização.
  • Por vezes, em situações práticas, pode ser conveniente não aplicar
    totalmente esta regra de normalização....
  • Campos calculados também são “proibidos” por esta regra.
Regras de normalização

Mais regras de normalização:

  • Boyce/Codd Normal Form
  • Quarta regra de normalização (Fourth normal form)
  • Quinta regra de normalização (Fifth normal form)
  • Domain Key/Normal Form
  • ...

Estas regras raramente têm que ser aplicadas porque só fazem sentido
em situações muito complexas que raramente são encontradas no mundo
real.
Desnormalização

Em condições específicas deve ser realizada, por exemplo, para melhorar
a performance...
E a seguir?

SQL vs noSQL




Mini-teste e... PHP

Mais conteúdo relacionado

Mais procurados

Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosLeinylson Fontinele
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normaisSandro Freitas
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalizaçãoMatias Silva
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultasjulianaveregue
 
03 LabMM4 - Bases de dados
03 LabMM4 - Bases de dados03 LabMM4 - Bases de dados
03 LabMM4 - Bases de dadosCarlos Santos
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Marco Pinheiro
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Emiliano Barbosa
 

Mais procurados (19)

Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normais
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalização
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
03 LabMM4 - Bases de dados
03 LabMM4 - Bases de dados03 LabMM4 - Bases de dados
03 LabMM4 - Bases de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8
 

Semelhante a Bases de Dados: Integridade Referencial e Normalização

07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dadosCarlos Santos
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Elaine Cecília Gatto
 
115 Br Ri Ug Ptb
115 Br Ri Ug Ptb115 Br Ri Ug Ptb
115 Br Ri Ug Ptbajonesmis
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxAugustoNicolau2
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
SGBD - ORACLE - JAVA
SGBD - ORACLE - JAVASGBD - ORACLE - JAVA
SGBD - ORACLE - JAVAssuser4cf889
 
Tipos de dados do MySQL 5
Tipos de dados do MySQL 5Tipos de dados do MySQL 5
Tipos de dados do MySQL 5Daniel Brandão
 

Semelhante a Bases de Dados: Integridade Referencial e Normalização (15)

07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Teorica 10
Teorica 10Teorica 10
Teorica 10
 
Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018
 
115 Br Ri Ug Ptb
115 Br Ri Ug Ptb115 Br Ri Ug Ptb
115 Br Ri Ug Ptb
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptx
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
SGBD - ORACLE - JAVA
SGBD - ORACLE - JAVASGBD - ORACLE - JAVA
SGBD - ORACLE - JAVA
 
Tipos de dados do MySQL 5
Tipos de dados do MySQL 5Tipos de dados do MySQL 5
Tipos de dados do MySQL 5
 
09 b sala de recursos
09 b sala de recursos09 b sala de recursos
09 b sala de recursos
 
06 b professores copa
06 b professores copa06 b professores copa
06 b professores copa
 

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

421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
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
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
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
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
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
 
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
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
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
 
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
 
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
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 

Último (20)

421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
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
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
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
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
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...
 
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...
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
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
 
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
 
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...
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 

Bases de Dados: Integridade Referencial e Normalização

  • 1. Bases de dados: Integridade referencial e Normalização Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 09, 14-03-2013
  • 2. Erros comuns na integridade dos dados Erros tipográficos na introdução dos dados Erros na introdução de dados num campo, cujo conjunto de valores possíveis deveria estar bem delimitado (escolher um país da lista de países) • Na BD poder-se-ão usar tipos de dados como o SET e ENUM ou tabelas dicionário Erros entre os dados introduzidos em diferentes campos • Exemplo: todas as datas relacionadas com a vida de um indivíduo têm de ser posteriores à data do seu nascimento Prevenir ou minorar os efeitos destes erros com: • HTML/JavaScript • PHP • MySQL
  • 3. Integridade referencial A integridade referencial implica que se deva garantir que todos os valores atribuídos à FK (tabela de chegada) existam do lado da PK (tabela de partida) No mySQL, o motor InnoDB, com o seu suporte a chaves estrangeiras, já implementa mecanismos de preservação da integridade referencial da BD Existe no entanto um “problema”: • Quando um registo da tabela de partida (do lado da PK) é removido o que deve acontecer ao(s) registo(s) na tabela de chegada (do lado da FK) que o referenciava(m)?
  • 4. Integridade referencial Removendo na tabela CLIENTES, o registo onde a PK toma o valor 2 o que acontecerá aos registos na tabela ENCOMENDAS onde a FK toma esse valor? CLIENTES ENCOMENDAS idCLIENTES Nome idENCOMENDAS DataEncomenda DataPagamento CLIENTES_idCLIENTES 1 João 1 2008-­‐02-­‐23 2008-­‐01-­‐25 1 2 Maria 2 2008-­‐04-­‐11 2008-­‐02-­‐23 2 3 Manuel 3 2008-­‐03-­‐13 2008-­‐03-­‐23 2 4 2008-­‐05-­‐21 2008-­‐04-­‐23 3 5 2008-­‐06-­‐25 2008-­‐08-­‐23 2 Em muitos casos não se removem registos! Os registos “removidos” são guardados num estado de inactivos/invisíveis. Solução: Adicionar coluna extra à tabela (estado: activo/inactivo, 0/1)
  • 5. Integridade referencial No Workbench, no separador Foreign Keys da tabela de chegada (do lado da FK), devem configurar-se as Foreign Key Options Isso permite decidir o que acontece na tabela de chegada, quando se actualiza/apaga um registo na tabela de partida (do lado da PK)
  • 6. Foreign Key Options [Foreign Key Constraints] RESTRICT • Não é permitido atualizar/apagar um registo na tabela de partida se este tiver registos relacionados na tabela de chegada NO ACTION • Funcionamento idêntico ao RESTRICT CASCADE • Ao atualizar/apagar um registo na tabela de partida essa operação é executada também nos registos relacionados na tabela de chegada SET NULL • Ao actualizar/apagar um registo na tabela de partida, são colocados a NULL os valores da chave estrangeira nos registos relacionados (isto só é possível, se a definição da FK o permitir, por exemplo, se não tiver sido parametrizada com o NOT NULL)
  • 7. CASCADE DELETE Resultados potencialmente catastróficos para a base de dados! • Imaginemos um cenário de uma BD para uma loja que só tem um vendedor e que está associado a todas as vendas efetuadas. • Se todas as relações da BD estiverem com CASCADE DELETE, o que acontece se o vendedor for apagado?
  • 8. E se for uma actualização do valor da chave primária? Os mecanismos que permitem definir como reagir ao evento de apagar existem também para o evento de actualizar.
  • 9. Normalização Processo de organizar os campos e tabelas de uma base de dados relacional de modo a minimizar a redundância e dependência dos dados • é essencial para que se possa tirar partido do SQL Objetivos: • libertar a BD de anomalias de edição • minimizar necessidades de redesenho da BD quando é necessário estender a sua implementação • tornar o modelo de dados mais informativo para os utilizadores • evitar tendência do modelo relativamente a um determinado padrão de queries (http://en.wikipedia.org/wiki/Database_normalization)
  • 10. Primeira regra de normalização (First normal form) Eliminação de grupos repetitivos: • A primeira regra de normalização envolve a eliminação de grupos repetitivos dentro de um qualquer campo. ENCOMENDAS NrEncom DataEncomenda DataPagamento Produto Quantidade Mesa de Sala 1 1 12-09-2000 12-09-2000 Sofá 2 Cadeira 12 Cadeira 2 2 30-08-2001 11-12-2001 Aparador 1 3 21-01-2000 24-01-2000 Sofá 3
  • 11. Segunda regra de normalização (Second normal form) Eliminação de dados redundantes (na tabela): • a primeira regra de normalização tem que ser respeitada; • todos os campos que não fazem parte da chave primária são funcionalmente dependentes da totalidade da chave primária; isto é, não podem existir campos que são dependentes apenas de uma parte da chave primária. ENCOM_PROD NrEncom ID_Produto Produto Quantidade 1 1 Cadeira 12 1 2 Mesa de Sala 1 2 3 Aparador 2 • Neste caso, o campo “Produto” é dependente do campo “ID_Produto” que é apenas uma parte da chave primária, logo a tabela não se encontra de acordo com a segunda regra de normalização.
  • 12. Terceira regra de normalização (Third normal form) Eliminação de campos que não são dependente das chaves: • a segunda regra de normalização tem que ser respeitada; • todos os campos que não são chaves têm que ser independentes entre si. Ou seja, para os campos que não são chaves, o valor de uma dado campo não pode depender do valor de outro campo. VENDEDOR NrVendedor Nome Apelido CodPostal Localidade 1 João Tomás 3810 Aveiro 1 Maria Costa 3830 Ílhavo 2 Manuel Ribeiro 1000 Lisboa • Neste caso, o campo “Localidade” é dependente do campo “CodPostal”, logo a tabela não se encontra de acordo com a terceira regra de normalização. • Por vezes, em situações práticas, pode ser conveniente não aplicar totalmente esta regra de normalização.... • Campos calculados também são “proibidos” por esta regra.
  • 13. Regras de normalização Mais regras de normalização: • Boyce/Codd Normal Form • Quarta regra de normalização (Fourth normal form) • Quinta regra de normalização (Fifth normal form) • Domain Key/Normal Form • ... Estas regras raramente têm que ser aplicadas porque só fazem sentido em situações muito complexas que raramente são encontradas no mundo real.
  • 14. Desnormalização Em condições específicas deve ser realizada, por exemplo, para melhorar a performance...
  • 15. E a seguir? SQL vs noSQL Mini-teste e... PHP