Фуфаев - Разработка и эксплуатация удалённых БД (1084483), страница 23
Текст из файла (страница 23)
Кроме прочих значений опция определения применяемого по умолчанию значения Не~аийОраол может включать в себя литералы. Конструкция СНЕСК позволяет задать список значений для ввода в соответствующее поле таблицы. Конструкция РК1МАКУ КЕУ определяет один или несколько столбцов, которые образуют первичный ключ таблицы. Если эта конструкция предусмотрена в конкретной версии Я.)[., то она должна применятся при создании каждой таблицы.
По умолчанию для всех столбцов, представляющих собой первичный ключ, предусмотрено применение ограничения Ио( 1ч(][.1 . При создании таблицы разрешено использование только одной конструкции Рк[МАКУ КЕт". В этом случае база данных отвергает все попытки выполнения операции 1]ЧВЕКТ или [ЗРРАТЕ, которые могут повлечь за собой создание строки с повторяющимся значением в столбце (столбцах), определенном конструкцией РК1МАКУ КЕУ. Таким образом, в базе данных гарантируется уникальность значений первичного ключа.
115 В конструкции РОКЕ)ОХ КЕУ определяются внешний ключ (дочерней) таблицы и ее связь с другой !родительской) таблицей. Эта конструкция позволяет реализовать ограничения ссылочной целостности и состоит из следующих частей. ° Список !!згЯГоп!ХпКеуСо!итпз, содержащий имена одного или нескольких столбцов создаваемой таблицы, которые образуют внешний ключ.
° Вспомогательная конструкция КЕЕЕКЕХСЕЯ, указываюшая на родительскую таблицу !т.е. таблицу, в которой определен соответствующий потенциальный ключ). Если список !ЬгО!СалдЫагеКеуСо(итпх опущен, предполагается, что определение внешнего ключа совпадает с определением первичного ключа родительской таблицы. В этом случае родительская таблица должна иметь в своем операторе СКЕАТЕ ТАВЬЕ конструкцию РК1 МАКУ КЕУ, ° Необязательное правило обновления ОХ ЗЗРРАТЕ для определения взаимосвязи между таблицами, указывающее, какое действие !ге!егепг!аИсг!ол) должно выполняться при обновлении в родительской таблице потенциального ключа, соответствующего внешнему ключу дочерней таблицы. В качестве параметра ге!егепг!а!Асг!оп можно указать САНСАРЕ, БЕТ ХБЬЬ, ЯЕТ РЕГАТ Т или ХО АСТ! ОХ.
Если конструкция ОХ 11РРАТЕ опущена, то по умолчанию подразумевается, что в соответствии с значением ХО АСТ!ОХ никакие действия не выполняются. ° Необязательное правило удаления ОХ РЕ1.ЕТЕ для определения взаимосвязи между таблицами, указываюшее, какое действие 1ге!егевт!а!Асг!оп) должно выполняться при удалении строки из родительской таблицы, которая содержит потенциальный ключ, соответствующий внешнему ключу дочерней таблицы. Определение параметра ге!егепла!Асг!оп совпадает с определением такого же параметра для правила ОХ ЫРРАТЕ. ° Опция МАТСН, позволяющая ввести дополнительные ограничения, касающиеся применения значений Х1)ЬЬ в внешнем ключе.
По умолчанию ограничение ссылочной целостности удовлетворяется, если любой компонент внешнего ключа имеет значение Х1)ЬЬ или если в родительской таблице есть соответствуюшая строка. Если задана опция МАТСН ХЫЬЬ, то либо все компоненты внешнего ключа должны быть пусты (Х1)ЬЬ), либо все должны иметь непустые значения. Если задана опция МАТСН РАКТ)А1., то либо все компоненты внешнего ключа должны быть пусты (Х Ш.Ь), либо в родительской таблице должна существовать хотя бы одна строка, способная удовлетворить это ограничение, если все остальные значения ХЫЬЬ были подставлены правильно.
В операторе создания таблицы может быть задано любое число конструкций ГОКЕ1ОХ КЕт'. Конструкция СНЕСК позволяет определять дополнительные ограничения. Если конструкция 11б СНЕСК используется в качестве ограничения столбца, то она может ссылаться только на определенный столбец. Модификация таблиц. Для изменения структуры таблицы стандартом !БО/ЕС 9075:2003 предусмотрено применение оператора А1.ТЕК ТАВЬЕ, который позволяет: ° ввести новый столбец в таблицу; ° удалить столбец из таблицы; ° ввести новое ограничение таблицы; ° удалить ограничение таблицы; ° задать для столбца значение, применяемое по умолчанию; ° удалить опцию, предусматривающую применение для столбца значения, заданного по умолчанию.
Рассмотрим основной формат оператора А].ТЕК ТАВ[.Е. АТ ТЕК ТАВЪЕ ТаЫ е]Гате [АРР [ СОЬРМН] Со1итСГате РаСатуре [Нот НРРР) [РН1ОРЕ] [РЕЕАСРТ с(еГаи1СОрСТоп) [СНЕСК (аеасоЬСопо[СТоп] ] ) [РКОР [СОРПМИ] Со1итпИате (КЕБТК1СТ ( САЯСАРЕ]) [АРР [СОХЯТКА1ИТ [СопаСсахпСИате [ТаЬ1еСопеСга1пСРегхпТСТоп] [РКОР [СОИБТКА1ИТ [СопаСгадпС][ате )1 [КЕЯТК1СТ САЯСАРЕ)) [АПЕК [ СОРРМН] ЯЕТ РЕГАРЬТ с[егаи1СОрС1оп) [АХТЕК [ СОйцми] РКОР РЕЕАПРТ] Как видим, многие параметры оператора А].ТЕК ТАВ1.Е совпадают с параметрами оператора ОКЕАТЕ ТАВЕЕ. Конструкция АОР СОШМ)М добавляет столбцы в базу данных.
Конструкция РКОР СОШМ)ч задает имя столбца, удаляемого из таблицы. Ключевое слово КЕБТК1СТ указывает, что операция РКОР не выполняется, если на столбец имеется ссылка в другом объекте базы данных. Это значение предусмотрено по умолчанию. Ключевое слово САБСАРЕ указывает, что выполнение операции ОКОР продолжается, и ссылки на столбец исключаются из всех объектов. Причем операция выполняется каскадно, т.е. если столбец удаляется из объекта, содержащего ссылку, то в базе данных выполняется проверка — имеются ли ссылки на удаляемый столбец в другом объекте базы данных, и такие ссылки также удаляются. Данная процедура выполняется для всех столбцов таблицы. Удаление таблиц.
Для удаления таблицы стандартом 150/ЕС 9075:2003 предусмотрено применение оператора ОКОР ТАВ[.Е, имеющего следующий формат: РКОР ТАВХЕ ТаЫеиате [КЕБТК1СТ ] САЯСАРЕ) 1!7 В данном формате ключевое слово КЕВТК[СТ указывает, что операция ОКОР не выполняется, если в базе данных имеются другие объекты, существование которых зависит от наличия удаляемой таблицы, а САЯСАОЕ означает, что выполнение операции ОКОР продолжается и из базы данных удаляются все зависимые объекты и объекты, зависимые от этих объектов.
8.4. Создание пользовательских представлений В реляционных базах данных кроме объекта таблица (ге[айоп) существует объект представление ( пе и). Таблицы базы данных являются базовыми отношениими, а представления создаются из базовых отношений и являются динамическими таблицами, создаваемыми по требованиям отдельных пользователей в момент выполнения программы.
(Фактически представление является результатом выполнения запроса на выборку, технологии создания которых будут рассмотрены далее.) С точки зрения пользователя представление является отношением, которое существует постоянно и с которым можно работать точно так же, как с базовым отношением. Однако представление не хранится в базе данных так, как базовое отношение: в базе данных (системном каталоге базы данных) хранится лишь его определение. Представления имеют динамический характер, т.е. любые изменения в базовых отношениях, которые могут повлиять на содержимое представления, немедленно отражаются на содержимом этого представления. В то же время, если пользователи вносят в представление некоторые допустимые изменения, последние немедленно заносятся в базовые отношения представления.
Рассмотрим кратко назначение представлений. ° Представление обеспечивает достаточно мощный и гибкий механизм защиты, позволяющий скрыть некоторые части базы данных от определенных пользователей. Пользователь не будет иметь сведений о существовании каких-либо данных в базовых отношениях и отсутствующих в доступных только ему представлениях.
° Представление позволяет организовать одновременный многопользовательский доступ к базовым отношениям. ° Представление позволяет упрощать сложные операции с базовыми отношениями, если оно разработано на основе соединения нескольких базовых отношений. Для создания представлений предназначен оператор ОКЕАТЕ 'т'[Е%, имеющий следующий формат записи: ОЕЕАТЕ Ч1ЕИ Ртениате [ [пенСо1итнате [, ...1) АЗ зойее1есе [ИТТН [САБСАРЕР ) ЬОСАЬ1 СНЕС ОРТХОМ] 118 Представление определяется с помощью подзапроса зиЬзе1есб оформленного в виде оператора НЕВЕСТ языка КОЕ.