- •Содержание
- •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-арных кортежей, образующих отношение в некоторый заданный момент времени. Это замечание объясняет, почему строки таблицы в реляционной модели называются кортежами.