Bancos de dados para
    Bibliotecários



Tudo o que você sempre quis saber sobre
      bancos de dados relacionais
     mas tinha medo de perguntar
                  ou
            O ABC do SQL
Objetivo
●   O objetivo deste mini-curso é mostrar na
    teoria e na prática as diferenças entre as
    visões que bibliotecários e analistas de
    sistemas têm sobre bancos de dados,
    contrastando as características de padrões
    como MARC e sistemas bibliográficos como
    o CDS/ISIS com os conceitos e recursos dos
    principais sistemas de bancos de dados
    utilizados no mercado, inclusive na
    automação de bibliotecas.
Apresentação
●   Luciano Ramalho
    –   Aluno do último ano de Biblioteconomia
          (ECA/USP)
    –   Profissional de Tecnologia de Informação com 25
          anos de experiência
         ●   Desenvolvedor de sistemas na BIREME
         ●   Diretor Técnico do BOL na Abril S/A (1994-1996)
         ●   Consultor especializado em sistemas de
              gerenciamento de conteúdo para portais Web
              –   Incubadora Virtual Fapesp
              –   IDGNow, AOL Brasil, UOL, BOL, Serpro, Universidade
                    Metodista etc...
         ●   Colunista da Info Exame (1991-1994)
Conceitos comuns
●   Entidade                    ●   Registro
    –   Pessoa ou coisa do          –   Coleção de campos
        mundo real cujos                descrevendo uma
        dados se pretende               entidade
        armazenar e
        recuperar (ex: aluno,
        produto, vôo)

●   Atributo                    ●   Campo
    –   Dado a respeito de          –   Sequência de
        uma entidade (ex:               caracteres, valor
        data de nascimento,             numérico, data, hora
        preço, tipo do avião)           ou outro tipo de dado
Estruturas de dados
                                          Terminologia de BD relacional

                                                                   bd_opac
                                banco de dados                livros             autores
                                                                       usuários
                                                                        livros
                           arquivo / tabela
Fonte: Laudon & Laudon




                               registro

                           campo
                                                                                     código ASCII do
                          byte                                     00110100            caractere “4”

                         bit                                              0
Estruturas de dados:
vale notar que...
●   Na bibliografia básica de TI, não se encontra
    a idéia de sub-campos
●   Nos sistemas baseados em arquivos, não
    existe o conceito de
    banco de dados
●   Uma coleção de
    registros pode ser
    um arquivo ou
    uma tabela
●   O cilindro simboliza
    banco de dados
Tipos de Bancos de Dados
●   Hierarquicos
                                        obsoletos
●   Em rede (relacionamentos em rede)
●   Relacionais
●   “Pós-relacionais”
●   Orientados a objetos
●   Semiestruturados
    –   Ex: CDS/ISIS
Modelo relacional
●   Concebido por Edgar F. Codd, pesquisador
    britânico trabalhando na IBM em 1970
●   O nome “relacional” vem do termo “relação”,
    sinônimo aproximado de “lista” ou “tabela”
    –   e não do relacionamento entre tabelas, embora
        isto seja outra característica marcante do modelo
●   Jargão dos teóricos de BD
    –   relação = tabela
    –   tupla = registro
    –   atributo = campo
Vantagens do modelo relacional
●   Sólida fundação matemática
    –   limites teóricos bem conhecidos
●   Flexibilidade
    –   comprovada em mais de 30 anos de uso em
        uma imensa variedade de aplicações
●   Padronização
    –   linguagem SQL
    –   normas ISO/ANSI
    –   razoável compatibilidade entre produtos
●   Penetração de mercado
    –   grande disponibilidade de profissionais,
        bibliografia, cursos, ferramentas etc.
Linguagem SQL
●   Histórico
    –   Desenvolvida pela IBM na década de 1970
         ●   aplicação pragmática do modelo relacional
●   Dialetos
    –   Além da IBM, centenas de empresas
        desenvolveram variantes da linguagem SQL
        para incorporar em seus produtos
    –   ISO/ANSI SQL 1989, 1992
●   DDL: Data Definition Language
    –   linguagem de definição de dados
●   DML: Data Manipulation Language
    –   linguagem de manipulação de dados
DDL: criar tabelas e índices
●   Definir campos
    –   tipos de dados
    –   regras (NOT NULL, AUTO INCREMENT)
●   Definir índices
    –   campos simples
    –   campos combinados
    –   campos texto (alguns GBDR)
    –   campos de valor único (UNIQUE)
    –   chave primária
DDL: exemplo
Tipos de dados
●   CHAR
●   VARCHAR
●   TEXT
●   DATE
●   TIMESTAMP
●   INTEGER
●   FLOAT
●   BLOB
●   etc.

    http://dev.mysql.com/doc/refman/4.1/pt/reference.html
Operações básicas
           no modelo relacional
●   Projetar
●   Selecionar
●   Vincular
●   Em SQL:
    –   SELECT matricula, nome, curso
        FROM alunos, cursos
        WHERE alunos.ano_ingresso >= 2000
        AND alunos.cod_curso = cursos.cod_curso
Projetar
●   Selecionar campos de uma
    relação para produzir uma
    nova relação
Selecionar
●   Selecionar registros de
    uma relação para produzir
    uma nova relação
Vincular
●   Extrair campos de duas ou mais relações
    diferentes para produzir uma nova relação
●   Os registros são vinculados (relacionados) por
    um campo-chave
DML: selecionar registros
Software para
    bancos de dados relacionais
●   Gerenciadores de Banco de Dados
    Relacionais (GBDR)
    –   arquitetura cliente-servidor
    –   as estações de trabalho são os clientes
    –   um computador mais poderoso é o servidor
●   SQL Engines
    –   “motores” para embutir em outros softwares
●   Aplicativos de acesso
    –   softwares para rodar em estação de trabalho,
        com base de dados local ou remota (cliente-
        servidor)
GBDR do mercado
●   Proprietários
    –   Oracle
    –   Microsoft SQL Server
    –   IBM DB2
    –   Sybase
    –   etc. (dezenas)
●   Livres
    –   MySQL
    –   PostgreSQL
    –   Firebird
    –   etc. (poucos)
Vantagens do gerenciador de
          banco de dados
●   Independência entre dados e aplicações
    –   maior flexibilidade para uso dos dados
●   Segurança
    –   controles de acesso centralizados no GBDR
●   Desempenho
    –   suporte a um grande número de clientes
        consultando, inserindo e modificando dados
        simultaneamente
●   Integridade
    –   controles de consistência
    –   ex.: proibido deletar um curso se houverem
        alunos inscritos
Aplicativos de acesso
●   Servem para gerar relatórios e formulários de
    acesso a bancos de dados locais ou remotos
●   Localmente, armazenam dados em um
    arquivo, acessado através de um “SQL
    Engine”
●   Remotamente, podem acessar todos os GBDR
    importantes
●   Exemplos desta categoria:
    –   Microsoft Access
         ●   parte do MS Office Professional
    –   OpenOffice Base
         ●   parte do OpenOffice.org 2.0
Paradigmas de armazenagem
             de dados
●   Armazenagem baseada em arquivos
    –   os programas clientes acessam diretamente os
          arquivos de dados
         ●   CDS/ISIS
         ●   dBase, Clipper, FoxPro
         ●   Microsoft Access, SQLite
         ●   aplicações de mainframe (~ 1960-1980)
●   Armazenagem baseada em gerenciadores
    bancos de dados
    –   os programas clientes acessam os dados através de
          um servidor de banco de dados
    –   padrão atual do mercado de informática
SQL Engines
●   “Motores” de bancos de dados para embutir
    em outros programas
    –   ex: agenda de contatos
●   SQLite
●   Jet: o motor do MS Access
●   HSQL: o motor do OpenOffice Base
●   Apache Derby
Desvantagens do
              modelo relacional
●   Dificuldade de lidar com      ...seria interessante notar o absurdo 
                                    ...seria interessante notar o absurdo 
                                  do padrão do MRN [Modelo 
    campos compostos e              do padrão do MRN [Modelo 
                                  Relacional Normalizado]: se um 
                                    Relacional Normalizado]: se um 
    campos multivalorados         livro tiver 3 autores e 5 assuntos, 
                                    livro tiver 3 autores e 5 assuntos, 
                                  será necessário representá­lo no 
●   Dificuldade de lidar com        será necessário representá­lo no 
                                  MRN por meio de uma linha na 
                                    MRN por meio de uma linha na 
    hierarquias                   tabela Livros, mais 3 na Nomes­de­
                                    tabela Livros, mais 3 na Nomes­de­
    –   categorias, relações      autores (que implementaria o 
                                    autores (que implementaria o 
                                  atributo multivalorado 
                                    atributo multivalorado 
        genéricas ou partitivas   correspondente) e mais 5 na de 
                                    correspondente) e mais 5 na de 
    –   sub-campos                Assuntos, num total de 9 linhas em 
                                    Assuntos, num total de 9 linhas em 
●   Rigidez das estruturas        três tabelas distintas [...].
                                    três tabelas distintas [...].
    de dados                      V. W. Setzer, Banco de Dados, 
                                   V. W. Setzer, Banco de Dados, 
                                  2005
                                   2005
Tendências
●   Redução dos sistemas baseados em arquivo
    a nichos muito específicos

●   Longevidade do modelo relacional

●   Crescimento do modelo semiestruturado
GBD semiestruturados

● GT.M               ● Apache CouchDB
● MongoDB            ● Google Datastore

● Neo4j              ● Amazon SimpleDB

● ThruDB             ● Apache Cassandra

● Hypertable         ● Hadoop Hbase

● Riak               ● Redis




    Quase todos são projetos recentes
       (iniciados após o ano 2000)
Referências
●   Laudon, Kenneth. Sistemas de informacao  ̧ ̃
    gerenciais administrando a empresa digital. 5th
    ed. Rio de Janeiro: Pearson Prentice Hall, 2005.
●   Setzer, V. Bancos de dados aprenda o que sao,  ̃
    melhore seu conhecimento, construa os seus.
               ̃                  ̈
    1st ed. Sao Paulo: Edgard Blucher, 2005.
●   Abiteboul, S., Buneman, P., Suciu, D. - Data on
    the web: from relations to semistructured data
    and XML, San Francisco: Morgan Kaufmann,
    1999.
Exercício: Dicas do Alex
●   Procure os títulos abaixo usando o
    PHPMyAdmin
    –   Heuser, Carlos Alberto - Projeto de Banco de
          Dados
    –   Elmasri, R. / Navathe, S. - Sistemas de Banco de
          Dados




  Por sinal, ambos são ótimas referências
Para quem quer estudar o modelo relacional

Bancos de Dados para Bibliotecarios

  • 1.
    Bancos de dadospara Bibliotecários Tudo o que você sempre quis saber sobre bancos de dados relacionais mas tinha medo de perguntar ou O ABC do SQL
  • 2.
    Objetivo ● O objetivo deste mini-curso é mostrar na teoria e na prática as diferenças entre as visões que bibliotecários e analistas de sistemas têm sobre bancos de dados, contrastando as características de padrões como MARC e sistemas bibliográficos como o CDS/ISIS com os conceitos e recursos dos principais sistemas de bancos de dados utilizados no mercado, inclusive na automação de bibliotecas.
  • 3.
    Apresentação ● Luciano Ramalho – Aluno do último ano de Biblioteconomia (ECA/USP) – Profissional de Tecnologia de Informação com 25 anos de experiência ● Desenvolvedor de sistemas na BIREME ● Diretor Técnico do BOL na Abril S/A (1994-1996) ● Consultor especializado em sistemas de gerenciamento de conteúdo para portais Web – Incubadora Virtual Fapesp – IDGNow, AOL Brasil, UOL, BOL, Serpro, Universidade Metodista etc... ● Colunista da Info Exame (1991-1994)
  • 6.
    Conceitos comuns ● Entidade ● Registro – Pessoa ou coisa do – Coleção de campos mundo real cujos descrevendo uma dados se pretende entidade armazenar e recuperar (ex: aluno, produto, vôo) ● Atributo ● Campo – Dado a respeito de – Sequência de uma entidade (ex: caracteres, valor data de nascimento, numérico, data, hora preço, tipo do avião) ou outro tipo de dado
  • 7.
    Estruturas de dados Terminologia de BD relacional bd_opac banco de dados livros autores usuários livros arquivo / tabela Fonte: Laudon & Laudon registro campo código ASCII do byte 00110100 caractere “4” bit 0
  • 8.
    Estruturas de dados: valenotar que... ● Na bibliografia básica de TI, não se encontra a idéia de sub-campos ● Nos sistemas baseados em arquivos, não existe o conceito de banco de dados ● Uma coleção de registros pode ser um arquivo ou uma tabela ● O cilindro simboliza banco de dados
  • 9.
    Tipos de Bancosde Dados ● Hierarquicos obsoletos ● Em rede (relacionamentos em rede) ● Relacionais ● “Pós-relacionais” ● Orientados a objetos ● Semiestruturados – Ex: CDS/ISIS
  • 10.
    Modelo relacional ● Concebido por Edgar F. Codd, pesquisador britânico trabalhando na IBM em 1970 ● O nome “relacional” vem do termo “relação”, sinônimo aproximado de “lista” ou “tabela” – e não do relacionamento entre tabelas, embora isto seja outra característica marcante do modelo ● Jargão dos teóricos de BD – relação = tabela – tupla = registro – atributo = campo
  • 11.
    Vantagens do modelorelacional ● Sólida fundação matemática – limites teóricos bem conhecidos ● Flexibilidade – comprovada em mais de 30 anos de uso em uma imensa variedade de aplicações ● Padronização – linguagem SQL – normas ISO/ANSI – razoável compatibilidade entre produtos ● Penetração de mercado – grande disponibilidade de profissionais, bibliografia, cursos, ferramentas etc.
  • 12.
    Linguagem SQL ● Histórico – Desenvolvida pela IBM na década de 1970 ● aplicação pragmática do modelo relacional ● Dialetos – Além da IBM, centenas de empresas desenvolveram variantes da linguagem SQL para incorporar em seus produtos – ISO/ANSI SQL 1989, 1992 ● DDL: Data Definition Language – linguagem de definição de dados ● DML: Data Manipulation Language – linguagem de manipulação de dados
  • 13.
    DDL: criar tabelase índices ● Definir campos – tipos de dados – regras (NOT NULL, AUTO INCREMENT) ● Definir índices – campos simples – campos combinados – campos texto (alguns GBDR) – campos de valor único (UNIQUE) – chave primária
  • 14.
  • 15.
    Tipos de dados ● CHAR ● VARCHAR ● TEXT ● DATE ● TIMESTAMP ● INTEGER ● FLOAT ● BLOB ● etc. http://dev.mysql.com/doc/refman/4.1/pt/reference.html
  • 16.
    Operações básicas no modelo relacional ● Projetar ● Selecionar ● Vincular ● Em SQL: – SELECT matricula, nome, curso FROM alunos, cursos WHERE alunos.ano_ingresso >= 2000 AND alunos.cod_curso = cursos.cod_curso
  • 17.
    Projetar ● Selecionar campos de uma relação para produzir uma nova relação
  • 18.
    Selecionar ● Selecionar registros de uma relação para produzir uma nova relação
  • 19.
    Vincular ● Extrair campos de duas ou mais relações diferentes para produzir uma nova relação ● Os registros são vinculados (relacionados) por um campo-chave
  • 20.
  • 21.
    Software para bancos de dados relacionais ● Gerenciadores de Banco de Dados Relacionais (GBDR) – arquitetura cliente-servidor – as estações de trabalho são os clientes – um computador mais poderoso é o servidor ● SQL Engines – “motores” para embutir em outros softwares ● Aplicativos de acesso – softwares para rodar em estação de trabalho, com base de dados local ou remota (cliente- servidor)
  • 22.
    GBDR do mercado ● Proprietários – Oracle – Microsoft SQL Server – IBM DB2 – Sybase – etc. (dezenas) ● Livres – MySQL – PostgreSQL – Firebird – etc. (poucos)
  • 23.
    Vantagens do gerenciadorde banco de dados ● Independência entre dados e aplicações – maior flexibilidade para uso dos dados ● Segurança – controles de acesso centralizados no GBDR ● Desempenho – suporte a um grande número de clientes consultando, inserindo e modificando dados simultaneamente ● Integridade – controles de consistência – ex.: proibido deletar um curso se houverem alunos inscritos
  • 24.
    Aplicativos de acesso ● Servem para gerar relatórios e formulários de acesso a bancos de dados locais ou remotos ● Localmente, armazenam dados em um arquivo, acessado através de um “SQL Engine” ● Remotamente, podem acessar todos os GBDR importantes ● Exemplos desta categoria: – Microsoft Access ● parte do MS Office Professional – OpenOffice Base ● parte do OpenOffice.org 2.0
  • 25.
    Paradigmas de armazenagem de dados ● Armazenagem baseada em arquivos – os programas clientes acessam diretamente os arquivos de dados ● CDS/ISIS ● dBase, Clipper, FoxPro ● Microsoft Access, SQLite ● aplicações de mainframe (~ 1960-1980) ● Armazenagem baseada em gerenciadores bancos de dados – os programas clientes acessam os dados através de um servidor de banco de dados – padrão atual do mercado de informática
  • 26.
    SQL Engines ● “Motores” de bancos de dados para embutir em outros programas – ex: agenda de contatos ● SQLite ● Jet: o motor do MS Access ● HSQL: o motor do OpenOffice Base ● Apache Derby
  • 27.
    Desvantagens do modelo relacional ● Dificuldade de lidar com ...seria interessante notar o absurdo  ...seria interessante notar o absurdo  do padrão do MRN [Modelo  campos compostos e do padrão do MRN [Modelo  Relacional Normalizado]: se um  Relacional Normalizado]: se um  campos multivalorados livro tiver 3 autores e 5 assuntos,  livro tiver 3 autores e 5 assuntos,  será necessário representá­lo no  ● Dificuldade de lidar com será necessário representá­lo no  MRN por meio de uma linha na  MRN por meio de uma linha na  hierarquias tabela Livros, mais 3 na Nomes­de­ tabela Livros, mais 3 na Nomes­de­ – categorias, relações autores (que implementaria o  autores (que implementaria o  atributo multivalorado  atributo multivalorado  genéricas ou partitivas correspondente) e mais 5 na de  correspondente) e mais 5 na de  – sub-campos Assuntos, num total de 9 linhas em  Assuntos, num total de 9 linhas em  ● Rigidez das estruturas três tabelas distintas [...]. três tabelas distintas [...]. de dados V. W. Setzer, Banco de Dados,  V. W. Setzer, Banco de Dados,  2005 2005
  • 28.
    Tendências ● Redução dos sistemas baseados em arquivo a nichos muito específicos ● Longevidade do modelo relacional ● Crescimento do modelo semiestruturado
  • 30.
    GBD semiestruturados ● GT.M ● Apache CouchDB ● MongoDB ● Google Datastore ● Neo4j ● Amazon SimpleDB ● ThruDB ● Apache Cassandra ● Hypertable ● Hadoop Hbase ● Riak ● Redis Quase todos são projetos recentes (iniciados após o ano 2000)
  • 31.
    Referências ● Laudon, Kenneth. Sistemas de informacao ̧ ̃ gerenciais administrando a empresa digital. 5th ed. Rio de Janeiro: Pearson Prentice Hall, 2005. ● Setzer, V. Bancos de dados aprenda o que sao, ̃ melhore seu conhecimento, construa os seus. ̃ ̈ 1st ed. Sao Paulo: Edgard Blucher, 2005. ● Abiteboul, S., Buneman, P., Suciu, D. - Data on the web: from relations to semistructured data and XML, San Francisco: Morgan Kaufmann, 1999.
  • 32.
    Exercício: Dicas doAlex ● Procure os títulos abaixo usando o PHPMyAdmin – Heuser, Carlos Alberto - Projeto de Banco de Dados – Elmasri, R. / Navathe, S. - Sistemas de Banco de Dados Por sinal, ambos são ótimas referências Para quem quer estudar o modelo relacional