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 6 º  semestre de Biblioteconomia (ECA/USP) Profissional de Tecnologia de Informação com 25 anos de experiência Desenvolvedor de sistemas em plataformas Linux, Microsoft e Apple em arquiteturas desktop, cliente-servidor e Internet Colunista da Info Exame (1991-1994) Diretor Técnico do BOL na Abril S/A (1994-1996) Consultor especializado em sistemas de gerenciamento de conteúdo para portais Incubadora Virtual Fapesp IDGNow: mais importante portal brasileiro de notícias em TI Universidade Metodista etc...
Paradigmas de armazenagem  de dados Armazenagem baseada em arquivos CDS/ISIS dBase, Clipper aplicações de mainframe (~ 1960-1980) Armazenagem baseada em bancos de dados O padrão atual da indústria de informática
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
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
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 Em rede (relacionamentos em rede) Relacionais “Pós-relacionais” Orientados a objetos obsoletos
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 norma 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
SQL Engines “ Motores” de bancos de dados para embutir em outros programas ex: agenda de contatos Jet: o motor do MS Access HSQL: o motor do OpenOffice Base Apache Derby
Desvantagens do  modelo relacional Dificuldade de lidar com hierarquias categorias, relações genéricas ou partitivas sub-campos Rigidez das estruturas de dados
Tendências Redução dos sistemas baseados em arquivo a nichos muito específicos Longevidade do modelo relacional Crescimento do modelo orientado a objetos
Referências Laudon, K., Laudon, J. - Sistemas de Informação Gerenciais, 5ª Ed. - Prentice-Hall Brasil – 2003 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 MySQL AB - Manual de Referência do MySQL 4.1 (em português) http://dev.mysql.com/doc/refman/4.1/pt/index.html Wikipédia (em português) http://pt.wikipedia.org/
Exercício: Dicas do Alex Heuser, Carlos Alberto - Projeto de Banco de Dados Elmasri, R. / Navathe, S. - Sistemas de Banco de Dados

Bancos de Dados para Bibliotecários

  • 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 objetivodeste 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 RamalhoAluno do 6 º semestre de Biblioteconomia (ECA/USP) Profissional de Tecnologia de Informação com 25 anos de experiência Desenvolvedor de sistemas em plataformas Linux, Microsoft e Apple em arquiteturas desktop, cliente-servidor e Internet Colunista da Info Exame (1991-1994) Diretor Técnico do BOL na Abril S/A (1994-1996) Consultor especializado em sistemas de gerenciamento de conteúdo para portais Incubadora Virtual Fapesp IDGNow: mais importante portal brasileiro de notícias em TI Universidade Metodista etc...
  • 4.
    Paradigmas de armazenagem de dados Armazenagem baseada em arquivos CDS/ISIS dBase, Clipper aplicações de mainframe (~ 1960-1980) Armazenagem baseada em bancos de dados O padrão atual da indústria de informática
  • 5.
    Conceitos comuns EntidadePessoa 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
  • 6.
    Estruturas de dados00110100 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.
    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
  • 8.
    Tipos de Bancosde Dados Hierarquicos Em rede (relacionamentos em rede) Relacionais “Pós-relacionais” Orientados a objetos obsoletos
  • 9.
    Modelo relacional Concebidopor 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
  • 10.
    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 norma ISO/ANSI razoável compatibilidade entre produtos Penetração de mercado grande disponibilidade de profissionais, bibliografia, cursos, ferramentas etc.
  • 11.
    Linguagem SQL HistóricoDesenvolvida 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
  • 12.
    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
  • 13.
  • 14.
    Tipos de dadosCHAR VARCHAR TEXT DATE TIMESTAMP INTEGER FLOAT BLOB etc. http://dev.mysql.com/doc/refman/4.1/pt/reference.html
  • 15.
    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
  • 16.
    Projetar Selecionar camposde uma relação para produzir uma nova relação
  • 17.
    Selecionar Selecionar registrosde uma relação para produzir uma nova relação
  • 18.
    Vincular Extrair camposde duas ou mais relações diferentes para produzir uma nova relação Os registros são vinculados (relacionados) por um campo-chave
  • 19.
  • 20.
    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)
  • 21.
    GBDR do mercadoProprietários Oracle Microsoft SQL Server IBM DB2 Sybase etc. (dezenas) Livres MySQL PostgreSQL Firebird etc. (poucos)
  • 22.
    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
  • 23.
    Aplicativos de acessoServem 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
  • 24.
    SQL Engines “Motores” de bancos de dados para embutir em outros programas ex: agenda de contatos Jet: o motor do MS Access HSQL: o motor do OpenOffice Base Apache Derby
  • 25.
    Desvantagens do modelo relacional Dificuldade de lidar com hierarquias categorias, relações genéricas ou partitivas sub-campos Rigidez das estruturas de dados
  • 26.
    Tendências Redução dossistemas baseados em arquivo a nichos muito específicos Longevidade do modelo relacional Crescimento do modelo orientado a objetos
  • 27.
    Referências Laudon, K.,Laudon, J. - Sistemas de Informação Gerenciais, 5ª Ed. - Prentice-Hall Brasil – 2003 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 MySQL AB - Manual de Referência do MySQL 4.1 (em português) http://dev.mysql.com/doc/refman/4.1/pt/index.html Wikipédia (em português) http://pt.wikipedia.org/
  • 28.
    Exercício: Dicas doAlex Heuser, Carlos Alberto - Projeto de Banco de Dados Elmasri, R. / Navathe, S. - Sistemas de Banco de Dados