ОО программа и база данных SQL - PullRequest
2 голосов
/ 19 июля 2009

При программировании ОО-программы с использованием базы данных SQL, соответствуют ли атрибуты объектов строкам в таблицах? Или более того? Я не совсем понимаю, как атрибуты объектов связаны с данными в таблицах. Спасибо за вашу помощь.

Ответы [ 5 ]

7 голосов
/ 19 июля 2009

Это действительно зависит от того, какую форму вы используете, однако в целом идея такова:

class = > table
instance => row
attribute => column
6 голосов
/ 19 июля 2009

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

Это не просто ... некоторое чтение Несоответствие объектно-реляционного импеданса (Википедия)

2 голосов
/ 19 июля 2009

Мой ответ - нет.

Целью разработки ОО является оптимизация для простоты определения поведения программы. Целью проектирования базы данных является оптимизация для простоты хранения / поиска данных. Эти цели очень разные и могут привести и приведут к очень разным разложениям проблемной области.

Можно отобразить одну на другую, но тогда вы столкнетесь с несоответствием импеданса, как уже упоминали другие, что в основном является техническим следствием различных целей двух моделей.

Йорг упомянул в комментариях статью " Вьетнам информатики ", которую стоит прочитать. Вы можете пропустить исторические события во Вьетнаме, если у вас мало времени.

2 голосов
/ 19 июля 2009

Прочитайте немного о Object -lational_mapping

методика программирования для преобразования данных между несовместимыми системами типов в реляционных базах данных и объектно-ориентированных языках программирования. По сути, это создает «базу данных виртуальных объектов», которую можно использовать из языка программирования. Доступны как бесплатные, так и коммерческие пакеты, которые выполняют объектно-реляционное отображение, хотя некоторые программисты предпочитают создавать свои собственные инструменты ORM.

Для Java или .NET проект hibernate обеспечивает постоянство отношений.

Hibernate - это мощная, высокопроизводительная объектно-реляционная персистентность и служба запросов. Hibernate позволяет разрабатывать постоянные классы в соответствии с объектно-ориентированной идиомой, включая ассоциацию, наследование, полиморфизм, композицию и коллекции. Hibernate позволяет выражать запросы в своем собственном переносимом расширении SQL (HQL), а также в собственном SQL или с помощью объектно-ориентированных критериев и примеров API.

В отличие от многих других персистентных решений, Hibernate не скрывает от вас всю мощь SQL и гарантирует, что ваши инвестиции в реляционные технологии и знания столь же актуальны, как и всегда.

0 голосов
/ 19 июля 2009

Вам нужно быть более конкретным и, возможно, немного изучить то, что доступно на выбранной вами платформе. Хотя существуют способы сопоставления различных объектно-ориентированных языков с базами данных, не существует подхода «один размер подходит всем».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...