Объектно-ориентированные базы данных, включающие средства разработки
Любая СУБД основана на определенной модели данных. В конце 70-х гг наибольшую популярность приобрели реляционные модели данных, которые и сегодня довольно широко распространены. Однако все большее число разработчиков пользовательских приложений для СУБД сталкиваются с тем, что применение реляционных моделей не обеспечивает требования, предъявляемые к срокам разработки проектов и скорости обработки запросов, особенно в случае проектирования систем, предназначенных для хранения сложных неструктурированных данных. Поэтому крупнейшие разработчики СУБД стали встраивать в свои продукты поддержку объектной ориентации. По соображениям совместимости предлагается смешанный подход - объектно-реляционный. Компании IBM и Oracle радикально разрешили эту проблему, переработав ядра своих СУБД (DB2 и Oracle) и расширив возможности работы с объектами. Фирма Informix приобрела объектно-реляционную СУБД Illustra и встроила ее в свои продукты. Компания Computer Associates, выпустившая несколько лет назад удачную реляционную СУБД Ingres с возможностью добавления сложных типов данных - предтечу нынешних универсальных серверов - и интерфейсом с объектными языками, в 1996 г. приобрела продукт Jasmine (разработку лаборатории фирмы Fujitsu) и теперь активно продвигает ее на рынок. Это иллюстрирует противоречивую ситуацию, сложившуюся на стыке объектных языков программирования и современных средств хранения данных.
Для языков, поддерживающих сложные структуры данных, требуется адекватная модель базы данных. И хотя существуют объектные дополнения и возможности расширения, как, например, у универсального сервера Informix, ядро базы остается ориентированным на работу с реляционными данными, что снижает производительность, так как СУБД при обмене с хранилищем данных должна производить сборку-разборку объектов.
В чем же принципиальное различие реляционных и объектных баз данных? Мэри Лумис, один из идеологов СУБД Versant, так оценила объектный подход к базам данных: «Эта модель данных более близка сущностям реального мира. Объекты можно сохранять и использовать непосредственно, не раскладывая по таблицам. Типы данных определяются разработчиком и не ограничиваются набором предопределенных типов». В таких СУБД данные объекта и методы его описания помещаются в хранилище как единое целое. Подобная СУБД обеспечивает запись объектов в базу данных «как есть», т. е. «все, что вы запрограммировали, вы помещаете в базу данных».