Главная » SQL, Базы данных » ТРИ УРОВНЯ АБСТРАКЦИИ Модель TransRelational

0

Реляционная  система,  реализованная  с  использованием  модели  TR,  может  рассматриваться  как охватывающая три уровня абстракции: реляционный (или пользовательский) уровень, файловый уровень и уровень модели TR (рис. А.2), которые описаны ниже.

Рис. А.2. Три уровня абстракции

■     На  верхнем  уровне данные  представлены  в  виде отношений,  которые обычным образом составлены из кортежей и атрибутов.

■     На нижнем уровне данные представлены с помощью различных внутренних структур модели TR, называемых таблицами, а сами эти таблицы состоят из строк и столбцов. Сразу же следует отметить, что указанные таблицы, строки и столбцы не являются конструкциями SQL с теми же именами, а также непосредственно не соответствуют отношениям, кортежам или атрибутам на пользовательском уровне.

■     Средний уровень представляет собой уровень перенаправления между другими двумя уровнями —

отношения верхнего уровня отображаются на файлы среднего уровня, а затем эти файлы

отображаются на таблицы низкого уровня. Кроме того, указанные файлы состоят из записей и полей; записи соответствуют кортежам, а поля — атрибутам верхнего уровня.

■  Примечание. На основании этого описания не следует делать ошибочный вывод, что

файлы хранятся физически; они представляют собой такую же абстракцию физически хранимых данных, как и сами переменные отношения (а в конечном итоге такой же абстракцией хранимых данных являются и таблицы TR). Но вполне допустимо рассматривать их "немного более близкими к физическому уровню", чем переменные отношения (и вместе с тем менее близкими к физическому уровню, чем таблицы TR).

Начиная с этого момента, в настоящем приложении скрупулезно соблюдается соглашение о том, что реляционная терминология используется при описании верхнего уровня, файловая терминология  —  среднего  уровня,  а  табличная  терминология  —  нижнего  уровня.  Для упрощения предполагается также, что все отношения и  переменные отношения являются именно базовыми отношениями и переменными отношения, если явно не указано иное.

Таким   образом,   первым   этапом   преобразования   любой   конкретной   переменной отношения в соответствующее представление TR является отображение соответствующего отношения  на  файл,  записи  которого  соответствуют  кортежам,  а  поля  —  атрибутам. Например,  на  рис.  A3  показан  один  из  возможных  файлов,  соответствующих  обычно применяемому  отношению  поставщиков.  В  таком  файле  записи  имеют  упорядочение сверху вниз, а поля — упорядочение  слева направо (как показано с помощью номеров записей и номеров полей на этом рисунке). Но рассматриваемое упорядочение фактически выбрано  произвольным  образом,  поэтому,  например,  данное  отношение  поставщиков вполне можно было бы отобразить на любой из 2880 различных файлов (поскольку имеется

120   разных   вариантов   упорядочения   для   пяти   записей1     и   24   разных   вариантов

упорядочения  для  четырех полей).  С другой стороны, по меньшей мере, все эти  2880 различных файлов эквивалентны друг другу, в том смысле, что все они представляют точно одну и ту же информацию, поэтому иногда удобнее рассматривать их не просто как 2880 различных файлов как таковых, а скорее как 2880 различных версий "одного и того же" файла.

Рис. А.З. Файл для обычно применяемого отношения поставщиков

Теперь файл, подобный приведенному на рис. А.З, может быть представлен с помощью таблиц на уровне TR и реконструирован из этих таблиц TR. При этом следует учитывать тот (очень важный!) факт, что все возможные различные версии одного и того же файла могут быть реконструированы из одних и тех таблиц TR одинаково легко (здесь термин версия используется в том смысле, который был только что определен); это означает, что в разных версиях файла упорядочение записей и полей может отличаться, а содержание остается одним  и тем же. Как достигается такая возможность, будет описано в следующем разделе. В  этих  таблицах TR строки имеют упорядочение сверху вниз, а столбцы — упорядочение  слева направо. Кроме того (это еще одно важное замечание!), места пересечения строк и столбцов в такой таблице (которые будут именоваться ячейками), можно адресовать в стиле адресации массивов, [ i, j ], где i — номер строки, a j — номер столбца.

1 Безусловно, не все из этих 120 упорядочений могут быть получены с помощью простой конструкции ORDER BY (например, не может быть получено упорядочение, показанное на рис. А.З).

Подробные сведения об отображении файлов на таблицы TR приведены в следующем

разделе, а в этом разделе достаточно подчеркнуть тот факт, что оно ничем не напоминает тот вид непосредственного отображения, который был описан в разделе АЛ. В частности, строки таблиц TR не имеют какого-либо взаимно однозначного соответствия записям на файловом уровне, а в силу этого и не имеют какого-либо взаимно однозначного соответствия кортежам на реляционном уровне. В качестве иллюстрации на рис. А.4 показана таблица TR, называемая таблицей значений полей, которая соответствует файлу на рис. А.З; в частности, заслуживает внимания то, что (как уже было сказано) ее строки не соответствуют каким-либо очевидным образом тем записям, которые показаны на рис. A3.

Для того чтобы иметь возможность реконструировать показанный на рис. А.З  файл из таблицы значений полей на рис. А.4, требуется еще одна таблица — таблица реконструкции записей (рис. А.5). Следует отметить, что значениями в ячейках этой  таблицы больше не являются  номера  поставщиков  или  значения  статуса  (и  т.д.),  несмотря  на  обозначения столбцов; вместо этого в ней находятся номера строк. Дополнительное описание приведено в следующем разделе.

Рис. А.5. Таблица реконструкции записей для файла, приведенного на рис. А.З

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии