Twsul dokumentowe bazy danych

background image

Dokumentowe bazy danych

Tomasz Wsuª

27.04.2011

background image

Plan prezentacji

1

Wprowadzenie do dokumentowych baz danych

1

denicja

2

dokumenty

3

maªa ró»nica a cieszy

2

Lista baz

3

Przykªady baz

1

CouchDB

2

MongoDB

3

OrientDB

4

Koniec :)

Tomasz Wsuª

Dokumentowe bazy danych

background image

Dokumentowe bazy danych

Dokumentowe bazy danych nierelacyjne bazy danych operuj¡ce

na dokumentach

Wikipedia:

A document-oriented database is a computer program designed

for document-oriented applications. These systems may be

implemented as a layer above a relational database or an object

database.

Alex Popescu:

1

a data engine using a non-relational data model

2

a storage engine with knowledge about the data it is storing.

Basically the engine will be able to operate on inner values of

the records

3

an engine that can dene secondary indexes on non-key elds

and allows querying data based on these.

Tomasz Wsuª

Dokumentowe bazy danych

background image

Dokumentowe bazy danych

Dokumenty:

FirstName="Jonathan", Address="15 Wanamassa Point Road",

Children=[{Name:"Michael",Age:10}, {Name:"Jennifer", Age:8},

{Name:"Samantha", Age:5}, {Name:"Elena", Age:2}]

FirstName="Bob", Address="5 Oak St.", Hobby="sailing"

Tomasz Wsuª

Dokumentowe bazy danych

background image

Relacyjne - dokumentowe - obiektowe

Poª¡czenie

?

referencje

Tomasz Wsuª

Dokumentowe bazy danych

background image

Lista baz

Lotus Notes(1989), askSam, Apstrata, Datawasp, SimpleDB,

CRX, MUMPS Database(1966), UniVerse, UniData, Apache

Jackrabbit, Apache CouchDB, FleetDB, MongoDB, VMWare

GemFire Enterprise, OrientDB, RavenDB, Redis, Riak, StrokeDB,

Terrastore, ThruDB, Persevere, DBSlayer

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB

akronim: cluster of unreliable commodity hardware
open source
Erlang (dawniej c++)
Apache License 2.0
http://couchdb.apache.org/

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB - wprowadzenie

Django may be built for the Web, but CouchDB is built of the Web.

I've never seen software that so completely embraces the philosophies

behind HTTP. CouchDB makes Django look old-school in the same

way that Django makes ASP look outdated.

Jacob Kaplan-Moss, Django Developer

Dziaªanie MapReduce-like:

widoki
funkcje agreguj¡ce
ltry
REST api
Multi-Version Concurrency Control
rozproszona architektura z replikacj¡ multi-master
eventual consistency...

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB - podstawy

Widok zbiór wybranych dokumentów
Funkcja map:

function(doc) {

if (doc.Type == "customer") {

emit(doc.LastName,

{FirstName: doc.FirstName, Address: doc.Address});

emit(doc.FirstName,

{LastName: doc.LastName, Address: doc.Address});

} }

Zliczanie wyst¡pie«:

reduce: function (doc) { emit(doc.FirstName, 1); }

reduce: function (key, values, rereduce) { return sum(values); }

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB - podstawy

{

"total_rows":4,

"oset":0,

"rows": [

{"id":"64ACF01B05F53ACFEC48C062A5D01D89", "key":"Katz",

"value":{"FirstName":"Damien", "Address":"2407 Sawyer, Charlotte"} },

{ "id":"64ACF01B05F53ACFEC48C062A5D01D89", "key":"Damien",

"value":{"LastName":"Katz", "Address":"2407 Sawyer, Charlotte"} },

{ "id":"5D01D8964ACF01B05F53ACFEC48C062A", "key":"Kerr",

"value":{"FirstName":"Wayne", "Address":"123 Fake st., A and such"}

},

{ "id":"5D01D8964ACF01B05F53ACFEC48C062A", "key":"Wayne",

"value":{"LastName":"Kerr", "Address":"123 Fake st., A and such"} },

] }

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB - przykªady

curl http://127.0.0.1:5984/

{"couchdb":"Welcome", "version":"1.0.1"}

curl -X PUT http://127.0.0.1:5984/wiki

{"ok":true}

curl -X GET http://127.0.0.1:5984/wiki

{"db_name":"wiki", "doc_count":0, "doc_del_count":0,

"update_seq":0, "purge_seq":0, "compact_running":false,

"disk_size":79, "instance_start_time":"1272453873691070",

"disk_format_version":5}

curl -X DELETE http://127.0.0.1:5984/wiki

{"ok":true}

Tomasz Wsuª

Dokumentowe bazy danych

background image

Apache CouchDB gotcha

Rysunek:

CAP wybierz 2

eventual consistency synchronizacja w dowolnym momencie

Tomasz Wsuª

Dokumentowe bazy danych

background image

MongoDB

humongous
open source
C++
GNU AGPL v3.0
http://www.mongodb.org/

Tomasz Wsuª

Dokumentowe bazy danych

background image

MongoDB - podstawy

Features:

UTF-8
Windows, Linux, OS X, Solaris
BSON Binary JSON Binary JavaScript Object Notation
Kursory dla wyników zapyta«
zapytania ad hoc
zagnie»d»anie dokumentów
indeksy (jest nawet indeks do danych geogracznych)
funkcje agreguj¡ce
dostarcza systemu plików
wykonywany po stronie serwera JavaScript
kolekcje cykliczne
replikacja: master-slave, replica-sets
automatyczny sharding

Tomasz Wsuª

Dokumentowe bazy danych

background image

MongoDB - przykªady

kolekcja users:

{ "username" : "bob", "address" : { "street" : "123 Main Street",

"city" : "Springeld", "state" : "NY" } }

db.users.nd({"address.state" : "NY"})

db.foo.nd({$where : function() { return this.x == this.y; }})

db.eval(function(name) { return "Hello, "+name; }, ["Joe"])

Hello, Joe

Tomasz Wsuª

Dokumentowe bazy danych

background image

MongoDB gotcha

dokumenty do 4MB
baza - plik mapowany na pami¦¢
w wersji 1.8: ... - journaling awaria=problem
nowy master ma zawsze racj¦, nawet je±li nie ma

Tomasz Wsuª

Dokumentowe bazy danych

background image

Bibliograa

myNoSQL http://nosql.mypopescu.com/
CouchDB http://couchdb.apache.org/
MongoDB http://www.mongodb.org/
http://en.wikipedia.org/wiki/Document-oriented_database

Tomasz Wsuª

Dokumentowe bazy danych

background image

Koniec

Pytania?

Tomasz Wsuª

Dokumentowe bazy danych


Wyszukiwarka

Podobne podstrony:
Dokumentowanie bazy danych
Dokumentacja sklep internetowy e, Bazy danych
Budowa bazy danych, Dokumenty do szkoły, przedszkola; inne, Metody, metody badań pedagogicznych
1 Tworzenie bazy danychid 10005 ppt
bazy danych II
Bazy danych
Podstawy Informatyki Wykład XIX Bazy danych
Bazy Danych1
eksploracja lab03, Lista sprawozdaniowych bazy danych
bazy danych druga id 81754 Nieznany (2)
bazy danych odpowiedzi
Bazy danych
notatek pl g owacki,bazy danych Nieznany
BAZY DANYCH SQL (2)
Bazy danych kolo 2 1 id 81756 Nieznany
Projekt Bazy Danych

więcej podobnych podstron