Реляционные особенности в объектно-ориентированных языках программирования - PullRequest
1 голос
/ 14 июля 2010

Кроме Linq , были ли другие попытки интегрировать реляционные функции в сам объектно-ориентированный язык, а не только в библиотеки?

UPDATE Одним из наиболее очевидных примеров являются отношения один-к-одному, один-ко-многим или многие-ко-многим. Тогда вы можете также рассмотреть отношения, имеющие свойства сами.

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

Не в моих силах. На самом деле, LINQ сам по себе не особенно «реляционный» в оригинальном «Codd» смысле этого слова. (SQL тоже нет, но это другая история.)

Просто, чтобы установить тон, LINQ даже не имеет понятия отношения (свободно говоря, набор кортежей имя / значение, соответствующих заголовку, который является кортежем имя / тип). Он имеет дело с последовательностями, а не множествами и объектами вместо кортежей. Даже анонимные объекты - это не то же самое, что именованные кортежи в смысле реляционной модели, поскольку new { b = 2, a = 1 } не только не равен new { a = 1, b = 2 }, но даже не того же типа!

Честно говоря, LINQ - огромное улучшение по сравнению с крушениями поездов доступа к данным за последние 40 лет, но это всего лишь крошечный шаг в правильном направлении, и я подозреваю, что никаких дальнейших шагов предпринимать не планируется. , На самом деле, LINQ-to-EF кажется мне огромным шагом в неправильном направлении, к ОО-моделированию и удалению от реляционной модели (конечно, не все согласятся со мной по этому вопросу; -).

0 голосов
/ 19 сентября 2010

Существует Встроенный SQL в C для postgres: http://www.postgresql.org/docs/8.4/interactive/ecpg.html

Но я никогда не использовал его сам.

В большинстве случаев простая библиотека работает хорошодоступ к базам данных SQL и обеспечивает хорошее разделение между «реляционными» и объектно-ориентированными мирами (хотя, как сказал Марсело Кантос, SQL на самом деле не является реляционным в первоначальном теоретическом смысле ...).

ОднакоМожет быть, вы ищете что-то, чтобы «сопоставить» между реляционным и объектно-ориентированным?Существует методика, называемая объектно-ориентированным отображением, которая создает некое объектно-ориентированное представление для реляционных баз данных (см. http://en.wikipedia.org/wiki/Object-relational_mapping). Но имейте в виду, что это может звучать хорошо, но на практике возникают некоторые проблемы (см. http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch для деталей).

...