SQLデータベースのバックエンドを使用してOOプログラムをプログラミングする場合、オブジェクトの属性はテーブルの行に対応していますか?それ以上?オブジェクトの属性が表のデータにどのように関係しているかは、私はあまり理解していません。 ご協力いただきありがとうございます。OOプログラムとSQLデータベース
答えて
それは本当にあなたが使用しているORMこれによって異なり、しかし、一般的にはアイデアがある:
class = > table
instance => row
attribute => column
あなたはより具体的にする必要があり、おそらくあなたの選択で利用可能なものに研究の少しを行いますプラットフォーム。さまざまなオブジェクト指向言語をデータベースにマッピングする方法はありますが、「ワンサイズ・フィット・オール」アプローチはありません。
ennuikillerにはいくつか言及されていますが、データがモデル化され正規化されるために相関がない可能性があるため、オブジェクトは複数の行やテーブルに格納されることもあります。
それは簡単ではないのです...いくつかの読書Object-relational impedance mismatch(ウィキペディア)
ありがとうgbn、私はデータモデルの複雑さに言及するのを忘れていました。 – ennuikiller
私はその記事を読もうとしましたが(実際にこの質問を投稿する前に)、私はそれを理解することができませんでした。誰かがそれを要約できますか、それを示す簡単な例がありますか? – ChrisC
は、リレーショナルデータベースやオブジェクト指向プログラミング言語で互換性のないタイプのシステム間でデータを変換するためのおよそObject-relational_mapping
プログラミング技術を少し読みます。実際には、プログラミング言語内から使用できる「仮想オブジェクトデータベース」が作成されます。オブジェクト・リレーショナル・マッピングを実行するフリー・パッケージと商用パッケージの両方がありますが、プログラマによっては独自のORMツールを作成することもあります。
Java
または.NET
については
、hibernateプロジェクトは、リレーショナル永続性を提供します。
Hibernateは、強力で高性能のオブジェクト/リレーショナル永続性とクエリサービスです。 Hibernateでは、関連、継承、多態性、合成、コレクションなど、オブジェクト指向のイディオムに従って永続クラスを開発することができます。 Hibernateでは、独自の移植可能SQL拡張(HQL)やネイティブSQL、またはオブジェクト指向のCriteria/Example APIを使用して問合せを表現できます。
他の多くの永続性ソリューションとは異なり、HibernateはSQLの機能を隠したりせず、リレーショナル・テクノロジーと知識への投資が常に有効であることを保証します。
私の答えはノーです。
オブジェクト指向設計の目標は、プログラムの動作を指定しやすくするためです。 データベース設計の目標は、データの格納/取り出しを容易にするために最適化することです。これらの目標は非常に異なり、問題ドメインの分解が非常に異なる可能性があります。
2つのモデルの異なる目標の技術的な結果である、他の人が触れたように、インピーダンスの不一致に遭遇するでしょう。
ジョルジュはコメントに「Vietnam of computer science」という記事を掲載しました。もしあなたが短い時間を過ごしているなら、ベトナムの歴史的なものは飛ばすことができます。
SQLのバックエンドを持つOOプログラムを使用するのはやや一般的ではありませんか? – ChrisC
はい、そうです。大規模な問題を抱えることも一般的です。事実、オブジェクトリレーショナルマッピングは「コンピュータサイエンスのベトナム」と広く称されています。何十年もの間この戦争を終わり、終わりが見えないためです。 –
- 1. OO設計とデータベース設計
- 2. Teradata SQL Update Table "クエリエラー3802データベース 'oo'が存在しません"
- 3. シンプルなシェーダベースのGLプログラム用のOOアーキテクチャ
- 4. C++のstruct OOクラスOO対
- 5. データベースでのOO継承と正規化ルールの使用
- 6. プログラムでSQLデータベースを作成するC#
- 7. JavaデータベースとSQLデータベース
- 8. HP OO入力とREST API
- 9. PHPとSQLデータベース
- 10. データベースとSQL C#
- 11. DocumentDBとSQLデータベース
- 12. CalcのダイナミックレンジOO
- 13. PHP OO - Ajaxページネーション
- 14. OOプログラミングのLSP?
- 15. oo-spaghettioウェブアーキテクチャ
- 16. OO Javascript - イベント
- 17. PHP OOのアプローチ
- 18. C#OO Design Question
- 19. OO Design - Java Project
- 20. SQL ServerデータベースとAndroid
- 21. SQLデータベースとSQLデータベースとの接続方法は?
- 22. OO HaskellでのreturnとreturnIOの違い
- 23. PythonのOoコーディングとサーバーサイドコーディングの違い
- 24. OOセレン試験ケース?
- 25. LO/OOライタのピクセルスクロール
- 26. OO MYSQLI num_rows always = -1
- 27. javascriptのOO変数
- 28. OO(オブジェクト指向)javascript
- 29. Java-OOアクセス変数
- 30. 分散キャッシング用AppFabricデータベースとSQLデータベース
「正の」(「これを行う」)種類の例を教えてください。あなたの答えは一種の「否定的」です。 –
*誰もまだ理解していません。業界で最も賢い人たちが試して失敗しました。否定的な答えだけが誠実だ。 「休止状態を使用するだけで、すべてがうまくいく」と言うことができますが、そうでないと、あなたは嘘をつきます。 –
@JörgW Mittag:非常に成功した人もいますが、彼らは何をしていますか? 「すべてに適合するサイズはありません」は、すべてのソフトウェアアーキテクチャの問題で常に真です。しかし、何が良いか、それほど危険でないか、またはより有用であるかについてのヒントは、明白な「誰にも合いません。 –