XI Encontro Nacional de Pesquisa em Ciência da Informação 2010
GT 8: Tecnologia e Informação
Modelos de dados para
bases bibliográficas
Legado, padrões e alternativas
Marcos L. Mucheroni
ECA/USP - CDB
Luciano Ramalho
BIREME/OPAS/OMS
Outubro de 2010
CBD - Biblioteconomia
1
CBD - Biblioteconomia
2
CBD - Biblioteconomia
3
CBD - Biblioteconomia
4
Cenário Atual
• Hegemonia do modelo relacional normalizado (MRN)
• Em alguns nichos, bancos de dados NoSQL resistem (ISIS, Adabas, Mumps...)
• Grandes usuários de NoSQL revelam seus segredos (Google, Amazon, Facebook...)
• Vários bancos NoSQL novos sendo lançados
CBD - Biblioteconomia
5
Tags para pesquisar
• NoSQL: o termo da moda
• NF²: Non­First Normal Form
• MRNN: modelo relacional não normalizado (V. W. Setzer)
• Semistructured ou Semi­structured data model
• Schemaless database
• Document database
CBD - Biblioteconomia
6
Alguns produtos NoSQL recentes
• Apache Cassandra
Todos lançados
após o ano 2000
• Apache CouchDB
• MongoDB
• Hadoop Hbase
• ThruDB
• Redis
• Hypertable
CBD - Biblioteconomia
• Google Datastore
• Amazon SimpleDB
• Apstrata
7
Modelo relacional x ISIS
• Modelo relacional é o dominante em aplicações de bancos de dados
– incluem um conjunto amplo de EDI
– EDIs (Eletronic Data Interchange): SGED (Sistemas de Gerenciamento Eletrônico de Dados) onde há intercâmbio de dados (Hasserbring, 2000).
• Ao mesmo tempo, em muitas bibliotecas o ISIS continua em uso, mesmo não aderindo ao modelo relacional
• Modelo relacional tem sólida base teórica
• Onde estão as bases teóricas do ISIS?
CBD - Biblioteconomia
8
Modelo Semiestruturado
• Formalizado por dois grupos de pesquisa a partir de 1995
– UPenn Database Research Group (University of Pennsylvania, 2010)
– Projeto Lore, Stanford University (Infolab 2010)
• ISIS, ISO­2709 e MARC: casos particulares
• Motivação: intercâmbio de dados (Abiteboul, 1999)
CBD - Biblioteconomia
9
Referência: Data on the Web
• Teoria de BD semiestruturados
• Os autores têm vários papers seminais
CBD - Biblioteconomia
10
Semistructured Database Design
• Teoria atualizada (2004)
• Discussão sobre redundância, anomalias de atualização etc.
• Notação gráfica para definir esquemas de dados
CBD - Biblioteconomia
11
Modelo relacional: primeira forma normal (1NF)
• Informação organizada relações (tabelas)
– Cada registro é uma tupla (linhas)
– Cada campo é um item da tupla
• 1NF: os elementos de uma tupla não podem ser repetidos e devem ser atômicos
– “values in the domains on which each relation is defined are required to be atomic with respect to the DBMS” (Codd, 1990)
CBD - Biblioteconomia
12
Consequências da 1NF
• Modelo relacional clássico não suporta subcampos ou campos repetitivos
• Campos limitados a tipos primitivos simples • Para representar atributos complexos ou repetitivos é necessário implementar a tabelas adicionais
• Gestão cooperativa de dados se torna mais difícil em um cenário distribuído
CBD - Biblioteconomia
13
O absurdo
[...] 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 [...]. Mas
o que se vê e e pega-se na mão no mundo real é um livro
só, e não um picadinho de livro!
SETZER, V. Bancos de dados: aprenda o que são,
melhore seu conhecimento, construa os seus.
1ª ed. São Paulo: Edgard Blücher, 2005.
CBD - Biblioteconomia
14
Banco de dados: terminologia
• Dicionário Aurélio:
– Banco de dados: 1. Coleção organizada e inter­relacionada de dados persistentes; base de dados: 2. Programa especializado em gerenciar um banco de dados (1). – Base de dados: 1. Banco de dados (1).
• Terminologia em manuais de produtos:
– Banco de dados: conjunto nomeado de tabelas em um SGBD
CBD - Biblioteconomia
15
Eliminando a ambiguidade
• Base de dados: coleção de dados, conforme definição 1 do Aurélio • Sistema de banco de dados: software integrado ou conjunto de componentes de software que manipulam bases de dados; conforme definição 2 do Aurélio • Objeto banco de dados: conjunto nomeado de tabelas
CBD - Biblioteconomia
16
Uma aplicação: LILACS
• LILACS: Literatura Latinoamericana y del Caribe en Ciencias de la Salud
• Catalogação cooperativa de artigos científicos nos países de origem
• Registros fornecidos por mais de 100 bibliotecas e centros de informação
• Promove a pesquisa relevante para os problemas de saúde regionais
CBD - Biblioteconomia
17
A metodologia é o elo
CBD - Biblioteconomia
18
Dicionário
Metodologia
Lilacs
Dicionáriode
deDados
Dadosda
da
Metodologia
Lilacs
19
CBD - Biblioteconomia
Registros bibliográficos
• MARC: Machine Readable Cataloging
– US Library of Congress
• ISO 2709
– Information and documentation: Format for information exchange
• CDS/ISIS
– Unesco, BIREME/OPAS/OMS et al.
CBD - Biblioteconomia
20
Modelo de dados apoia
a metodologia
• Campos repetitivos
• Campos opcionais
• Sub­campos
Características
Característicascomuns
comunsaos
aosformatos
formatos
de
deregistros
registrosMARC,
MARC,ISO-2709
ISO-2709eeISIS
ISIS
CBD - Biblioteconomia
21
Exemplo de registro ISIS
10
10
10
12
«Lewis Carroll^y1832-1898^rauthor»
«John Tenniel^y1820-1914^rillustrator»
«Lewis Carroll^y1914-2010^reditor»
«The Annotated Alice^sThe Definitive Edition»
CBD - Biblioteconomia
22
Modelo Semiestruturado
“The semi­structured data model is designed as an evolution of the relational data model that allows the representation of data with a flexible structure. Some items may have missing attributes, some may have two or more ocurrences of the same attribute… [it] is a self­describing data model... data values and schema components co­exist” (Liu, 2009).
CBD - Biblioteconomia
23
Exemplo de registro ISIS
Campo repetitivo
10
10
10
12
«Lewis Carroll^y1832-1898^rauthor»
«John Tenniel^y1820-1914^rillustrator»
«Lewis Carroll^y1914-2010^reditor»
«The Annotated Alice^sThe Definitive Edition»
CBD - Biblioteconomia
24
Exemplo de registro ISIS
Marcador de sub-campo
10
10
10
12
Sub-campo
«Lewis Carroll^y1832-1898^rauthor»
«John Tenniel^y1820-1914^rillustrator»
«Lewis Carroll^y1914-2010^reditor»
«The Annotated Alice^sThe Definitive Edition»
CBD - Biblioteconomia
25
Exemplo de registro ISIS
Campo repetitivo
10
10
10
12
«Lewis Carroll^y1832-1898^rauthor»
«John Tenniel^y1820-1914^rillustrator»
«Lewis Carroll^y1914-2010^reditor»
«The Annotated Alice^sThe Definitive Edition»
Marcador de sub-campo
CBD - Biblioteconomia
26
Sub-campo
Algumas lições aprendidas
• Schema first x schema last (Stonebraker)
– com o tempo, inevitável ter registros na base em desacordo com as regras de negócios
• Necessário usar um framework que permita definir um modelo de dados com:
– tipos de campos validados
– validações envolvendo vários campos ou mesmo a base de dados (ex. unicidade)
– geração de forms (estimula o (re)uso)
CBD - Biblioteconomia
27
Projeto ISIS­DM: ISIS Data Model
• API para definição de esquemas de dados através de classes, como em certos ORMs
• API de extração de dados tão ou mais poderosa quanto a ISIS Format. Language
• Back­ends para BDs NF² modernos
– CouchDB, MongoDB
– Google Datastore
– PostgreSQL (hstore, JSON?)
CBD - Biblioteconomia
28
Definição de um esquema
CBD - Biblioteconomia
29
Instanciação
>>>
>>> book
book == Book(title='The
Book(title='The Annotated
Annotated Alice^sDefinitive
Alice^sDefinitive Edition',
Edition',
...
pages=352,
...
pages=352,
...
creators=['Lewis
...
creators=['Lewis Carroll^y1832-1898^rAuthor',
Carroll^y1832-1898^rAuthor',
...
'John
Tenniel^rIllustrator',
...
'John Tenniel^rIllustrator',
...
'Martin
...
'Martin Gardner^y1914-2010^rEditor'])
Gardner^y1914-2010^rEditor'])
CBD - Biblioteconomia
30
Acesso a campos e sub­campos
>>>
>>> book.title
book.title
u'The
u'The Annotated
Annotated Alice^sDefinitive
Alice^sDefinitive Edition'
Edition'
>>>
print
book.title.s
>>> print book.title.s
Definitive
Definitive Edition
Edition
>>>
>>> print
print book.creators[0].y
book.creators[0].y
1832-1898
1832-1898
>>>
>>> for
for creator
creator in
in book.creators:
book.creators:
...
print
'%-12s:
...
print '%-12s: %s'
%s' %% (creator.r,
(creator.r, creator[0])
creator[0])
Author
:
Lewis
Carroll
Author
: Lewis Carroll
Illustrator
Illustrator :: John
John Tenniel
Tenniel
Editor
:
Martin
Editor
: Martin Gardner
Gardner
CBD - Biblioteconomia
31
Representação física: ISIS­JSON
JSON:
JavaScript
Object Notation
(RFC 4627)
ISIS-JSON:
um esquema
genérico para
bases ISIS
CBD - Biblioteconomia
32
Derivação do esquema a partir de uma massa de dados
• schematize.py lê uma base em formato ISIS­JSON e produz o código­fonte de uma subclasse de isisdm.CheckedModel
• Baseado em regras, é influenciado por erros na massa de dados
• Esquema gerado é ponto de partida para um ajuste de acordo com a metodologia
CBD - Biblioteconomia
33
Exemplo: base CDS (WinISIS)
CBD - Biblioteconomia
34
Algumas regras do gerador de esquemas
• se nunca existe mais de uma ocorrência, gerar campo não repetitivo
• se o tag aparece em todos os registros, gerar um atributo required=True
• se ocorrem subcampos, gerar um atributo subfields com as marcas encontradas
• se todas as ocorrências de um campo têm o mesmo tamanho N, gerar fixed_len=N
CBD - Biblioteconomia
35
http://reddes.bvsalud.org
http://reddes.bvsalud.org
CBD - Biblioteconomia
36
http://reddes.bvsalud.org
http://reddes.bvsalud.org
CBD - Biblioteconomia
37
Bibliografia (parte)
•
ABITEBOUL, Serge.; BUNEMAN, Peter. e SUCIU, Dan. Data on the web: from relations to semistructured data and XML. Morgan Kaufmann, San Francisco, 1999. •
CODD, E. F. (1990) The Relational Model for Database Management Version 2, Reading, MA: Addison­Wesley, 1990.
•
CUNHA, Murilo Bastos da; CAVALCANTI, Cordélia Robalinho de Oliveira. Dicionário de Biblioteconomia e Arquivologia. Brasília, DF: Briquet de Lemos/Livros, 2008. 451p.
•
HASSELBRING, W. Information System Integration, Communications of the ACM, Volume 43, Issue 6 , p. 32 ­ 38, 2000.
•
INFOLAB, Stanford University. Lore: a Database Management System for XML. Disponível em: <http://infolab.stanford.edu/lore/home/index.html>, acesso em: ago 2010.
•
LIU, L.; ÖZSU, M. T. Encyclopedia of database systems: Springer, 2009.
•
MARTINEZ USERO, J.A.; LARA NAVARRA, P. La interoperabilidad de la información. Barcelona: UOC, 2007.
•
SETZER, Valdemar; CORRÊA DA SILVA, Flávio. Bancos de dados: aprenda o que são, melhore seu conhecimento, construa os seus. 1a ed. São Paulo: Edgard Blücher, 2005.
•
TOK, Ling. Semistructured database design. Springer, New York, 2005.
CBD - Biblioteconomia
38
Gratos pela atenção!
XI Encontro Nacional de Pesquisa em Ciência da Informação 2010
GT 8: Tecnologia e Informação
Modelos de dados para
bases bibliográficas
Legado, padrões e alternativas
Marcos L. Mucheroni
ECA/USP - CDB
Luciano Ramalho
BIREME/OPAS/OMS
Outubro de 2010
CBD - Biblioteconomia
39
Download

Modelos de dados para bases bibliográficas