O documento fornece uma introdução aos bancos de dados relacionais para bibliotecários, comparando as abordagens de bibliotecários e analistas de sistemas. Explica os conceitos básicos de bancos de dados relacionais como entidades, atributos, registros e campos e apresenta o modelo relacional, SQL e softwares como MySQL e PostgreSQL.
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. 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)
4.
5.
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:
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
9. Tipos de Bancos de 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 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.
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 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
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
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 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
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 Nomesde
tabela Livros, mais 3 na Nomesde
– 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
29.
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 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