Классика баз данных - статьи

       

с объектным SQL, по крайней


Язык Zigzag соотносится с объектным SQL, по крайней мере, в объектно-ориентированном представлении данных. Zigzag - более выразителен и помогает работать со структурно более гибкими данными. Однако SQL с его схематизацией типа позволяет устанавливать более строгий контроль однородных данных. Основное отличие проявляется в том, что Zigzag может видеть тип как объект данных и объект данных как тип для других объектов. Это позволяет создать иерархию данных, не только иерархию типа, семантически более точно, например:

продукция(оборудование) / \ печатная видео (оборудование:типография,периодичность) (оборудование:видеокамера,...) / \ | \ журнал книга (периодичность: регулярно,...) (периодичность:нерегулярно,назначение) / | / | \ беллетристика учебник ... (назначение:развлечение) (назначение:образование)

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

продукция(ид,оборудование) / \ печатная(периодичность) видео(...) / \ / \ журнал(...) книга(назначение)

Объекты "книга", сохраненные в таблице "книги", будут представлены с соответствующим порядком атрибутов:

книги = [ книга('беллетристика', 'типография', 'нерегулярно', 'развлечение'), книга('учебник', 'типография', 'нерегулярно', 'образование') ]

Как может быть замечено, значения атрибутов не наследуются, так что "типография" и "нерегулярно" повторены в каждом объекте. Есть уверенность, следующие версии SQL решат эту проблему, тип будет содержать статический атрибут со значением подобно статическому полю в Java (статические методы уже существуют в SQL у Oracle и DB2). Такой статический атрибут должен быть полезен в запросе, выбирающем все объекты типов имеющих нужное значение.

В будущем SQL должен владеть менее выразительными, чем Zigzag, но разумно простыми конструкциями, чтобы рассматривать типы в роли объектов. Гибкость, основанная на рассмотрении объектов в качестве типов, останется прерогативой таких языков, как Zigzag. Чтобы создать объекты типа "учебник" и "беллетристика", SQL3 разработчик создаст новые типы и новые таблицы или, что лучше, преобразует существующую таблицу в новые. Zigzag разработчик использует объекты "учебник" и "беллетристика" как уже существующие типы. Например, чтобы добавить объект "физика" он может ограничить себя составлением только одной инструкции подобной :учебник:физика(...).


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