bancos de dados para bibliotecarios

32
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

Upload: luciano-ramalho

Post on 14-Dec-2014

8.150 views

Category:

Technology


3 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Bancos de Dados para Bibliotecarios

Bancos de dados para Bibliotecários

Tudo o que você sempre quis saber sobrebancos de dados relacionais

mas tinha medo de perguntarou

O ABC do SQL

Page 2: Bancos de Dados para Bibliotecarios

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.

Page 3: Bancos de Dados para Bibliotecarios

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)

Page 4: Bancos de Dados para Bibliotecarios
Page 5: Bancos de Dados para Bibliotecarios
Page 6: Bancos de Dados para Bibliotecarios

Conceitos comuns

● Entidade– Pessoa ou coisa do

mundo real cujos dados se pretende armazenar e recuperar (ex: aluno, produto, vôo)

● Atributo– Dado a respeito de

uma entidade (ex: data de nascimento, preço, tipo do avião)

● Registro– Coleção de campos

descrevendo uma entidade

● Campo– Sequência de

caracteres, valor numérico, data, hora ou outro tipo de dado

Page 7: Bancos de Dados para Bibliotecarios

Estruturas de dados

bit

byte

campo

registro

arquivo / tabela

banco de dados

00110100

0

usuáriosusuários

autoresautoreslivroslivros

bd_opac

livros

Terminologia de BD relacional

código ASCII do caractere “4”

Fo

nte

: L

aud

on

& L

aud

on

Page 8: Bancos de Dados para Bibliotecarios

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 deregistros pode serum arquivo ouuma tabela

● O cilindro simbolizabanco de dados

Page 9: Bancos de Dados para Bibliotecarios

Tipos de Bancos de Dados

● Hierarquicos● Em rede (relacionamentos em rede)● Relacionais● “Pós-relacionais”● Orientados a objetos● Semiestruturados– Ex: CDS/ISIS

obsoletos

Page 10: Bancos de Dados para Bibliotecarios

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

Page 11: Bancos de Dados para Bibliotecarios

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.

Page 12: Bancos de Dados para Bibliotecarios

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

Page 13: Bancos de Dados para Bibliotecarios

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

Page 14: Bancos de Dados para Bibliotecarios

DDL: exemplo

Page 15: Bancos de Dados para Bibliotecarios

Tipos de dados

● CHAR● VARCHAR● TEXT● DATE● TIMESTAMP● INTEGER● FLOAT● BLOB● etc.

http://dev.mysql.com/doc/refman/4.1/pt/reference.html

Page 16: Bancos de Dados para Bibliotecarios

Operações básicas no modelo relacional

● Projetar● Selecionar● Vincular● Em SQL:

– SELECT matricula, nome, cursoFROM alunos, cursosWHERE alunos.ano_ingresso >= 2000AND alunos.cod_curso = cursos.cod_curso

Page 17: Bancos de Dados para Bibliotecarios

Projetar

● Selecionar campos de uma relação para produzir uma nova relação

Page 18: Bancos de Dados para Bibliotecarios

Selecionar

● Selecionar registros de uma relação para produzir uma nova relação

Page 19: Bancos de Dados para Bibliotecarios

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

Page 20: Bancos de Dados para Bibliotecarios

DML: selecionar registros

Page 21: Bancos de Dados para Bibliotecarios

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)

Page 22: Bancos de Dados para Bibliotecarios

GBDR do mercado

● Proprietários– Oracle– Microsoft SQL Server– IBM DB2– Sybase– etc. (dezenas)

● Livres– MySQL– PostgreSQL– Firebird– etc. (poucos)

Page 23: Bancos de Dados para Bibliotecarios

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

Page 24: Bancos de Dados para Bibliotecarios

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

Page 25: Bancos de Dados para Bibliotecarios

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

Page 26: Bancos de Dados para Bibliotecarios

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

Page 27: Bancos de Dados para Bibliotecarios

Desvantagens do modelo relacional

● Dificuldade de lidar com campos compostos e campos multivalorados

● Dificuldade de lidar com hierarquias– categorias, relações

genéricas ou partitivas– sub-campos

● Rigidez das estruturas de dados

...seria interessante notar o absurdo do padrão do MRN [Modelo Relacional Normalizado]: se um livro tiver 3 autores e 5 assuntos, será necessário representá­lo no MRN por meio de uma linha na tabela Livros, mais 3 na Nomes­de­autores (que implementaria o atributo multivalorado correspondente) e mais 5 na de Assuntos, num total de 9 linhas em três tabelas distintas [...].

V. W. Setzer, Banco de Dados, 2005

...seria interessante notar o absurdo do padrão do MRN [Modelo Relacional Normalizado]: se um livro tiver 3 autores e 5 assuntos, será necessário representá­lo no MRN por meio de uma linha na tabela Livros, mais 3 na Nomes­de­autores (que implementaria o atributo multivalorado correspondente) e mais 5 na de Assuntos, num total de 9 linhas em três tabelas distintas [...].

V. W. Setzer, Banco de Dados, 2005

Page 28: Bancos de Dados para Bibliotecarios

Tendências

● Redução dos sistemas baseados em arquivo a nichos muito específicos

● Longevidade do modelo relacional

● Crescimento do modelo semiestruturado

Page 29: Bancos de Dados para Bibliotecarios
Page 30: Bancos de Dados para Bibliotecarios

GBD semiestruturados

● GT.M● MongoDB● Neo4j● ThruDB● Hypertable● Riak

● Apache CouchDB● Google Datastore● Amazon SimpleDB● Apache Cassandra● Hadoop Hbase● Redis

Quase todos são projetos recentes(iniciados após o ano 2000)

Page 31: Bancos de Dados para Bibliotecarios

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.

Page 32: Bancos de Dados para Bibliotecarios

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ênciasPara quem quer estudar o modelo relacional