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 1
2
3
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 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 6
Alguns produtos NoSQL recentes Apache Cassandra Todos lançados após o ano 2000 Apache CouchDB MongoDB Hadoop Hbase ThruDB Redis Hypertable 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? 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) 9
Referência: Data on the Web Teoria de BD semiestruturados Os autores têm vários papers seminais 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 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) 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 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. 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 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 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 17
A metodologia é o elo 18
Dicionário Metodologia Lilacs Dicionáriode dedados Dadosda da Metodologia Lilacs 19
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. 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 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» 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). 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» 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» 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 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) 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?) 28
Definição de um esquema 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']) 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 31
Representação física: ISIS JSON JSON: JavaScript Object Notation (RFC 4627) ISIS-JSON: um esquema genérico para bases ISIS 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 33
Exemplo: base CDS (WinISIS) 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 35
http://reddes.bvsalud.org http://reddes.bvsalud.org 36
http://reddes.bvsalud.org http://reddes.bvsalud.org 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. 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 39