SFA(営業支援)CRM(顧客関係管理)マーケティングオートメーションビジネスインテリジェンスITサービスマネジメント製品ジャンルで記事を探す閉じるお知らせ公式Twitterアカウントで新着記事を配信中です。フォローをお願いします。Database(DB)関連のコストに悩むユーザーは多い。DBをやめて他のDBに移行したい。考えるユーザーも多いはずだ。その際の移行先の候補として有力な選択肢となるのがOSS(オープンソースソフトウエア)のRDBMS(リレーショナルデータベース管理システム)である「PostgreSQL」だ。DBからPostgreSQLの移行を検討する際に、大きなポイントとなるのがDBの仕様差だ。DBとPostgreSQLの「処理結果が異なる」状態の原因になる。仕様差は機能差よりも厄介だ。SQLで比較した情報が少ない。そのうえ、仕様差があったとしても移行テスト時に異常終了することはなく、移行後の出力結果だけを見ても分からない。移行元の出力結果と比較して初めて差異が判明する。仕様差は基本的な動作の違いにより発生し、問題が発生した場合に広範囲な対応が必要になる可能性が高いことが特徴だ。仕様差への対策として有効なのが、単体テストによる問題の早期発見だ。早期発見により、移行コストの増加を最小限にできる。多くの移行を経験しているベンダーの知見に頼ることも1つの策である。仕様差の例を見てみよう。基本的な仕様差の例として除算を含む以下の2つの式を見てほしい。DBでは「1」になるが、PostgreSQLでは数値の型によって「0」か「0.999...」になる。結果を見て「バグだ」と思うかもしれないが、これは仕様である。DBからPostgreSQLにそのまま移行すると新旧比較で答えが一致しない。対策は誤差として許容するか、許容できない場合はSQL内で計算をさせずに計算結果のみをDBに格納するような対応が必要となる。1つ「トランザクションの結果が異なる」という仕様差を紹介しよう。DBとPostgreSQLは、もともと単体のトランザクションのエラー動作に違いがある。ここでは、複数のトランザクション間での違いを説明しよう。COMMITTED」である。ところが同じSQLが正常に動作して、トランザクションが正常終了した場合であっても、結果が異なる場合がある。DBとPostgreSQLの仕様差の例トランザクションの同時実行の結果が異なるケース[画像のクリックで拡大表示]こうした仕様差は「どちらが正しい」と考えるのではなく、「移行前と同じ結果にならない」と知っておくことが重要だ。仕様差が業務として許容できるのであれば対応は不要だが、許容できない場合はアプリケーション側での対応が必要になる。Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。ご覧になる際には、会員登録(無料)をお願いいたします。Reserved.このページに掲載されている記事・写真・図表などの無断転載を禁じます。掲載している情報は、記事執筆時点のものです。