Программирование >>  Реляционные базы данных 

1 ... 121 122 123 [ 124 ] 125


1. СреОа прог/мммирпвешт/. В OQL предполагается, что его операторы bctimc-ны в язык программнрова1гия, использующий такие же модели программирования н данньк. Этот язык является объектно-ориентированным, nanpviMep C+-I-, Smalltalk или Java, Напротив, SQL3 предполагает, что его объекты не являются объектами окружающего главного языка. Так же как в стандартах и реализациях SQL, здесь используется ограниченный интерфейс, позноллюшги! передавать переменные между хранимыми данными SQL и переменными главного языка. ADT SQL3 является дополнитель-1ГЫМ мехагнгзмом к.оммуникаини дпя обычного интерфейса 5017главны1( язык, р.сскготреиного о разделе 7.1.

2. Рмь отношений. Flpir рассмотрении данных в SQL3 отношения сохраняют ключевую роль. Типы строк действительно описывают отношения, а ADT описывают новые типы для атрибутов. В OQL фундаментальными понятиями япляготся множества и мульти.множества объектов или структур благодари и.х роли в выражениях типа select-from-where. Наборы структур в ODL/OQL имеют большое сходство с отношениями SQL3.

л. Инкапсуляция. Типы строка таблицы не инкапсулируются. Естественна возможность запрашивать и изменять отггошения, кортежи и компоненты заданного типа строки всеми способами, допустимыми в SQL, Абстрактные типы данных SQL3 инкапсулируются в обычном смысле. Методы инкапсуляции классов ODL и ADT SQL3 имеют большое сходст1Ю,

4. Экстенты классов. В OQL предполагается, что каждому классу прнпггсана единственная степень. Ссылки (т.е. связи в терминологии OQL) всегда относятся к некоторым членам этого экстента. При желании степень в SQL3 можно использовать для типа строка таблицы , т.е. для отно пения, содержащего кортеж данного типа. Если для экстента тггп строки не определен, MorjT возникнуть проблемы с поиском отношения, содержащего кортеж, на который делается конкретная ссылка (см. раздел 8.5.6).

5. Измеияе.иость объектов. Созаанный объект неизменен: ни одна часть его значения не может быть ггзменена. Объекты элементарного типа, например натуральные числа или строки, в этом смыспе неизменны. Если компоненты объекта могут изменяться, в то время как сам объект сохраняет свою объектную уникальность, он изменяем. Классы ODL и типы строка таблицы SQL3 определяют классы изме}гяемых объектов, а в ODL/OQL предполагается, что из.менения объектов происходят в окружающем языке программирования. ADT SQL3 не являются изменяемыми в строгом смысле этого слова. Однако функции изменения, примсненньге к их стапы.ч! значениям, дают новые значения, подобно тому как применение оператора UPDATE языка SQL к атрибуту с целым значением может породить новое целое 4Hcjm, которое замен)гг старое с кортеже.

Ь. Нденпшфикаиия пооектов- ODL и .ADT SQL3 допускают обычную интерпретацию идентификации объектов как генерируемой системой величины, которую нельзя хранеть и которой нельзя манипулировать. Для ссылок в SQL3 шкая интерпретация не подходит. Пользователь может создать сто.1бец отношения, г,ае идентификация объекта сохраняется в самом кортеже подобгю обычному значению. В результате идентификация одного илн 1гескольких объекгов может быть ключом отношсг[ия Эта особенность имеет определенное значение, хотя и влечет за собой введение в БД В11СЯЩИХ ссылок в результате изменений или удалений. Есл i идентификация обьекга не считается атрибутом, у отношений обычно два к.111оча: 1г,аентифнкацмя объекта м суррогат значения типа номеров стра.хо-иоро полиса или сергификатоп из наших примеров.



8.8 Итоги 373

8.8 Итоги

Методы в ODL. В дополнение к атрибутам и связям, рассмотренным в главе 2, ODL позволяет описывать методы в виде части определения интерфейса При этом определяется только сигнатура метода, т.е. ТИПЫ параметров ввода И пыпола. Сами методы определяются в окружающей программе и записываются на объектно-ориентированном главном языке

♦ Система типт OQL. Типы OQL строятся из имен классов и атомарных типов. Конструктор типов Struct применяется для построения структур и множественных типов лля множеств, мультимножеств, списков и наборов. Поэтому данная система типов является такой же, как в ODL, за исключением того, что в OQL нет предела степени вложения конструкторов типов

♦ Выражении selea-from-where в OQL. Эти выражения соответствуют преадоже-ниям вида selea-from-wliere в SQL. В пункте FROM можно описать переменные, пробегающие любое множество, включая степени классов (аналогичные отнощениям) и .множества, являющиеся значениями атрибутов в объектах.

♦ Обычные операторы OQL В OQL применяются операторы для всех , сушествует , IN. об-ьединеиия, пересечения, разности и агрегаиии, сходные по своей спи с операторами SQL. Однако агрегация всегда проводится на множестве, а ие иа столбце отношения.

♦ Оператор GROUP BY. Оператор GROUP BY языка OQL - оператор в предложении select-from-where, аналогичный такому же оператору SQL Но в OQL множество объектов каждой группы явно достижимо через имя поля°partition.

♦ Извлечение эле. ентое из множеств в OQL. Единственный элемент одноэлементного множества можно получить с помошью оператора ELEMENT. Для получения элементов множеств, содержащих более одного члена, сначала нужно превратить это множество в список, применив оператор ORDER BY в предложении select-from-where, а затем использовать цикл в программе окружающего главного языка для извлечения каждого элемента этого списка.

♦ Объекты в SQL3. В SQL3 есть два вида объектов: типы строка таблииы и абстрактные типы данных. Первые являются типами для кортежей, а вторые - для компонентов кортежей.

♦ Идентификации объектов для типов строка таб/шпы . Для каждого типа строка таблицы сушествует тип ссылки, значением которого является ID объекта для конкретного кортежа. 8 S0L3 типом атрибута может быть ссылка на тип кортежей отношения, куда ачодит этот атрибут. Его значением может быть ID объекта для кортежа, содержащего :jtot атрибут, что позволяет ааннсму ID служить и п качестве ключевого атрибуга всего отношения.

♦ Абстрактные типы данных. ADT в SQL3 описываются с помощью оператора CREATE TYPE. Значения ЛОТ - это структуры записей с одним или более компонентами, с которыми могут быть связаны определенные методы.

♦ Методы в ADT языка SQL3. Для ADT можно задать функ1ин1 (методы). Они .\wryr быть описаны либо на языке программиров,зния. сходном с SQL. либо в виде внешних функций, выраженных на главном языке.



8-9 Литература к главе 8

Мнформлш ; по OQL п ODL дана б книге fl]. Материал по SQL3 ишите го б1!5лио1р.ф1!чсским ссылкам к главе 5. Отчет [3J является источником информашп о строковых об1.скти\. В отчсге 2 даио раннее опнсанне абстрактных типов дан-ныч SQ\J. h:i которлго различными путями развивается опредепенныП ста шарт.

1. СанеИ. R. О. G. (ed.), The Object Dmabase Standard: ODMG 93 Release 1.2, Morgan-Kaiifmiinii. S;in Fiancisco, 1996.

2. Mellon. J.. .1. Baiiei, and K. Kulkarni, Object ADT (with improvemenis for value ADTs).- ISO WG3 repon X3H2-9I-0S3. April. 1991.

3. Kulkarni. K., M.Carey, L. DeMicliiel, N. Mattos, W. Hong, and M Ube 1, Innoducin.e геГегепсе types and cleaning up SQL3s obiecl model. ISO WG3 repoil X3H2-95-450, Nov., 1995.



1 ... 121 122 123 [ 124 ] 125

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика