Bases de dados: IntroduçãoCarlos SantosLabMM 4 - NTC - DeCA - UAAula 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?...
Sistemas de Gestão de Bases de Dados (SGBD)Aplicações que permitem gerir as BDs e os dados que estas contêm  • MySQL  • Po...
Bases de Dados RelacionaisEdgar F. Codd (1923-2003) – “Pai” das BDs relacionais (BDR)  • “A relational Model of Data for L...
Bases de Dados RelacionaisModelo relacional  • Genericamente pode afirmar-se que se trata de um modelo baseado nas    relaç...
SGBDR e principais componentesSistema de Gestão de Bases de Dados Relacionais (SGBDR)  • SGBD que opera num modelo relacio...
Tabelas: definiçãoTabela  • Estrutura bidimensional fundamental no modelo relacional  • Armazena dados de uma entidade, nas...
Tabelas: exemplo    nMec     Nome     Apelido   AnoEntradaUA   DataNascimento    23594     João    Gomes         2002     ...
Tabelas: estruturaArmazenam dados com uma estrutura similar      nMec          Nome        Apelido      AnoEntradaUA   Dat...
Tabelas: regrasRegra para a identificação das tabelas  • Nome único dentro da BD: “Aluno”, “Formando”  • Regras de case-sen...
QueryConsulta/questão colocada ao SGBDR sobre os dados armazenadosnuma BD que este contém  • Consulta/questão é processada...
ViewPermite a construção de uma tabela virtual na BD com os registos queresultam do processamento de uma query  • O acesso...
Como se representaDiagramas ER
Tipo de dados armazenadosPara cada coluna/campo de uma tabela  • Definir o tipo de dados que esta irá armazenar  • Disso de...
Tipo de dados armazenadosEscolher um tipo de dados que exija um menor espaço dearmazenamento em disco, mas que ainda assim...
Tipos de dados no MySQLOrganização em 3 grupos principais  • Numeric     • Todo o tipo de valores numéricos     • Integer ...
Dados numéricos inteiros (MySQL)TINYINT (1 Byte)  • -128 … 127 ou 0 … 255SMALLINT (2 Bytes)  • -32768 … 32767 ou 0 … 65535...
Dados numéricos inteiros (MySQL)BIGINT (8 Bytes)  • -9223372036854775808 … 9223372036854775807  • 0 … 18446744073709551615...
Dados numéricos com parte decimal (MySQL)DECIMAL  • Número armazenado como String (texto)DOUBLE  • -1,798E+308 … -2,225E-3...
Dados Date e TimeDATE  • YYYY-MM-DDDATETIME  • YYYY-MM-DD HH:MM:SSTIMESTAMP (M)  • (14) YYYY-MM-DD HH:MM:SS  • (8) YYYY-MM...
Dados Date e TimeTIME  • HH:MM:SSYEAR (2|4)  • YY (1970-2069)  • YYYY (1901-2155)
Dados StringCHAR(M)  • (1-255) Sequência de caracteres de tamanho fixoVARCHAR(M)  • Sequência de caracteres de tamanho vari...
Dados StringTINYTEXT  • 255 caracteresTEXT  • 65535 caracteresMEDIUMTEXT  • 16777215 caracteresLONGTEXT  • 4294967295 cara...
Dados StringStrings binárias  • Permitem armazenar ficheiros (imagens, sons, vídeos, etc) na BDBLOB (Binary Large Object)  ...
Dados StringStrings de elementos  • Definem uma gama de valores possíveis, para os dados a armazenarENUM (“elemento1”, “ele...
LabMM4 (T02 - 12/13) - Bases de dados
Próximos SlideShares
Carregando em…5
×

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

734 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
734
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
78
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Bases de dados: IntroduçãoCarlos SantosLabMM 4 - NTC - DeCA - UAAula 02, 19-02-2013
  2. 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 UAVantagens 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. 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 • OracleEstruturam 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. 4. Bases de Dados RelacionaisEdgar 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 dadosEm 1985 publicou dois artigos (Computerworld) que definiam as 12 regrasque 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_rulesChristopher J. Date - foi um colaborador do Edgar F. Codd e é hoje umdos autores mais importantes nesta área
  5. 5. Bases de Dados RelacionaisModelo 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
  6. 6. SGBDR e principais componentesSistema de Gestão de Bases de Dados Relacionais (SGBDR) • SGBD que opera num modelo relacionalAlguns componentes de um SGBDR (como o MySQL) • Tables (tabelas) • Queries (consultas/questões) • Views (vistas)
  7. 7. Tabelas: definiçãoTabela • Estrutura bidimensional fundamental no modelo relacional • Armazena dados de uma entidade, nas suas linhas e colunasColunas • Campos (atributos/propriedades) da entidadeLinhas • Registos (instâncias) da entidade
  8. 8. 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
  9. 9. Tabelas: estruturaArmazenam 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
  10. 10. Tabelas: regrasRegra 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)
  11. 11. QueryConsulta/questão colocada ao SGBDR sobre os dados armazenadosnuma 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 tabelaresposta
  12. 12. ViewPermite a construção de uma tabela virtual na BD com os registos queresultam 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
  13. 13. Como se representaDiagramas ER
  14. 14. Tipo de dados armazenadosPara 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
  15. 15. Tipo de dados armazenadosEscolher um tipo de dados que exija um menor espaço dearmazenamento em disco, mas que ainda assim, seja suficiente paraconter 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) agama 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
  16. 16. Tipos de dados no MySQLOrganizaçã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)
  17. 17. Dados numéricos inteiros (MySQL)TINYINT (1 Byte) • -128 … 127 ou 0 … 255SMALLINT (2 Bytes) • -32768 … 32767 ou 0 … 65535MEDIUMINT (3 Bytes) • -8388608 … 8388607 ou 0 … 16777215INT (4 Bytes) • -2147483648 … 2147483647 ou 0 … 4294967295
  18. 18. Dados numéricos inteiros (MySQL)BIGINT (8 Bytes) • -9223372036854775808 … 9223372036854775807 • 0 … 18446744073709551615BOOL, BOOLEAN • FALSE = 0, TRUE ≠ 0
  19. 19. 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+308FLOAT • -3,403E+38 … -1,175E-38 • 1,175E-38 … 3,403E+38
  20. 20. Dados Date e TimeDATE • YYYY-MM-DDDATETIME • YYYY-MM-DD HH:MM:SSTIMESTAMP (M) • (14) YYYY-MM-DD HH:MM:SS • (8) YYYY-MM-DD • (4) YY-MM • (2) YY
  21. 21. Dados Date e TimeTIME • HH:MM:SSYEAR (2|4) • YY (1970-2069) • YYYY (1901-2155)
  22. 22. Dados StringCHAR(M) • (1-255) Sequência de caracteres de tamanho fixoVARCHAR(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
  23. 23. Dados StringTINYTEXT • 255 caracteresTEXT • 65535 caracteresMEDIUMTEXT • 16777215 caracteresLONGTEXT • 4294967295 caracteres
  24. 24. Dados StringStrings binárias • Permitem armazenar ficheiros (imagens, sons, vídeos, etc) na BDBLOB (Binary Large Object) • Sequência de caracteres que codificam uma imagem, somTINYBLOB - 255 caracteresBLOB - 65535 caracteresMEDIUMBLOB - 16777215 caracteresLONGBLOB - 4294967295 caracteres
  25. 25. Dados StringStrings de elementos • Definem uma gama de valores possíveis, para os dados a armazenarENUM (“elemento1”, “elemento2”,…,”elemento65535”) • Armazena um elemento do conjuntoSET (“elemento1”, “elemento2”,…,”elemento64”) • Armazena zero ou mais elementos do conjunto

×