В РМД [4, 9, 12, 13] достигается более высокий уровень абстракции данных, по сравнению с ИМД или СМД. Это достигается в результате применения теории отношений (слово «реляционная» происходит от relation(английское) – «отношение»).
Особенностью модели Кодда является то, что все данные представляются в виде таблицы. которая по сути дела является последовательным файлом. Строки таблицы являются записями, то есть описывают свойства отдельных экземпляров объекта, а столбцы описывают поля записи.
Таким образом, структура данных представляет собой некоторое отношение между элементами данных и может быть представлена следующей записью (рис. 5.1):
R(a, b, c, …, x),
где R – имя отношения, a, b, c, …, x – атрибуты отношения, ai, bi,
ci, …, xi – кортеж отношения, с1, с2, с3, …, сn – домен отношения (множество значений одного атрибута).
Рис. 5.1. Основные компоненты реляционного отношения
Отношение состоит из двух частей – заголовка и тела отношения. Атрибуты – это заголовок отношения. Тело отношения состоит из кортежей.
Строки таблицы или тело отношения представляют собой кортежи. Описание одного объекта реального мира содержится в строке, а характеристики объекта – в столбце.
Каждый атрибут определяется на домене, поэтому домен может рассматриваться как совокупность допустимых значений или область определений данного атрибута. Домен имеет имя атрибута и описание типа данных.
Например, для атрибута ВОЗРАСТ (ЧИСЛО_ЛЕТ) домен задается интервалом положительных целых чисел, так как отрицательного возраста не бывает.
Между элементами реляционной модели данных и элементами модели «сущность – связь» можно провести аналогию. Таким образом, реляционные отношения это наборы сущностей, кортежи – сами сущности, а столбцы в таблице – атрибуты.
Число m столбцов (атрибутов) отношения называется степенью отношения или «арностью» отношения. Если m = 1, то отношение называется унарным, при m = 2 – бинарным, ..., при m = n – арным)
Число строк таблицы называется мощностью отношения.
Рассмотрим отношение СОТРУДНИК (Таб_номер, ФИО, Должность, Стаж). И на его примере поясним такие понятия как кортеж, домен отношения и т.п. (рис. 5.2).
Рис. 5.2. Отношение СОТРУДНИК
Кортеж отношения:
СОТРУДНИК = {1, Иванов И.Н., заведующий, 20}.
Домен отношения:
ФИО = {Иванов И.Н., Смирнов С.Л., Петров П.П.}.
Описание имени, типа данных, размера домена: ФИО, символьный, 15.
Каждый объект, включенный в отношение, должен быть уникальным. Ключевым атрибутом (или ключом) называется атрибут, однозначно идентифицирующий кортежи. В данном случае атрибут «№ » является ключом, так как его значение уникально для каждого сотрудника. В случае, когда кортежи однозначно идентифицируются только конкатенацией (сцеплением) значений совокупностью атрибутов, то говорят, что такое отношение имеет составной ключ.
В отношении может быть несколько ключей. При этом один из множества ключей декларируется первичным и его значения не могут обновляться. Остальные ключи отношения называются возможными или альтернативными ключами.
Свойства отношений. Отношение (таблица) представляет собой отношение и должна обладать следующими свойствами:
1. В таблице нет одинаковых строк (отсутствие кортежей-дубликатов).
Из такого свойства следует, что у каждого кортежа имеется первичный ключ. Для каждого отношения полный набор его атрибутов является первичным ключом. Однако, при определении первичного ключа должно соблюдаться требование «минимальности», т.е. в него не должны входить те атрибуты, которые можно отбросить без ущерба для основного свойства первичного ключа, – однозначного определения кортежа.
2. Каждый столбец содержит значение одного атрибута и имеет имя, совпадающее с именем атрибута.
3. Порядок строк или столбцов в таблице не существенен.
4. Атрибуты не упорядочены (слева направо).
Графическая схема отношения является заголовком отношения (рис. 5.3):
Рис. 5.3. Схема отношения СОТРУДНИК
Ключевой атрибут всегда выделяется в графической схеме.
В отличие от ИМД и СМД в реляционной модели нет такого понятия как групповое отношение. Для отражения ассоциативной связи между кортежами разных отношений используется дублирование их ключей. Приведенный ранее пример БД, которая содержала сведения об отделах предприятия и работающих в них сотрудниках, применительно к РМД будет иметь вид, показанный на рис. 5.4.
Между отношениями ОТДЕЛ и СОТРУДНИК создается связь путем копирования первичного ключа «Номер_отдела» из первого отношения во второе. Связь между отношениями осуществляется через дублирование ключей.
Рис. 5.4. Состав базы данных об отделах и сотрудниках предприятия
Атрибуты, которые представляют собой копии ключей других отношений, именуют внешними ключами.