Труды КНЦ вып.9 (ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ) вып. 9/2019(10)

приложения нет необходимости встраивать дополнительные конструкции типа SQL. ООСУБД входят в состав компилятора, который обрабатывает исходный текст и автоматически создает в БД структуры для хранения объектов. Объект сохраняется в БД при вызове специального метода. Основной недостаток ООСУБД, который они унаследовали от иерархических СУБД, - невозможность осуществления незапланированных запросов к БД без изменения её структуры (добавления новых структур данных или методов), а значит, изменения и самой программы. Кроме того, если с одной и той же БД работают приложения, количество которых заранее не определено, то появление нового приложения требует перекомпиляции уже имеющихся. Другим направлением являются объектно-реляционные СУБД, появившиеся в результате расширения функционала реляционных СУБД и языков обращения к ним [6]. ОРСУБД наряду с хранением реляционных данных, обеспечивают постоянное хранение объектов. Такие системы используют отображение “объектный класс - домен” и поддерживают создание пользовательских типов данных. Это позволяет создавать композитные атрибуты, применять парадигмы наследования и полиморфизма. Так, если поле таблицы имеет базовый тип, то в нем может содержаться также и объект любого дочернего типа. Методы типа описываются в его теле, что поддерживает инкапсуляцию данных. Методы могут описывать преобразования к другим типам, что обеспечивает поддержку приведения типов на уровне доменов. Множественное наследование в современных ОРСУБД не поддерживается, хотя не исключается в будущем. Помимо объектных расширений, ОРСУБД поддерживают все реляционные операторы. Поэтому ОРСУБД свободны от недостатков ООСУБД и поддерживают следующие возможности: • незапланированные запросы; • каскадное удаление (ссылочная целостность); • поиск указателей и идентификаторов объектов скрыт от пользователя; • использование преимуществ инкапсуляции для внутренней структуры отношений. Поскольку ОРСУБД, по сути, реализуют реляционную модель с дополнительной поддержкой пользовательских типов на уровне доменов, то они наследуют все основные недостатки этой модели, связанные с семантикой. Третьим направлением к объединению возможностей РБД и объектного представления данных является создание объектно-ориентированной надстройки над уже существующими реляционными СУБД. Получившиеся в результате СУБД были названы постреляционными. Этот вариант был предложен Майклом Стоунбрейкером [7] и реализован под его началом в университете Беркли в виде СУБД Postgres[8], Постреляционные СУБД - результат эволюции РСУБД. Они позволяют создавать пользовательские типы данных (с некоторыми ограничениями) и таблицы с композитными столбцами. В качестве домена столбца может выступать таблица, а точнее - тип данных, соответствующий структуре таблицы и создаваемый одновременно с таблицей. Композитные типы создаются на основе некоторого базового множества элементарных типов, априорно поддерживаемых СУБД. Современные постреляционные СУБД не позволяют напрямую (средствами языка SQL или его объектных расширений) 113

RkJQdWJsaXNoZXIy MTUzNzYz