16.5. Структурная часть: отношения

Фундаментальным понятием реляционной модели данных является понятие отношения.

Атрибут отношения – есть пара вида <ИмяАтрибута : ИмяДомена>.

Имена атрибутов должны быть уникальны в пределах отношения. Часто имена атрибутов отношения совпадают с именами соответствующих доменов.

Отношение R, определенное на множество доменов D1, D2, Dn, содержит две части: заголовок и тело.

Заголовок содержит фиксированное множество атрибутов отношения:{ <А1:D1>, <A2:D2>,..., <An:Dn> } причем каждый из атрибутов Aj соответствует только одному из доменов Dj (j=1,2,... n).

Тело содержит множество кортежей. Каждый кортеж, в свою очередь, содержит множество пар вида <ИмяАтрибута : ЗначениеАтрибута>: { <A1:Vi1>, <A1:Vi2>,... <An:Vin>} (i=1,2,... m, где m – количество кортежей в этом множестве).

В каждом кортеже есть одна такая пара <Aj:Vij> для каждого атрибута Aj в заголовке. Для любой такой пары <Aj:Vij> Vij является значением из уникального домена Dj, который связан с атрибутом Aj.

Значения m называются кардинальным числом, n – степенью отношения R.

Проверим таблицу S – является ли она отношением.

  1. В таблице есть 4 домена: домен номеров поставщиков, имен, значений статуса, наименований городов.

  2. Заголовок: множество пар { <S#:S#>, <SNAME:NAME>, <STATUS:STATUS>, <CITY:CITY>}

  3. Тело набор строк. Рассмотрим одну строку. Строка набор пар {<S#:’S1’>, <SNAME:’Рец’>, <STATUS:20>, <CITY:’Балахта’>}

Значит таблицу S можно рассматривать как изображение отношения. Отношение – абстрактный вид объекта, а таблица – конкретное изображение этого абстрактного объекта. Неформально отношение и таблица близки. Формально нет.

Вывод 1: Заголовок отношения описывает декартово произведение доменов, на котором задано отношение. Заголовок статичен, он не меняется во время работы с БД. Если в отношении изменены, добавлены или удалены атрибуты, то в результате получим уже другое отношение.

Вывод 2: Тело отношения представляет собой набор кортежей, то есть подмножество декартового произведения доменов. Таким образом, тело отношения собственно и является отношением в математическом смысле слова. Тело может измениться во время работы с БД – кортежи могут измениться, добавляться и удаляться.

Реляционной БД называется набор отношений.

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

Синтаксис оператора создания отношения (К. Дейт):CREATE BASE RELATION ИмяБазовогоОтношения(ИмяАтрибута DOMAIN ИмяДомена)PRIMARY KEY (ИмяАтрибута)FOREIGN KEY (ИмяАтрибута) REFERENCES ИмяБазовогоОтношения;