SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Bases de dados: Introdução
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 02, 19-02-2013
Bases de dados [1963]

O que é uma base de dados (BD)?

  • Uma coleção de dados relacionados entre si.

Alguns exemplos de BDs?

  • Cartões com informação sobre os livros de uma biblioteca
  • Fichas dos pacientes de um médico
  • Sistema informático com os dados académicos dos alunos da UA

Vantagens das BDs suportadas em sistemas informáticos?
  • Rapidez no acesso aos dados
  • Facilidade na gestão desses dados
     • Selecionar, atualizar, adicionar e remover
  • Outras: cópia, segurança,...
Sistemas de Gestão de Bases de Dados (SGBD)

Aplicações que permitem gerir as BDs e os dados que estas contêm

  • MySQL
  • PostgreSQL
  • MS SQL Server / MS Access
  • Oracle

Estruturam as BDs aí existentes, segundo um modelo
  • “Ficheiros simples”
  • Hierárquico (dados organizados em árvore – 1 pai/N filhos)
  • Rede (dados organizados em rede – N pais/ N filhos)
  • Relacional
  • Orientado por objetos (métodos e propriedades)
  • mais informação: http://en.wikipedia.org/wiki/Database_model
Bases de Dados Relacionais

Edgar F. Codd (1923-2003) – “Pai” das BDs relacionais (BDR)

  • “A relational Model of Data for Large Shared Data Banks” [1970] Propunha
    uma nova teoria (essencialmente matemática) para representar estruturas
    de dados

Em 1985 publicou dois artigos (Computerworld) que definiam as 12 regras
que um SGBD devia respeitar. (Conteúdo muito complexo!)
  • Note that a view is theoretically updatable if there exists a time-independent algorithm for
    unambiguously determining a single series of changes to the base relations that will have as their
    effect precisely the requested changes in the view.

  • mais informação: http://en.wikipedia.org/wiki/Codd%27s_12_rules

Christopher J. Date - foi um colaborador do Edgar F. Codd e é hoje um
dos autores mais importantes nesta área
Bases de Dados Relacionais

Modelo relacional

  • Genericamente pode afirmar-se que se trata de um modelo baseado nas
    relações (associações) existentes entre tabelas onde são armazenados os
    dados
  • No entanto, de acordo com o modelo de Codd, a definição de um modelo
    relacional prende-se com o armazenamento dos próprios dados nas
    tabelas
SGBDR e principais componentes

Sistema de Gestão de Bases de Dados Relacionais (SGBDR)

  • SGBD que opera num modelo relacional

Alguns componentes de um SGBDR (como o MySQL)

  • Tables (tabelas)
  • Queries (consultas/questões)
  • Views (vistas)
Tabelas: definição

Tabela

  • Estrutura bidimensional fundamental no modelo relacional
  • Armazena dados de uma entidade, nas suas linhas e colunas

Colunas

  • Campos (atributos/propriedades) da entidade

Linhas

  • Registos (instâncias) da entidade
Tabelas: exemplo


    nMec     Nome     Apelido   AnoEntradaUA   DataNascimento



    23594     João    Gomes         2002         10-04-1978



    34921    Lurdes    Costa        2008         19-02-1980



    33482    Manuel   Martins       2007         23-03-1981



    18923     Ana     Lopes         1995         08-12-1977
Tabelas: estrutura

Armazenam dados com uma estrutura similar

      nMec          Nome        Apelido      AnoEntradaUA   DataNascimento


      23594          João        Gomes           2002         10-04-1978


      34921         Lurdes       Costa           2008         19-02-1980


      33482         Manuel       Martins         2007         23-03-1981


      18923          Ana         Lopes           1995         08-12-1977


      43002         Rua 5       Nr. 22, 3º       3810           Aveiro


       UC         Lab. Mult 5      BD         2011-2012      Carlos Santos
Tabelas: regras

Regra para a identificação das tabelas

  • Nome único dentro da BD: “Aluno”, “Formando”
  • Regras de case-sensitive dependem de SGBDR e possíveis
    configurações: não arriscar e respeitar sempre o case!
  • Plural ou singular? (Ex: Users.Name ou User.Name?)

Dicas para a identificação das colunas

  • Os nomes das colunas (campos) não podem ser duplicados na mesma
    tabela e devemos evitar utilizar palavras reservadas (user, date, login,
    password, ...)
  • Nome escrito no formato CamelCaps: DataNascimento (recomendação)
  • Sempre sem espaços, acentos e outros caracteres especiais!
  • Nome único para cada coluna (evita mais tarde o uso de ALIAS)
Query

Consulta/questão colocada ao SGBDR sobre os dados armazenados
numa BD que este contém
  • Consulta/questão é processada pelo SGBDR que devolve depois o
    resultado
     • Nome e idade dos Caloiros de NTC em 2011/2012?
     • Nome dos alunos de LabMM4 com nota final positiva ordenados por
       nota final?

O resultado de uma query é também uma tabela que se designa por tabela
resposta
View

Permite a construção de uma tabela virtual na BD com os registos que
resultam do processamento de uma query
  • O acesso a esses registos torna-se mais rápido e eficiente
  • A tabela virtual é gerida automaticamente pelo SGBDR
  • Podem fazer-se outras queries sobre uma view
Como se representa

Diagramas ER
Tipo de dados armazenados

Para cada coluna/campo de uma tabela

  • Definir o tipo de dados que esta irá armazenar
  • Disso dependerá a eficiência, o desempenho e a otimização da BD, das
    tabelas e do acesso aos dados aí contidos
Tipo de dados armazenados

Escolher um tipo de dados que exija um menor espaço de
armazenamento em disco, mas que ainda assim, seja suficiente para
conter os dados pretendidos

  • Armazenar o género de um paciente
  • masculino/feminino ou 0/1 ou m/f?

Escolher um tipo de dados adequado à informação a armazenar
  • Armazenar data de acordo com uma formatação específica
  • YYYY-MM-DD ou YY-MM-DD?

Escolher um tipo de dados que permita restringir (quando apropriado) a
gama de valores passíveis de armazenamento
  • Armazenar o departamento da UA, a partir dos elementos de uma lista
    completa de departamentos da UA
  • Armazenar o país a partir de uma lista de países
Tipos de dados no MySQL

Organização em 3 grupos principais

  • Numeric
     • Todo o tipo de valores numéricos
     • Integer (inteiros) -> 2
     • Floating point (números com parte decimal [, ou .]) -> 2.345
     • ...
  • Date and Time
     • Dados relacionados com datas, horas, …
  • String
     • Sequência de caracteres, texto, símbolos (frases, palavras)
Dados numéricos inteiros (MySQL)

TINYINT (1 Byte)

  • -128 … 127 ou 0 … 255

SMALLINT (2 Bytes)

  • -32768 … 32767 ou 0 … 65535

MEDIUMINT (3 Bytes)

  • -8388608 … 8388607 ou 0 … 16777215

INT (4 Bytes)

  • -2147483648 … 2147483647 ou 0 … 4294967295
Dados numéricos inteiros (MySQL)

BIGINT (8 Bytes)

  • -9223372036854775808 … 9223372036854775807
  • 0 … 18446744073709551615

BOOL, BOOLEAN
  • FALSE = 0, TRUE ≠ 0
Dados numéricos com parte decimal (MySQL)

DECIMAL

  • Número armazenado como String (texto)

DOUBLE

  • -1,798E+308 … -2,225E-308
  • 2,225E-308 … 1,798E+308

FLOAT
  • -3,403E+38 … -1,175E-38
  • 1,175E-38 … 3,403E+38
Dados Date e Time

DATE

  • YYYY-MM-DD

DATETIME

  • YYYY-MM-DD HH:MM:SS

TIMESTAMP (M)

  • (14) YYYY-MM-DD HH:MM:SS
  • (8) YYYY-MM-DD
  • (4) YY-MM
  • (2) YY
Dados Date e Time

TIME

  • HH:MM:SS

YEAR (2|4)

  • YY (1970-2069)
  • YYYY (1901-2155)
Dados String

CHAR(M)

  • (1-255) Sequência de caracteres de tamanho fixo

VARCHAR(M)

  • Sequência de caracteres de tamanho variável
  • Pode armazenar até um máximo de M caracteres
  • Otimiza o espaço necessário ao armazenamento
Dados String

TINYTEXT

  • 255 caracteres

TEXT

  • 65535 caracteres

MEDIUMTEXT

  • 16777215 caracteres

LONGTEXT

  • 4294967295 caracteres
Dados String

Strings binárias

  • Permitem armazenar ficheiros (imagens, sons, vídeos, etc) na BD

BLOB (Binary Large Object)

  • Sequência de caracteres que codificam uma imagem, som

TINYBLOB - 255 caracteres

BLOB - 65535 caracteres

MEDIUMBLOB - 16777215 caracteres

LONGBLOB - 4294967295 caracteres
Dados String

Strings de elementos

  • Definem uma gama de valores possíveis, para os dados a armazenar

ENUM (“elemento1”, “elemento2”,…,”elemento65535”)

  • Armazena um elemento do conjunto

SET (“elemento1”, “elemento2”,…,”elemento64”)

  • Armazena zero ou mais elementos do conjunto

Contenu connexe

En vedette

Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Carlos Santos
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesGustavo Sávio
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPCarlos Santos
 
LabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertLabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertCarlos Santos
 
06 LabMM4 - Bases de dados
06 LabMM4 - Bases de dados06 LabMM4 - Bases de dados
06 LabMM4 - Bases de dadosCarlos Santos
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisCarlos Santos
 
04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dadosCarlos Santos
 

En vedette (8)

Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - Funções
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
 
LabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertLabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insert
 
06 LabMM4 - Bases de dados
06 LabMM4 - Bases de dados06 LabMM4 - Bases de dados
06 LabMM4 - Bases de dados
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 

Similaire à LabMM4 (T02 - 12/13) - Bases de dados

Sistemas de Base de Dados
Sistemas de Base de DadosSistemas de Base de Dados
Sistemas de Base de DadosMariana Hiyori
 
noções de sgdb
noções de sgdbnoções de sgdb
noções de sgdbPaulo Reis
 
Introdução a SGBDs
Introdução a SGBDsIntrodução a SGBDs
Introdução a SGBDsUFRN
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Isc aula 5 - estrutura e organização da informação
Isc   aula 5 - estrutura e organização da informaçãoIsc   aula 5 - estrutura e organização da informação
Isc aula 5 - estrutura e organização da informaçãoFábio Andrade
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 
Banco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosDanielRibeiro136663
 
Bancodedados
BancodedadosBancodedados
Bancodedadosnikson123
 
Banco de Dados - Part01
Banco de Dados - Part01Banco de Dados - Part01
Banco de Dados - Part01Rangel Javier
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dadosEdgar Stuart
 
Novo microsoft office power point presentation
Novo microsoft office power point presentationNovo microsoft office power point presentation
Novo microsoft office power point presentationmachadocarla
 
Visão geral sobre Bancos de Dados Univesp
Visão geral sobre Bancos de Dados UnivespVisão geral sobre Bancos de Dados Univesp
Visão geral sobre Bancos de Dados Univespinominavell
 
Sistema de Base de Dados1.ppt
Sistema de Base de Dados1.pptSistema de Base de Dados1.ppt
Sistema de Base de Dados1.ppthhuu6
 
1. Introdução a Sistemas de BD
1. Introdução a Sistemas de BD 1. Introdução a Sistemas de BD
1. Introdução a Sistemas de BD Marília Mendes
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosJosé Araújo
 
Banco de dados
Banco de dadosBanco de dados
Banco de dadospadinho
 

Similaire à LabMM4 (T02 - 12/13) - Bases de dados (20)

SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Sistemas de Base de Dados
Sistemas de Base de DadosSistemas de Base de Dados
Sistemas de Base de Dados
 
noções de sgdb
noções de sgdbnoções de sgdb
noções de sgdb
 
Introdução a SGBDs
Introdução a SGBDsIntrodução a SGBDs
Introdução a SGBDs
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Isc aula 5 - estrutura e organização da informação
Isc   aula 5 - estrutura e organização da informaçãoIsc   aula 5 - estrutura e organização da informação
Isc aula 5 - estrutura e organização da informação
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Banco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dados
 
Bancodedados
BancodedadosBancodedados
Bancodedados
 
Sql
SqlSql
Sql
 
Banco de Dados - Part01
Banco de Dados - Part01Banco de Dados - Part01
Banco de Dados - Part01
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dados
 
Novo microsoft office power point presentation
Novo microsoft office power point presentationNovo microsoft office power point presentation
Novo microsoft office power point presentation
 
Visão geral sobre Bancos de Dados Univesp
Visão geral sobre Bancos de Dados UnivespVisão geral sobre Bancos de Dados Univesp
Visão geral sobre Bancos de Dados Univesp
 
Sistema de Base de Dados1.ppt
Sistema de Base de Dados1.pptSistema de Base de Dados1.ppt
Sistema de Base de Dados1.ppt
 
1. Introdução a Sistemas de BD
1. Introdução a Sistemas de BD 1. Introdução a Sistemas de BD
1. Introdução a Sistemas de BD
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Apostila de bd
Apostila de bdApostila de bd
Apostila de bd
 

Plus 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
 

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

LabMM4 (T02 - 12/13) - Bases de dados

  • 1. Bases de dados: Introdução Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 02, 19-02-2013
  • 2. Bases de dados [1963] O que é uma base de dados (BD)? • Uma coleção de dados relacionados entre si. Alguns exemplos de BDs? • Cartões com informação sobre os livros de uma biblioteca • Fichas dos pacientes de um médico • Sistema informático com os dados académicos dos alunos da UA Vantagens das BDs suportadas em sistemas informáticos? • Rapidez no acesso aos dados • Facilidade na gestão desses dados • Selecionar, atualizar, adicionar e remover • Outras: cópia, segurança,...
  • 3. Sistemas de Gestão de Bases de Dados (SGBD) Aplicações que permitem gerir as BDs e os dados que estas contêm • MySQL • PostgreSQL • MS SQL Server / MS Access • Oracle Estruturam as BDs aí existentes, segundo um modelo • “Ficheiros simples” • Hierárquico (dados organizados em árvore – 1 pai/N filhos) • Rede (dados organizados em rede – N pais/ N filhos) • Relacional • Orientado por objetos (métodos e propriedades) • mais informação: http://en.wikipedia.org/wiki/Database_model
  • 4.
  • 5. Bases de Dados Relacionais Edgar F. Codd (1923-2003) – “Pai” das BDs relacionais (BDR) • “A relational Model of Data for Large Shared Data Banks” [1970] Propunha uma nova teoria (essencialmente matemática) para representar estruturas de dados Em 1985 publicou dois artigos (Computerworld) que definiam as 12 regras que um SGBD devia respeitar. (Conteúdo muito complexo!) • Note that a view is theoretically updatable if there exists a time-independent algorithm for unambiguously determining a single series of changes to the base relations that will have as their effect precisely the requested changes in the view. • mais informação: http://en.wikipedia.org/wiki/Codd%27s_12_rules Christopher J. Date - foi um colaborador do Edgar F. Codd e é hoje um dos autores mais importantes nesta área
  • 6. Bases de Dados Relacionais Modelo relacional • Genericamente pode afirmar-se que se trata de um modelo baseado nas relações (associações) existentes entre tabelas onde são armazenados os dados • No entanto, de acordo com o modelo de Codd, a definição de um modelo relacional prende-se com o armazenamento dos próprios dados nas tabelas
  • 7. SGBDR e principais componentes Sistema de Gestão de Bases de Dados Relacionais (SGBDR) • SGBD que opera num modelo relacional Alguns componentes de um SGBDR (como o MySQL) • Tables (tabelas) • Queries (consultas/questões) • Views (vistas)
  • 8. Tabelas: definição Tabela • Estrutura bidimensional fundamental no modelo relacional • Armazena dados de uma entidade, nas suas linhas e colunas Colunas • Campos (atributos/propriedades) da entidade Linhas • Registos (instâncias) da entidade
  • 9. Tabelas: exemplo nMec Nome Apelido AnoEntradaUA DataNascimento 23594 João Gomes 2002 10-04-1978 34921 Lurdes Costa 2008 19-02-1980 33482 Manuel Martins 2007 23-03-1981 18923 Ana Lopes 1995 08-12-1977
  • 10. Tabelas: estrutura Armazenam dados com uma estrutura similar nMec Nome Apelido AnoEntradaUA DataNascimento 23594 João Gomes 2002 10-04-1978 34921 Lurdes Costa 2008 19-02-1980 33482 Manuel Martins 2007 23-03-1981 18923 Ana Lopes 1995 08-12-1977 43002 Rua 5 Nr. 22, 3º 3810 Aveiro UC Lab. Mult 5 BD 2011-2012 Carlos Santos
  • 11. Tabelas: regras Regra para a identificação das tabelas • Nome único dentro da BD: “Aluno”, “Formando” • Regras de case-sensitive dependem de SGBDR e possíveis configurações: não arriscar e respeitar sempre o case! • Plural ou singular? (Ex: Users.Name ou User.Name?) Dicas para a identificação das colunas • Os nomes das colunas (campos) não podem ser duplicados na mesma tabela e devemos evitar utilizar palavras reservadas (user, date, login, password, ...) • Nome escrito no formato CamelCaps: DataNascimento (recomendação) • Sempre sem espaços, acentos e outros caracteres especiais! • Nome único para cada coluna (evita mais tarde o uso de ALIAS)
  • 12. Query Consulta/questão colocada ao SGBDR sobre os dados armazenados numa BD que este contém • Consulta/questão é processada pelo SGBDR que devolve depois o resultado • Nome e idade dos Caloiros de NTC em 2011/2012? • Nome dos alunos de LabMM4 com nota final positiva ordenados por nota final? O resultado de uma query é também uma tabela que se designa por tabela resposta
  • 13. View Permite a construção de uma tabela virtual na BD com os registos que resultam do processamento de uma query • O acesso a esses registos torna-se mais rápido e eficiente • A tabela virtual é gerida automaticamente pelo SGBDR • Podem fazer-se outras queries sobre uma view
  • 15. Tipo de dados armazenados Para cada coluna/campo de uma tabela • Definir o tipo de dados que esta irá armazenar • Disso dependerá a eficiência, o desempenho e a otimização da BD, das tabelas e do acesso aos dados aí contidos
  • 16. Tipo de dados armazenados Escolher um tipo de dados que exija um menor espaço de armazenamento em disco, mas que ainda assim, seja suficiente para conter os dados pretendidos • Armazenar o género de um paciente • masculino/feminino ou 0/1 ou m/f? Escolher um tipo de dados adequado à informação a armazenar • Armazenar data de acordo com uma formatação específica • YYYY-MM-DD ou YY-MM-DD? Escolher um tipo de dados que permita restringir (quando apropriado) a gama de valores passíveis de armazenamento • Armazenar o departamento da UA, a partir dos elementos de uma lista completa de departamentos da UA • Armazenar o país a partir de uma lista de países
  • 17. Tipos de dados no MySQL Organização em 3 grupos principais • Numeric • Todo o tipo de valores numéricos • Integer (inteiros) -> 2 • Floating point (números com parte decimal [, ou .]) -> 2.345 • ... • Date and Time • Dados relacionados com datas, horas, … • String • Sequência de caracteres, texto, símbolos (frases, palavras)
  • 18. Dados numéricos inteiros (MySQL) TINYINT (1 Byte) • -128 … 127 ou 0 … 255 SMALLINT (2 Bytes) • -32768 … 32767 ou 0 … 65535 MEDIUMINT (3 Bytes) • -8388608 … 8388607 ou 0 … 16777215 INT (4 Bytes) • -2147483648 … 2147483647 ou 0 … 4294967295
  • 19. Dados numéricos inteiros (MySQL) BIGINT (8 Bytes) • -9223372036854775808 … 9223372036854775807 • 0 … 18446744073709551615 BOOL, BOOLEAN • FALSE = 0, TRUE ≠ 0
  • 20. Dados numéricos com parte decimal (MySQL) DECIMAL • Número armazenado como String (texto) DOUBLE • -1,798E+308 … -2,225E-308 • 2,225E-308 … 1,798E+308 FLOAT • -3,403E+38 … -1,175E-38 • 1,175E-38 … 3,403E+38
  • 21. Dados Date e Time DATE • YYYY-MM-DD DATETIME • YYYY-MM-DD HH:MM:SS TIMESTAMP (M) • (14) YYYY-MM-DD HH:MM:SS • (8) YYYY-MM-DD • (4) YY-MM • (2) YY
  • 22. Dados Date e Time TIME • HH:MM:SS YEAR (2|4) • YY (1970-2069) • YYYY (1901-2155)
  • 23. Dados String CHAR(M) • (1-255) Sequência de caracteres de tamanho fixo VARCHAR(M) • Sequência de caracteres de tamanho variável • Pode armazenar até um máximo de M caracteres • Otimiza o espaço necessário ao armazenamento
  • 24. Dados String TINYTEXT • 255 caracteres TEXT • 65535 caracteres MEDIUMTEXT • 16777215 caracteres LONGTEXT • 4294967295 caracteres
  • 25. Dados String Strings binárias • Permitem armazenar ficheiros (imagens, sons, vídeos, etc) na BD BLOB (Binary Large Object) • Sequência de caracteres que codificam uma imagem, som TINYBLOB - 255 caracteres BLOB - 65535 caracteres MEDIUMBLOB - 16777215 caracteres LONGBLOB - 4294967295 caracteres
  • 26. Dados String Strings de elementos • Definem uma gama de valores possíveis, para os dados a armazenar ENUM (“elemento1”, “elemento2”,…,”elemento65535”) • Armazena um elemento do conjunto SET (“elemento1”, “elemento2”,…,”elemento64”) • Armazena zero ou mais elementos do conjunto