Bancos de Dados para Bibliotecarios

13,643 views

Published on

Introdução ao modelo relacional para bibliotecários que conhecem principalmente o modelo de dados semiestruturado do CDS/ISIS e do padrão MARC

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,643
On SlideShare
0
From Embeds
0
Number of Embeds
81
Actions
Shares
0
Downloads
235
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Bancos de Dados para Bibliotecarios

  1. 1. 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
  2. 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. 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)
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. Tipos de Bancos de Dados ● Hierarquicos obsoletos ● Em rede (relacionamentos em rede) ● Relacionais ● “Pós-relacionais” ● Orientados a objetos ● Semiestruturados – Ex: CDS/ISIS
  8. 8. 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
  9. 9. 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.
  10. 10. 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
  11. 11. 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
  12. 12. DDL: exemplo
  13. 13. Tipos de dados ● CHAR ● VARCHAR ● TEXT ● DATE ● TIMESTAMP ● INTEGER ● FLOAT ● BLOB ● etc. http://dev.mysql.com/doc/refman/4.1/pt/reference.html
  14. 14. 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
  15. 15. Projetar ● Selecionar campos de uma relação para produzir uma nova relação
  16. 16. Selecionar ● Selecionar registros de uma relação para produzir uma nova relação
  17. 17. 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
  18. 18. DML: selecionar registros
  19. 19. 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)
  20. 20. GBDR do mercado ● Proprietários – Oracle – Microsoft SQL Server – IBM DB2 – Sybase – etc. (dezenas) ● Livres – MySQL – PostgreSQL – Firebird – etc. (poucos)
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. Tendências ● Redução dos sistemas baseados em arquivo a nichos muito específicos ● Longevidade do modelo relacional ● Crescimento do modelo semiestruturado
  27. 27. 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)
  28. 28. 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.
  29. 29. 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

×