- •Оглавление
- •Раздел 4. Проектирование реляционных баз данных. 113
- •Раздел 5. Определение структур данных и обслуживание баз данных. 114
- •Введение
- •Раздел 1. Основы теории баз данных Тема 1: Базы данных и информационные системы. Основные понятия.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Тема 2: Банки данных. Системы управления базами данных.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Раздел 2. Реляционная алгебра Тема1: Реляционная алгебра. Классические операции теории множеств.
- •Тема 2: Специальные операции теории множеств.
- •Раздел 3. Модели данных. Тема 1: Классические модели данных.
- •Сетевая модель представления данных.
- •Реляционная модель представления данных.
- •Элементы реляционной модели
- •Тема 2: Связывание таблиц. Целостность связей.
- •Основные виды связи таблиц.
- •Контроль целостности связей.
- •Характеристика видов связей
- •Раздел 4. Проектирование реляционных баз данных. Тема 1: Основные принципы проектирования баз данных.
- •2. Избыточное дублирование данных и аномалии
- •3. Формирование исходного отношения.
- •Тема 2: Метод нормальных форм
- •2. Выявление зависимостей между атрибутами
- •3. Нормальные формы
- •Тема 3: Метод сущность-связь. Этапы проектирования.
- •2.Этапы проектирования
- •3.Пример проектирования бд учебной части.
- •Тема 4: Правила формирования отношений.
- •2. Формирование отношений для связи 1:м
- •3. Формирование отношений для связи м:м
- •Раздел 5. Определение структур данных и обслуживание баз данных. Тема 1: Среда sql*Plus.
- •Функции.
- •2. Основные типы данных
- •3. Арифметические выражения
- •4. Операторы сравнения
- •5. Обработка неопределенных значений
- •6. Функции
- •7. Форматные модели
- •Тема 2: Структуры данных. Создание таблиц.
- •Создание таблиц.
- •3. Создание таблиц
- •Тема 3: Изменение таблиц и ограничений
- •Добавление и изменение столбца.
- •Изменение ограничений.
- •Удаление таблицы. Изменение имени таблицы и добавление комментариев.
- •Тема 4: Операции с ограничениями.
- •Тема 5: Манипулирование данными.
- •1. Вставка новых строк в таблицу
- •2. Копирование строк из другой таблицы
- •3. Обновление строк в таблице
- •4. Удаление строк из таблицы
- •Тема 6: Команда запроса данных. Простой запрос.
- •Тема 7: Сложные запросы.
- •Использование функций для работы с датами при организации запроса.
- •Тема 8: Группировка строк в запросе
- •2. Группы внутри групп.
- •3. Предложение having.
- •Тема 9: Подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •Однострочные и многострочные подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •2.Однострочные и многострочные подзапросы.
- •Тема 10: Выборка данных из нескольких таблиц.
- •2. Псевдонимы таблиц.
- •3. Дополнительные условия поиска.
- •4. Внешние соединения.
- •Select таблица.Столбец, таблица.Столбец
- •Тема 11: Создание, изменение и удаление последовательностей.
- •Создание последовательности.
- •2. Изменение и удаление последовательности.
- •3. Генерация значений последовательности.
- •Тема 12: Создание, изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Тема 13: «Индексы»
- •Понятие индекса. Необходимость использования.
- •Создание и удаление индексов.
- •1. Понятие индекса. Необходимость использования.
- •2. Создание и удаление индексов.
- •Тема 14: «Создание отчетов»
- •2. Форматирование number колонок.
- •3. Оформление Отчета пробелами и итоговыми строками.
- •4. Вычисление итоговых строк при изменении значения колонки.
- •5. Определение заголовков.
- •6. Установка размеров страницы
- •7. Сохранение и Печать Результатов Запроса
- •Тема 15: Управление транзакциями
- •Практикум Раздел 3. Реляционная алгебра.
- •Раздел 4. Проектирование реляционных баз данных.
- •Раздел 5. Определение структур данных и обслуживание баз данных.
- •Библиографический список
Тема 4: Операции с ограничениями.
Виды ограничений.
Создание ограничений.
Добавление и удаление ограничений.
Разрешение и запрет ограничений.
1. Виды ограничений.
Ограничения реализуют правила по обеспечению целостности данных на уровне столбца или таблицы, предотвращают удаление таблицы при наличии ссылок.
В Oracle существуют следующие виды ограничений:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
Ограничения можно создавать либо в момент создания таблицы, либо после создания таблицы.
2. Создание ограничений.
Обычно ограничения создаются одновременно с созданием таблицы, но добавлять их можно и после создания таблицы. Кроме того, ограничения могут быть временно запрещены.
Определение ограничений.
Уровень ограничения |
Описание |
Столбец |
Ссылается на единственный столбец и описывается в пределах характеристик соответствующего столбца. Позволяет задать правила целостности любого типа. |
Таблица |
Ссылается на один или несколько столбцов и описывается независимо от определения столбцов в данной таблице. Позволяет задать любое ограничение, кроме Not Null. |
Таким образом, ограничения можно создать на одном из двух уровней.
Синтаксис ограничения на уровне столбца
Имя_столбца [CONSTRAINT имя_ограничения тип_ограничения]
Синтаксис ограничения на уровне таблицы
Имя_столбца1, Имя_столбца2,… [CONSTRAINT имя_ограничения] тип_ограничения
Ограничение NOT NULL
Запрещает наличие неопределенных значений в столбце. Задается только на уровне столбца. Столбцы, не связанные ограничением NOT NULL, могут содержать неопределенные значения по умолчанию.
Пример 1. Ограничение NOT NULL для столбца Phone без имени ограничения (Oracle создаст имя сам).
CREATE TABLE Friends
(Phone Varchar2(15) NOT NULL …);
Пример 2. Ограничение NOT NULL для столбца Phone с именем ограничения.
CREATE TABLE Friends
(Phone Varchar2(15)
CONSTRAINT Friends Phone NOT NULL …);
Ограничение UNIQUE.
Задает один или несколько столбцов, значение или комбинация значений в которых не могут повторяться в двух строках таблицы. Может быть задано как для таблицы, так и для столбца.
Неопределенные значения возможны, если уникальный ключ основан на одном столбце. Эти ограничения могут использоваться как для столбца, так и для таблицы. Составной уникальный ключ создается с помощью определения на уровне таблицы. Для уникального ключа на уровне столбца автоматически создается уникальный ключ.
Ограничение PRIMARY KEY.
Синтаксис:
CREATE TABLE имя_ таблицы
(имя_столбца1 тип_данных тип_ограничения,…);
Пример3. Создание таблицы Friends c первичным ключом Phone:
CREATE TABLE Friends
(Kod integer NOT NULL PRIMARY KEY,…);
Ограничение FOREIGN KEY.
Направлено на ограничение целостности ссылок, задает столбец или набор столбцов в качестве внешнего ключа, устанавливает связь с первичным или уникальным ключом в той же самой таблице или между таблицами. Значение внешнего ключа должно совпадать с существующим значением первичного ключа в родительской таблице или быть неопределенным (NULL).
Составной внешний ключ создается с помощью определения на уровне таблицы. Внешний ключ не может быть неопределенным значением.
Внешний ключ описывается комбинацией следующих слов:
FOREIGN KEY – задает значение таблицы как ограничение на уровне таблицы;
REFERENCES – указывает на таблицу и столбец в родительской таблице;
ON DELETE CASCADE- при удалении строки в родительской таблице разрешает удаление зависимых строк в дочерней таблице. Если этот параметр опущен, то строка в родительской таблице не может быть удалена, если на нее имеется ссылка в дочерней таблице.
Синтаксис:
CREATE TABLE имя_таблицы1
(имя_столбца1 тип_данных, FOREIGNKEY(имя_внешнего_ключа) REFERENCES имя_таблицы2 (имя_столбца2),…);
где имя_таблицы2 (имя_столбца2)- это название подчиненной таблицы и соответствующего первичного ключа, с которым будет связана таблица 1(родительская таблица)
Пример 4. Создание таблицы Friends c внешним ключом Phone:
Friends
(Kod_phon integer,
FOREIGN KEY (Phone) REFERENCES Kollegi (Phonekod),
…);
где Kollegi (Phonekod) – имя таблицы Kollegi, которая содержит столбец Phonekod. Phonekod является первичным ключом.
Ограничение CHECK.
Задает условие, которому должны удовлетворять значения столбца или группы столбцов в каждой строке таблицы. Может быть задано как на уровне таблицы, так и на уровне столбца. В выражениях, которые входят в состав ограничения, запрещены:
ссылки на псевдостолбцы CURRVAL, NEXTVAL, LEVEL и ROWNUM;
вызовы функций SYSDATE, UID, USER и USERENV;
запросы со ссылками на другие значения в других строках.
Пример 5. Использование ограничения CHECK
CHECK(Friends Cod Between 31 and 55)
Где Friends – имя таблицы
Cod – имя столбца
3. Добавление и удаление ограничений
Добавление ограничения.
Синтаксис команды:
ALTER TABLE имя таблицы1
ADD| MODIFY ([CONSTRANT имя_ограничения] тип_ограничения (имя_столбца) REFERENCES имя_таблицы2;
где тип_ограничения – это первичный или внешний ключ
Пример 6. Добавление в таблицу ограничения – первичный ключ.
alter table Oklad
add constraint d_pk primary key (dolzhn);
Добавление ограничения (внешнего ключа)
alter table dolzhn add constraint d_fk foreign key (dolzhn) references Oklad;
Удаление ограничения.
Синтаксис команды:
ALTERTABLE имя таблицы DROP [PRIMARY KEY| UNIQUE (столбец) CONSTRAINT ограничение [CASCADE];
CONSTRAINT необязательно и его можно опустить.
Пример 7. Удаление ограничения – первичного ключа
ALTER TABLE prep DROP PRIMARY KEY CASCADE;
Разрешение и запрет ограничений.
С помощью команды ALTER TABLE с предложениями ENABLE и DISABLE можно разрешать и запрещать действия ограничений, не удаляя их.
Синтаксис команды:
ALTER TABLE имя_таблицы ENABLE | DISABLE CONSTRAINT ограничение [CASCADE];
Параметр CASCADE используется для одновременного запрета всех зависимых ограничений.
