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

Лекция№12 Объектно-ориентированная модель баз данных.

Объектно-ориентированная модель баз данных. Вклад объектно-ориентированного программирования в развитие объектно-ориентированных баз данных. Общий объектно-ориентированный язык управления базами данных. Определение данных. Языки программирования объектно-ориентированных баз данных

Основные концепции объектно-ориентированного подхода

Сложные специализированные приложения баз данных включают CAD-системы автоматизированного проектирования, CAM-системы автоматизированного производства, CASE-системы автоматизированной разработки про­граммного обеспечения, офис­ные информационные системы (OSI), цифровые издательские и геоинформационные системы (GIS), а также приложения со сложными и взаимосвязанными объ­ектами и процедурными данными. Ограниченные возможности реляционных СУБД с точки зрения моделирования объектов реального мира сделали их не­пригодными для сложных специализированных приложений баз данных.

Абстракция/ инкапсуляция и сокрытие информации

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

Двумя основными аспектами абстракции являются ин­капсуляция и сокрытие информации.

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

Названные концепции упрощают создание и сопровождение приложений за счет модуляризации. Объект представляет собой "черный ящик", который может быть создан и изменен независимо от остальной системы при условии, что остается неиз­менным его открытый интерфейс.

Существуют два представления об инкапсуляции: представление объектно-ориенти­рованного языка программирования (ООЯП) и адаптация этого представления для нужд баз данных. В некоторых ООЯП инкапсуляция достигается за счет использова­ния абстрактных типов данных (ADT). В этом представлении объект состоит из интерфейса и реализации. Интерфейс предоставляет спецификацию операций, которые могут быть выполнены с объектом; а реализация состоит из струк­туры данных для ADT и функций, которые реализуют этот интерфейс. Для других объектов и пользователей доступен только интерфейс. В представлении базы данных должная инкапсуляция достигается благодаря тому, что программисты обладают пра­вом доступа только к интерфейсу. Таким образом, инкапсуляция обеспечивает логиче­скую независимость от данных: внутреннюю реализацию ADT можно изменять, не за­трагивая приложения, которые используют этот ADT.

Объекты и атрибуты

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

Это определение объекта аналогично определению сущности, данного ранее. Однако объект инкапсулирует со­стояние и поведение, а сущность моделирует только состояние.

Текущее состояние объекта описывается одним или несколькими атрибутами, или переменными экземпляра. Атрибуты могут быть простыми и составными. Простой атрибут может иметь примитивный тип (например, целое число, строка, действительное число и т.д.) и принимать литеральное значение. Составной атрибут может со­держать коллекции и/или ссылки. Ссылочный атрибут представляет связь между объектами. Он содержит значение (или коллекцию значений), которое также является объектом. Ссылочный атрибут концептуально аналогичен внешнему ключу в реляционной модели данных или указателю в языках программирования. Объект, который содержит один или несколько составных атрибутов, называется со­ставным объектом.

Идентификация объектов

Ключевой частью определения объекта является уникальность его идентифика­ции. В объектно-ориентированной системе каждому объекту в момент его создания присваивается идентификатор объекта (ОID), который обладает следующими свойствами:

  • генерируется системой;

  • уникально обозначает этот объект;

  • инвариантен в том смысле, что его нельзя изменить во время жизненного цикла программы — после создания объекта его ОШ-идентификатор не может быть использован повторно ни для какого другого объекта, даже по­сле удаления данного объекта;

  • не зависит от значений его атрибутов (т.е. от его текущего состояния, два объекта могут иметь одинаковое состояние, но всегда обладают разными ОID -идентификаторами);

  • скрыт от пользователя (в идеале).

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

Перечислим некоторые преимущества использования OID -идентификаторов в качестве идентификаторов объектов.

Эффективность. Для хранения OID-идентификаторов внутри составного объекта требуется очень мало места.

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

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

Независимость от содержания данных. OID-идентификаторы никак не зависят от данных, которые содержатся в данном объекте. Это позволяет изменять значение каждого атрибута объекта, но при этом данный объект остается тем же объектом с прежним OID-идентификатором.

Соседние файлы в папке Новые лекции