Bancos de Dados para Bibliotecários

3,519 views
3,317 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,519
On SlideShare
0
From Embeds
0
Number of Embeds
46
Actions
Shares
0
Downloads
118
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Bancos de Dados para Bibliotecários

  1. 1. Bancos de dados para Bibliotecários <ul><ul><li>Tudo o que você sempre quis saber sobre bancos de dados relacionais </li></ul></ul><ul><ul><li>mas tinha medo de perguntar ou O ABC do SQL </li></ul></ul>
  2. 2. Objetivo <ul><li>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. </li></ul>
  3. 3. Apresentação <ul><li>Luciano Ramalho </li></ul><ul><ul><li>Aluno do 6 º semestre de Biblioteconomia (ECA/USP) </li></ul></ul><ul><ul><li>Profissional de Tecnologia de Informação com 25 anos de experiência </li></ul></ul><ul><ul><ul><li>Desenvolvedor de sistemas em plataformas Linux, Microsoft e Apple em arquiteturas desktop, cliente-servidor e Internet </li></ul></ul></ul><ul><ul><ul><li>Colunista da Info Exame (1991-1994) </li></ul></ul></ul><ul><ul><ul><li>Diretor Técnico do BOL na Abril S/A (1994-1996) </li></ul></ul></ul><ul><ul><ul><li>Consultor especializado em sistemas de gerenciamento de conteúdo para portais </li></ul></ul></ul><ul><ul><ul><ul><li>Incubadora Virtual Fapesp </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IDGNow: mais importante portal brasileiro de notícias em TI </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Universidade Metodista etc... </li></ul></ul></ul></ul>
  4. 4. Paradigmas de armazenagem de dados <ul><li>Armazenagem baseada em arquivos </li></ul><ul><ul><li>CDS/ISIS </li></ul></ul><ul><ul><li>dBase, Clipper </li></ul></ul><ul><ul><li>aplicações de mainframe (~ 1960-1980) </li></ul></ul><ul><li>Armazenagem baseada em bancos de dados </li></ul><ul><ul><li>O padrão atual da indústria de informática </li></ul></ul>
  5. 5. Conceitos comuns <ul><li>Entidade </li></ul><ul><ul><li>Pessoa ou coisa do mundo real cujos dados se pretende armazenar e recuperar (ex: aluno, produto, vôo) </li></ul></ul><ul><li>Atributo </li></ul><ul><ul><li>Dado a respeito de uma entidade (ex: data de nascimento, preço, tipo do avião) </li></ul></ul><ul><li>Registro </li></ul><ul><ul><li>Coleção de campos descrevendo uma entidade </li></ul></ul><ul><li>Campo </li></ul><ul><ul><li>Sequência de caracteres, valor numérico, data, hora ou outro tipo de dado </li></ul></ul>
  6. 6. Estruturas de dados 00110100 0 bd_circulante livros Terminologia de BD relacional código ASCII do caractere “4” Fonte: Laudon & Laudon usuários usuários autores autores livros livros
  7. 7. Estruturas de dados: vale notar que... <ul><li>Na bibliografia básica de TI, não se encontra a idéia de sub-campos </li></ul><ul><li>Nos sistemas baseados em arquivos, não existe o conceito de banco de dados </li></ul><ul><li>Uma coleção de registros pode ser um arquivo ou uma tabela </li></ul><ul><li>O cilindro simboliza banco de dados </li></ul>
  8. 8. Tipos de Bancos de Dados <ul><li>Hierarquicos </li></ul><ul><li>Em rede (relacionamentos em rede) </li></ul><ul><li>Relacionais </li></ul><ul><li>“Pós-relacionais” </li></ul><ul><li>Orientados a objetos </li></ul>obsoletos
  9. 9. Modelo relacional <ul><li>Concebido por Edgar F. Codd, pesquisador britânico trabalhando na IBM em 1970 </li></ul><ul><li>O nome “relacional” vem do termo “relação”, sinônimo aproximado de “lista” ou “tabela” </li></ul><ul><ul><li>e não do relacionamento entre tabelas, embora isto seja outra característica marcante do modelo </li></ul></ul><ul><li>Jargão dos teóricos de BD </li></ul><ul><ul><li>relação = tabela </li></ul></ul><ul><ul><li>tupla = registro </li></ul></ul><ul><ul><li>atributo = campo </li></ul></ul>
  10. 10. Vantagens do modelo relacional <ul><li>Sólida fundação matemática </li></ul><ul><ul><li>limites teóricos bem conhecidos </li></ul></ul><ul><li>Flexibilidade </li></ul><ul><ul><li>comprovada em mais de 30 anos de uso em uma imensa variedade de aplicações </li></ul></ul><ul><li>Padronização </li></ul><ul><ul><li>linguagem SQL </li></ul></ul><ul><ul><li>norma ISO/ANSI </li></ul></ul><ul><ul><li>razoável compatibilidade entre produtos </li></ul></ul><ul><li>Penetração de mercado </li></ul><ul><ul><li>grande disponibilidade de profissionais, bibliografia, cursos, ferramentas etc. </li></ul></ul>
  11. 11. Linguagem SQL <ul><li>Histórico </li></ul><ul><ul><li>Desenvolvida pela IBM na década de 1970 </li></ul></ul><ul><ul><ul><li>aplicação pragmática do modelo relacional </li></ul></ul></ul><ul><li>Dialetos </li></ul><ul><ul><li>Além da IBM, centenas de empresas desenvolveram variantes da linguagem SQL para incorporar em seus produtos </li></ul></ul><ul><ul><li>ISO/ANSI SQL 1989, 1992 </li></ul></ul><ul><li>DDL: Data Definition Language </li></ul><ul><ul><li>linguagem de definição de dados </li></ul></ul><ul><li>DML: Data Manipulation Language </li></ul><ul><ul><li>linguagem de manipulação de dados </li></ul></ul>
  12. 12. DDL: criar tabelas e índices <ul><li>Definir campos </li></ul><ul><ul><li>tipos de dados </li></ul></ul><ul><ul><li>regras (NOT NULL, AUTO INCREMENT) </li></ul></ul><ul><li>Definir índices </li></ul><ul><ul><li>campos simples </li></ul></ul><ul><ul><li>campos combinados </li></ul></ul><ul><ul><li>campos texto (alguns GBDR) </li></ul></ul><ul><ul><li>campos de valor único (UNIQUE) </li></ul></ul><ul><ul><li>chave primária </li></ul></ul>
  13. 13. DDL: exemplo
  14. 14. Tipos de dados <ul><li>CHAR </li></ul><ul><li>VARCHAR </li></ul><ul><li>TEXT </li></ul><ul><li>DATE </li></ul><ul><li>TIMESTAMP </li></ul><ul><li>INTEGER </li></ul><ul><li>FLOAT </li></ul><ul><li>BLOB </li></ul><ul><li>etc. </li></ul><ul><li>http://dev.mysql.com/doc/refman/4.1/pt/reference.html </li></ul>
  15. 15. Operações básicas no modelo relacional <ul><li>Projetar </li></ul><ul><li>Selecionar </li></ul><ul><li>Vincular </li></ul><ul><li>Em SQL: </li></ul><ul><ul><li>SELECT matricula, nome, curso FROM alunos, cursos WHERE alunos.ano_ingresso >= 2000 AND alunos.cod_curso = cursos.cod_curso </li></ul></ul>
  16. 16. Projetar <ul><li>Selecionar campos de uma relação para produzir uma nova relação </li></ul>
  17. 17. Selecionar <ul><li>Selecionar registros de uma relação para produzir uma nova relação </li></ul>
  18. 18. Vincular <ul><li>Extrair campos de duas ou mais relações diferentes para produzir uma nova relação </li></ul><ul><li>Os registros são vinculados (relacionados) por um campo-chave </li></ul>
  19. 19. DML: selecionar registros
  20. 20. Software para bancos de dados relacionais <ul><li>Gerenciadores de Banco de Dados Relacionais (GBDR) </li></ul><ul><ul><li>arquitetura cliente-servidor </li></ul></ul><ul><ul><li>as estações de trabalho são os clientes </li></ul></ul><ul><ul><li>um computador mais poderoso é o servidor </li></ul></ul><ul><li>SQL Engines </li></ul><ul><ul><li>“motores” para embutir em outros softwares </li></ul></ul><ul><li>Aplicativos de acesso </li></ul><ul><ul><li>softwares para rodar em estação de trabalho, com base de dados local ou remota (cliente-servidor) </li></ul></ul>
  21. 21. GBDR do mercado <ul><li>Proprietários </li></ul><ul><ul><li>Oracle </li></ul></ul><ul><ul><li>Microsoft SQL Server </li></ul></ul><ul><ul><li>IBM DB2 </li></ul></ul><ul><ul><li>Sybase </li></ul></ul><ul><ul><li>etc. (dezenas) </li></ul></ul><ul><li>Livres </li></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>PostgreSQL </li></ul></ul><ul><ul><li>Firebird </li></ul></ul><ul><ul><li>etc. (poucos) </li></ul></ul>
  22. 22. Vantagens do gerenciador de banco de dados <ul><li>Independência entre dados e aplicações </li></ul><ul><ul><li>maior flexibilidade para uso dos dados </li></ul></ul><ul><li>Segurança </li></ul><ul><ul><li>controles de acesso centralizados no GBDR </li></ul></ul><ul><li>Desempenho </li></ul><ul><ul><li>suporte a um grande número de clientes consultando, inserindo e modificando dados simultaneamente </li></ul></ul><ul><li>Integridade </li></ul><ul><ul><li>controles de consistência </li></ul></ul><ul><ul><li>ex.: proibido deletar um curso se houverem alunos inscritos </li></ul></ul>
  23. 23. Aplicativos de acesso <ul><li>Servem para gerar relatórios e formulários de acesso a bancos de dados locais ou remotos </li></ul><ul><li>Localmente, armazenam dados em um arquivo, acessado através de um “SQL Engine” </li></ul><ul><li>Remotamente, podem acessar todos os GBDR importantes </li></ul><ul><li>Exemplos desta categoria: </li></ul><ul><ul><li>Microsoft Access </li></ul></ul><ul><ul><ul><li>parte do MS Office Professional </li></ul></ul></ul><ul><ul><li>OpenOffice Base </li></ul></ul><ul><ul><ul><li>parte do OpenOffice.org 2.0 </li></ul></ul></ul>
  24. 24. SQL Engines <ul><li>“ Motores” de bancos de dados para embutir em outros programas </li></ul><ul><ul><li>ex: agenda de contatos </li></ul></ul><ul><li>Jet: o motor do MS Access </li></ul><ul><li>HSQL: o motor do OpenOffice Base </li></ul><ul><li>Apache Derby </li></ul>
  25. 25. Desvantagens do modelo relacional <ul><li>Dificuldade de lidar com hierarquias </li></ul><ul><ul><li>categorias, relações genéricas ou partitivas </li></ul></ul><ul><ul><li>sub-campos </li></ul></ul><ul><li>Rigidez das estruturas de dados </li></ul>
  26. 26. Tendências <ul><li>Redução dos sistemas baseados em arquivo a nichos muito específicos </li></ul><ul><li>Longevidade do modelo relacional </li></ul><ul><li>Crescimento do modelo orientado a objetos </li></ul>
  27. 27. Referências <ul><li>Laudon, K., Laudon, J. - Sistemas de Informação Gerenciais, 5ª Ed. - Prentice-Hall Brasil – 2003 </li></ul><ul><li>Codd, E. F - A Relational Model of Data for Large Shared Data Banks - Communications of the ACM, Vol. 13, No. 6, June 1970 http://www.acm.org/classics/nov95/toc.html </li></ul><ul><li>MySQL AB - Manual de Referência do MySQL 4.1 (em português) http://dev.mysql.com/doc/refman/4.1/pt/index.html </li></ul><ul><li>Wikipédia (em português) http://pt.wikipedia.org/ </li></ul>
  28. 28. Exercício: Dicas do Alex <ul><li>Heuser, Carlos Alberto - Projeto de Banco de Dados </li></ul><ul><li>Elmasri, R. / Navathe, S. - Sistemas de Banco de Dados </li></ul>

×