oracle berkeley database · oracle berkeley database ugrađene baze podataka darko benšić,...

55
Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, [email protected] HrOUG 2007, Rovinj, 16. do 20. listopada 2007.

Upload: others

Post on 18-Feb-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

OracleBerkeley Database

Ugrađene baze podataka

Darko Benšić, [email protected]

HrOUG 2007, Rovinj, 16. do 20. listopada 2007.

Page 2: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Agenda

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB Java EditionBerkeley DB XMLGoogle Account

Page 3: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley???

University of California (Mike Olson, Margo Seltzer i Keith Bostic) ‏

SleepycatOracle ugrađene (eng. embedded) baze podataka•TimesTen (In-memory database) ‏•Berkeley DB•Oracle Lite

Page 4: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley???200 milijuna korisnikaNajpoznatije implementacije:•OpenLDAP•BSD Unix•Sandmail•Apache

Ruteri i switchevi (Cisco, Lucent, Alcatel)Storage uređaji (EMC i HP)Sigurnosni sustavi (RSA Security i Symantec)Web aplikacije (Google Account, Amazon.com)

Page 5: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley???Licenciranje:•Open source•Komercijalna licenca

Open source•Dostupan kod•Portanje, integriranje i debugiranje

Dostupnost•OS: Linux, Unix, Mac OS X, ROTOS, Windows•API: C, C++, Java, Perl, Python, PHP, Tcl, Ruby i dr.

Page 6: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley???Berkeley obitelj produkata:

•Berkeley DB•Berkeley DB Java Edition•Berkely DB XML

Page 7: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Slijedi...

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB Java EditionBerkeley DB XMLBerkeley & Google Account

Page 8: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB tehnologijaCilj•Mobilni uređaji•Enterprise rješenja

Svojstva•ACID (Atomicity,Consistencey,Isolation, Durability)•Recovery•Integritet podataka•Concurrency•Chaching

Page 9: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Zašto ugrađene baze?

Ovisnost o drugim komponentamaBrži deploymentJednostavnija instalacija i integracijaSmanjena potreba za administracijomNizak TCO (Total Cost of Ownership)Niža cijena implementcije, administracije Niža cijena HW

Page 10: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB vs. RDBMS

Berkeley DB je:LibraryAPINe postoji SQLImplementacija – aplikativani podatkovni modelSustav bez administracije

Page 11: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB vs. RDBMS

SELECT amount FROM customer;SELECT dept.name FROM dept

WHERE NOT EXISTS (SELECT dept_id FROM emp WHERE emp.dept_id = dept.id);

Page 12: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB vs. RDBMS

Page 13: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Slijedi...

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB Java EditionBerkeley DB XMLBerkeley & Google Account

Page 14: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DatabaseKomponenteOkruženjePristupanje podacimaTransakcijeModeliAPI sučeljaAlatiReplikacija i HA

Page 15: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB - komponente

Access methodTransactionsReplicationShared MemoryLockingLogging

Page 16: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB - komponente

Page 17: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB - okruženje

Datotečni sustav•Baza podataka – podaci•Dijeljena memorija •Log datoteke

Page 18: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB - okruženje

Page 19: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Pristup podacima

Gdje su podaci? •Hash tablica•B-tree •Numeric•Queues

Page 20: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – transakcijeACID svojstva•Atomicity

•Consistencey

•Isolation

•Durability

Prednosti?•Spremljeni podaci se ne gube

•Više operacija -> jedna cjelina

•Rollback

Page 21: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – modeli

•Samostalne aplikacije•Direktna veza sa adresnim prostorom

•Više threadova

•Locking mehanizam•Brži pristup

•Veća kontrola procesa

•Serverske aplikacije•Klijenti IPC/RPC

•Jedna aplikacija -> jedan adresni prostor

Page 22: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – API sučelja

Programski jezici:•C, C++, Java (JNI)Skriptni jezici:•Perl, Python, Ruby, Tcl,...

Više aplikacija mogu dijeliti jedno okruženje

Page 23: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – alati

Page 24: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Replike i HA

Jedno okruženje

Egzistira:

•Više servera

•Više diskova

•Više particija

Pristup:

•Više aplikacija

•Više procesa

•Više thredova

Page 25: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Replike i HA

Okruženje:

Single-Master •Čitanje i pisanje

Replika •Čitanje

Upravljanje:Replication Manager

API

Page 26: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Primjer

Kreiranje i otvaranje okruženja

Page 27: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Primjer

Kreiranje i otvaranje baza

Page 28: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Primjer

Čitanje, moificiranje i pisanje u bazu

Page 29: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Slijedi...

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB XMLBerkeley DB Java EditionBerkeley & Google Account

Page 30: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML

KomponenteXQuery mehanizamXML Document managerXML indexerAPI sučelja

Page 31: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML

XML native databaseXQuery i XPath standardPohrana i modifikacija>TB ACID transakcijska svojstvaUTF kodna stranicaKombinacija XML DB i DB

Page 32: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - Komponente

XML Document ManagerXML indexerXQuery engine

Page 33: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - DokumentiXML Document Manager•Storage (Berkeley DB)•Modifikacija•Dohvat podataka

Svaki dokument posjeduje spremnik•Jedinstveno ime•Podatkovni rječnik•Prostor za sadržaj dokumenta•Alate za statistiku

Page 34: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - Dokumenti

Istovremeni rad sa više spremnikaDokument može biti:•Razlomljen u čvorove (eng.node)

•Neoštećen (eng. Intact)

Mehanizam za validaciju

Page 35: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - Indeksi

XML indexerIndeksi na razni čvoraIndeksi na razini elementaIndeksi na razini atributa

Kreiranje i brisanje indeksa za vrijeme korištenja.

Page 36: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - XQuery

Cost based query optimizerXQuery 1.0XPath 2.0

Berkeley DB XML je potvrdila W3C organizacija.

Page 37: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB XML - API

C, C++Berkeley DB XML Java APIApache modul

Page 38: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Slijedi...

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB XMLBerkeley DB Java EditionBerkeley & Google Account

Page 39: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB JE - okruženje

OkruženjeDirect Persistence Layer (DPL)API

Page 40: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB Java Edition

Napisana u JaviACID transakcijska svojstvaConcurrencyLoggingBtree struktura•String•Integer•Java tipovi

Page 41: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB JE - DPL

Direct Persistence Layer (DPL)•Persistentni objekti•Bez implementacije sučelja•Primarni i sekundarni ključevi•Java kolekcije•Transakcijski mehanizam

Page 42: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB JE - API

Samo Java•Base API•Collections API•Direct Persistence Layer

Page 43: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB JE - Performanse

Page 44: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Slijedi...

BerkeleyBerkeley tehnologijaBerkeley DatabaseBerkeley DB XMLBerkeley DB Java EditionBerkeley & Google Account

Page 45: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google Accounts

Google SSOSSO arhitekturaIntegracija baza podataka

Page 46: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google Accounts

Google SSO (Single Sign-On)•Jedinstveni podaci•Više Internet servisa•Više različitih lokacija

Korisnički gledano: jednostavno!

Page 47: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google AccountsGoogle SSO arhitektura:

SSO database:•Korisničko ime•Korisnički račun•Servis•N x 100 dijelova (Shards)“Shards” = raplicirana Berkeley DB (5 do 15 replika)SSO podatak = Btree struktura

Page 48: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google Accounts

Google SSO arhitektura:

Shards•Master

•Min 5 master-replika (electable replica)

•Min 50% repliciranih master-replika

•Dodatne read-only replike

Page 49: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google Accounts

Google SSO arhitektura:

Shards•ID Map

•UserName – UserID

•UserID - Shards

•Account Data•UserID – UserData

•ServiceID - ServiceData

Page 50: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google Accounts

Page 51: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – Google AccountsIntegracija:

Replikacija ovisi o aplikaciji.•Kvorum protokol

•Garantira spremanja podataka

•Paxos i Viewstamped algoritam

•Zakupljivanje (eng. Leases)•Lease timeout interval

•Članstvo u replikaciji grupa!•DNS (IP i master leases timeout)

Page 52: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB – što odabrati?1. Berkeley DB

●Heterogeni sustav (Java,C++,..)●Pisan prema ANSI C●Hash, Btree, Record i Queue

2. Berkeley DB JE●Samo Java okruženje●Pisan u Javi●Samo Btree

3. Berkeley DB XML

Page 53: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Berkeley DB ... i na kraju ...

Page 54: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

Oracle Berkeley Database

Page 55: Oracle Berkeley Database · Oracle Berkeley Database Ugrađene baze podataka Darko Benšić, dbensic@croz.net HrOUG 2007, Rovinj, 16. do 20. listopada 2007

H V A L A !

Oracle Berkeley Database