SQL99 предлагает два основных расширения
Язык SQL3/ SQL99 предлагает два основных расширения SQL2/SQL92, принятой на сегодняшний день черновой версией SQL.
1. АТД. АТД может быть описан при помощи оператора CREATE TYPE. Как и классы в объектно-ориентированной технологии, АТД состоит из атрибутов и функций-членов, предназначенных для доступа к значениям атрибутов. Функции-члены могут изменять значения атрибутов типа данных, а значит, могут изменять и состояние базы данных. АТД можно использовать как тип столбца реляционной схемы. Для доступа к значению, которое содержится в АТД, нужно вызвать функцию-член, описанную в операторе CREATE TYPE. Например, следующий код порождает тип Point и описывает одну функцию-член Distance: CREATE TYPE Point ( x NUMBER, y NUMBER, FUNCTION Distance(:u Point,:v Point) RETURNS NUMBER );
Двоеточия перед u и v указывают, что это – локальные переменные.
2. Тип строки. Тип строки (row type) – это тип отношения. Тип строки задает схему отношения. Например, следующий оператор объявляет тип строки с именем Point: CREATE ROW TYPE Point ( x NUMBER, y NUMBER );
Теперь можно создавать таблицу, которая содержит экземпляры типа строки. Например: CREATE TABLE Pointtable of TYPE Point;
В этой книге особое значение мы будем придавать использованию АТД, а не типов строк. Это связано с тем, что АТД в роли типа столбца естественным образом согласуется с описанием ОР-СУБД как расширенной реляционной базы данных.