Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAdriana Covalski Beltrão Alterado mais de 7 anos atrás
1
1 1 O Modelo de Dados Semiestruturado em Bases Bibliográficas: do CDS/ISIS ao Apache CouchDB Luciano G. S. Ramalho Monografia de Graduação Bacharelado em Biblioteconomia Orientador: Prof. Dr. Marcos Mucheroni USP – ECA – CBD Novembro de 2010
2
2 2 Por que os bibliotecários usam bancos de dados diferentes de todo mundo...
3
3 3 Por que os bibliotecários usam bancos de dados diferentes de todo mundo... e por que eles estão certos
4
4 4 Agradecimentos: Colegas da BIREME/OPAS/OMS Marcos Mucheroni Imre Simon Maria Lucia e Jairo membros da banca e colegas presentes Para Marta, por tudo.
5
5 5 Introdução Revisão da Literatura Metodologia Resultados Conclusão
6
6 6 Cenário atual e motivação Muitas bibliotecas no Brasil utilizam sistemas baseados na família ISIS A família ISIS não segue o Modelo Relacional Normalizado (MRN)
7
7 7
8
8 8
9
9 9 Exemplo de uso: ISIS na catalogação cooperativa LILACS: Literatura Latinoamericana y del Caribe en Ciencias de la Salud Catalogação cooperativa de artigos científicos nos países de origem
10
10 Contexto tecnológico Hegemonia do modelo relacional normalizado (MRN) Bancos de dados não relacionais em alguns nichos (ISIS, Adabas, Mumps...) Grandes sites revelam seus segredos (Google, Amazon, Facebook...) Movimento NoSQL = Not only SQL
11
11 Alguns produtos NoSQL recentes Apache Cassandra Apache CouchDB MongoDB Hadoop Hbase Hypertable Redis Riak ThruDB Google Datastore Amazon SimpleDB Apstrata Todos lançados após o ano 2000
12
12
13
13 Descrição do problema de pesquisa A família de sistemas ISIS mostrou-se muito bem adaptada à operação de bases bibliográficas nos últimos 25 anos, mas com o passar tempo vieram dificuldades para evoluir suas implementações. Com o surgimento de novos sistemas com modelos de dados mais flexíveis, será que existe hoje um caminho para a migração de bases ISIS que evite uma reestruturação dos dados com impacto sobre as próprias metodologias de catalogação?
14
14 Introdução Revisão da Literatura Metodologia Resultados Conclusão
15
15 Resumo da terminologia adotada
16
16 Modelo Relacional Normalizado editoras autores livros bd_opa c livros objeto banco de dados relaçã o tupl a atribut o banco de dados tabel a registr o camp o
17
17 Pela definição de E. F. Codd, os domínios dos atributos devem ser atômicos –Ou seja: valores simples e indivisíveis do ponto de vista do sistema de banco de dados 1ª Forma Normal (1FN ou 1NF, em inglês) –C. J. Date debate a definição clássica de 1FN C. J. Date × Codd, Elmasri, Setzer, Silberschatz... C. J. Date × Codd, Elmasri, Setzer, Silberschatz... Modelo Relacional Normalizado
18
18 O problema do MRN [...] seria interessante notar o absurdo do padrão do MRN [Modelo Relacional Normalizado]: se um livro tiver 3 autores e 5 assuntos [...]. 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, p. 135.
19
19 O problema do MRN [...] será necessário representá-lo [em] uma linha na tabela Livros, mais 3 na Nomes-de-autores [...] e mais 5 na de Assuntos, num total de 9 linhas em três tabelas distintas [...] 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, p. 135. Livros Assuntos Nomes de Autores
20
20 O problema do MRN [...] Mas o que se vê 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, p. 135.
21
21 O problema do MRN […] Veremos que no MRNN [Modelo Relacional Não-Normalizado] isso pode ser representado em uma só linha, que é o que se esperaria de um modelo de dados decente [...] 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, p. 135. Livros =
22
22 Consequências da 1FN No MRN, para representar subcampos ou campos repetitivos é necessário criar registros em tabelas adicionais A explosão de um registro bibliográfico em vários registros espalhados por tabelas complica o fluxo de trabalho distribuído de uma rede de catalogação cooperativa como a LILACS
23
23 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…” SUCIU, Dan. Semi-Structured Data Model. In: LIU, L. Encyclopedia of Database Systems
24
24 Modelo Semiestruturado Formalizado por grupos de pesquisa a partir de 1995 –UPenn Database Research Group –Projeto Lore, Stanford University Motivação: facilitar o intercâmbio de dados Modelo proposto é mais simples que o modelo de dados do XML
25
25 O livro vermelho Hellerstein & Stonebraker Coletânea de artigos Livro-texto na UC Berkeley Visão histórica e crítica de modelos de dados
26
26 Referência: Data on the Web Abiteboul, Buneman & Suciu Teoria de BD semiestruturados Os autores têm vários papers seminais
27
27 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
28
28 Família ISIS Egbert de Smet III Congresso Internacional de Usuários de CDS/ISIS, Rio de Janeiro, set. de 2008 Egbert de Smet III Congresso Internacional de Usuários de CDS/ISIS, Rio de Janeiro, set. de 2008
29
29 Documentação sobre ISIS Utilitários CISIS –Manuais produzidos pela BIREME/OPAS/OMS ISIS-NBP –Wiki e repositório de código público –Desenvolvimentos recentes: Conversor de ISIS para JSON ISIS-DM: API para definição de esquemas de dados Schematize: definição automática de esquemas de dados por inferência a partir de amostras
30
30 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition» Exemplo de registro ISIS
31
31 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition» Campo repetitivo Exemplo de registro ISIS
32
32 Exemplo de registro ISIS 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition» Marcador de sub- campo Sub- campo
33
33 Exemplo de registro ISIS 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition» Campo repetitivo Marcador de sub- campo Sub- campo
34
34 Metodologia LILACS Metodologia LILACS: Manual de Descrição Bibliográfica, 7ª ed. Diccionario de datos del modelo LILACS Versión 1.6a
35
35 A metodologia é o elo Dicionário de Dados da Metodologia Lilacs
36
36 SGBDs não-relacionais Grande diversidade de arquiteturas para finalidades muito diferentes Key-value stores são um tipo comum –BerkeleyDB, Redis, Amazon Dynamo Document databases implementam nativamente o modelo semiestruturado com índices secundários –CouchDB, MongoDB, Google Datastore
37
37 XML e JSON Relação dos alunos matriculados: Fulano de Tal Sicrano de Tal Relação dos alunos matriculados: Fulano de Tal Sicrano de Tal {"alunos" : [ {"matricula" : "123456", "nome” : "Fulano de Tal"}, {"matricula" : "123457", "nome” : "Sicrano de Tal"}] } {"alunos" : [ {"matricula" : "123456", "nome” : "Fulano de Tal"}, {"matricula" : "123457", "nome” : "Sicrano de Tal"}] }
38
38 Introdução Revisão da Literatura Metodologia Resultados Conclusão
39
39 Seleção do sistema de banco de dados para bases de atualização distribuída, o CouchDB oferece replicação e instalação mais simples para bases publicadas de forma centralizada e com alto tráfego, MongoDB oferece maior desempenho para LILACS, optamos por CouchDB
40
40 Formatos ISIS-JSON JSON: JavaScript Object Notation (RFC 4627) JSON: JavaScript Object Notation (RFC 4627) ISIS-JSON: esquemas genéricos para bases ISIS ISIS-JSON: esquemas genéricos para bases ISIS
41
41 ISIS em JSON
42
42 ISIS em JSON
43
43 ISIS em JSON
44
44 ISIS-JSON: tipos
45
45 Obtenção de LILACS100K Amostra: os 100.000 registros mais recentes de LILACS em 17/out/2010
46
46 Obtenção de LILACS100K
47
47 Obtenção de LILACS100K
48
48 Ferramenta de conversão de registros ISIS para JSON isis2json.py leitura: –arquivos ISO-2709 ou binários ISIS (.mst/.xrf) escrita: –arquivos JSON genéricos ou adaptados para CouchDB ou MongoDB –registros ISIS-JSON tipo 1 ou tipo 4
49
49 luciano@meng$./isis2json.py -h usage: isis2json.py [-h] [-o OUTPUT.json] [-c] [-m] [-f] [-q QTY] [-s SKIP] [-i TAG_NUMBER] [-u] [-t PREFIX] [-n] INPUT.(mst|iso) Convert an ISIS.mst or.iso file to a JSON array positional arguments: INPUT.(mst|iso).mst or.iso file to read optional arguments: -h, --help show this help message and exit -o OUTPUT.json, --out OUTPUT.json the file where the JSON output should be written (default: write to stdout) -c, --couch output array within a "docs" item in a JSON document for bulk insert to CouchDB via POST to db/_bulk_docs -m, --mongo output individual records as separate JSON dictionaries, one per line for bulk insert to MongoDB via mongoimport utility -f, --subfields explode each field into a JSON dictionary, with "_" as default key, and subfield markers as additional keys -q QTY, --qty QTY maximum quantity of records to read (default=ALL) -s SKIP, --skip SKIP records to skip from start of.mst (default=0) -i TAG_NUMBER, --id TAG_NUMBER generate an "_id" from the given unique TAG field number for each record -u, --uuid generate an "_id" with a random UUID for each record -t PREFIX, --tagprefix PREFIX concatenate prefix to numeric field tags (ex. 99 becomes "v99" -n, --mfn generate an "_id" from the MFN of each record (available only for.mst input) luciano@meng$./isis2json.py -h usage: isis2json.py [-h] [-o OUTPUT.json] [-c] [-m] [-f] [-q QTY] [-s SKIP] [-i TAG_NUMBER] [-u] [-t PREFIX] [-n] INPUT.(mst|iso) Convert an ISIS.mst or.iso file to a JSON array positional arguments: INPUT.(mst|iso).mst or.iso file to read optional arguments: -h, --help show this help message and exit -o OUTPUT.json, --out OUTPUT.json the file where the JSON output should be written (default: write to stdout) -c, --couch output array within a "docs" item in a JSON document for bulk insert to CouchDB via POST to db/_bulk_docs -m, --mongo output individual records as separate JSON dictionaries, one per line for bulk insert to MongoDB via mongoimport utility -f, --subfields explode each field into a JSON dictionary, with "_" as default key, and subfield markers as additional keys -q QTY, --qty QTY maximum quantity of records to read (default=ALL) -s SKIP, --skip SKIP records to skip from start of.mst (default=0) -i TAG_NUMBER, --id TAG_NUMBER generate an "_id" from the given unique TAG field number for each record -u, --uuid generate an "_id" with a random UUID for each record -t PREFIX, --tagprefix PREFIX concatenate prefix to numeric field tags (ex. 99 becomes "v99" -n, --mfn generate an "_id" from the MFN of each record (available only for.mst input) isis2json.py
50
50 Carga para o CouchDB lilimp –registros ISIS-JSON tipo 1 –subcampos concatenados lilacs –registros ISIS-JSON tipo 4 –subcampos expandidos em dicionários
51
51 LILACS100K no CouchDB
52
52 lilimp: subcampos concatenados
53
53 lilacs: subcampos expandidos
54
54 Teste: tipos de registro LILACS
55
55 Teste: tipos de registro LILACS
56
56 Teste: subcampos repetidos
57
57 Introdução Revisão da Literatura Metodologia Resultados Conclusão
58
58 Resultados Levantamento de uma base teórica para estudar o modelo de dados ISIS Identificação de SGBDs compatíveis com o modelo de dados ISIS Catalogação das variantes de ISIS-JSON Ferramentas de conversão e análise Identificação de inconsistências na base LILACS
59
59 De CDS/ISIS para CouchDB
60
60 De CDS/ISIS para CouchDB
61
61 De CDS/ISIS para CouchDB
62
62 Introdução Revisão da Literatura Metodologia Resultados Conclusão
63
63 Conclusão Modelo de dados semiestruturado é a teoria que pode apoiar a análise de bases ISIS e planejar sua evolução É simples migrar dados de bases ISIS para um SGBD orientado a documentos O CouchDB pode aumentar o alcance e a utilidade dos dados, pela facilidade de criar WebServices (AJAX = HTTP + JSON)
64
64 Limitações da pesquisa Tamanho da massa de dados –LILACS100K x 18 milhões em MEDLINE Foco em um único SGBD (CouchDB) –repetir com MongoDB e outros Bibliografia com ênfase em livros e manuais técnicos –aprofundar estudo em artigos científicos
65
65 Indicações para continuar Notação (API) para especificação de esquemas de dados com validação de acordo com metodologias de catalogação
66
66 Indicações para continuar Notação (API) para especificação de esquemas de dados com validação de acordo com metodologias de catalogação
67
67 Indicações para continuar (2) Atualização automática de registros desnormalizados
68
68 Indicações para continuar (2) Atualização automática de registros desnormalizados ✐
69
69 Indicações para continuar (2) Atualização automática de registros desnormalizados
70
70 Indicações para continuar (2) Atualização automática de registros desnormalizados Aplicação da teoria a um problema prático encontrado em sistemas da BIREME e no Google App Engine Dados duplicados são ruins somente na medida em que o esforço para mantê-los consistentes é oneroso. MONASH, C. A. http://bit.ly/fHp2p4 Dados duplicados são ruins somente na medida em que o esforço para mantê-los consistentes é oneroso. MONASH, C. A. http://bit.ly/fHp2p4
71
71 O Modelo de Dados Semiestruturado em Bases Bibliográficas: do CDS/ISIS ao Apache CouchDB Luciano G. S. Ramalho Monografia de Graduação Bacharelado em Biblioteconomia Orientador: Prof. Dr. Marcos Mucheroni USP – ECA – CBD Novembro de 2010
72
72 Extra
73
73 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?) http://reddes.bvsalud.org/projects/isisnbp/wiki/ISIS- DM
74
74 Definição de um esquema
75
75 Instanciação >>> book = Book(title='The Annotated Alice^sDefinitive Edition',... pages=352,... creators=['Lewis Carroll^y1832-1898^rAuthor',... 'John Tenniel^rIllustrator',... 'Martin Gardner^y1914-2010^rEditor']) >>> book = Book(title='The Annotated Alice^sDefinitive Edition',... pages=352,... creators=['Lewis Carroll^y1832-1898^rAuthor',... 'John Tenniel^rIllustrator',... 'Martin Gardner^y1914-2010^rEditor'])
76
76 Acesso a campos e sub-campos >>> book.title u'The Annotated Alice^sDefinitive Edition' >>> print book.title.s Definitive Edition >>> print book.creators[0].y 1832-1898 >>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0]) Author : Lewis Carroll Illustrator : John Tenniel Editor : Martin Gardner >>> book.title u'The Annotated Alice^sDefinitive Edition' >>> print book.title.s Definitive Edition >>> print book.creators[0].y 1832-1898 >>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0]) Author : Lewis Carroll Illustrator : John Tenniel Editor : Martin Gardner
77
77 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
78
78 Exemplo: base CDS (WinISIS)
79
79 Extra 2
80
80 Roy Tennant –California Digital Library –Senior Program Officer, Research division, OCLC Roy Tennant –California Digital Library –Senior Program Officer, Research division, OCLC http://www.libraryjournal.com/article/CA250046.html
81
81 Porque o MARC deve morrer Modelo de dados, sintaxe e metodologia de descrição (AACR2) entrelaçados Concebido para capturar e gerar cartões de catálogo bibliográficos impressos Estrutura rígida e plana –como representar o sumário? Isolamento tecnológico –para continuar servindo e inovando, precisamos acompanhar o estado da arte
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.