第1回 Javaのオブジェクト永続化に何を選ぶ?
ネクストデザイン
村山 徹
2005/12/7
オブジェクト指向プログラミングとリレーショナル・データベースの相性の悪さは、アプリケーション開発者の悩みの種だ。これを回避する2つの方法、すなわちO/Rマッピングツールとオブジェクト指向データベースを取り上げ、Javaの永続化方式を比較するのが本連載の狙いである。(編集部)
主な内容 --Page 1--
はじめに本稿のもととなった開発事例について --Page 2--
永続化問題のキーワード--Page 3--
永続化をスマートに解決する |
多くのアプリケーション・システムでは、データは半永久的に保存され、いつでも参照できなければなりません。オブジェクト指向システムであれば、オブジェクト(インスタンス)注1の状態や関連を保存し復元すること、つまり、オブジェクトの永続化が必要です。
Javaを使って、このようなアプリケーションを作成する場合、永続化の方式には、いくつかの選択肢があります。現在、最も多く採用されているのは、リレーショナル・データベースとJDBCを組み合わせた方式でしょう。しかし、この方式では、O/Rマッピング(後述)と呼ばれる仕組みが必要になります。O/Rマッピングは、設計モデルを複雑にし、煩雑なプログラミングを必要とするため、システムの品質や生産性の低下を引き起こす原因となるケースも多々あります。
本稿では、このO/Rマッピングを解決するためのツールとして注目されているHibernateを使った永続化方式と、もともとO/Rマッピングを必要としないオブジェクト指向データベース注2を使った永続化方式を比較してみます。
注1:本稿では、特に断らない限り「オブジェクト」と「インスタンス」は同義の用語として使用します。 注2:今回使用したCachéは、正確には多次元データベースと呼ばれるインターシステムズ社の製品です。本稿の事例では、Cachéのオブジェクト指向データベースとしての機能だけを利用しています。 |
2つの永続化方式を比較する前に、本稿を執筆するもとになった筆者の開発事例(アプリケーション・システム)について簡単に紹介します。この事例は「ユースケース記述を作成するためのツール」で、図1のようなインターフェイスを持つデスクトップ・アプリケーションです。ユースケース記述という言葉になじみのない方は、文書作成ツールのようなものと考えて構いません。このツールには、
- Hibernate版
- オブジェクト指向データベース(Caché)版
の2タイプがあります。ともに同じユーザー・インターフェイスと機能を持っていますが、永続化方式だけが異なります。本稿では、このアプリケーション・システムを開発した経験を基に、2つの永続化方式の違いや共通点を比較します。
図1 アプリケーションのユーザー操作画面の例 |
(次ページへ続く)
1/3 |
Index | |
対決! O/Rマッパー vs. オブジェクト指向DB(1) Javaのオブジェクト永続化に何を選ぶ? |
|
Page 1 ・はじめに ・本稿のもととなった開発事例について |
|
Page
2 ・永続化問題のキーワード |
|
Page
3 ・永続化をスマートに解決する |
対決! O/Rマッパー vs. オブジェクト指向DB |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|