53
<Insert Picture Here> Oracle Direct Seminar KVSSQLに対応した組み込みDB~オープンソースの活用! BerkeleyDBの御紹介 日本オラクル株式会社、Embeddedビジネス推進部

Oracle Direct Seminar...2010/10/27  · Machine SQLite API + 本セミナーの内容 2 Oracle Berkeley DBは、オープンソースの最も優れた組み込み可能なデータベース

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

<Insert Picture Here>

Oracle Direct Seminar

KVS、SQLに対応した組み込みDB~オープンソースの活用!BerkeleyDBの御紹介

日本オラクル株式会社、Embeddedビジネス推進部

Copyright© 2010, Oracle. All rights reserved.

Open Source 11gR2でSQL対応

Berkley DB SQL

SQL

Compiler

Vurtual

Machine

SQLite

API

+

本セミナーの内容

2

Oracle Berkeley DBは、オープンソースの最も優れた組み込み可能なデータベースです。2010年4月にSQLをサポートする新バージョンがリリースされました。

本セミナーでは、Berkeley DB の概要説明とともに、新バージョンを利用したKey-

Value Store及びSQL双方での開発方法についてご紹介します。

注)便宜上、BerkeleyDBをBDBと略している個所がございます。

Copyright© 2010, Oracle. All rights reserved.

Agenda

Oracleの組み込みデータベースとは?

Berkeley DB製品概要

Berkeley DB を使用した開発

Berkeley DB適用例

ライセンス

3

Copyright© 2010, Oracle. All rights reserved. 4

オラクルの組み込みビジネスについて

機器データの収集、ビジネス利用

ビジネスデータの機器活用

Service Center

自動販売機

Business Applications

料金精算機

POSレジ・ATM

カーナビ・車載機携帯電話・PDA

情報家電

Edge/Client Solutionデータ収集基盤の提供

Server Solution

データ流通/管理基盤の提供

Backend Solution

データ活用基盤の提供

FA機器・製造ライン

医療・臨床検査機器

クライアント・サーバ間のデータ同期

クライアント管理

大規模トランザクションの制御

PDCA支援

データ分析スキーム

他(既存)システム連携

その他システム

Oracle Berkeley DB

Coherence

Oracle TimesTen In-Memory Database

Oracle Database 11g

Weblogic

Oracle Database 11g

Oracle Fusion Middleware

Oracle Applications

Network

Business Intelligence

データ収集

データ管理

フィルタリング

Copyright© 2010, Oracle. All rights reserved.

Agenda

Oracleの組み込みデータベースとは?

Berkeley DB製品概要

歴史、特徴、製品ラインナップ

Berkeley DB を使用した開発

Berkeley DBの適用例

ライセンス

5

Copyright© 2010, Oracle. All rights reserved. 6

Berkeley DB 誕生と発展の歴史

90年代初期、UC Berkeley校は、 AT&Tのライセンス方針の変更に伴い、 BSD UNIX標準のDatabaseであった dbm(AT&Tコード)に代わるDatabaseとして、Berkeley DBを誕生させた。

• Dbmのアーキテクチャを継承しソースコードを最適化

• キーと値ペアのシンプル構造

BSD UnixのDataBaseとして誕生

Netscape社が求めた要件

• 高スループット(スキーマ 必要なし:オーバーヘッド尐)

• 高レスポンス(SQL 必要なし:オーバーヘッド尐)

• アプリケーションにEmbedする方式で利用(非クラサバ)

• マルチ処理の対応(ロック、トランザクション、ACID準拠機能)

• ツールの整備

Netscapeに採用され更に洗練される

1996年、業界スペシャリストが集まり、SleepyCat社設立

• Dr. Margo Seltzer (Harvard Professor, 4.4 BSD FSys

author)

• Keith Bostic (2.10 BSD architect, 4.4 BSD developer)

• Michael Ubell (Ingres, DEC, Britton-Lee [founder], Illustra,

Informix)

• Michael Olson (Britton-Lee, Illustra, Informix)

Sleepycat社 設立

Oracle corporationによる買収

SleepyCatメンバーはオラクルの一員に

SQLへの対応

Copyright© 2010, Oracle. All rights reserved.

Berkeley DBの特徴

•特徴1 : 組み込みに適した小型データベース

•特徴2 : KVS型のAPIとSQLの2種類のAPIをサポート

•特徴3 : オープンソース

•特徴4 : 各種プラットフォーム等の対応

•特徴5 : Oracle DatabaseとのSync機能

7

Copyright© 2010, Oracle. All rights reserved.

組み込みに適した小型データベース

ミッションクリティカルなリアルタイム・アプリケーションに適した組み込みデータベース

高スループット、高レスポンス、低レイテンシを実現

小さいFootPrintで動作

ソフトウエアライブラリの形で提供され、お客様のアプリケションにリンクされる

導入後のDB管理を必要としない

マルチプロセスとマルチスレッドをサポート

トランザクション機能により、ACID特性とリカバリーを提供

HA機能により、より高い信頼性と拡張性を提供

8

特徴1

Copyright© 2010, Oracle. All rights reserved.

KEY(プライマリ データベース:

employee.dbの例)DATA

キー / データペア と 4タイプのインデックス

型にとらわれずに自由にデータを入れることが出来る

Cの構造体などもそのままDATA部分に格納出来る

一つのKeyにつき個のカラムをもったレコードとして扱える

一意キーでデータに素早くアクセス

重複キー許可で複数データを扱う

4つのインデックスから選択

First name Last name Phone number City State ZipFirst name Last name Phone number City State Zip

IDIDID First name Last name Phone number City State Zip

B-tree Hash Queue 又は Recno

シーケンシャルデータの高速化

ランダムな大量データの高速化

メモリがたくさんある時に

・Queue形式でデータを扱う時

・テキストファイル的なデータの時

Oracle Berkeley DBのデータ構造

9

特徴2:KVS

Copyright© 2010, Oracle. All rights reserved.

セカンダリインデックスの内容は、自動的に維持管理される

セカンダリインデックスへ直接更新したり挿入したりはしない

プライマリへの挿入はセカンダリへの追加になる

プライマリデータを削除するとセカンダリも削除される

Last name ID セカンダリインデックス : lastName.db

ID First name Last namePhone

numberCity State Zip

KEY プライマリデータベース: employee.dbDATA

KEY以外の値を基にレコードを検索するための仕組み

Last nameが、セカンダリインデックスのキーとなる

プライマリーとセカンダリーの関連制御

プライマリ

セカンダリー

自動連携

セカンダリインデックス

10

特徴2:KVS

Copyright© 2010, Oracle. All rights reserved.

Last name

複数DB間で、トランザクション・ロック・メモリプール等を統合可能

employee.db

department.db

lastName.db

deptName.db

log.0000000002log.0000000001

__db.002__db.001

ENV: Company

+First name Last name Phone number City State ZipFirst name Last name Phone number City State ZipIDIDID First name Last name Phone number City State Zip

プライマリ データベース: employee.db

Last name ID

セカンダリ インデックス : lastName.db

IDIDLast name

• トランザクション

• メモリプール

• ロック

• ログ

統合された環境として、情報・ステータスの共有が可能にトランザクションON/OFF、ロギングON/OFF、排他処理ON/OFF, リカバリON/OFFの設定

環境内のデータに対する複数操作は、1つのトランザクションでカプセル化

環境中の最近アクセスされた全てのデータは、統合されたメモリプールにキャッシュ

DB環境(Env)による統合制御

11

特徴2:KVS

Copyright© 2010, Oracle. All rights reserved.

SQLへの対応

Java Object API

(Collections & Direct Persistence Layer)XML/XQuery API

Relational SQL API

(SQLite3, ODBC, JDBC)

Key/Value Pairs: data manipulation Get/Put and Cursor API

(C, C++, C#, Java, Perl, Python, Ruby, Tcl, etc.)

Configuration Options

Data Store (DS) Concurrent (CDS) Replication (HA)Transactional (TDS)

or

第4のAPIとして、新たにSQL APIの層が追加 (11gR2~)

12

特徴2:SQL

Copyright© 2010, Oracle. All rights reserved.

SQLへの対応• SQLite互換のAPI

• SQLiteのSQLレイヤをBerkeley DBにそのまま取り込む形• 将来にわたるAPI互換の維持• オラクルは、SQLiteコンソーシアムのメンバーとして活動

• なぜ、SQLite互換か?• SQLiteは、シンプルで使いやすいAPIを提供• 多くの採用実績と、付随するライブラリの数、種類が豊富さ• SQLiteの性能、品質等に必ずしも満足していないお客様に対し、アプリへの変更を最小限に抑えた形によるdrop-in

• SQLiteをBerkeley DBに置き換えるメリット• 高いパフォーマンスとスケーラビリティ• 大量のデータトランザクションをサポート

(Tera Byteデータ)• 高い信頼性(数百万の顧客でDeploy)

• カスタマーサポート

13

特徴2:SQL

Copyright© 2010, Oracle. All rights reserved.

サポート機能

Almost Full SQL92 Support

Dynamic SQL

Triggers

Prepared Statements

Conditional Clauses

Cancel of SQL

SQLite R-Trees

SQLite Full Text Search

Integration with Oracle Mobile Sync Server for SQL data

SQLite SQL Compliance

Additional Features

14

特徴2:SQL

Copyright© 2010, Oracle. All rights reserved.

オープンソース

• BerkeleyDBは、ソースコードを公開

• 未対応のOSに、お客様ご自身で対応することが可能。その際の動作検証用テストアプリケーションを提供

• オラクルでは、世界中のエンジニアが自由に技術的なディスカッションできる場(インターネット上のフォーラム)を提供

• 既に膨大なナレッジベースが構築済みhttp://forums.oracle.com/forums/category.jspa?categoryID=246

15

特徴3

Copyright© 2010, Oracle. All rights reserved.

各種プラットフォーム等の対応

Unix/Linux / Android

Windows XP, Vista

Mac OS/X

Several different embedded Linux distributions

Std Posix Unix variants: Solaris, HP/UX, etc.

OS Support

C/C++

C#

JAVA

PHP

PYTHON

etc.

API

16

ODBC

JDBC

ADO.NET

Drivers(SQL)

Most tools available for SQLite

BDB Utilities

sqlite3 Shell Command

Dump / Load Commands

Database Consistency Checking

Available Tools

特徴4

Copyright© 2010, Oracle. All rights reserved.

Oracle DatabaseとのSync機能

• Mobile Sync Serverが、クライアントDBとして新たにBerkeley

DB (SQL)に対応

17

Ap

plic

atio

n

Oracle Database

Oracle Berkeley DB

sqlite3(), ODBC,

JDBC APIs

SQLite LibraryOracle Mobile Sync Servers ※

※Mobile Sync Serverは新製品ではありません。

SQLite

Mobile

Client

BDB Library

Client Server

特徴5

Copyright© 2010, Oracle. All rights reserved. 18

表などのデータベースオブジェクト

スナップショット等のオブジェクト

Mobile

Serv

er

Mo

bile

Clie

nt

Me

ssa

ge

Ge

ne

rato

r&

Pro

ce

sso

r

更新トリガ

更新トリガ

Network

Client Server

クライアントとサーバー間、同期の仕組み

データ

の更新

データ

の更新

エラー・キュー

適用処理

Download

Upload

構成処理

Mobileサーバーはアウトキューから前回同期の結果を抽出。

クライアントから変更差分データを受信。Mobileサーバーはイン・キューに格納する。

変更差分

変更情報

イン・キュー

アウト・キュー

Oracle DatabaseとのSync機能特徴5

Copyright© 2010, Oracle. All rights reserved.

Agenda

Oracleの組み込みデータベースとは?

Berkeley DB製品概要

Berkeley DB を使用した開発

ダウンロード、フォルダ構成、BUILD方法、API解説、など

Berkeley DBの適用例

ライセンス

19

Copyright© 2010, Oracle. All rights reserved.

ダウンロードBerkeley DBのソースがダウンロード可能。また、Windows版のみバイナリも同梱

20

Clickしてダウンロード

http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html

Copyright© 2010, Oracle. All rights reserved.

機能セットの概要

● High Availability (HA):フォルトトレランスのレプリケーション

● Transaction Data Store(TDS):ACIDトランザクションとリカバリ● Concurrent Data Store(CDS):複数のライターとリーダー● Data Store (DS):単一のライター、複数のリーダー

※Berkeley DB, TDS 版のみ、SQL対応(2010/10 現在)

Berkeley DBファミリーは、4つの異なる機能セットで提供されており、各セットでは増分形式で追加機能を得ることができます。

Berkeley DBの製品と機能セットの関係

21

DS CDS TDS HA

BDB ● ● ● ●

BDB Java ● ●

BDB XML ● ● ● ●

Copyright© 2010, Oracle. All rights reserved.

Berkeley DBフォルダ構成

• os_xxx : OS依存コード

• os: OS非依存コード

• build_xxx: OSごとBUILD

• example_xxx: 言語ごとの

サンプルソース

• docs : ドキュメント

• db_xxx: Utilityのソース

• test: テストスクリプト

22

Copyright© 2010, Oracle. All rights reserved.

UNIX/POSIX上でのBUILD方法Linux、UNIX(BSDを含めて)のBUILD方法:

• 基準のBUILD:

• Standard GNU 対応: 殆どのStandard GNU autoconfパラメータのご使用

• Enable/Disable Flag: --enable -cxx -compat185, -java -rpc-tcl -pthread-api –

debug

• ライブラリオプション: --disable-shared, --disable-static

• BDB SQL:

BUILDオプション:--enable-sql_compat option

ライブラリ: “libdb_sql”

23

>cd build_unix

>../dist/configure

>make install

autoconf –enable / –disable flag

にてConfigurationの設定

詳細はManualをご参照

Copyright© 2010, Oracle. All rights reserved.

詳細BUILDーオプションとUTILITY

24

デバッグ版

• TCL API

ご使用の場合:ダイナミックリンク

ご使用の場合:スタティックリンクをお勧め

• Non-TCL デバッグオプション:

--enable-debug -diagnostic

• RPC テストの場合:

--enable-rpc

• ログメッセージをご使用の場合:

--enable -debug_rop --enable-debug_wop

リリース版•デフォルトのオプションでProduction版をコンパイル

• Replication マネージャのご使用:--enable-pthread_api

• Mutexのご使用の場合:--with-mutex=MUTEX

• LargeファイルサポートをDisableする場合:--disable-largefile

Memory最適化

• コードサイズ最適化 --enable-smallbuild

• 不要の機能をDisable

--disable -cryptography –hash –queue –

replication -statistics -verify

Utility

• db_dump, db_load: データベースのロードとダンプ• db_verify :データベーススキマの確認• db_recover :データベース環境のリカバリ• db_checkpoint :トランザクションチェックポイント• db_deadlock :Deadlockテスト• db_archive : ログファイルのアーカイブと削除• db_stat :データベースと環境のStatistics

Copyright© 2010, Oracle. All rights reserved.

基本コンセプト

Oracle Berkeley DBはオブジェクト指向設計の非RDB高速ストレージエンジン

オブジェクト指向設計のライブラリ群

オブジェクトはハンドル毎に制御する

データベース:DBハンドル

キーとデータ:DBTハンドル

カーソル:DBCハンドル

DB環境:DB_ENVハンドル

トランザクション:DB_TXNハンドル

APIの操作はハンドルに対するメソッドとして提供

API解説~KVS

25

Copyright© 2010, Oracle. All rights reserved.

DBハンドルを使い、データベースアクセスが可能

DBハンドル

db_create DBハンドル作成

DB->open() DBをオープン(DBと接続)

DB->close() DBをクローズ(DBとの接続断)

DB->get() DBからキーを使って検索

DB->put() DBにキー/データ・ペアを挿入/変更

DB->del() DBからキー/データ・ペアを削除

DB->associate() プライマリデータベースにセカンダリインデックスを関連付ける

DB->join() 複数のセカンダリインデックスの論理積(AND)で検索

API解説~KVS

26

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス手順(KVS)

データベースオープン

DB->open

DBハンドル作成

db_create

データ検索

DB->get

データベースクローズ

DB->close

データ削除

DB->del

データ挿入/更新

DB->put

API解説~KVS

27

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス基本操作- DBハンドル作成

db_create関数でDBハンドルを作成します。

DB *pDb = NULL;

/* DBハンドルを作成 */

db_create(&pDb, NULL, 0);

/* ファイル名を指定してデータベースをオープン。ファイルがない場合 新規作成 */

pDb->open(pDb, NULL, “student.db”, DB_CREATE | DB_BTREE);

/* ここからDBハンドルを使ってデータベースをアクセス*/

……

/* 使用後DBハンドルをクローズ*/

pDb->close(pDb, 0);

コード例 (データベースアクセス処理フロー)

DB環境機能を利用する場合db_createメソッドのdbenvパラメータにDB_ENVハンドルを設定します。

トランザクション機能を利用する場合openメソッドのflagsパラメータにDB_AUTO_COMMITを設定します。

マルチスレッドでご利用になる場合openメソッドでのflagsパラメータDB_THREADを設定します。

HASHアクセスメソッドを利用する場合openメソッドのflagsパラメータでDB_BTREEの代わりにDB_HASHを設定します。

ヒント

API解説~KVS

28

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス基本操作-データ挿入

DBハンドルのputメソッドを使って キー/データペアを挿入します。

キーとデータはDBT構造体を使ってputメソッドに渡します。

DBT dbtk, dbtd;

/* 保存するキー/データペア */

char *key = “0001”;

struct student_data data = {“JOHN”, “SMITH”, „M‟, 32};

/* DBT構造体をクリア */

memset(&dbtk, 0, sizeof(DBT));

memset(& dbtd, 0, sizeof(DBT));

/* キーとデータを格納するDBT構造体を設定します。dataメンバーはポインタ、sizeメンバーはバイト数を設定*/

dbtk.data = key, dbtk.size = strlen(key);

dbtd.data = &data, dbtd.size = sizeof(data);

/* キー/データペアを保存します*/

pDb->put(pDb, NULL, &dbtk, &dbtd, 0);

コード例 (データ挿入)

トランザクション機能を利用する場合 putメソッドのtxnidパラメータを設定します。

データを新規追加する場合 putメソッドのflagsパラメータにDB_NOOVERWRITEを設定します。

ヒント

API解説~KVS

29

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス基本操作-データ検索

DBハンドルのgetメソッドを使って 指定されたキーのデータを検索します。

キーとデータはDBT構造体を使ってgetメソッドに渡します。

DBT dbtk, dbtd;

/* 検索するキー */

char *key = “0001”;

memset(&dbtk, 0, sizeof(DBT));

/* キーを格納するDBT構造体を設定します */

dbtk.data = key, dbtk.size = strlen(key);

/* 指定されたキーのデータを検索します*/

pDb->get(pDb, NULL, &dbtk, &dbtd, 0);

/* ここからデータを処理します。*/

/* データはdbtdに保存されます。 dataメンバーはポインタ、sizeメンバーはバイト数になります。 */

……

コード例 (データ検索)

トランザクション機能を利用する場合getメソッドのtxnidパラメータを設定します。

ヒント

API解説~KVS

30

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス基本操作-データ削除

DBハンドルのdelメソッドで指定されたキーのデータを削除します。

キーはDBT構造体を使ってdelメソッドに渡します。

DBT dbtk;

/* 削除するキー */

char *key = “0001”;

memset(&dbtk, 0, sizeof(DBT));

/* キーを格納するDBT構造体を設定します */

dbtk.data = key, dbtk.size = strlen(key);

/* 指定されたキーのデータを削除します*/

pDb->del(pDb, NULL, &dbtk, 0);

コード例 (データ削除)

トランザクション機能を利用する場合 delメソッドのtxnidパラメータを設定します。

ヒント

API解説~KVS

31

Copyright© 2010, Oracle. All rights reserved.

データベースアクセス手順(SQL)

データベースオープン

sqlite3_open()

データベースクローズ

sqlite3_close()

SQL文の処理

sqlite3_exec()

API解説~SQL

32

Copyright© 2010, Oracle. All rights reserved.

データベースオープン

sqlite3_open()関数でDBをオープンします。

sqlite3 *db= NULL;

char *zErrMsg = 0;

int rc = 0;

//データベース名の設定

char dbname[10]=“test.db” ;

//SQL文の設定

char strSQL[20]=“Select * from employee”;

//データベースをオープンする

rc = sqlite3_open(dbname, &db);

if( rc ){

fprintf(stderr, "Can't open database: %s¥n", sqlite3_errmsg(db));

}

//データベースをクローズする

sqlite3_close(db);

コード例 (データベースアクセス処理フロー)

API解説~SQL

33

Copyright© 2010, Oracle. All rights reserved.

SQL文処理

sqlite3_exec()

SQL文を処理して、Resultセットの読み込み。

// SQLを処理する

rc = sqlite3_exec(db, strSQL, callback, 0, &zErrMsg);

if( rc!=SQLITE_OK ){; //エラーチェック

fprintf(stderr, "SQL error: %s¥n", zErrMsg);

}

sqlite3_close(db); //データベースをクローズする

//Recordごとに呼ばれる

static int callback(void *NotUsed, int argc, char **argv, char **azColName){

int i;

for(i=0; i<argc; i++){//Columnごとデータ値を読み込む

printf("%s = %s¥n", azColName[i], argv[i] ? argv[i] : "NULL");

}

}

コード例 (データ挿入)

API解説~SQL

34

Copyright© 2010, Oracle. All rights reserved.

Agenda

Oracleの組み込みデータベースとは?

Berkeley DB製品概要

Berkeley DB を使用した開発

Berkeley DBの適用例

ライセンス

35

Copyright© 2010, Oracle. All rights reserved.

Financial

ServicesE-BusinessEnterprises

Storage &

Systems Mgmt

Enterprise

InfrastructureSecurityNetworking

Telecom

Infrastructure

Devices/

Appliances

Berkeley DB customersProven Customer Base

Oracle Berkeley DB

ISVs & OEMs Enterprises

36

Copyright© 2010, Oracle. All rights reserved. 37

Google シングル サインオン:

Google のユーザ認証世界中から来る常時アクセス負荷の重さ素早いユーザ認証の実行

Berkeley DBの使用法:Google利用者のアカウント設定情報管理Berkeley DB HA利用によるレプリケーション

Berkeley DBの価値:

高速アクセス高負荷中の応答時間信頼性高可用性スケーラビリティオープンソース

Googleアカウント

Gmail

Google トーク

Googleグループ

Google アラート

Froogle ショッピングリスト

パーソナライズ検索

パーソナライズホームページ

Orkut ソーシャルネットワーク

Google アンサー

Google Web API

その他

Berkeley DB HA は、Googleのパーソナライズ・サービスで利用されています

Berkeley DBが使われている機能

ユーザ事例:Google様Google:シングル・サインオン と パーソナライゼーション

Copyright© 2010, Oracle. All rights reserved. 38

Motorola A760

Motorola A780

Motorolaのスマートフォン:オープンソース製品を使用して携帯向けEZXプラットフォームをデザイン

Berkeley DB、MontaVista Linux、Trolltech Qtをベストなオープンソースソリューションとして選択

累計、500万台以上を出荷

Berkeley DBの使用法:住所録

カレンダー

メッセージストア

ダウンロード用ファイルシステム

Berkeley DBの価値:リソース制約が厳しいデバイスで動作

ゼロアドミニストレーション

トランザクションによる電源遮断対応

Motorola E680

ユーザ事例:Motorola様

Motorola社 スマートフォン用プラットフォームの事例

Motorola

A1200 Ming

Motorola A768

Berkeley DB TDS は、Motorola のスマートフォンに組込まれています

Copyright© 2010, Oracle. All rights reserved. 39

Mitel NetworkのVoIP製品:企業向けオールインワンIP PBXソリューション

Berkeley DBの使用法:データ設定ユーザプロファイル管理

Berkeley DBの価値:独自開発コンポネントを組み込みDBへ置き換え製品開発期間の9ヶ月短縮に成功高いTCO (トータルコストの安さ)

ユーザ事例:Mitel様

Mitel社 VoIP用プラットフォームの事例

Berkeley DB TDS は、Mitel のVoIPプラットフォームに組込まれています

Mitel 3100 ICP

Mitel 3300 ICP

カナダのMitel Networkは、ブロードバンドネットワークを介して、音声・ビデオ・データを集束させるマーケットリーダー企業です。

Copyright© 2010, Oracle. All rights reserved.

• Requirements:

• Flexible schema

• Simple modification of fields

• Facilitates plug-in, add-on design

• Cross platform: Linux, Windows, PDA (ARM)

• Reliable: Recovers from accidental shutdown

• Small footprint (<1MB)

• Efficient (A million transactions a second)

• Benefits: Better platform support, better performance and resource utilization, faster time to market

ECR-like Interface

Oracle Berkeley DB

Open API for S/W

Development

ユーザ事例:Firich様

Firich社 POS端末の事例

40

Copyright© 2010, Oracle. All rights reserved.

Agenda

Oracleの組み込みデータベースとは?

Berkeley DB製品概要

Berkeley DB を使用した開発

Berkeley DBの適用例

ライセンス

41

Copyright© 2010, Oracle. All rights reserved. 42

Berkeley DBのライセンス体系

デュアルライセンスモデル

• オープンソースライセンス自社利用やAPソースコードを公開する場合には、弊社のサイトよりダウンロードし、無償にてご利用頂くことが可能です。

• 商用ライセンス機器、ソフトウェアにBerkeley DB を組みこみ製品として、再販をする場合に適用されるライセンスとなり、弊社との条件に基づきロイヤリティをお支払い頂きます。

※提供価格は、製品、ビジネス規模によっても異なりますので、個別にお問合わせください。

Copyright© 2010, Oracle. All rights reserved.

Appendix

43

Copyright© 2010, Oracle. All rights reserved.

Useful link

製品メインページ (ダウンロードなどへのリンク有り)

http://www.oracle.com/technology/global/jp/products/berkeley-db/index.html

機能セットについての解説

http://www.oracle.com/technology/global/jp/products/berkeley-db/feature-sets.html

ドキュメント

http://www.oracle.com/technetwork/database/berkeleydb/documentation/index.html

SQL, Syntax

http://www.sqlite.org/lang.html

FAQ

http://www.oracle.com/technetwork/database/berkeleydb/db-faq-095848.html#

サポート

support.oracle.com

44

Copyright© 2010, Oracle. All rights reserved.

よくある質問 (1/4)

技術全般

Q1.高速化のためのTuningパラメータのようなものはありますか?

ページサイズや、キャッシュメモリのサイズ、CommitにおけるディスクI/Oの待ち制御、その他TIPSがございます。詳しくは弊社担当まで。

Q2. ロックの単位は?

ページ単位です。注)Oracle databaseでいうデータブロックに相当 。

Q3.必要なメモリサイズは?

Cache size: 10MB(default), 100KB(min.). Log buffer size: 32KB. Typically an

additional 100KB is used for other purposes. Min. total size approx.1MB.

Q4. デフォルトページサイズは?

ファイルシステムに依存します。詳細はManualをご参照。

Q5. テーブル数の制限は?

ファイルハンドルに依存しますか。

Q6. テーブルサイズの制限は?

システムMax.ファイルサイズに依存します。

45

Copyright© 2010, Oracle. All rights reserved.

よくある質問 (2/4)

Q7.テーブル内のにレコードサイズ制限は?

特にない。Signed 64-bit indexの範囲内。

Q8. In-Memory DBとして使用可能ですか?

可能です。

Q9. 同期機能はKVSでも可能ですか?

いいえ。SQLのみです。

Q10. High Availability (HA)の参考になるサンプルコードはありますか?

Berkeley DBに同梱しているサンプルアプリの中に、TDS版で実装したアプリとHA移植後のアプリのコードがあります。両者を見比べることで、理解ができます。

Q11. High Availability (HA)版において、マスター側とレプリカ側のOSを異なる組み合わせにすることは、可能ですか?

可能です。

46

Copyright© 2010, Oracle. All rights reserved.

よくある質問 (3/4)Android関連

Q12.Android上での動作にどのような形がありますか?

以下の3つの形が可能です。

1) Androidに含まれるSQLiteを、Berkeley (SQL)にそのまま置き換える。

2) JAVAのアプリからBerkeley JAVAエディションをリンクする。

3) JAVAのアプリからJNIとしてBerkeley (SQL)をリンクする。

SQL関連

Q13.従来からのKVS型APIと、SQLのAPIをミックスして使用できますか?

いいえ。

Q14.今回SQLに対応したことで、従来のKVSのAPIは無くなりますか?

両方、継続します。SQLレイヤが内部的にKVSのAPIを使用していますし、KVSのニーズは依然高いです。

47

Copyright© 2010, Oracle. All rights reserved.

よくある質問 (4/4)

Q15.SQLを使用する場合、通常版/JAVA版/XML版のどれを選べば良いですか?

通常版です。SQLはTDSのみ対応しています。(HAは対応予定。)

Q16. ODBC, JDBCはどれが使用可能ですか?

オラクルでは、Wernerドライバをサポートしています。

その他

Q17.ダウンロードは、機能セット(DS/CDS/TDS/HA)ごとに異なりますか?

同じです。それぞれごとに使用可能な関数が異なります。

Q18.バイナリの提供はありますか?

Windowsのみバイナリでも提供しています。それ以外はソース提供のみ。

Q19.開発中にBerkeleyDBのバージョンアップが行われた場合、既に生成したDBファイル等は、新バージョンでも使えますか?

はい。但し、SQL版で生成したファイルと、KVS型で生成したファイルの間での互換はありません。

48

Copyright© 2010, Oracle. All rights reserved. 49

OTN×ダイセミ でスキルアップ!!

※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。

Oracle Technology Network(OTN)を御活用下さい。

・一般的な技術問題解決方法などを知りたい!・セミナ資料など技術コンテンツがほしい!

一般的技術問題解決にはOTN掲示版の

「データベース一般」をご活用ください

http://otn.oracle.co.jp/forum/index.jspa?categoryID=2

過去のセミナ資料、動画コンテンツはOTNの

「OTNセミナー オンデマンド コンテンツ」へ

http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html

※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。

DB

以外の任意の掲示板

Copyright© 2010, Oracle. All rights reserved. 50

OTNセミナー オンデマンド コンテンツダイセミで実施された技術コンテンツを動画で配信中!!

ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。

※掲載のコンテンツ内容は予告なく変更になる可能性があります。期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。

OTN オンデマンド

最新情報つぶやき中

oracletechnetjp

・人気コンテンツは?

・お勧め情報

・公開予告 など

Copyright© 2010, Oracle. All rights reserved. 51

Oracle エンジニアのための技術情報サイト

オラクルエンジニア通信http://blogs.oracle.com/oracle4engineer/

• 技術資料

• ダイセミの過去資料や製品ホワイトペーパー、スキルアップ資料などを多様な方法で検索できます

• キーワード検索、レベル別、カテゴリ別、製品・機能別

• コラム

• オラクル製品に関する技術コラムを毎週お届けします

• 決してニッチではなく、誰もが明日から使える技術の「あ、そうだったんだ!」をお届けします 先月はこんな資料が人気でした

Oracle Database 11gR2 RAC インストレーション・ガイド ASM 版 Microsoft Windows x86-64

Oracle Database 11gR2 旧バージョンからのアップグレード

オラクルエンジニア通信

最新情報つぶやき中

oracletechnetjp

Copyright© 2010, Oracle. All rights reserved.

オラクル クルクルキャンペーン

52

Enterprise Editionはここが違う!!

•圧倒的なパフォーマンス!

•データベース管理がカンタン!

•データベースを止めなくていい!

• もちろん障害対策も万全!

Oracle Databaseのライセンス価格を大幅に抑えて

ご導入いただけます

詳しくはコチラ

http://www.oracle.co.jp/campaign/kurukuru/index.html

あのOracle Database Enterprise Editionが超おトク!!

お問い合わせフォームhttp://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28

多くのお客様でサーバー使用期間とされる

5年間にライセンス期間を限定

•期間途中で永久ライセンスへ差額移行

• 5年後に新規ライセンスを購入し継続利用

• 5年後に新システムへデータを移行

2010年11月30日まで

Copyright© 2010, Oracle. All rights reserved. 53

http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28

Oracle Direct 検索

あなたにいちばん近いオラクル

Oracle Directまずはお問合せください

Web問い合わせフォーム フリーダイヤル

専用お問い合わせフォームにてご相談内容を承ります。

※フォームの入力には、Oracle Direct Seminar申込時と同じログインが必要となります。

※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。

0120-155-096

※月曜~金曜 9:00~12:00、13:00~18:00

(祝日および年末年始除く)

システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。

システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。

必ず挿入してください