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

       

Не более чем один образ


Не более чем один образ на каждом отношении может иметь свойство кластеризации, (clustering), которое означает, что кортежи, находятся поблизости друг от друга в порядке представления данного образа, физически сохраняются поблизости друг от друга в базе данных. Образ также может быть определен уникальным (unique), что означает, что индексный атрибут должен быть ключом соответствующего отношения, т.е. никакие два кортежа не могут содержать одно и то же значение этого атрибута. Линк (link) – это набор указателей, соединяющих кортежей одного отношения с кортежами другого отношения, которые подбираются в соответствии с некоторым атрибутом. Линк может иметь свойство кластеризации; в этом случае система пытается поддерживать физическую смежность связанных кортежей. Примеры операторов, которые создают образы и линки, показаны в D3 и D4. Каждому образу или линку задается имя (I3 и L5 в примерах), которые дают возможность пользователю ссылаться на них (например, в операторе DROP).

D3. Создать образ I3 для атрибута SAL в таблице EMP. CREATE IMAGE I3 ON EMP(SAL) D4. Создать линк L5, который соединяет строки DEPT со строками EMP с такими же значениями атрибута DNO. Упорядочить служащих на линке сначала по JOB, а затем по SAL. CREATE LINK L5 FROM DEPT(DNO) TO EMP(DNO) ORDER BY JOB,SAL

Хотя SEQUEL 2 позволяет пользователям создавать и уничтожать образы и линки, в нем нет операторов, которые бы использовали эти структуры непостредственно. Все запросы и операторы манипулирования данными в SEQUEL задаются непроцедурным способом, который позволяет системе выбирать для выполнения оператора оптимальный образ или другой путь доступа. Образы и линки не содержат информации, которая не выводилась бы из реальных значений данных в используемых кортежах.

Очень важный аспект определения данных – возможность определять альтернативные представления (view) хранимых данных. В SEQUEL 2 способ определения представления очень похож на способ задания запроса. Это связано с тем, что SEQUEL 2 обладает свойством замкнутости (closure): результат любого запроса к одной или нескольким таблицам сам является таблицей.

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