
- •Содержание
- •5.1. Краткий обзор истории реляционной модели.
- •5.2. Используемая терминология.
- •5.2.1. Структура реляционных данных.
- •5.2.2. Математические отношения.
- •5.2.3 Отношения в базе данных.
- •5.2.4. Свойства отношений.
- •5.2.5 Реляционные ключи.
- •5.2.6. Представление схем в реляционной базе данных.
- •Контрольные вопросы:
5.2.2. Математические отношения.
Для
понимания истинного смысла термина
отношение
рассмотрим
несколько математических понятий.
Допустим, у нас есть два множества,
и
,
где
и
.
Декартовым
произведением этих
двух множеств (обозначается как
)
называется набор из всех возможных пар,
в которых первым идет элемент множества
,
а вторым — элемент множества
.
Альтернативный способ выражения этого
произведения заключается в поиске всех
комбинаций элементов, в которых первым
идет элемент множества
,
а вторым — элемент множества
.
В данном примере получим следующий
результат:
.
Любое
подмножество этого декартового
произведения является отношением.
Например, в нем можно выделить отношение
,
показанное ниже:
.
Для определения тех возможных пар, которые будут входить в отношение, можно задать некоторые условия их выборки. Например, если обратить внимание на то, что отношение содержит все возможные пары, в которых второй элемент равен 1, то определение отношения можно сформулировать следующим образом:
На
основе тех же множеств можно сформировать
другое отношение,
,
в котором первый элемент всегда должен
быть в два раза больше второго. Тогда
определение отношения
можно сформулировать так:
В данном примере только одна возможная пара данного декартового произведения соответствует этому условию:
.
Понятие
отношения можно легко распространить
и на три множества. Пусть имеется три
множества: —
,
и
.
Декартово произведение
этих трех множеств является набором,
состоящим из всех возможных троек
элементов, в которых первым идет элемент
множества
,
вторым — элемент множества
,
а третьим — элемент множества
.
Любое подмножество этого декартового
произведения является отношением.
Рассмотрим следующий пример трех
множеств и вычислим их декартово
произведение:
.
Любое
подмножество из приведенных выше троек
элементов является отношением. Увеличивая
количество множеств, можно дать обобщенное
определение отношения на
доменах. Пусть имеется
множеств
.
Декартово произведение для этих
множеств можно определить следующим
образом:
.
Обычно это выражение записывают в таком символическом виде:
Любое
множество
-арных
кортежей этого декартового произведения
является отношением
множеств. Обратите внимание на то, что
для определения этих отношений необходимо
указать множества, или домены, из которых
выбираются значения.
5.2.3 Отношения в базе данных.
Используя указанные концепции в контексте базы данных, мы получим следующее определение реляционной схемы.
Реляционная схема. - это имя отношения, за которым следует множество пар имен атрибутов и доменов.
Например,
для атрибутов
с доменами
реляционной схемой будет множество
.
Отношение
,
заданное реляционной схемой
,
является множеством отображений имен
атрибутов на соответствующие им домены.
Таким образом, отношение
является множеством таких
-арных
кортежей
,
где
.
Каждый
элемент
-арного
кортежа состоит из атрибута и значения
этого атрибута. Обычно при записи
отношения в виде таблицы имена атрибутов
перечисляются в заголовках столбцов,
а кортежи образуют строки формата
,
где каждое значение берется из
соответствующего домена. Таким образом,
в реляционной модели отношение можно
представить как произвольное подмножество
декартового произведения доменов
атрибутов, тогда как таблица — это всего
лишь физическое представление такого
отношения.
В примере, показанном на рис. 5.1, отношение BookAuthors имеет атрибуты Code, FamilyName, Name, Patronymic, Birthday, Deatheday, ShortBiography и Note с соответствующими им доменами. Отношение BookAuthors представляет собой произвольное подмножество декартового произведения доменов или произвольное множество 8-арных кортежей, в которых первым идет элемент из домена AllCode, вторым — элемент из домена FIO и т.д. Например, один из 8-арных кортежей может иметь такой вид:
{(1, Тихонов, Олег, Николаевич, NULL, NULL, BLOB, blob)}
Этот же кортеж можно записать в более корректной форме:
{(Code: '1', FamilyName: 'Тихонов', Name: 'Олег', Patronymic: 'Николаевич', Birthday: ' NULL', Deatheday: 'NULL', ShortBiography: 'BLOB', Note: 'blob')}
Таблица BookAuthors представляет собой удобный способ записи всех 8-арных кортежей, образующих отношение в некоторый заданный момент времени. Это замечание объясняет, почему строки таблицы в реляционной модели называются кортежами.