2009-07-19 8 views
2

SQLデータベースのバックエンドを使用してOOプログラムをプログラミングする場合、オブジェクトの属性はテーブルの行に対応していますか?それ以上?オブジェクトの属性が表のデータにどのように関係しているかは、私はあまり理解していません。 ご協力いただきありがとうございます。OOプログラムとSQLデータベース

答えて

7

それは本当にあなたが使用しているORMこれによって異なり、しかし、一般的にはアイデアがある:

class = > table 
instance => row 
attribute => column 
0

あなたはより具体的にする必要があり、おそらくあなたの選択で利用可能なものに研究の少しを行いますプラットフォーム。さまざまなオブジェクト指向言語をデータベースにマッピングする方法はありますが、「ワンサイズ・フィット・オール」アプローチはありません。

+0

「正の」(「これを行う」)種類の例を教えてください。あなたの答えは一種の「否定的」です。 –

+0

*誰もまだ理解していません。業界で最も賢い人たちが試して失敗しました。否定的な答えだけが誠実だ。 「休止状態を使用するだけで、すべてがうまくいく」と言うことができますが、そうでないと、あなたは嘘をつきます。 –

+0

@JörgW Mittag:非常に成功した人もいますが、彼らは何をしていますか? 「すべてに適合するサイズはありません」は、すべてのソフトウェアアーキテクチャの問題で常に真です。しかし、何が良いか、それほど危険でないか、またはより有用であるかについてのヒントは、明白な「誰にも合いません。 –

6

ennuikillerにはいくつか言及されていますが、データがモデル化され正規化されるために相関がない可能性があるため、オブジェクトは複数の行やテーブルに格納されることもあります。

それは簡単ではないのです...いくつかの読書Object-relational impedance mismatch(ウィキペディア)

+0

ありがとうgbn、私はデータモデルの複雑さに言及するのを忘れていました。 – ennuikiller

+0

私はその記事を読もうとしましたが(実際にこの質問を投稿する前に)、私はそれを理解することができませんでした。誰かがそれを要約できますか、それを示す簡単な例がありますか? – ChrisC

2

は、リレーショナルデータベースやオブジェクト指向プログラミング言語で互換性のないタイプのシステム間でデータを変換するためのおよそObject-relational_mapping

プログラミング技術を少し読みます。実際には、プログラミング言語内から使用できる「仮想オブジェクトデータベース」が作成されます。オブジェクト・リレーショナル・マッピングを実行するフリー・パッケージと商用パッケージの両方がありますが、プログラマによっては独自のORMツールを作成することもあります。 Javaまたは.NETについては

hibernateプロジェクトは、リレーショナル永続性を提供します。

Hibernateは、強力で高性能のオブジェクト/リレーショナル永続性とクエリサービスです。 Hibernateでは、関連、継承、多態性、合成、コレクションなど、オブジェクト指向のイディオムに従って永続クラスを開発することができます。 Hibernateでは、独自の移植可能SQL拡張(HQL)やネイティブSQL、またはオブジェクト指向のCriteria/Example APIを使用して問合せを表現できます。

他の多くの永続性ソリューションとは異なり、HibernateはSQLの機能を隠したりせず、リレーショナル・テクノロジーと知識への投資が常に有効であることを保証します。

2

私の答えはノーです。

オブジェクト指向設計の目標は、プログラムの動作を指定しやすくするためです。 データベース設計の目標は、データの格納/取り出しを容易にするために最適化することです。これらの目標は非常に異なり、問題ドメインの分解が非常に異なる可能性があります。

2つのモデルの異なる目標の技術的な結果である、他の人が触れたように、インピーダンスの不一致に遭遇するでしょう。

ジョルジュはコメントに「Vietnam of computer science」という記事を掲載しました。もしあなたが短い時間を過ごしているなら、ベトナムの歴史的なものは飛ばすことができます。

+0

SQLのバックエンドを持つOOプログラムを使用するのはやや一般的ではありませんか? – ChrisC

+1

はい、そうです。大規模な問題を抱えることも一般的です。事実、オブジェクトリレーショナルマッピングは「コンピュータサイエンスのベトナム」と広く称されています。何十年もの間この戦争を終わり、終わりが見えないためです。 –