Linq以外に、ライブラリだけでなく、リレーショナル機能をオブジェクト指向言語自体に統合しようとする試みは他にありますか?
更新 最も明白な例の1つは、1対1、1対多、または多対多の関係です。次に、プロパティ自体を持つ関係を検討することもできます。
Linq以外に、ライブラリだけでなく、リレーショナル機能をオブジェクト指向言語自体に統合しようとする試みは他にありますか?
更新 最も明白な例の1つは、1対1、1対多、または多対多の関係です。次に、プロパティ自体を持つ関係を検討することもできます。
私の知る限りではありません。実際、LINQ 自体は、元の "Codd" という言葉の意味で特に "リレーショナル" ではありません。(SQL もそうではありませんが、それは別の話です。)
トーンを設定するためだけに、LINQ には関係の概念さえありません (大まかに言えば、名前/型のタプルである、見出しに準拠する名前/値のタプルのセット)。セットではなくシーケンスを扱い、タプルではなくオブジェクトを扱います。匿名オブジェクトでさえ、リレーショナル モデルの意味での名前付きタプルと同じでnew { b = 2, a = 1 }
はありませんnew { a = 1, b = 2 }
。
公平を期すために言うと、LINQ は過去 40 年間のデータ アクセスの大失敗に比べて大幅に改善されていますが、これは正しい方向へのほんの小さな一歩にすぎず、それ以上のステップを踏むつもりはないように思われます。実際、LINQ-to-EF は、OO モデリングに向けて、リレーショナル モデルから離れて、間違った方向への大きな一歩であるように私には思えます (もちろん、誰もが私に同意するわけではありません ;-)。
postgres用のCにはEmbeddedSQLがあります: http ://www.postgresql.org/docs/8.4/interactive/ecpg.html
しかし、私はそれを自分で使用したことはありません。
ほとんどの場合、単純なライブラリはSQLデータベースにアクセスするのに役立ち、「リレーショナル」とオブジェクト指向の世界を適切に分離します(ただし、Marcelo Cantosが述べたように、SQLは実際には元の理論的な意味でリレーショナルではありません。 )。
ただし、リレーショナルとオブジェクト指向の間で「マッピング」するものを探しているのではないでしょうか。リレーショナルデータベースへのある種のオブジェクト指向ビューを作成するオブジェクト指向マッピングと呼ばれる手法があります(http://en.wikipedia.org/wiki/Object-relational_mappingを参照)。ただし、これは良いことのように聞こえるかもしれませんが、実際にはいくつかの問題が発生することに注意してください(詳細については、http://en.wikipedia.org/wiki/Object-relational_impedance_mismatchを参照してください)。