Формальное определение отношения
(реляционной таблицы) опирается на представление о ее доменах
(столбцах) и кортежах
(строках). Отношением
, определенным на множествах доменов
, называется подмножество декартова (прямого) произведения доменов
.
Таблица-отношение
содержит столбцы с значениями атрибутов
. Значения атрибутов
находятся в содержательной части таблицы и образуют строки и столбцы. Множество значений атрибутов в одном столбце образует один домен
. Множество значений атрибутов в одной строке образуют один кортеж
Отношение
образуется множеством упорядоченных кортежей
, где
— число доменов отношения; определяет размерность отношения;
— номер кортежа;
— общее число кортежей в отношении, называемое координатным числом отношения.
Для соблюдения условия уникальности кортежи должны иметь уникальный идентификатор — первичный ключ. Первичный ключ называется простым, если он состоит из одного атрибута, или составным, если из нескольких. Кроме первичного ключа, в отношении могут существовать вторичные ключи. Значения вторичного ключа могут повторяться в разных кортежах. По ним можно вести поиск групп строк с одинаковым значением вторичного ключа.
Реляционная модель данных характеризуются наличием некоторых типов таблиц и ключей, позволяющих определить отношения между таблицами. Для того чтобы понять принципы проектирования реляционных баз данных и усвоить правила нормализации, требуется дать определения различных типов реляционных ключей и таблиц:
1. Базовая таблица. В реляционной модели данных базовой таблицей называется таблица, которая включает один или несколько столбцов свойств объекта и содержит первичный ключ, который однозначно определяет этот объект. Более того, базовая таблица должна содержать первичный ключ. Базовые таблицы часто называют первичными, поскольку они имеют первичный ключ.
2. Промежуточная таблица. Таблица, не являющаяся базовой (т. к. она не объединяет свойства объекта или не содержит поле первичного ключа), которая используется для обеспечения связей между другими таблицами, называется таблицей отношений. Ключевые поля в таблицах отношений должны быть внешними ключами, связанными с первичными ключами базовой таблицы. Таким образом, таблица отношений состоит только из внешних ключей и не содержит независимых элементов данных.
3. Первичный ключ. Первичный ключ состоит из набора значений, которые однозначно определяют строку базовой таблицы. Любому значению первичного ключа должна соответствовать одна и только одна строка таблицы. Первичный ключ включает одно поле только в том случае, если это поле не содержит повторяющихся значений.
4. Ключи-кандидаты. Любой столбец или группа столбцов, которые удовлетворяют требованиям, накладываемым на значения первичного ключа, являются кандидатами на то, чтобы стать первичным ключом. Например, имя и серия паспорта являются ключами-кандидатами для идентификации гражданина России. Тем не менее номер и серию паспорта использовать предпочтительнее, т. к. два человека могут носить одинаковые имена, но у них не может быть законно полученных паспортов с одинаковыми номерами и сериями.
5. Составные ключи. Если для выполнения условий, накладываемых на значения первичного ключа, заданный ключ включает несколько полей таблицы, то тогда он называется составным.
6. Внешние ключи. Внешний ключ — это столбец, значения которого соответствуют значениям первичного ключа другой связанной таблицы. Такой ключ может состоять как из одного, так и из нескольких столбцов (составной внешний ключ). Если число полей внешнего ключа меньше, чем количество столбцов соответствующего первичного ключа, то он называется частичным, или усеченным внешним ключом.
На рис. 2.4 приведен пример реляционной модели, содержащей информацию о договорах. Такая же информация была представлена на рис. 2.1 с использованием иерархической организации данных в модели. Как видно из сопоставления этих примеров, в иерархической модели имело место дублирование данных об одних и тех же заказчиках и об одинаковых изделиях в разных договорах.
Рис. 2.4 Пример реляционной модели
В таблицах этой реляционной модели данных содержатся только атрибуты соответствующих объектов ДОГОВОР (номер, дата, код заказчика, сумма по договору), ИЗДЕЛИЕ (код, наименование, ед. измерения, цена), ЗАКАЗЧИК (код, наименование, адрес, банк), ЗАКАЗ (код изделия, минимальная партия, месяц, плановое количество, сумма). На связях между таблицами указаны внешние ключи.
Основные операции реляционной алгебрыОперации обработки данных включают операции над строками (кортежами) таблиц (отношений) и операции над отношениями, осуществляющие обработку данных нескольких отношений.
Операции над строками
Операциями, выполняемыми на уровне строк отношений, являются включение, удаление, обновление.
При включении в таблицу добавляется новая строка (кортеж). Для выполнения этой операции требуется задать имя таблицы и указать значения атрибутов новой строки (значения ключа задается обязательно).
При удалении из таблицы удаляется строка. Для выполнения этой операции требуется задать имя таблицы и указать значение первичного ключа удаляемой строки. Для удаления группы строк надо задать значение вторичного ключа.
При обновлении осуществляется изменение значений атрибутов в строках. Для обновления требуется задать имя таблицы, значение первичного ключа для идентификации обновляемой строки, а также указать имена атрибутов и их новые значения.
Операции над таблицами-отношениями
Операторы языка реляционной алгебры обрабатывают таблицу-отношение как единый объект. При этом результатом обработки всегда является новая таблица-отношение, которая также может быть обработана. Основными операциями над отношениями реляционной модели данных являются традиционные операции над множествами: объединение, пересечение, разность (вычитание), декартово произведение, а также специальные операции: выбор, проекция, соединение и деление множеств. Совокупность этих операций образует полную алгебру отношений.
Рассмотрим основные операторы языка реляционной алгебры.
Объединение — операция выполняется над двумя отношениями
,
с идентичной структурой
(такие отношения называются совместимыми). В результате операции объединения строится новое отношение
. Отношение
имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты.
Пример. Ниже приведены исходные отношения:
«Клиенты банка А» (табл. 2.1) и
«Клиенты банка В» (табл. 2.2) и результат объединения —
(табл. 2.3).
В новое отношение
не вошел кортеж
, так как он дублирует кортеж
.
Пересечение — операция выполняется над двумя совместимыми отношениями
,
. Результирующее отношение
содержит одинаковые кортежи, которые есть в каждом из двух исходных. Результат пересечения имеет тот же состав атрибутов, как и в исходных.
Пересечение двух отношений
«Клиенты банка А» и
«Клиенты банка В» дает отношение
«Клиент» (табл. 2.4).
Таблица 2.4 Клиенты
Город | Фамилия | |
К11 | Москва | Петров |
Вычитание — операция выполняется над двумя совместимыми отношениями
,
. В результате операции вычитания строится новое отношение
, с идентичным набором атрибутов, содержащее только те кортежи первого отношения
, которые не повторяются в отношении
. Вычитание отношения
«Клиенты банка В» из отношения
«Клиенты банка А» (
) дает отношение:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


