Объекты реляционной структуры
Основным элементом реляционной модели, ее основой, является отношение. Определения основных понятий реляционной модели: отношений, переменных отношений, атрибутов, кортежей и других – были сформулированы Э. Коддом в его классических статьях [7, 8, 9] и неоднократно описаны в других источниках [2, 3, 4, 10, 11, 12].
С точки зрения прикладных задач удобно перейти к табличным эквивалентам реляционной модели. В этом ключе основная идея реляционной модели трансформируется в идею представления данных в виде двумерных таблиц. Точнее, в виде таблиц, удовлетворяющих требованиям, делающим их эквивалентными понятию отношение. При этом, остальные понятия реляционной модели можно отобразить на понятия таблиц следующим образом:
· заголовок отношения – заголовок таблицы;
· тело отношения – тело таблицы;
· атрибут отношения – наименование столбца таблицы;
· кортеж отношения – строка таблицы;
· мощность отношения – количество строк таблицы.
Отношение обладает рядом свойств, которые не являются обязательными для таблиц. Наличие этих свойств и делает таблицу эквивалентной отношению, т.е. реляционной таблицей:
· тело отношения не содержит идентичных кортежей, т.е. в таблице не должно быть абсолютно одинаковых строк;
· кортежи отношения не упорядочены, т.е. при рассмотрении данных таблицы нельзя учитывать последовательность строк. Например, в таблице, содержащей список сотрудников отдела, первой строкой указывается начальник отдела. С точки зрения табличного представления информация о начальнике определяется по упорядочиванию ее строк. В отношениях такое не допустимо. Другими словами, порядковый номер строки и взаимное расположение строк в таблице не должно нести никакой информации;
· атрибуты отношения не упорядочены, т.е. при рассмотрении данных таблицы нельзя учитывать последовательность столбцов или порядковый номер столбца, и взаимное расположение столбцов в таблице не должно нести никакой информации;
· все значения атрибутов отношения атомарные, т.е. на пересечении любых строки и столбца лежит в точности одно значение или ничего.
Ключ – это еще один элемент реляционной модели, широко использующийся при определении операции и целостности. Сразу рассмотрим понятия в принятой нами выше табличной интерпретации реляционной модели.
Ключ – это набор столбцов заголовка таблицы, обладающий определенными свойствами. Если набор состоит из одного столбца, то это простой ключ. Если из нескольких столбцов, то это составной ключ.
В реляционном подходе определяют несколько видов ключей:
· первичный;
· возможный;
· внешний.
Первичный ключ – это минимальный набор столбцов заголовка таблицы, комбинация значений которых будет уникальной в любой момент времени для любой строки таблицы. Минимальность означает, что при исключении любого из выбранных столбцов из первичного ключа условие уникальности нарушается.
Возможный ключ – альтернативный первичный ключ таблицы. Любая реляционная таблица имеет один или более возможных ключей. Один из этих ключей выбирается первичным ключом, т.е. определение возможного ключа совпадает с определением первичного ключа. Необходимо отметить, что один и тот же столбец может входить в состав нескольких составных возможных ключей. А также, существуют таблицы, в первичный ключ которых входят все ее столбцы. Это не редкий случай для таблиц, выступающих в роли ассоциативных сущностей.
Внешние ключи появляются при появлении в структуре базы данных нескольких таблиц. В любой базе данных таблицы связаны между собой либо прямыми связями, либо через другие таблицы, иначе база распадается на несколько независимых структур. Собственно, внешние ключи служат для организации прямых связей таблиц.
В прямой связи двух таблиц можно выделить родительскую и дочернюю таблицу. Для организации связи дочерняя таблица должна содержать среди своих столбцов копии столбцов первичного ключа родительской таблицы. По значениям в столбцах внешнего ключа дочерней таблицы осуществляется поиск соответствующей строки родительской таблицы.
Прямая связь между двумя таблицами соответствует связи один ко многим от родительской таблицы к дочерней таблице, т.е. в дочерней таблице определенное значение внешнего ключа может встретиться в нескольких строках, а в родительской только один раз, т.к. это первичный ключ. При указании дополнительного требования об уникальности внешнего ключа связь преобразуется к связи один к одному. Такие таблицы могут быть объединены в одну.