Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД вопросики.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.33 Mб
Скачать

8. Отношения, атрибуты и кортежи.

С помощью понятия домена удается формально описать базовую структуру данных реляционной модели данных, получившую название «отношение».

Отношением называют структуру данных, которая задается с помощью заголовка отношения и тела отношения. Заголовок отношения определяется так: <имя_отношения> (фиксированный список атрибутов) – R(А1, А2, …, Аn).

Атрибутом отношения называется формальная пара вида: <имя_атрибута: имя_домена>. Атрибут определяется на домене и поэтому имеет единственное отличие от домена – имя атрибута должно быть уникальным только в пределах данного отношения. Сравнение атрибутов возможно внутри одного домена.

Тело отношения (заданные в базе данные) состоит, по определению, из множества кортежей, где каждый кортеж представляет собой множество различных комбинаций допустимых значений атрибутов. Формально кортеж определяется так: (А1: значениеА1, А2: значениеА2, …, Аn: значениеАn).

Свойства кортежей:

■ Каждый кортеж содержит точно одно значение (соответствующего типа) для каждого из своих атрибутов.

■ Для компонентов кортежа не предусмотрено упорядочение, допустим, слева направо. Это свойство следует из того, что понятие кортежа определено на основании множества компонентов, а в математике множества не характеризуются упорядочением своих элементов.

■ Каждое подмножество кортежа представляет собой кортеж (а каждое подмножество заголовка является заголовком). Более того, эти свойства являются истинными применительно, в частности, к пустым подмножествам!

В результате разделения функции отношения между заголовком и телом, мы получаем возможность разработки прикладных программ для фиксированных структур данных при бесконечных вариациях самих данных. Заголовок отношения – статичен и неизменен, тело отношения – абсолютно динамично.

Заголовок отношения фактически описывает декартово произведение доменов, на которых это отношение определено. Тело отношение есть множество кортежей, или некое подмножество декартового произведения доменов. В результате тело отношение и является той структурой данных, с которой работает реляционная алгебра.

Кстати, схемой реляционной БД называется только набор заголовков, входящих в нее отношений и связей между ними.

9. Формализация отношений в виде таблиц.

Одно из достоинств реляционной модели данных состоит в том, что отношения могут быть представлены в виде таблиц (внешний уровень архитектуры БД). Однако структура данных отношение и структура данных таблица – это совершенно разные структуры.

Конкретные отличия между отношениями и таблицами:

■ В теле отношения по определению не может быть одинаковых кортежей. Таблица может содержать одинаковые строки (автоматически реализуется в СУБД).

■ Кортежи в теле отношения не только не должны быть упорядочены, но и в принципе не могут быть упорядочены (исключение – сортиров. файлы). Любая таблица, как правило, использует упорядоченные строки.

■ Аналогично атрибуты в заголовке отношения по определению неупорядочены, каждый атрибут в пределе одного отношения имеет уникальное имя. Порядок столбцов (заголовки столбцов) имеют для таблицы важнейшее значение.

■ Все значения атрибутов скалярны, в ячейках таблиц можно размещать любые сложные структуры данных, например, массивы алгебраических выражений.

■ Для каждого компонента каждого кортежа в теле отношения предусмотрено имя типа и имя атрибута, но эти имена типа и атрибута обычно не показаны на изображениях в виде таблицы.

■ Каждое значение атрибута в каждом кортеже в теле отношения является значением соответствующего типа, но эти значения на изображениях в виде таблицы обычно показаны в сокращенной форме, например, s1 вместо s# (' S1').

Некоторые другие отличия:

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

■ Безусловно, допускается (по крайней мере, в языке SQL), чтобы таблицы включали неопределенные значения (NULL), в то время как для отношений это ни в коем случае не допускается.

■ Безусловно, что таблицы являются "плоскими" (или двухмерными), а отношения — n-мерными.

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

___. Схемы отношений и представление данных в РБД.

Представление в реляционной модели, по сути, является именованным выражением реляционной алгебры (либо конструкцией, эквивалентной выражению реляционной алгебры). Ниже приведен пример на языке Tutorial D.

VAR GOOD_SUPPLIER VIEW

( S WHERE STATUS > 15 ) { S#, STATUS, CITY } ;

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

Любое представление, такое как GOOD_SUPPLIER, в некотором смысле можно считать просто окном для просмотра данных. Любые изменения, вносимые в исходную базовую таблицу, будут автоматически и мгновенно отображаться в представлении (как в окне), конечно, если они попадут в область, охваченную

данным представлением. И наоборот, все изменения, вносимые в представление, будут автоматически переноситься в данные исходной базовой таблицы, в результате чего станут видимыми и в самом представлении.

Поддержка представлений желательна по многим причинам. Укажем некоторые из них.

■ Пользователям предоставляется возможность использовать средства сокращенной записи операторов — своего рода "макросы ".

■ Представления позволяют разным пользователям различным образом видеть одни и

те же данные в одно и то же время.

■ Обеспечивается автоматическая защита скрытых данных.

■ Представления могут обеспечивать логическую независимость от данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]