- •Глава I «Общие вопросы» Вопросы 1-6
- •История развития бд. Сравнить между собой этапы(файлы и файловые системы, бд на больших эвм, эпоха персональных компьютеров, распределенные базы данных)
- •История развития бд.
- •Файлы и файловые системы.
- •Базы данных на больших эвм.
- •Эпоха персональных компьютеров.
- •Распределенные базы данных.
- •Архитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi).
- •Описать процесс прохождения пользовательского запроса
- •Пользователи баз данных. Основные функции группы администратора бд
- •Пользователи баз данных.
- •Основные функции группы администратора базы данных.
- •Перечислить классы субд. Какие возможности обеспечивает использование профессиональных субд.
- •Этапы разработки аис.
- •Глава II «Архитектура бд, режимы работы» Вопросы 7-12
- •Режимы работы с базой данных.
- •Архитектура клиент-сервер: структура типового интерактивного приложения.
- •Модель fs.
- •Модель rda
- •Модель сервера баз данных
- •Модель сервера приложений
- •Глава III «Модели данных, язык описания данных, реляционная алгебра» Вопросы 13-19
- •Иерархическая модель данных. Язык описания данных иерархической модели. Внешние модели.
- •Иерархическая модель данных.
- •Язык описания данных иерархической модели.
- •Внешние модели.
- •Пример иерархической базы данных.
- •Язык манипулирования данными в иерархических базах данных. Операторы поиска данных. Операторы поиска данных с возможностью модификации. Операторы модификации данных.
- •Операторы поиска данных.
- •Операторы поиска данных с возможностью модификации.
- •Операторы модификации данных.
- •Обновить
- •Ввести новый экземпляр сегмента.
- •Сетевая модель данных. Язык описания данных в сетевой модели.
- •Сетевая модель данных.
- •15.2. Язык описания данных в сетевой модели.
- •Язык манипулирования данными в сетевой модели.
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции (объединение, пересечение, разность, конкатенация кортежей, произведение)
- •18.1. Теоретико-множественные операции реляционной алгебры.
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Специальные операции (выборка, проекция, соединение, деление).
- •Глава IV
- •Вопросы 20-27
- •Язык sql. История развития sql. Структура sql. Типы данных.
- •Язык sql. История развития sql.
- •Структура sql.
- •Типы данных.
- •Операторы описания данных (ddl).
- •Операторы манипулирования данными (dml)
- •Язык запросов dql. Оператор выбора select.
- •Предикаты раздела where
- •Null-значения. Трехзначная логика
- •Агрегатные функции в операторе выбора
- •Вложенные запросы.
- •Глава V «Проектирование бд» Вопросы 28-33
- •Проектирование реляционных бд на основе принципов нормализации:
- •Этапы жизненного цикла бд. Этапы проектирования бд
- •Системный анализ предметной области (два подхода к выбору состава и структуры предметной области)
- •Инфологическое моделирование. Er - модель (базовые понятия сущность, связь, типы связей: 1:1, 1:n, n:n, обязательная/необязательная).
- •Инфологическое моделирование.
- •Переход к реляционной модели данных (правила преобразования er-модели в реляционную).
- •Даталогическое проектирование. Перечень результирующих документов, корректная схема бд. Два пути проектирование схемы бд.
- •Глава VI «Нормальные формы» Вопросы 34-37
- •Последовательность нормальных форм. Их свойства. Первая нормальная форма (1нф), вторая нормальная форма (2нф),
- •Третья нормальная форма (3нф), нормальная форма Бойса-Кодда (бк нф),
- •Нф Бойса-Кодда.
- •Четвертая нормальная форма (4нф), пятая нормальная форма (5нф)
- •Глава VII «oracle (Теория)» Вопросы 38-42
- •Сурбд Oracle. Конфигурации Oracle. Типы пользователей. Основные обязанности dba.
- •Субд Oracle.
- •Конфигурации Oracle.
- •Типы пользователей.
- •Основные обязанности dba.
- •Архитектура Oracle (физический и логический уровень)
- •Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.
- •Онлайновые и офлайновые табличные пространства
- •Файлы данных
- •Сегменты, экстенты и блоки данных.
- •Сегменты.
- •Экстенты.
- •Блоки данных.
- •Экземпляр Oracle. Sga, pga
- •Процессы. 7 основных фоновых процессов Oracle
- •Пользовательские процессы
- •Процессы Oracle
- •Глава VIII «oracle (Практика)» Вопросы 43-49
- •Объекты бд Oracle. Создание таблиц. Типы данных
- •Объекты Oracle.
- •Создание таблиц.
- •Типы данных.
- •Субд Oracle. Создание индексов.
- •Субд Oracle. Создание представлений
- •Субд Oracle. Создание последовательностей
- •Субд Oracle. Определенные пользователем типы данных. Создание синонимов
- •Субд Oracle. Создание ограничений
- •Субд Oracle. Создание табличных пространств
- •Глава IX
- •Вопросы 50-58
- •Основные понятия и конструкции pl/sql. Архитектура pl/sql
- •Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения
- •Структура программы и переменные pl/sql
- •Pl/sql. Условные операторы if
- •Pl/sql. Циклы
- •Pl/sql. Курсоры. Курсорный цикл for.
- •Курсорный цикл for.
- •Pl/sql. Хранимые процедуры
- •Пример хранимой процедуры.
- •Pl/sql. Функции
- •Pl/sql. Триггеры
- •Пример триггера.
Pl/sql. Триггеры
Триггер базы данных (database trigger) является объектом реляционной базы данных, который активизирует выполнение хранимой (или встроенной) PL/SQL-процедуры при изменении пользователем данных в таблице. Событие, управляющее запуском триггера, описывается в виде логических условий. Например, попытка модифицировать данные в таблице активизирует триггер, соответствующий данной команде манипулирования данными. Число триггеров на таблицу базы данных не ограничено.
Обычно триггеры используют для реализации ограничений ссылочной целостности, для предотвращения несогласованных изменений в базе данных (поддержка целостности базы данных), для выполнения скрытых операций при модификации, а также для снижения сетевого трафика за счет передачи обработки на сервер. Операции завершения транзакции выполняются после обработки триггеров.
При выполнении команды UPDATE с помощью триггера можно проверить, что модифицируемые данные удовлетворяют ограничениям целостности базы данных до выполнения операции (при этом возможен доступ к новым данным!). После выполнения операции с помощью триггера можно выполнить скрытую обработку данных с учетом поступивших изменений (старые данные также могут быть доступны).
При выполнении команды INSERT также можно проверить данные до вставки в таблицу на допустимость ограничениям целостности, а после - выполнить операции над только что вставленными данными.
При выполнении команды DELETE можно проверить данные до их удаления или восстановить данные после удаления.
Для создания триггера предусмотрена специальная команда SQL CREATE TPIGGER. Эта команда создает триггер на таблице, которой владеет пользователь.
Синтаксис команды следующий:
CREATE [OR REPLACE] TPIGGER [имя схемы.]имя триггера
{BEFORE|AFTER}
{INSERT|DELETE|UPDATE [OF имя колонки [, имя колонки ѕ]]}
[OR {INSERT|DELETE|UPDATE [OF имя колонки [, имя колонки ѕ]]}]
ON [имя схемы.]{имя таблицы|имя представления}
{FOR EACH ROW][WHEN условие]
спецификация пакета на PL/SQL
Определение триггера состоит из нескольких частей:
задание имени триггера;
указание команды SQL, к которой относится триггер;
указание таблицы или представления, для которой определяется триггер;
задание ограничений триггера;
задание действия в теле триггера.
Если имя схемы опущено, то триггер создается в схеме текущего пользователя.
Первая часть - это указание команды, которая запускает триггер. При создании триггера необходимо указывать, к какой команде манипулирования данными он относится - INSERT, DELETE или UPDATE. Для последней можно указывать конкретные колонки, указав фразу OF имя_колонки [, имя_колонки ...] в предложении UPDATE.
Ключевое слово ON задает имя таблицы или представления, для которого создается триггер.
Ограничения триггера указывают дополнительные условия, которые должны удовлетворяться для строки, чтобы триггер запустился.
Триггер имеет время действия - до или после выполнения команды манипулирования данными, - которое задается ключевыми словами BEFORE или AFTER, соответственно. Обычно нельзя определить два триггера на одну и ту же операцию с одинаковым временем действия.
Необязательное ключевое слово ON EACH ROW определяет триггер как строчный, т.е. запускаемый для каждой строки результирующего множества команды SQL. Если оно опущено, то триггер запускается только один раз в начале обработки команды. Таким образом, условие "для каждой строки" активизируется, только когда есть строки (например, предложение WHERE дает истинное значение условий поиска), в то время как для условия "для каждой команды" триггер сработает и в этом случае.
Дополнительные условия, сужающие область действия триггера, могут быть заданы в предложении WHEN. Условия, задаваемые в этом предложении, являются стандартными для SQL условиями, должны содержать корреляционные имена и не могут содержать запрос. Это предложение может быть указано только для строчного триггера.
Действие, которое выполняет триггер, задается в теле триггера блоком кода PL/SQL, который не может содержать команд управления транзакциями, таких как COMMIT, ROLLBACK и SAVEPOINT.
