Upload
trantuyen
View
232
Download
5
Embed Size (px)
Citation preview
1
1本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
「BDEオルタナティブ」
既存のアプリの乗り換え先大全
キムラデービー(http://kimuradb.com)代表
木村明治(KIMURA, Meiji)E-mail: [email protected]
【A3】Delphiテクニカルセッション
2本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
アジェンダ
• はじめに
• BDEオルタナティブ
• シナリオ
• BDE + Paradox• BDE + InterBase• BDE + Oracle
• デモ&メモ
• BDEアプリが今後直面する問題
2
3本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
はじめに
4本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
MySQL
データベースアクセス概略
• Borlandのデータベースアクセス
• BDE• IBX• dbExpress• BDP
Kylix
DelphiC++Builder
BDE
BDP
dbExpress
IBX
ParadoxdBase
RDBMS(旧)
各種RDBMS
InterBase
Pro
Ent
3
5本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
MySQL
BDEに注目すると….• Borlandのデータベースアクセス
• BDE
DelphiC++Builder
BDE
ParadoxdBase
RDBMS(旧)
各種RDBMS
InterBase
6本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE
• カスタムのSQL linkドライバーが必要
• データベースへのアクセスと更新を統合
• 個々のDBのSQL拡張は未サポート
• SQL linkドライバーのサポートは終了。
• The Future of the Borland Database Engine (BDE) and SQL Links
• http://dn.codegear.com/article/28688
• 今後はADO, dbExpressを推奨。
4
7本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
既存のBDEアプリケーションといえば….• Borlandのデータベースアクセス
• BDE
Delphi 5~7C++Builder5,6
BDE 5.2
ParadoxdBase
RDBMS(旧) http://202.33.253.145/bde/support.html#bde_new
ローカルアクセス
リモートアクセス
8本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
InterBase5.x
InterBase6.0
InterBase6.0OpenSource版
Firebird1.0
InterBase6.5
Firebird1.5
InterBase7.x
Firebird/InterBaseとOracle/SQL Server【無償】
【有償】 【日本未発売】
【機能的にほぼ同一】
Firebird2.0
InterBase2007
【2007/3にリリース】
Oracle8.1.7
Oracle9i R2
Oracle10g
Oracle10g R2
【BDE5.2で対応】
SQL Server6.5
SQL Server7.0
SQL Server2000
SQL Server2005
SQL Server2005 SP2
【2006/11にリリース】
MSDE7.0 MSDE2000 SQL Server 2005 ExpressOracleXE
5
9本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDEオルタナティブ
10本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE乗り換え先の種類
• 独自ストレージ~特定接続先
• 「とにかく格納できればいい」というところから「xxxデータベースに格納する」というところまで。
• 「ローカルユーザー単一接続」から「マルチユーザー」まで。
• 汎用接続先
• 「マルチユーザー」
• 「将来の拡張性」から、「製品横展開」まで。
6
11本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE乗り換え先の種類
• 独自ストレージ~特定接続先
• DBISAM
• AbsoluteDB
• NexusDB
• InterBase/Firebird
• CodeBase
• xxxDAC
12本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
独自ストレージ~特定接続先:DBISAM• Elevate Software社の製品: 日本では株式会社 鉄飛テクノロジー 殿が扱っている。http://zope.teppi.com/Components/DBISAM
• 特徴
• コンパクトで高速なRDBMSエンジン
• Delphiの TDataSet を継承
• 各種データベース対応コントロール (TDBGridやTDBEditをはじめとする各種製品)利用可。
• BDEに比較して、気軽に使いやすい
• インプロセスでEXEに静的リンクできる。レジストリを使わない。ランタイムライセンスフリー
• ただし、本格的なマルチクライアントには不向き。ストアドプロシージャ、CachedUpdates、TBatchMove は使えません
• BDEとの違い詳細(DBISAM4マニュアルより)• http://www.elevatesoft.com/dbisam4d6_bde_differences.htm
7
13本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
独自ストレージ~特定接続先:AbsoluteDB• Component Ace社の製品
• http://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm
• Best BDE Replacement With SQL (by Roman Korzh)というBDE代替DB比較記事でベストの評価を受けている。
• http://www.delphi32.com/magazine/articles/20/1/
• 特徴• 静的リンクをしてひとつのEXEにまとめられる。
• データの暗号化あり。BLOBをZlibで圧縮可能。イン・メモリテーブルの機能。
• BatchMove相当機能あり(TABSTableコンポーネントのBatchMove メソッド)
• その他、詳細は以下を参照のこと。http://www.componentace.com/help/absdb_manual/differencesfromthebde.htm
14本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
独自ストレージ~特定接続先:NexusDB• 元々はFlash Filer
• http://sourceforge.net/projects/tpflashfiler/
• 現在はnexus社の製品
• http://www.nexusdb.com/showpage.asp?Id=96
• 特徴
• 高機能、コンパクトで、特に欧州で人気がある。
• Upscene社のGUIツールが対応している。
• BDE互換のTnxSessionクラスを持つ。
• Paradoxからのテーブルの移行
• http://www.nexusdb.com/new/index.php?q=node/224
• ただし作りとしては割と複雑な感じ。
8
15本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
特定接続先(1): InterBase/Firebird• IBObject:http://www.ibobjects.com/
• 必要なのはgds32.dll(fibclient.dll)のみ。
• BDEからIBOへの変換ガイド(英文)• http://www.ibobjects.com/ibo_help/convertbdetoibo.htm
• FIBPlus: http://www.devrace.com/en/fibplus/• 必要なのはgds32.dll(fibclient.dll)のみ。
• IBOほどはBDEに似ていない。
• Is there a tool that automates BDE to FIBPlus conversion? Are there any best practices to keep in mind?
• http://www.devrace.com/en/fibplus/articles/4196.php
• Unicode完全対応←これ重要(のちほど)
16本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
特定接続先(2) その他のRDBMS• CodeBaseのラッパー
• CB4Table(tiriss)• http://www.tiriss.com/cb4tables/index.html
• CodeBase Componenst IV(Softsand.com)• http://www.softsand.com/CBComps4.htm
• xxxDAC• http://crlab.com/products-vcl.html
• ODAC(Oracle), SDAC(SQL Server), MyDAC(MySQL), IBDAC(InterBase)
• DOA(Oracle): http://zope.teppi.com/Components/DOA
9
17本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE乗り換え先の種類
• 汎用接続先
• AnyDAC
• InstantBDExpress
• dbExpress
18本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
汎用接続先(1)• AnyDAC
• http://www.da-soft.com/content/view/45/145/
• 各DBのネイティブドライバ、dbExpress対応
• InstantBDExpress• http://www.ethea.it/eng_instantbdexpress.asp
• dbExpress対応
10
19本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
汎用接続先(2): dbExpressに乗り換え!
• BDEアプリケーションのdbExpressへの移行
• http://dn.codegear.com/jp/article/33547
• SQL linkからdbExpressへのDB2を使った移行(英文)
• http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0312swart/
20本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
dbExpress• Delphi Enterprise版
• 各種dbExpressドライバーが付属
• Delphi Professional版• InterBaseとMySQL版のみ。
• サードパーティdbExpressドライバーと組み合わせる。
• DBX4• Delphi 2007 for Win32• Unicode対応←ここ重要(後で)
11
21本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
シナリオ
22本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE + Paradox• BDE + Paradoxの短所: サーバー製品に比べて
• トランザクションや排他処理が貧弱。
• データが壊れやすい。
• データ量が増えるにつれ、パフォーマンスダウンやエラーが発生しやすくなる
• 移行先: 2つの選択肢
• データ量増大による問題→BDE互換独自ストレージ
• マルチクライアント→BDE互換の特定or汎用RDBMS
12
23本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE+Paradox→BDE互換ストレージ
• 適切なものはどれか?
24本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE + Paradox→BDE互換+RDBMS• ミドルウエア(BDE)の移行に加えて、データベースの移行も必要。
• 例えば、InterBase(Firebird)に移行するなら、以下のドキュメントが参考になる。
• InterBase Technical InformationParadoxからInterBaseへの移行
• http://dn.codegear.com/jp/article/36548
• Paradoxから各種RDBMSへの移行にはいくつかツールがある。
13
25本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE+Paradox→BDE互換+InterBase/Firebird• ParadoxからInterBase/Firebirdへの移行については、
IBPhoenix社のサイトに各種資料がある。(英文)
• Migration(移行):• http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_
document#Mig
• 例えば、次のようなドキュメントがある。
• Upsizing Paradox Databases to InterBaseBy James Arias-La Rheir.
• My Lock File Has Grown Too Large - 30 Days from Paradox to InterBaseBy Skip Rowland, Borland Developers Conference 1999.
26本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE + InterBase• 単純にBDE自体を使わないようにしたい。
• InterBaseの新版(7.x, 2007)やFirebirdに移行したい。
• 選択肢は2つ
• IBObjectに移行
• dbExpress or DBX4に移行
• 「BDEアプリケーションのdbExpressへの移行」参照。
• 間にInstantBDExpressを入れる、という手もある。
14
27本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDE + Oracle• Oracleのバージョンを上げたい
• 実際は、Oracleのバージョンアップのほうが大変かも。
• 既存のものに適用できるパッチをあて、十分な準備が必要。
• 選択肢は二つ
• Oracleに特化: Oracle専用のアクセスコンポーネントを使う。
• Oracle以外も可能性あり: 汎用のアクセスコンポーネントを使う。
28本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
デモ&メモ
15
29本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
デモ&メモ
30本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDEアプリが今後直面する問題
16
31本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
BDEアプリが今後直面する問題
• これまでに直面した問題
• 取り扱いデータの増大
• それによるパフォーマンスダウン
• データ量上限
• 対象データベースのバージョンアップ
• 対象クライアントアプリのバージョンアップ
• 今後直面する問題
• OSのバージョンアップ(Vista, 64-bit化)
• 新しい文字コードへの対応
32本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
今後直面する問題: 新しい文字コード
• BDEのライフタイムにはUnicodeはあまり一般的ではなかった。
• 使われてもUNICODE_FSSレベル
• Windows Vista登場
• JIS2004• 「完全な」UTF8への対応が必要。
• 新しいセキュリティモデル
17
33本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
データベース
ミドルウエア
クライアント
それぞれのレイヤでUnicode対応が必要
UIコンポーネント
34本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
データベース
ミドルウエア
クライアント
それぞれのレイヤでUnicode対応が必要
UIコンポーネント
TMS Unicode Component Pack
http://www.tmssoftware.com/tmsuni.htm
DBX4(Delphi 2007 for Wind32)または
FIBPlus(http://devrace.com)
UTF-8対応データベース
18
35本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
補足
36本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。
補足