ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 10879
Скачиваний: 43
46
Глава 3. Реляционная модель
3.3.3 Целостность доменов
Для реляционных СУБД, поддерживающих понятие доменов или возможность
задания ограничений на значение какого-либо поля, существует понятие целост-
ности доменов.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Обеспечение механизма целостности доменов гарантирует,
что все значения некоторого атрибута принадлежат множеству
допустимых значений.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
На рисунке 3.9 представлен механизм реализации целостности доменов в БД
СУБД MS Access. Хотя в явном виде понятие доменов в этой СУБД не поддержи-
вается, разработчик БД имеет возможность ограничить диапазон значений опре-
деленного поля. В нашем примере задается ограничение на набор значений поля
«Пол» таблицы «Студент».
Рис. 3.9 – Задание ограничения для формирования поля «Пол»
На рисунке 3.10 представлено окно редактирования таблицы «Студенты» с вы-
бором определенного значения для поля «Пол».
Рис. 3.10 – Заполнение поля «Пол»
Таким образом, реализация механизма целостности доменов осуществляется
с помощью предварительного задания характеристик домена в описательной части
БД.
3.3 Целостная часть реляционной модели данных
47
3.3.4 Целостность, определяемая пользователем
Целостность, определяемая пользователем, расширяет понятия целостности
доменов и ссылочной целостности. Так, пользователь и/или проектировщик БД
может задать дополнительные ограничения на набор возможных значений поля
или совокупности полей.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
При разработке БД выделяется особый класс таблиц — справоч-
ники-классификаторы, это очень удобный и очень полезный спо-
соб задания перечисляемых полей.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Изменим БД (рис. 3.8), добавив в нее справочник-классификатор «Город», для
указания места рождения студентов (рис. 3.11).
Рис. 3.11 – Измененная схема БД «ВУЗ»
Чтобы корректно связать этот справочник городов с отношением «Студенты»,
нам придется изменить тип данных атрибута «Место рождения» с текстового на
числовой, а также указать источник строк для формирования атрибута «Место
рождения» (рис. 3.12).
При работе с таблицей «Студент» необходимо, чтобы были внесены значения
справочника-классификатора «Город», чтобы пользователю было удобно формиро-
вать значения атрибута «Место рождения» простым выбором значений из выпада-
ющего списка (нижняя часть рисунка 3.12).
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Использование справочников-классификаторов позволяет добить-
ся не только удобства при заполнении полей, но и обеспечивает
защиту от возникновения так называемых «висящих» ссылок при
обеспечении ссылочной целостности.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Кроме явного указания ограничений на значения атрибута путем задания допу-
стимого набора значений при проектировании БД (фиксированные значения доме-
на) или при работе с БД (формирование пользователем справочников-классифика-
торов), возможно также задание дополнительных ограничений. Например, задание
ограничения на формирование совокупности атрибутов «Серия» и «№ паспорта» —
так, в отдельности значения этих атрибутов могут повторяться, но их совокупное
значение должно быть всегда уникальным.
48
Глава 3. Реляционная модель
Рис. 3.12 – Указание источника строк и заполнение атрибута «Место рождения»
Соблюдение целостности БД является одним из условий обеспечения каче-
ственного хранения информации, а также гарантией отсутствия противоречивых
данных, что позволяет постоянно актуализировать эти данные и использовать их
многократно и без потерь.
3.4 Технология манипулирования данными
в реляционной модели
3.4.1 Основные принципы технологии манипулирования
реляционными данными
Согласно К. Дейту для манипуляционной составляющей реляционной моде-
ли данных определяются два базовых механизма манипулирования реляционными
данными — реляционная алгебра (основана на теории множеств) и реляционное
исчисление (основано на исчислении доменов и исчислении предикатов).
Все современные языки манипулирования данными основаны на этих поняти-
ях, а так как реляционная алгебра и реляционное исчисление замкнуты относи-
тельно понятия отношения, то любое выражение или формула могут быть пред-
ставлены как отношения, что позволяет использовать их в других реляционных
выражениях или формулах.
Применение реляционной алгебры и реляционного исчисления дает возмож-
ность интерпретировать сложные пользовательские запросы в виде простых пред-
ложений на языке манипулирования данными. По этой причине эти механизмы
включены в реляционную модель данных.
3.4 Технология манипулирования данными в реляционной модели
49
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Конкретный язык манипулирования реляционными БД называ-
ется реляционно полным, если любой запрос, выражаемый с по-
мощью одного выражения реляционной алгебры или одной форму-
лы реляционного исчисления, может быть выражен с помощью
одного оператора этого языка [1].
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
В принципе, для любого выражения реляционной алгебры можно построить
формулу реляционного исчисления, приводящую к тому же результату, что и реля-
ционное выражение, и наоборот. Таким образом, эти два понятия являются экви-
валентными. Для облегчения технической реализации пользовательских запросов
в реляционной модели данных имеют место оба механизма манипулирования дан-
ными.
3.4.2 Операции реляционной алгебры
Общий смысл операций реляционной алгебры
Остановимся более подробно на технологии манипулирования данными в ре-
ляционной модели, предложенной Коддом, для чего дадим определения операциям
реляционной алгебры и технологии реляционного исчисления. Поскольку отноше-
ния, как было определено выше, есть множества, то для них справедливо примене-
ние теоретико-множественных операций, дополненных некоторыми специальными
операциями, специфичными для баз данных.
Набор основных операций реляционной алгебры включает восемь операций,
среди которых выделяют:
1) традиционные теоретико-множественные операции:
• прямое произведение отношений;
• объединение отношений;
• пересечение отношений;
• взятие разности отношений;
2) четыре специальные реляционные операции:
• ограничение отношения;
• проекция отношения;
• соединение отношений;
• деление отношений.
Этот набор дополняет операция присваивания, сохраняющая в базе данных ре-
зультаты вычисления, и операция переименования атрибутов, дающая возмож-
ность корректировать схему результирующего отношения.
Поскольку операции реляционной алгебры производятся над отношениями и ре-
зультатом их выполнения является отношение, то говорят, что операции реляцион-
ной алгебры замкнуты относительно понятия отношения.
Прежде чем подробно рассмотреть операции реляционной алгебры, дадим сле-
дующие общие определения.
50
Глава 3. Реляционная модель
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Результатом выполнения прямого произведения двух отношений-
операндов является отношение, кортежи которого есть конка-
тенация (сцепление) кортежей первого и второго операндов.
Результатом выполнения операции объединения двух отношений
является отношение, включающее все кортежи, входящие хотя
бы в одно из отношений-операндов.
В результате операции пересечения двух отношений произво-
дится отношение, включающее все кортежи, принадлежащие
обоим отношениям-операндам.
В результате разности двух отношений создается отношение,
включающее все кортежи, входящие в первое отношение-операнд,
такие, что ни один из них не входит во второе отношение-
операнд.
Результирующее отношение при проведении операции деления
состоит из кортежей, включающих значения атрибутов корте-
жей первого операнда, таких, что множество значений остав-
шихся атрибутов (при фиксированном значении первых атрибу-
тов) совпадает с множеством значений атрибутов второго опе-
ранда.
В результате операции ограничения отношения по некоторому
условию производится отношение, включающее кортежи отно-
шения-операнда и удовлетворяющее этому условию.
В результате операции проекции отношения на фиксирован-
ный набор его атрибутов создается отношение, кортежи ко-
торого производятся путем взятия соответствующих значений
из кортежей отношения-операнда с исключением атрибутов, не
вошедших в первоначальный набор.
Результат соединения двух отношений по некоторому усло-
вию есть отношение, кортежи которого являются конкатена-
цией кортежей первого и второго отношений и удовлетворяют
этому условию.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
С помощью операции переименования атрибутов производится отношение, те-
ло которого совпадает с телом операнда, но с заменой имен атрибутов. С помощью
операции присваивания можно сохранить результат вычисления реляционного вы-
ражения в отношении БД.
Для формирования пользовательских запросов с помощью операций реляци-
онной алгебры можно строить вложенные выражения, содержащие последователь-
ный набор таких операций.
Операция переименования
Иногда при выполнении той или иной операции реляционной алгебры произ-
водится отношение, содержащее атрибуты с некорректными именами, например