porque bibliotecários usam bancos de dados esquisitos

81
1 1 O Modelo de Dados O Modelo de Dados Semiestruturado em Semiestruturado em Bases Bibliográficas: Bases Bibliográficas: do CDS/ISIS ao do CDS/ISIS ao Apache CouchDB Apache CouchDB Luciano G. S. Ramalho Monografia de Graduação Bacharelado em Biblioteconomia Orientador: Prof. Dr. Marcos Mucheroni USP – ECA – CBD Novembro de 2010

Upload: luciano-ramalho

Post on 18-Dec-2014

1.405 views

Category:

Technology


3 download

DESCRIPTION

O modelo de dados semiestruturado em bases bibliográficas: do CDS/ISIS ao Apache CouchDB

TRANSCRIPT

Page 1: Porque bibliotecários usam bancos de dados esquisitos

11

O Modelo de Dados O Modelo de Dados Semiestruturado emSemiestruturado emBases Bibliográficas:Bases Bibliográficas:

do CDS/ISIS ao do CDS/ISIS ao Apache CouchDBApache CouchDB

Luciano G. S. Ramalho

Monografia de GraduaçãoBacharelado em Biblioteconomia

Orientador: Prof. Dr. Marcos MucheroniUSP – ECA – CBDNovembro de 2010

Page 2: Porque bibliotecários usam bancos de dados esquisitos

22

Por que os bibliotecários Por que os bibliotecários usam bancos de dados usam bancos de dados 

diferentes de todo mundo...diferentes de todo mundo...

Page 3: Porque bibliotecários usam bancos de dados esquisitos

33

Por que os bibliotecários Por que os bibliotecários usam bancos de dados usam bancos de dados 

diferentes de todo mundo...diferentes de todo mundo...e por que eles estão certose por que eles estão certos

Page 4: Porque bibliotecários usam bancos de dados esquisitos

44

Agradecimentos:

Colegas da BIREME/OPAS/OMS

Marcos Mucheroni

Imre Simon

Maria Lucia e Jairo

membros da banca

e colegas presentes

Para Marta,

por tudo.

Page 5: Porque bibliotecários usam bancos de dados esquisitos

55

IntroduçãoIntrodução

Revisão da LiteraturaRevisão da Literatura

MetodologiaMetodologia

ResultadosResultados

ConclusãoConclusão

Page 6: Porque bibliotecários usam bancos de dados esquisitos

66

Cenário atual e motivaçãoCená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)

Page 7: Porque bibliotecários usam bancos de dados esquisitos

77

Page 8: Porque bibliotecários usam bancos de dados esquisitos

88

Page 9: Porque bibliotecários usam bancos de dados esquisitos

99

Exemplo de uso: ISIS na Exemplo de uso: ISIS na catalogação cooperativacatalogaçã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

Page 10: Porque bibliotecários usam bancos de dados esquisitos

1010

Contexto tecnológicoContexto 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

Page 11: Porque bibliotecários usam bancos de dados esquisitos

1111

Alguns produtos NoSQL recentesAlguns produtos NoSQL recentes

• Apache Cassandra• Apache CouchDB• MongoDB• Hadoop Hbase• Hypertable• Redis• Riak• ThruDB

• Google Datastore• Amazon SimpleDB• Apstrata

Todos lançadosapós o ano 2000

Page 12: Porque bibliotecários usam bancos de dados esquisitos

1212

Page 13: Porque bibliotecários usam bancos de dados esquisitos

1313

Descrição do problemaDescrição do problemade pesquisade 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 modelosde 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?

Page 14: Porque bibliotecários usam bancos de dados esquisitos

1414

IntroduçãoIntrodução

Revisão da LiteraturaRevisão da Literatura

MetodologiaMetodologia

ResultadosResultados

ConclusãoConclusão

Page 15: Porque bibliotecários usam bancos de dados esquisitos

1515

Resumo da terminologia adotadaResumo da terminologia adotada

Page 16: Porque bibliotecários usam bancos de dados esquisitos

1616

Modelo Relacional NormalizadoModelo Relacional Normalizado

editoras

autoresautoreslivroslivros

bd_opac

livros

objetobanco de

dados

relação

tupla

atributo

banco dedados

tabela

registro

campo

Page 17: Porque bibliotecários usam bancos de dados esquisitos

1717

• 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 NormalizadoModelo Relacional Normalizado

Page 18: Porque bibliotecários usam bancos de dados esquisitos

1818

O problema do MRNO 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: aprendao que são, melhore seu conhecimento, construa os seus. 1ª ed. São Paulo: Edgard Blücher, 2005, p. 135.

Page 19: Porque bibliotecários usam bancos de dados esquisitos

1919

O problema do MRNO 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: aprendao que são, melhore seu conhecimento, construa os seus. 1ª ed. São Paulo: Edgard Blücher, 2005, p. 135.

LivrosAssuntos

Nomes de Autores

Page 20: Porque bibliotecários usam bancos de dados esquisitos

2020

O problema do MRNO 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: aprendao que são, melhore seu conhecimento, construa os seus. 1ª ed. São Paulo: Edgard Blücher, 2005, p. 135.

Page 21: Porque bibliotecários usam bancos de dados esquisitos

2121

O problema do MRNO 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: aprendao que são, melhore seu conhecimento, construa os seus. 1ª ed. São Paulo: Edgard Blücher, 2005, p. 135.

Livros

=

Page 22: Porque bibliotecários usam bancos de dados esquisitos

2222

Consequências da 1FNConsequê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

Page 23: Porque bibliotecários usam bancos de dados esquisitos

2323

Modelo SemiestruturadoModelo 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

Page 24: Porque bibliotecários usam bancos de dados esquisitos

2424

Modelo SemiestruturadoModelo 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

Page 25: Porque bibliotecários usam bancos de dados esquisitos

2525

O livro vermelhoO livro vermelho

• Hellerstein & Stonebraker

• Coletânea de artigos• Livro­texto na UC 

Berkeley• Visão histórica e 

crítica de modelos de dados

Page 26: Porque bibliotecários usam bancos de dados esquisitos

2626

Referência: Data on the WebReferência: Data on the Web

• Abiteboul, Buneman& Suciu

• Teoria de BD semiestruturados

• Os autores têm vários papers seminais

Page 27: Porque bibliotecários usam bancos de dados esquisitos

2727

Semistructured Database DesignSemistructured Database Design

• Teoria atualizada (2004)

• Discussão sobre redundância, anomalias de atualização etc.

• Notação gráfica para definir esquemas de dados

Page 28: Porque bibliotecários usam bancos de dados esquisitos

2828

Família ISISFamília ISIS

Egbert de SmetIII Congresso Internacional de Usuários de CDS/ISIS, Rio de Janeiro, set. de 2008

Egbert de SmetIII Congresso Internacional de Usuários de CDS/ISIS, Rio de Janeiro, set. de 2008

Page 29: Porque bibliotecários usam bancos de dados esquisitos

2929

Documentação sobre ISISDocumentaçã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

Page 30: Porque bibliotecários usam bancos de dados esquisitos

3030

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 ISISExemplo de registro ISIS

Page 31: Porque bibliotecários usam bancos de dados esquisitos

3131

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 ISISExemplo de registro ISIS

Page 32: Porque bibliotecários usam bancos de dados esquisitos

3232

Exemplo de registro ISISExemplo 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

Page 33: Porque bibliotecários usam bancos de dados esquisitos

3333

Exemplo de registro ISISExemplo 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

Page 34: Porque bibliotecários usam bancos de dados esquisitos

3434

Metodologia LILACSMetodologia LILACS

• Metodologia LILACS: Manualde Descrição Bibliográfica, 7ª ed. 

• Diccionario de datos del modelo LILACS Versión 1.6a

Page 35: Porque bibliotecários usam bancos de dados esquisitos

3535

A metodologia é o eloA metodologia é o elo

Dicionário de Dados da Metodologia LilacsDicionário de Dados da Metodologia Lilacs

Page 36: Porque bibliotecários usam bancos de dados esquisitos

3636

SGBDs não­relacionaisSGBDs 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

Page 37: Porque bibliotecários usam bancos de dados esquisitos

3737

XML e JSONXML e JSON<?xml version="1.0" encoding="UTF­8" ?><alunos>    Relação dos alunos matriculados:    <aluno matricula=”123456”>        <nome>Fulano de Tal</nome>    <aluno>    <aluno matricula=”123457”>        <nome>Sicrano de Tal</nome>    <aluno></alunos>

<?xml version="1.0" encoding="UTF­8" ?><alunos>    Relação dos alunos matriculados:    <aluno matricula=”123456”>        <nome>Fulano de Tal</nome>    <aluno>    <aluno matricula=”123457”>        <nome>Sicrano de Tal</nome>    <aluno></alunos> {"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"}]}

Page 38: Porque bibliotecários usam bancos de dados esquisitos

3838

IntroduçãoIntrodução

Revisão da LiteraturaRevisão da Literatura

MetodologiaMetodologia

ResultadosResultados

ConclusãoConclusão

Page 39: Porque bibliotecários usam bancos de dados esquisitos

3939

Seleção do sistema Seleção do sistema de banco de dadosde 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

Page 40: Porque bibliotecários usam bancos de dados esquisitos

4040

Formatos ISIS­JSONFormatos ISIS­JSON

JSON:JavaScript Object Notation (RFC 4627)

JSON:JavaScript Object Notation (RFC 4627)

ISIS-JSON:esquemasgenéricos parabases ISIS

ISIS-JSON:esquemasgenéricos parabases ISIS

Page 41: Porque bibliotecários usam bancos de dados esquisitos

4141

ISIS em JSONISIS em JSON

Page 42: Porque bibliotecários usam bancos de dados esquisitos

4242

ISIS em JSONISIS em JSON

Page 43: Porque bibliotecários usam bancos de dados esquisitos

4343

ISIS em JSONISIS em JSON

Page 44: Porque bibliotecários usam bancos de dados esquisitos

4444

ISIS­JSON: tiposISIS­JSON: tipos

Page 45: Porque bibliotecários usam bancos de dados esquisitos

4545

Obtenção de LILACS100KObtenção de LILACS100K

• Amostra: os 100.000 registros mais recentes de LILACS em 17/out/2010

Page 46: Porque bibliotecários usam bancos de dados esquisitos

4646

Obtenção de LILACS100KObtenção de LILACS100K

Page 47: Porque bibliotecários usam bancos de dados esquisitos

4747

Obtenção de LILACS100KObtenção de LILACS100K

Page 48: Porque bibliotecários usam bancos de dados esquisitos

4848

Ferramenta de conversãoFerramenta de conversãode registros ISIS para JSONde 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

Page 49: Porque bibliotecários usam bancos de dados esquisitos

4949

luciano@meng$ ./isis2json.py ­husage: 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 ­husage: 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)

isis

2jso

n.p y

Page 50: Porque bibliotecários usam bancos de dados esquisitos

5050

Carga para o CouchDBCarga para o CouchDB

• lilimp– registros ISIS­JSON tipo 1– subcampos concatenados

• lilacs– registros ISIS­JSON tipo 4– subcampos expandidos em dicionários

Page 51: Porque bibliotecários usam bancos de dados esquisitos

5151

LILACS100K no CouchDBLILACS100K no CouchDB

Page 52: Porque bibliotecários usam bancos de dados esquisitos

5252

lilimp: subcampos concatenadoslilimp: subcampos concatenados

Page 53: Porque bibliotecários usam bancos de dados esquisitos

5353

lilacs: subcampos expandidoslilacs: subcampos expandidos

Page 54: Porque bibliotecários usam bancos de dados esquisitos

5454

Teste: tipos de registro LILACSTeste: tipos de registro LILACS

Page 55: Porque bibliotecários usam bancos de dados esquisitos

5555

Teste: tipos de registro LILACSTeste: tipos de registro LILACS

Page 56: Porque bibliotecários usam bancos de dados esquisitos

5656

Teste: subcampos repetidosTeste: subcampos repetidos

Page 57: Porque bibliotecários usam bancos de dados esquisitos

5757

IntroduçãoIntrodução

Revisão da LiteraturaRevisão da Literatura

MetodologiaMetodologia

ResultadosResultados

ConclusãoConclusão

Page 58: Porque bibliotecários usam bancos de dados esquisitos

5858

ResultadosResultados

• 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

Page 59: Porque bibliotecários usam bancos de dados esquisitos

5959

De CDS/ISIS para CouchDBDe CDS/ISIS para CouchDB

Page 60: Porque bibliotecários usam bancos de dados esquisitos

6060

De CDS/ISIS para CouchDBDe CDS/ISIS para CouchDB

Page 61: Porque bibliotecários usam bancos de dados esquisitos

6161

De CDS/ISIS para CouchDBDe CDS/ISIS para CouchDB

Page 62: Porque bibliotecários usam bancos de dados esquisitos

6262

IntroduçãoIntrodução

Revisão da LiteraturaRevisão da Literatura

MetodologiaMetodologia

ResultadosResultados

ConclusãoConclusão

Page 63: Porque bibliotecários usam bancos de dados esquisitos

6363

ConclusãoConclusã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)

Page 64: Porque bibliotecários usam bancos de dados esquisitos

6464

Limitações da pesquisaLimitaçõ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

Page 65: Porque bibliotecários usam bancos de dados esquisitos

6565

Indicações para continuarIndicações para continuar

• Notação (API) para especificação de esquemas de dados com validação de acordo com metodologias de catalogação

Page 66: Porque bibliotecários usam bancos de dados esquisitos

6666

Indicações para continuarIndicações para continuar

• Notação (API) para especificação de esquemas de dados com validação de acordo com metodologias de catalogação

Page 67: Porque bibliotecários usam bancos de dados esquisitos

6767

Indicações para continuar (2)Indicações para continuar (2)

• Atualização automática de registros desnormalizados

Page 68: Porque bibliotecários usam bancos de dados esquisitos

6868

Indicações para continuar (2)Indicações para continuar (2)

• Atualização automática de registros desnormalizados

Page 69: Porque bibliotecários usam bancos de dados esquisitos

6969

Indicações para continuar (2)Indicações para continuar (2)

• Atualização automática de registros desnormalizados

Page 70: Porque bibliotecários usam bancos de dados esquisitos

7070

Indicações para continuar (2)Indicações para continuar (2)

• Atualização automática de registros desnormalizados

• Aplicação da teoria a umproblema prático encontradoem 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

Page 71: Porque bibliotecários usam bancos de dados esquisitos

7171

O Modelo de Dados O Modelo de Dados Semiestruturado emSemiestruturado emBases Bibliográficas:Bases Bibliográficas:

do CDS/ISIS ao do CDS/ISIS ao Apache CouchDBApache CouchDB

Luciano G. S. Ramalho

Monografia de GraduaçãoBacharelado em Biblioteconomia

Orientador: Prof. Dr. Marcos MucheroniUSP – ECA – CBDNovembro de 2010

Page 72: Porque bibliotecários usam bancos de dados esquisitos

7272

ExtraExtra

Page 73: Porque bibliotecários usam bancos de dados esquisitos

7373

Projeto ISIS­DM: ISIS Data ModelProjeto 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

Page 74: Porque bibliotecários usam bancos de dados esquisitos

7474

Definição de um esquemaDefinição de um esquema

Page 75: Porque bibliotecários usam bancos de dados esquisitos

7575

InstanciaçãoInstanciaçã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'])

Page 76: Porque bibliotecários usam bancos de dados esquisitos

7676

Acesso a campos e sub­camposAcesso a campos e sub­campos

>>> book.titleu'The Annotated Alice^sDefinitive Edition'>>> print book.title.sDefinitive Edition>>> print book.creators[0].y1832-1898>>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0])Author : Lewis CarrollIllustrator : John TennielEditor : Martin Gardner

>>> book.titleu'The Annotated Alice^sDefinitive Edition'>>> print book.title.sDefinitive Edition>>> print book.creators[0].y1832-1898>>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0])Author : Lewis CarrollIllustrator : John TennielEditor : Martin Gardner

Page 77: Porque bibliotecários usam bancos de dados esquisitos

7777

Derivação do esquema a partir Derivação do esquema a partir de uma massa de dadosde 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

Page 78: Porque bibliotecários usam bancos de dados esquisitos

7878

Exemplo: base CDS (WinISIS)Exemplo: base CDS (WinISIS)

Page 79: Porque bibliotecários usam bancos de dados esquisitos

7979

Extra 2Extra 2

Page 80: Porque bibliotecários usam bancos de dados esquisitos

8080

• 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

Page 81: Porque bibliotecários usam bancos de dados esquisitos

8181

Porque o MARC deve morrerPorque 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