Структуры
Домен (domain) – это множество однотипных значений: например, все возможные серийные номера деталей в данной инвентарной ведомости или все возможные даты для класса регистрируемых событий. Домен является простым (simple), если все его значения атомарны (не декомпозируются системой управления базой данных).
Пусть имеется n (n > 0) не обязательно различных доменов D1, D2, ..., Dn. Декартово произведение ×{Di: i = 1, 2, ..., n} – это множество всех n-кортежей <t1, t2, ..., tn> таких, что ti Di для всех i. Отношение R определяется на этих n доменах, если оно является подмножеством их декартового произведения. Говорят, что такое отношение имеет степень n.
Вместо множества индексов (1, 2, ..., n) мы можем использовать любое неупорядоченное множество , если мы ассоциируем с каждым компонентом кортежа не только его домен, но также и отличающий его индекс, который мы будем впредь называть его атрибутом. Соответственно, n различных атрибутов отношения степени n характеризуют n разных применений доменов, на которых определено данное отношение (напомним, что число различных доменов может быть меньшим, чем n). Тогда кортеж
вместо последовательности <v1, v2, ..., vn> становится множеством пар (A:v), где A – некоторый атрибут, а v – значение, взятое из домена атрибута A.
Таким образом, отношение состоит из множества кортежей, и каждый кортеж имеет одно и то же множество атрибутов. Если все домены являются простыми, то такое отношение имеет табличное представление со следующими свойствами.
Обозначение R(A:a, B:b, C:c, ...) используется для представления изменяющегося во времени отношения R, имеющего атрибут A, который принимает значения из домена a, атрибут B, который принимает значения из домена b и т.
д. Если в некотором контексте рассуждений домены могут игнорироваться, то такое отношение будет представляться как R(A, B, C, ...) или даже просто как R. Однако, что для корректной интерпретации выражения (и в особенности оператора присваивания) порядок перечисления атрибутов может быть существенным (см. THETA-JOIN ниже).
Реляционная база данных – это изменяющаяся во времени совокупность данных, допускающая доступ к ним всем и их обновление таким образом, как если бы они были организованы в виде совокупности изменяющихся во времени табличных (не иерархических) отношений соответствующих степеней, определенных на заданном наборе простых доменов. Базовые отношения (base relation) – это такие отношения, которые определяются независимо от других отношений в базе данных в том смысле, что никакое базовое отношение полностью не выводится (независимо от времени) из каких-либо других базовых отношений. Выводимые отношения (derived relation) – это такие отношения, которые могут полностью выводиться из базовых отношений. Это такой вид отношений, которые обычно служат для обеспечения пользователей прикладных программ их собственными представлениями (view) базы данных. Объявленные отношения включают все базовые отношения, а также могут включать выводимые отношения. Позднее, когда будут введены некоторые дополнительные понятия, мы определим полувыводимые отношения (semiderived relation) – некоторый класс отношений, включающий выводимые отношения.
Если U – некоторая совокупность атрибутов некоторого отношения, то U-компонентомкортежа t этого отношения назовем множество пар (A:v), полученных путем удаления из t
тех пар, которые содержат атрибуты, не принадлежащие U.
Между табличными отношениями не существует каких-либо структурных связей, таких как указатели. Ассоциации между отношениями представляются исключительно с помощью значений. Эти ассоциации используются операциями высокого уровня.
С каждым отношением ассоциируется множество возможных ключей.
Cовокупность атрибутов K отношения R называется возможным ключом ( candidate key) R, если обладает следующими независимыми от времени свойствами.
Для каждого базового отношения один из возможных ключей выбирается в качестве первичного ключа (primary key). Для заданной базы данных те домены, на которых определяются простые (т.е. состоящие из одного атрибута) первичные ключи, называются первичными доменами (primary domain) этой базы данных. Заметим, что не все атрибуты компонента составного (т.е. состоящего из нескольких атрибутов) первичного ключа обязательно должны быть определены на первичных доменах. Первичные домены имеют важное значение для поддержки некоторых транзакций, например "удалить из базы данных поставщика 3". Мы хотим здесь удалять 3 всякий раз, когда это значение означает порядковый номер поставщика, а не что-либо другое.
Все операции вставки, обновления и удаления, выполняемые над базовыми отношениями, ограничиваются двумя следующими правилами:
Правило 1 (целостность сущностей): Не допускаются ситуации, когда первичный ключ какого-либо базового отношения имеет неопределенное значение (null) или содержит хотя бы один компонент с неопределенным значением.
Правило 2 (целостность по ссылкам): Допустим, что некоторый атрибут A составного (т.е. состоящего из нескольких атрибутов) первичного ключа отношения R определяется на первичном домене D. Тогда в любой момент времени для каждого значения v атрибута A в отношении R должно существовать базовое отношение (скажем, S) с простым первичным ключом (например, B) такое, что v
является значением B в S.
Реляционная модель состоит из:
C реляционной моделью тесно связаны различные идеи декомпозиции, являющиеся семантическими по своей природе (как основанные на инвариантных во времени свойствах изменяющихся во времени отношений). Примерами таких идей являются (естественные) соединения без потерь и функциональные зависимости [6], многозначные зависимости [10, 44] и нормальные формы. Подробности можно найти в [3]; см. также [39].