Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
26.04.2015
Размер:
166.91 Кб
Скачать

28. Оо модели данных

Основные трудности ОО моделирования данных проистекают из того, что такого развитого математического аппарата, на который могла бы опираться общая ОО модель данных, не существует. Беери предлагает формальную основу ООБД, далеко не полную и не являющуюся моделью данных в традиционном смысле. 1- предлагается выделить два уровня моделирования объектов: нижний (структурный) и верхний (поведенческий). Важным аспектом явл четкое разделение схемы БД и самой БД. В качестве первичных концепций схемного уровня ООБД выступают типы и классы. типы и классы играют разную роль, и для строгости и недвусмысленности требуется одновременная поддержка обоих понятий. Что же касается поведенческого уровня, предложен только общий подход к требуемому для этого логическому аппарату. По Беери, для точного опред ООБД требуется уровень мета-схемы, содержимое кот должно определять виды объектов и связей, допустимых на схемном уровне БД. Мета-схема должна играть для ООБД такую же роль, какую играет структурная часть РМД для схем РБД. Для иллюстрации текущего положения дел мы кратко рассмотрим особенности конкретной модели данных, применяемой в ОО СУБД O2 . В O2 поддерживаются объекты и значения. Объект - это пара (идентификатор, значение), причем объекты инкапсулированы, т.е. их значения доступны только через методы - процедуры, привязанные к объектам. Метод - программный код, привязанный к конкретному классу и применимый к объектам этого класса. Определение метода в O2 производится в два этапа. 1-объявляется сигнатура метода, т.е. его имя, класс, типы или классы аргументов и тип или класс результата. Методы могут быть публичными (доступными из объектов других классов) или приватными (доступными только внутри данного класса). 2- опред реализация класса на одном из яз программирования O2. В модели O2 поддерж множественное наследование классов на основе отношения супертип/подтип. Поддерживается предопред класс "Оbject", явл корнем решетки классов; любой др класс явл неявным наследником класса "Object" и наследует предопред методы ("is_same", "is_value_equal" и т.д.). Специфической особенностью модели O2 явл возможность объявления доп "исключительных" атрибутов и методов для именованных объектов. Это означает, что конкретный именованный объект-представитель класса может обладать типом, являющимся подтипом типа класса.

30. Языки запросов ообд.

Ненавигационные языки запросов. Беери отмечает существование трех подходов.

•яз, являющиеся ОО расширениями языков запросов реляционных систем.

• построение полного логического ОО исчисления.

•применение дедуктивного подхода.

Основой для формулирования запроса должен служить класс, представляющий в ООБД множество однотипных объектов. Рез-том запроса явл некоторое подмножество объектов-экземпляров класса. Это довольно ограничительный подход, поскольку автоматически исключает возможность наличия в языке запросов средств, аналогичных реляцоператору соединения. В яз запросов ОО СУБД ORION полностью поддерживается принцип инкапсуляции объектов. В реализованном варианте яз запросы могут основываться только на одном классе. Синтаксис яз ориентирован на SQL. Очень развит набор допустимых предикатов селекции. Яз запросов системы Iris находится в значительной степени под влиянием реляционной парадигмы. OSQL - это реляционный яз, рассчитанный на работу с ненормализованными отношениями. При таком подходе в OSQL нарушается инкапсуляция объектов. Декларативный яз запросов системы O2 RELOOP. это декларативный язык запросов с SQL-ориентированным синтаксисом, основ на специально разработанной для модели O2 алгебре объектов и значений. Впечатляющим качеством яз RELOOP явл естественность его построения в общем контексте модели O2. Запрос задается всегда на значении-множестве или списке. Рез-том запроса может явл объект, значение-множество или значение-список. При этом элементами значений-множеств могут являться объекты (простая выборка), либо значения-кортежи с элементами-объектами разных классов (например). В совокупности эти особенности языка позволяют формулировать запросы над несколькими классами (специфическое соединение, порождающее не новые объекты, а кортежи из существующих объектов), а также употреблять вложенные подзапросы.

Соседние файлы в папке Подмога_БД_Лапшин