Файл: Базы данных - уч. пособие.pdf

Добавлен: 28.11.2018

Просмотров: 10879

Скачиваний: 43

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

46

Глава 3. Реляционная модель

3.3.3 Целостность доменов

Для реляционных СУБД, поддерживающих понятие доменов или возможность

задания ограничений на значение какого-либо поля, существует понятие целост-
ности доменов.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Обеспечение механизма целостности доменов гарантирует,
что все значения некоторого атрибута принадлежат множеству
допустимых значений
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

На рисунке 3.9 представлен механизм реализации целостности доменов в БД

СУБД MS Access. Хотя в явном виде понятие доменов в этой СУБД не поддержи-
вается, разработчик БД имеет возможность ограничить диапазон значений опре-
деленного поля. В нашем примере задается ограничение на набор значений поля
«Пол» таблицы «Студент».

Рис. 3.9 – Задание ограничения для формирования поля «Пол»

На рисунке 3.10 представлено окно редактирования таблицы «Студенты» с вы-

бором определенного значения для поля «Пол».

Рис. 3.10 – Заполнение поля «Пол»

Таким образом, реализация механизма целостности доменов осуществляется

с помощью предварительного задания характеристик домена в описательной части
БД.


background image

3.3 Целостная часть реляционной модели данных

47

3.3.4 Целостность, определяемая пользователем

Целостность, определяемая пользователем, расширяет понятия целостности

доменов и ссылочной целостности. Так, пользователь и/или проектировщик БД
может задать дополнительные ограничения на набор возможных значений поля
или совокупности полей.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

При разработке БД выделяется особый класс таблиц — справоч-
ники-классификаторы, это очень удобный и очень полезный спо-
соб задания перечисляемых полей.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Изменим БД (рис. 3.8), добавив в нее справочник-классификатор «Город», для

указания места рождения студентов (рис. 3.11).

Рис. 3.11 – Измененная схема БД «ВУЗ»

Чтобы корректно связать этот справочник городов с отношением «Студенты»,

нам придется изменить тип данных атрибута «Место рождения» с текстового на
числовой, а также указать источник строк для формирования атрибута «Место
рождения» (рис. 3.12).

При работе с таблицей «Студент» необходимо, чтобы были внесены значения

справочника-классификатора «Город», чтобы пользователю было удобно формиро-
вать значения атрибута «Место рождения» простым выбором значений из выпада-
ющего списка (нижняя часть рисунка 3.12).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Использование справочников-классификаторов позволяет добить-
ся не только удобства при заполнении полей, но и обеспечивает
защиту от возникновения так называемых «висящих» ссылок при
обеспечении ссылочной целостности.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Кроме явного указания ограничений на значения атрибута путем задания допу-

стимого набора значений при проектировании БД (фиксированные значения доме-
на) или при работе с БД (формирование пользователем справочников-классифика-
торов), возможно также задание дополнительных ограничений. Например, задание
ограничения на формирование совокупности атрибутов «Серия» и «№ паспорта» —
так, в отдельности значения этих атрибутов могут повторяться, но их совокупное
значение должно быть всегда уникальным.


background image

48

Глава 3. Реляционная модель

Рис. 3.12 – Указание источника строк и заполнение атрибута «Место рождения»

Соблюдение целостности БД является одним из условий обеспечения каче-

ственного хранения информации, а также гарантией отсутствия противоречивых
данных, что позволяет постоянно актуализировать эти данные и использовать их
многократно и без потерь.

3.4 Технология манипулирования данными
в реляционной модели

3.4.1 Основные принципы технологии манипулирования
реляционными данными

Согласно К. Дейту для манипуляционной составляющей реляционной моде-

ли данных определяются два базовых механизма манипулирования реляционными
данными — реляционная алгебра (основана на теории множеств) и реляционное
исчисление (основано на исчислении доменов и исчислении предикатов).

Все современные языки манипулирования данными основаны на этих поняти-

ях, а так как реляционная алгебра и реляционное исчисление замкнуты относи-
тельно понятия отношения, то любое выражение или формула могут быть пред-
ставлены как отношения, что позволяет использовать их в других реляционных
выражениях или формулах.

Применение реляционной алгебры и реляционного исчисления дает возмож-

ность интерпретировать сложные пользовательские запросы в виде простых пред-
ложений на языке манипулирования данными. По этой причине эти механизмы
включены в реляционную модель данных.


background image

3.4 Технология манипулирования данными в реляционной модели

49

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Конкретный язык манипулирования реляционными БД называ-
ется реляционно полным, если любой запрос, выражаемый с по-
мощью одного выражения реляционной алгебры или одной форму-
лы реляционного исчисления, может быть выражен с помощью
одного оператора этого языка 
[1].
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

В принципе, для любого выражения реляционной алгебры можно построить

формулу реляционного исчисления, приводящую к тому же результату, что и реля-
ционное выражение, и наоборот. Таким образом, эти два понятия являются экви-
валентными. Для облегчения технической реализации пользовательских запросов
в реляционной модели данных имеют место оба механизма манипулирования дан-
ными.

3.4.2 Операции реляционной алгебры

Общий смысл операций реляционной алгебры
Остановимся более подробно на технологии манипулирования данными в ре-

ляционной модели, предложенной Коддом, для чего дадим определения операциям
реляционной алгебры и технологии реляционного исчисления. Поскольку отноше-
ния, как было определено выше, есть множества, то для них справедливо примене-
ние теоретико-множественных операций, дополненных некоторыми специальными
операциями, специфичными для баз данных.

Набор основных операций реляционной алгебры включает восемь операций,

среди которых выделяют:

1) традиционные теоретико-множественные операции:

• прямое произведение отношений;

• объединение отношений;

• пересечение отношений;

• взятие разности отношений;

2) четыре специальные реляционные операции:

• ограничение отношения;

• проекция отношения;

• соединение отношений;

• деление отношений.

Этот набор дополняет операция присваивания, сохраняющая в базе данных ре-

зультаты вычисления, и операция переименования атрибутов, дающая возмож-
ность корректировать схему результирующего отношения.

Поскольку операции реляционной алгебры производятся над отношениями и ре-

зультатом их выполнения является отношение, то говорят, что операции реляцион-
ной алгебры замкнуты относительно понятия отношения.

Прежде чем подробно рассмотреть операции реляционной алгебры, дадим сле-

дующие общие определения.


background image

50

Глава 3. Реляционная модель

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Результатом выполнения прямого произведения двух отношений-
операндов является отношение, кортежи которого есть конка-
тенация (сцепление) кортежей первого и второго операндов.

Результатом выполнения операции объединения двух отношений
является отношение, включающее все кортежи, входящие хотя
бы в одно из отношений-операндов.

В результате операции пересечения двух отношений произво-
дится отношение, включающее все кортежи, принадлежащие
обоим отношениям-операндам.

В результате разности двух отношений создается отношение,
включающее все кортежи, входящие в первое отношение-операнд,
такие, что ни один из них не входит во второе отношение-
операнд.

Результирующее отношение при проведении операции деления
состоит из кортежей, включающих значения атрибутов корте-
жей первого операнда, таких, что множество значений остав-
шихся атрибутов (при фиксированном значении первых атрибу-
тов) совпадает с множеством значений атрибутов второго опе-
ранда.

В результате операции ограничения отношения по некоторому
условию производится отношение, включающее кортежи отно-
шения-операнда и удовлетворяющее этому условию.

В результате операции проекции отношения на фиксирован-
ный набор его атрибутов 
создается отношение, кортежи ко-
торого производятся путем взятия соответствующих значений
из кортежей отношения-операнда с исключением атрибутов, не
вошедших в первоначальный набор.

Результат соединения двух отношений по некоторому усло-
вию 
есть отношение, кортежи которого являются конкатена-
цией кортежей первого и второго отношений и удовлетворяют
этому условию.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

С помощью операции переименования атрибутов производится отношение, те-

ло которого совпадает с телом операнда, но с заменой имен атрибутов. С помощью
операции присваивания можно сохранить результат вычисления реляционного вы-
ражения в отношении БД.

Для формирования пользовательских запросов с помощью операций реляци-

онной алгебры можно строить вложенные выражения, содержащие последователь-
ный набор таких операций.

Операция переименования
Иногда при выполнении той или иной операции реляционной алгебры произ-

водится отношение, содержащее атрибуты с некорректными именами, например