Строение гипертаблиц
|
В этом разделе описано...устройство гипертаблиц.
Обозначения внутри таблицДля понимания сути гипертабличной навигации нужно сначала понять, из чего состоят таблицы, т.е. что находится в ячейках. Вообще говоря, в ячейке может находиться либо один объект, либо множество или список объектов, либо целая таблица, либо ничего. Ячейки одного столбца однотипны. А типы столбцов различаются между собой написанием, шрифтом и цветом. А именно:
Разновидности гипертаблиц.Таблицы делятся на следующие разновидности:
Объектные формыФормы более всего напоминают то, что называется фреймом в объектно-фреймовых системах. Структура формы самая простая. Форма состоит из двух столбцов. Первый столбец содержит названия аспектов, а второй - их содержание для данного объекта. Фактически, форма представляет собой строчку таблицы представителей, развёрнутую для большей наглядности вертикально. Таблица представителейЧастным случаем такой таблицы является таблица классов (т.е. представителей класса CLASS) которая используется в роли наиболее удобной исходной точкой навигации. В таблице представителей собраны все сущности некоторого класса. Например, для следующей базы данных... Родитель:LINK(Родители:{&Личность},Дети:{&Личность}) таблицы представителей класса Личность и класса Пол имеют примерно такую структуру ITEMS(Личность)
ITEMS(Пол)
Как мы видим, у таблиц представителей слева появился титульный столбец с именем объекта расположенного в данной строке. Титульный столбец не прокручивается при просмотре таблицы и всегда виден, так же как и верхняя титульная строка таблицы. (Строго говоря, таблицы представителей тоже "аспектные" т.к. образуются аспектом ITEMS из системного отношения NAME, соединяющего дескрипторы классов с сущностями этих классов). Особая разновидность таблиц представителей существует для локально именуемых объектов. Такая таблица собирает не вообще все объекты класса, все объекты принадлежащие одному старшему объекту. Например, в такой таблице могут быть собраны все улицы одного города, при том, что общей таблицы улиц просто не существует. (Среди улиц вообще могут быть одноименные, а объекты с одинаковыми именами не могут находиться в одной таблице представителей). Аспектные таблицысодержат все связи одного аспекта некоторого объекта. Эта пара аспект-объект называются заглавным аспектом и заглавным объектом таблицы, а совместно они образуют заголовок таблицы, записываемый в форме Аспект(Объект:Класс). Например так выглядит таблица для объектов класса c1 красного цвета, т.е. по аспекту "Цвет для" объекта Красный. Заголовок у этой таблицы: Цвет для(Красный:Цвет) Среди аспектных таблиц особо следует выделить таблицы для списочных и для многоместных аспектов. Списочные аспекты характерны тем, что порядок связей внутри аспекта объекта управляется вручную, и среди связей могут быть полностью идентичные между собой всем, за исключением позиции в списке. Списочные таблицы можно отличить по наличию первого столбца с порядковыми номерами. В этом столбце можно менять порядок строк с помощью мыши. Таблицы для многоместных аспектов будут подробно рассмотрены ниже. Аспектную таблицу не может образовать одиночный бинарный аспект, т.к. в этом случае (вместо таблицы состоявшей бы из единственной строчки) используется объектная форма. Формирование аспектной таблицы.Рассмотрим подробнее как образуется аспектная таблица.Итак, каждая аспектная таблица представляет определённый аспект одного объекта. Строки таблицы представляют связи, из которых состоит данный аспект. Например, рассмотрим аспект Родители объекта Андрей, пусть родителями Андрея являются Борис и Вера. Тогда есть два факта (две связи,) Родитель(Андрей,Борис)
Первый столбец этой таблицы,
соответствующий её заглавному
аспекту, можно отбросить, т.к. он
заведомо содержит одинаковые
ссылки на заглавный
объект таблицы (Андрей).
Остаётся таблица из
одного столбца
Вообще, при таком способе формирования таблиц, все связи размерности N будут давать таблицы с N-1 столбцом, т.е. все бинарные отношения (как Родитель) будут образовывать таблицы с одним столбцом. Но на практике большинство связей как раз бинарные. Значит ли это, что нам придется иметь дело в основном с "вырожденными" таблицами из одного столбца? Нет, не значит. Дело в том, что если таблица образуется для бинарного отношения, то для этих случаев единственный столбец "разворачивается" на множество столбцов, по числу потенциальных аспектов (т.е. по числу атрибутов класса) объекта. Получается, что в большинстве таблиц соседствуют столбцы двух типов:
Итак, столбцы таблицы делятся на объектные и аспектные. Ячейка объектного столбца соответствует ровно одному объекту. Это как бы скелетные столбцы, на которых висит всё остальное. Аспектные столбцы - дополнительные. В ячейках аспектного столбца отображаются аспекты объекта из ближайшей слева ячейки объектного столбца. Многоместные аспектные таблицыБинарные отношения наиболее часты на практике, но случай этот слишком примитивен, чтобы на нем понять технику работы с таблицами. В бинарных аспектных таблицах, единственный объектный столбец был дополнен множеством аспектных столбцов. Если же размерность отношения более двух, то в таблице образуются два или более информативных объектных столбца. Рассмотрим примеры таких таблиц. Отметим, что теперь не происходит обязательного дополнения объектных столбцов аспектными столбцами. (Такое дополнение остается только для владеющих аспектов). Пусть мы имеем два класса Личность и Роль и для них пусть имеется отношение Играет (т.е. "Играет Роль"). Играет:LINK(Кто:{&Личность},Роль:{&Роль},Для-Кого:{&Личность}) Это отношение имеет три аспекта
Например, следующий факт Играет(Зина,Поклонник,Алла) означает, что есть некто Зина, играющая роль поклонницы для некой Аллы. Или такой факт Играет(Алла,Кумир,Зина) Это значит примерно то же самое, только с другой стороны. Добавим к этим фактам еще несколько: Играет(Ваня,Муж,Зина) И посмотрим теперь, какие для этих данных получаются таблицы. Сначала посмотрим со стороны аспекта Кто. Кто(Алла)
В этой таблице три строки, т.к. есть три факта, у которых в аспекте Кто присутствует объект Алла. Аналогично для других объектов: Кто(Ваня)
Кто(Филя)
Кто(Петя)
Теперь посмотрим на данные со стороны аспекта Для-Кого: Для-Кого(Алла)
Мы видим, что для объекта Алла есть два объекта играющие роль Поклонников и один - роль Мужа. Для-Кого(Ваня)
Для-Кого(Петя)
И, наконец, посмотрим со стороны аспекта Роль. Например, мы можем увидеть кто кому Муж или Поклонник или Друг. Роль(Муж)
Роль(Поклонник)
Роль(Друг)
Формальная классификация столбцов.Точное формальное описание того,
какие есть виды столбцов, и как
реагируют ячейки на Enter находится здесь. Классификация строк.Со строками всё обстоит значительно проще, чем со столбцами. Есть всего три разновидности строк.
|
|