Bases de dados: Introdução
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 02, 16-02-2012
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 objectos (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 dum 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: Alunos, Formandos
  • Regras de case-sensitive dependem de SGBDR e possíveis
    configurações: não arriscar e respeitar sempre o case!
  • Plural ou singular?

Dicas para a identificação das colunas

  • Nome único para cada coluna (evita mais tarde o uso de ALIAS)
  • 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 estranhos!
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 complexa (envolvendo
normalmente campos de várias tabelas)

  • O acesso a esses registos fica mais rápido e eficiente
  • A tabela virtual é gerida automaticamente pelo SGBDR
  • Podem fazer-se outras queries sobre uma view
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 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 dum paciente
  • masculino/feminino ou 0/1 ou m/f?

Escolher um tipo adaptado ao dados que se querem 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

02 LabMM4 - Bases de dados

  • 1.
    Bases de dados:Introdução Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 02, 16-02-2012
  • 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ãode 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 objectos (métodos e propriedades) • mais informação: http://en.wikipedia.org/wiki/Database_model
  • 4.
    Bases de DadosRelacionais 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
  • 5.
    Bases de DadosRelacionais 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 dum modelo relacional prende-se com o armazenamento dos próprios dados nas tabelas
  • 6.
    SGBDR e principaiscomponentes 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)
  • 7.
    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
  • 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.
    Tabelas: estrutura Armazenam dadoscom 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.
    Tabelas: regras Regra paraa identificação das tabelas • Nome único dentro da BD: Alunos, Formandos • Regras de case-sensitive dependem de SGBDR e possíveis configurações: não arriscar e respeitar sempre o case! • Plural ou singular? Dicas para a identificação das colunas • Nome único para cada coluna (evita mais tarde o uso de ALIAS) • 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 estranhos!
  • 11.
    Query Consulta/questão colocada aoSGBDR 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
  • 12.
    View Permite a construçãode uma tabela virtual na BD com os registos que resultam do processamento de uma query complexa (envolvendo normalmente campos de várias tabelas) • O acesso a esses registos fica mais rápido e eficiente • A tabela virtual é gerida automaticamente pelo SGBDR • Podem fazer-se outras queries sobre uma view
  • 13.
    Tipo de dadosarmazenados 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
  • 14.
    Tipo de dadosarmazenados Escolher um tipo 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 dum paciente • masculino/feminino ou 0/1 ou m/f? Escolher um tipo adaptado ao dados que se querem 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