Труды КНЦ вып.9 (ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ) вып. 9/2019(10)
приложения нет необходимости встраивать дополнительные конструкции типа SQL. ООСУБД входят в состав компилятора, который обрабатывает исходный текст и автоматически создает в БД структуры для хранения объектов. Объект сохраняется в БД при вызове специального метода. Основной недостаток ООСУБД, который они унаследовали от иерархических СУБД, - невозможность осуществления незапланированных запросов к БД без изменения её структуры (добавления новых структур данных или методов), а значит, изменения и самой программы. Кроме того, если с одной и той же БД работают приложения, количество которых заранее не определено, то появление нового приложения требует перекомпиляции уже имеющихся. Другим направлением являются объектно-реляционные СУБД, появившиеся в результате расширения функционала реляционных СУБД и языков обращения к ним [6]. ОРСУБД наряду с хранением реляционных данных, обеспечивают постоянное хранение объектов. Такие системы используют отображение “объектный класс - домен” и поддерживают создание пользовательских типов данных. Это позволяет создавать композитные атрибуты, применять парадигмы наследования и полиморфизма. Так, если поле таблицы имеет базовый тип, то в нем может содержаться также и объект любого дочернего типа. Методы типа описываются в его теле, что поддерживает инкапсуляцию данных. Методы могут описывать преобразования к другим типам, что обеспечивает поддержку приведения типов на уровне доменов. Множественное наследование в современных ОРСУБД не поддерживается, хотя не исключается в будущем. Помимо объектных расширений, ОРСУБД поддерживают все реляционные операторы. Поэтому ОРСУБД свободны от недостатков ООСУБД и поддерживают следующие возможности: • незапланированные запросы; • каскадное удаление (ссылочная целостность); • поиск указателей и идентификаторов объектов скрыт от пользователя; • использование преимуществ инкапсуляции для внутренней структуры отношений. Поскольку ОРСУБД, по сути, реализуют реляционную модель с дополнительной поддержкой пользовательских типов на уровне доменов, то они наследуют все основные недостатки этой модели, связанные с семантикой. Третьим направлением к объединению возможностей РБД и объектного представления данных является создание объектно-ориентированной надстройки над уже существующими реляционными СУБД. Получившиеся в результате СУБД были названы постреляционными. Этот вариант был предложен Майклом Стоунбрейкером [7] и реализован под его началом в университете Беркли в виде СУБД Postgres[8], Постреляционные СУБД - результат эволюции РСУБД. Они позволяют создавать пользовательские типы данных (с некоторыми ограничениями) и таблицы с композитными столбцами. В качестве домена столбца может выступать таблица, а точнее - тип данных, соответствующий структуре таблицы и создаваемый одновременно с таблицей. Композитные типы создаются на основе некоторого базового множества элементарных типов, априорно поддерживаемых СУБД. Современные постреляционные СУБД не позволяют напрямую (средствами языка SQL или его объектных расширений) 113
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz