Увеличение количества способов представления данных
В Oracle? предлагалась довольно примитивная совокупность скалярных типов данных (CHAR, NUMBER, VARCHAR, DATE, RAW, LONG). В OracleS эта совокупность значительно обогащена вследствие ввода новой системы типов, которая включает поддержку наборов данных (традиционалисты могут считать их повторяющимися группами).
Теперь пользователи могут, правда с некоторыми ограничениями, определять собственные типы данных, используя механизм абстрактных типов данных (АТД). Это могут быть простые скалярные типы или более сложные "записи", например адрес, который содержит пять строк собственно адреса, название штата и почтовый индекс. Самый большой недостаток состоит в том, что, оказывается, не существует способа задать ограничения в рамках определения типа, поэтому нельзя, к примеру, применить АТД к положительным ненулевым целым. Далее мы приведем небольшой пример абстрактного типа данных (см. раздел "Система типов").
Тем, кто долго страдал от ограничений, связанных с типом LONG, наверняка понравятся новые типы данных LOB и BFILE. Данным типа LOB (large object — большой объект) и данным типа BFILE (binary file — двоичный файл) присущи лишь немногие из недостатков данных типа LONG, и ими можно манипулировать из PL/SQL с помощью нового пакета DBMS LOB. Главное различие между указанными типами состоит в том, что LOB хранится внутри базы данных и входит в сферу транзакционного управления этой БД. BFILE же размещается вне базы данных, вследствие чего транзакционному управлению не подлежит. Подробнее эти типы данных рассмотрены в главе 4.
Примечание:
Название BFILE (двоичный файл) кажется несколько странным, потому что все хранящиеся на компьютере или магнитном носителе файлы представляют собой, по сути дела, двоичные файлы. В данном случае отличает эти файлы то, что они являются внешними для базы данных и ссылки на них производятся из базы данных. Как, должно быть, велико было искушение назвать их Х-файлами!
OracleS уже не ограничивает нас скалярными элементами (т.е. столбцами) в таблице. Таблицы могут содержать массивы данных переменной длины (известные на жаргоне OracleS как VARRAY) и вложенные (или встроенные) таблицы. VARRAY — это упорядоченный набор встроенных объектных типов (типы рассмотрены в разделе "На пути к объектной ориентации") с неявными индексными переменными. Вложенная таблица — это таблица, являющаяся столбцом другой таблицы.
В OracleS также есть новый тип индекса — индекс с реверсированным ключом (reversed key index). В этом индексе байты столбца, но не сами столбцы, расположены в обратном порядке. Так, при индексации по ключу (LASTNAME, FIRSTNAME) элемент индекса для IAN STEVENSON был бы
/. Что нового в OracleS?	17