<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.
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プロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
必ず挿入してください