Программирование >>  Sql: полное руководство 

1 ... 215 216 217 [ 218 ] 219 220 221 ... 264


Классы. Характерное для реляционных баз данных понятие простой тип данных заменяется в ООБД иерархическими понятиями класс и подкласс. Например, VEHICLES (транспортные средства) может быть классом объектов, а отдельным представителем ( экземпляром ) этого класса может быть автомобиль, велосипед, поезд или лодка. Класс vehicles может включать в себя подклассы, например cars (автомобили) и boats (лодки), являющие собой конкретные виды транспортных средств. Аналогично, класс cars может включать подкласс convertibles (автомобили с откидным верхом) и так далее.

Наследование. Объекты наследуют характеристики своего класса и всех классов более высокого уровня иерархии, к которой они принадлежат. Например, одной из характеристик транспортного средства может быть число пассажиров . Все члены классов cars, boats и convertibles также имеют этот атрибут, так как они являются подклассами класса vehicles. Класс cars может также иметь атрибут число дверей , и класс convertibles унаследует этот атрибут. Однако класс boats не будет его наследовать.

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

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

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

Идентификаторы объектов. Объекты различают с помощью уникальных идентификаторов, обычно реализованных в виде абсфактных указателей, называемых дескрипторами. Дескрипторы часто используются для представления связей между объектами: объект указывает на другой объект с помощью дескриптора, который он хранит в одном из своих афибутов.

Благодаря этим принципам объектно-ориентированные базы данных хорощо подходят для приложений со сложными типами данных, например программ компьютерного моделирования или профамм разработки составных документов, объединяющих текст, фафику и элекфонные таблицы. Такие базы данных естественным образом офажают иерархию разнородных данных. Например, весь документ может быть представлен как один объект, состоящий из меньших объектов (глав), которые, в свою очередь, состоят из еще более мелких объектов (парафафов, рисунков и т.д.). Иерархия классов дает возможность отслеживать тип каждого объекта в документе (парафафы, диафаммы, иллюстрации, заголовки, колонтитулы и т.д.). И наконец, механизм сообщений естественным образом обеспечивает поддержку фафического интерфейса пользователя. Приложеште может послать сообщение нарисуй себя любой части документа, давая таким образом команду объекту отобразить себя на экране. Если пользователь изменяет размер окна, отображающего документ, приложение может



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

Плюсы и минусы объектно-ориентированных баз данных

Появление на рынке объектно-ориентированных баз данных вызвало волнение и споры в среде специалистов по базам данных. Главным аргументом сторонников ООБД было то, что новая технология позволяет добиться соответствия между программной моделью данных и структурой базы данных. Они утверждали, что в области обработки данных жесткая, фиксированная структура реляционных таблиц, состоящих из строк и столбцов, является пережитком эры перфокарт с их фиксированными полями данных и ориентацией на записи. Для адекватного моделирования сущностей реального мира требуется другая, более гибкая модель, построенная на основе классов объектов, которые могут быть сходны между собой (т.е. иметь общие атрибуты) и в то же время отличаться друг от друга. Еще одним серьезным недостатком реляционной модели сторонники объектно-ориентированных баз данных считают то, что многотабличные объединения, являющиеся ее необъемлемой частью, настолько снижают производительность баз данных, что делают реляционную технологию неприемлемой для разработки современных приложений, нуждающихся во все более высокопроизводительных платформах. Наконец, поскольку объекты прочно утвердились в современных программах в качестве структур для хранения данных в оперативной памяти, сторонники ООБД утверждают, что нет ничего естественнее и удобнее, чем распространить эту модель и на постоянное хранение данных Это позволит самым прозрачным и оптимальным образом переносить данные из памяти на диск, где они будут в том же виде доступны всем пользователям и программам.

Оппоненты объектно-ориентированного подхода непреклонны в своем убеждении, что в переходе на объектную архитектуру баз данных нет никакой необходимости и этот переход не принесет никаких существенных преимуществ. Они утверждают, что пресловутые дескрипторы ООБД есть не что иное, как встроенные указатели, использовавщиеся в дореляционных (иерархических и сетевых) базах данных, только по-другому названные. Как и эти ранние технологии построения баз данных, объектно-ориентированный подход не имеет той мощной математической основы, на которой построена реляционная модель. Следствием этого недостатка является отсутствие стандартов для построения объектно-ориентированных баз данных и стандартизированного языка запросов, подобного SQL, что препятствует разработке инструментальных средств и приложений, независимых от СУБД. В ответ на претензии к производительности реляционных баз данных их защитники указывают, что на их основе созданы некоторые из наиболее высокопроизводительных приложений масщтаба предприятия. Кроме того, они проводят четкое разграничение между реляционной моделью данных и ее реализацией, в которой для повышения производительности вполне могут использоваться встроенные указатели. И наконец, они утверждают, что все проблемы несоответствия между объектно-ориентированным программированием и реляционными базами данных могут быть разрещены с помощью таких технологий, как JDBC и другие объектно-реляционные интерфейсы.

Влияние объектных технологий на рынок баз данных

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



а также там, где модели классов и наследования очень близки к их прототипам из реального мира. Но несмотря на это компании-производители таких СУБД испытывают большие трудности с продвижением своих продуктов на рынок и еше очень далеки от коммерческого успеха. Для большинства из них годовой доход в 100 миллионов долларов пока еще недосягаем, а многие вообще нерентабельны и по нескольку раз сменили руководство. В то же время производители реляционных баз данных продолжают уверенно идти в гору. У крупнейших из них годовой доход достигает сотен миллионов и даже миллиардов долларов. Так что реляционные технологии со всей очевидностью продолжают доминировать на рынке баз данных.

Не удивительно, что два лагеря производителей баз данных оказывают друг на друга сильнейшее влияние. Поскольку рынок медленно и неохотно принимает объектные технологии, производители ООБД исследуют факторы, которым реляционные базы данных два десятилетия тому назад были обязаны своим успехом. Были сформированы группы стандартизации объектных технологий, например Object Data Management Group (ODMG). Некоторые производители снабдили свои СУБД реляционными драйверами со стандартными интерфейсами, такими как ODBC и SQL, которые обеспечивают доступ к ООБД из реляционных баз данных. Другие производители рассчитывают на поддержку со стороны международных стандартов и работают над включением объектно-ориентированных возможностей в стандарт SQL3. Таким образом, наметилась тенденция сосуществования объектных и реляционных технологий.

Но нельзя отрицать и того, что объектные технологии также оказали существенное влияние на разработчиков реляционных СУБД. Некоторые элементы баз данных, начавшие свое существование как реляционные (например, хранимые процедуры), сейчас рекламируются как предоставляющие объектно-ориентированные возможности (например, инкапсуляцию). Производители постепенно добавляют в свои реляционные базы данных некоторые объектно-ориентированные элементы, например абстрактные типы данных. В результате получаются объектно-реляционные гибриды, т.е. СУБД, обладающие и теми, и другими возможностями. Расширяясь до невероятных пределов, реляционная модель включает в себя такие немыслимые ранее структуры, как таблшы в таблицах, моделирующие отношения между классами объектов.

Один из ведущих производителей реляционных СУБД, компания Informix, купила комплекс объектно-ориентированных технологий, приобретя компанию Illustra Software. Объектно-реляционная СУБД Illustra была основана на проекте Postgres, созданном в Калифорнийском университете в Беркли и наследовавшем первую реляционную СУБД, созданную в этом университете, - Ingres. Результирующий продукт называется Informix Universal Server. Еще один гигант индустрии баз данных, Oracle Софога1!оп, развивает собственную СУБД, вводя в нее объектно-ориентированные технологии. Итогом нескольких лет интенсивных усилий компании в этом напраачении стала СУБД OracleS, появившаяся в 1998 году. Указанные продукты можно назвать самыми наглядными примерами современной реализации объектно-реляционных баз данных (ОРБД). И если учесть их популярность, то нет сомнений, что подобные продукты и расширения вскоре представят и многие другие ведущие производители СУБД.

Объектно-реляционные базы данных

Практически все объектно-реляционные базы данных вначале были просто реляционными, а впоследствии вобрали в себя ряд объектно-ориентированных технологий. Для ведущих производителей СУБД, чьи продукты масштаба предприятия



1 ... 215 216 217 [ 218 ] 219 220 221 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика