Реляционные таблицы и ключи
Реляционная модель основана на понятии "отношения" (Relationship), она наиболее распространена в настоящее время, хотя наряду с общепризнанными достоинствами обладает и рядом недостатков. Эти преимущества привели к тому, что уже в середине 80-х годов реляционные СУБД практически вытеснили с мирового рынка ранние СУБД.
К числудостоинствреляционной модели относят следующие:
- простота, наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;
- наличие хорошо разработанного и мощного математического аппарата;
- возможность операций над данными без знания их физической организации.
Недостатками реляционной модели считают:
- низкую эффективность хранения данных по сравнению с другими моделями;
- недостаточное быстродействие при реализации некоторых операций;
- ограниченность представления сложных структур данных;
- невозможность адекватного отражения семантики предметной области.
Реляционная модель данных – модель данных, представляющая данные в виде таблиц или реляций. Реляция – двумерная таблица, содержащая строки и столбцы данных. В модели Кодда для работы с данными в таблице предлагается пользоваться двумя языками: реляционной алгеброй и реляционным исчислением. Математическое название таблицы – relation (отношение). Оба этих языка обеспечивают работу с данными на основе логических характеристик, а не физических указателей.
Понятие таблицы - это основа реляционной модели. База данных - это набор таблиц. Но обратите внимание: данное понятие таблица имеет отношение только к представлению данных. Никакой связи с физической реализации записей на диске или в памяти она не имеет.
В реляционной СУБД выполняются как минимум два условия:
1) данные воспринимаются пользователем как таблицы;
2) в распоряжении пользователя имеются операторы, которые генерируют новые таблицы из старых.
Здесь важно, что результат операции над таблицей является тоже таблицей (реляционное свойство замкнутости), то есть результатом операции является объект того же рода, что и объект, над которым проводится операция.
В основе реляционной модели лежат следующие понятия: тип данных, атрибут, домен, кортеж, первичный ключ и отношение.
Понятиетип данных в реляционной модели данных полностью совпадает с этим понятием в языках программирования. Обычно выделяют символьный, числовой, денежный, битовый и календарный типы.
Для хранения информации используется атрибут. Атрибут в реляционной модели имеет тот же смысл, что и свойство объекта в ER- модели. Атрибут имеет имя и тип. Структура отношения состоит из набора атрибутов и их типов. Название атрибута – имя атрибута. Количество атрибутов реляции называется степенью (рангом)реляции.
Порядок атрибутов считается несущественным. Отсюда следует, что никакие два атрибута реляции не могут иметь одинаковых имен.
Набор всевозможных значений, которые может принимать атрибут, называется доменом (областью) атрибута. Домен играет огромную роль в реляционной модели. Он реализует функцию справочника в обыденном понятии. Применение домена позволяет избежать многих ошибок сравнивания. Например, при разном вводе одного и того же понятия (например, в случае ошибки ввода). Так же домен выполняет функцию контроля и классификации ввода, позволяя выбрать из имеющихся позиций. Все элементы домена относятся к одному типу данных и отвечают какому-либо логическому условию. Элементом домена может быть число, символьная строка, дата, но не сложная структура типа массива, списка и т.п. Две области атрибутов совпадают только в том случае, если они имеют один и тот же смысл. Два атрибута одной и той же области не обязательно имеют одно и то же имя. Значения каждого атрибута относятся к одному из доменов, то есть атрибут может принимать значения из заданного множества. Атрибут имеет имя и значение, часто имя атрибута совпадает с именем домена.
Схемой отношения называют именованное множество пар
(Ai, Di), i=1,k,
где Ai - имя атрибута, Di- имя домена,k - ранг отношения.
Если имя атрибута совпадает с именем домена, то схему отношения можно представить в виде списка
R (A1, A2, ... Ak),
гдеАi- имена доменов.
Схема реляционной базы данных представляет собой совокупность схем отношений и содержит следующие компоненты:
S(rel) = < A, D, R, Rel, F>,
где A - множество атрибутов, D- множество доменов, R - множество имен отношений, Rel - множество схем отношений, F - множество ограничений, в том числе функциональных зависимостей.
Кортеж отношения- это множество пар "имя атрибута, значение атрибута", причем каждый атрибут отношения один и только один раз входит в кортеж. Кортеж - это тело отношения (строки реляции). Он состоит из набора заполненных атрибутов. Именно кортеж несет информацию об объекте, описываемом отношением. Если атрибуты и домены говорят о структуре, то кортеж - это наполнение информацией.
Отношение - это множество кортежей, соответствующих одной схеме отношения.
На практике отношение удобно представить в виде таблицы, заголовком которой является схема отношения, а строками - кортежи отношения; в этом случае имена атрибутов становятся именами столбцов этой таблицы.
Предопределенного порядка строк не существует, следовательно, никакие два кортежа не имеют одинаковый набор значений.
Пустое значение атрибута – значение, приписываемое атрибуту в кортеже, если атрибут неприменим или его значение неизвестно.
Любой набор атрибутов, однозначно определяющий каждый кортеж реляционной таблицы, называется суперключом. Ключ реляции – это минимальный набор атрибутов, то есть минимальный суперключ.
Ключ, содержащий два или более атрибутов, называется составным ключом.
В любой данной реляционной таблице может оказаться более одного набора атрибутов, которые можно выбрать в качестве ключа. Они называются потенциальными ключами. Когда один из потенциальных ключей выбран в качестве ключа реляции, его называют первичным ключом. Обычно в качестве первичного ключа выбирают потенциальный ключ, которым проще всего пользоваться при повседневной работе по вводу данных. Первичный ключ обычно называют ключом. Ключевой атрибут в обозначениях реляционной таблицы подчеркивают.
Для связи между разными отношениями используется понятие внешнего ключа. Внешним ключом называется атрибут (совокупность атрибутов), который является ключом Ak в другом отношении и его значения принадлежат к домену Dk. Говорят, что отношение, в котором определен внешний ключ, ссылается на другое отношение, в котором такой же атрибут является первичным ключом. То есть внешний ключ – набор атрибутов одной таблицы, являющийся ключом другой (или той же самой) таблицы. Внешние ключи обеспечивают важные связи между таблицами. Атрибуты внешних ключей не обязательно должны иметь те же имена, что и атрибуты ключа, которым они соответствуют.
Внешний ключ, ссылающийся на свою собственную реляционную таблицу, называется рекурсивным внешним ключом.
Поскольку информация о внешних ключах является жизненно важной, при определении реляционных таблиц обязательно отражаются определения внешних ключей. Общее обозначение реляционной таблицы: после имени реляции в круглых скобках перечисляются ее атрибуты. Подробный список, в котором даются имена реляционных таблиц с перечислением их атрибутов (ключи подчеркнуты) и определений внешних ключей, называется реляционной схемой базы данных.