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²: NonFirst Normal Form • MRNN: modelo relacional não normalizado (V. W. Setzer) • Semistructured ou Semistructured 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, ISO2709 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 interrelacionada 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 • Subcampos 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 semistructured 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 selfdescribing data model... data values and schema components coexist” (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 ISISDM: 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 • Backends 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 subcampos >>> >>> 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: ISISJSON 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 ISISJSON e produz o códigofonte 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: AddisonWesley, 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