Три манифеста баз данных ретроспектива и перспективы

       

Объектная модель SQL


Объектная модель SQL 69 не является тождественной объектным моделям какого-либо объектно-ориентированного языка программирования или какой-либо объектно-ориентрованной системы баз данных (включая модель ODMG – см. разд. 2). Однако при определении объектной модели SQL участники процесса стандартизации тщательно проанализировали ряд других языков и систем с целью выяснения достоинств и недостатков их объектных моделей70.

По мнению авторов стандарта SQL :1999, выработанная ими объектная модель похожа на объектную модель языка Java , но при этом адаптирована к природе языка SQL как языка СУБД с наличием стабильно хранимых метаданных и данных 71.

Объектная модель SQL :1999 включает два основных отличительных компонента – структурные,  определяемые пользователями типы данных (User Defined Type – UDT )и типизированные таблицы (Typed Table ). Первый компонент позволяет определять новые типы данных, которые могут быть гораздо более сложными, чем встроенные типы данных языка SQL . При определении структурного UDT требуется специфицировать не только содержащиеся в нем элементы данных, но и семантику типа данных, т.е. его поведение на основе интерфейса вызовов методов. Второй компонент – типизированные таблицы – позволяет определять таблицы, строки которых являются экземплярами (или значениями) UDT , с которым явно ассоциируется таблица.

В стандарте SQL :1999 определены два пакета объектных свойств – минимальный (PKG 006) и полный (PKG 007), которым должны удовлетворять SQL -ориентированные ОРСУБД, претендующие на соответствие стандарту. Ниже мы перечислим свойства, включенные в каждый из пакетов, но смысл этих свойств будет понятен только на основе последующих подразделов.

Пакет PKG 006 включает всего пять свойств:

свойство S 023 (“Basic structured types ”) –  возможность определять UDT и их методы с ограниченными возможностями;

свойство S 041 (“Basic reference types ”) –  возможность определять и использовать ссылки на экземпляры UDT , входящие в типизированные таблицы;


свойство S 051 (“Create table of type ”)  –  возможность создания типизированных таблиц;

свойство S 151 (“Type predicate ”) –  возможность определения точного типа ( в иерархии типов) экземпляра UDT ;

свойство Т041 (“Basic LOB data type support ”)–  возможность определения LOB -типов в смысле SQL (с необязательной поддержкой операций, кроме операций сохранения и полной выборки).

Пакет PKG 007 содержит девять дополнительных свойств:

свойство S 024 (“Enhanced structured types ”) –  добавляет к свойству S 023 ряд развитых возможностей, в число которых входят возможности кодирования методов на языках, отличных от SQL , сравнения экземпляров UDT и передача экземпляров UDT в качестве параметров различных процедур;

свойство S 043 (“Enhanced reference types ”) –  расширяет свойство S 041 возможностями определения ссылок с областью действия, автоматической проверки законности ссылок и т.д.;

свойство S071 (“SQL-paths in function and type name resolution”) –   позволяет использовать путевые выражения SQL (SQL-path) в алгоритме разрешения типа;

свойство S 081 (“Subtables ”) –  расширяет возможности свойства S 051, допуская организацию иерархии таблиц, аналогичной иерархии типов соответствующих UDT ;

 свойство S 111  (“ONLY in query expressions ”) –обеспечивает возможность выборки только экземпляров указанного типа, без экземпляров любого из его подтипов;

свойство S 161 (“Subtype treatment ”) – дает возможность информировать среду SQL о том, что некоторый экземпляр UDT в действительности является экземпляром указанного подтипа;

свойство S 211 (“User -defined cast functions ”) – разрешает определять подпрограммы, преобразующие экземпляры UDT к другим типам;

свойство S 231 (“Structured type locators ”)  –  способствует доступу к экземплярам UDT   из прикладных программ;

свойство S 023 (“Transform functions ”) –  позволяет определять подпрограммы, преобразующие значения UDT в значения предопределенных типов данных и наоборот.


Содержание раздела