
- •12 Правил Кодда:
- •Словарь субд Oracle: состав, назначение, применение.
- •Структура вторичной памяти субд Oracle: табличные пространства, сегменты, экстенты, блоки, структура блока.
- •Архитектура программного обеспечения с точки зрения программиста, объекты разработки, роли разработчиков и их функциональное наполнение.
- •Режимы старта и останова экземпляра Oracle, операторы alter перевода экземпляра Oracle из одного состояния в другое.
- •Понятия субд Oracle: системные привилегии, объектные привилегии, роль, профиль безопасности, пользователь.
- •Табличные пространства: назначение, типы, основные параметры, необходимые привилегии, операторы создания и удаления, представления словаря.
- •Кластер: назначение, типы, основные параметры, необходимые привилегии, операторы создания, модификации и удаления, представления словаря. Оператор создания таблиц с кластеризованными столбцами.
- •Индекс: назначение, типы (b*,bitmap), основные параметры, необходимые привилегии, операторы создания, модификации и удаления, представления словаря.
- •Синоним: назначение, типы, необходимые привилегии, операторы создания и удаления, представления словаря.
- •Представление: назначение, необходимые привилегии, операторы создания, модификации и удаления, представления словаря, опции with check option/read only.
- •Материализованное представление: назначение, необходимые привилегии, операторы создания, модификации и удаления, представления словаря.
- •Временные таблицы: назначение, принцип применения, необходимые привилегии, операторы создания, опции on commit delete rows/ on commit preserve rows.
- •Порядок создания инфраструктуры базы данных Oracle.
- •Pl/sql: исключения, встроенные исключения и пользовательские исключения, генерация (raise, raise_application_error) и обработка исключений, порядок распространения исключений.
- •Pl/sql:константы, %type, %rowtype, записи (record) и их применение, вложенные записи, присваивание записей.
- •Pl/sql: локальные процедуры и функции, параметры, позиционный и параметрический способ передачи параметров
- •Pl/sql: динамический sql, оператор execute immediate, опции using (входные и выходные параметры), опция returning.
- •Хранимые процедуры и функции: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
- •Пакеты: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
- •Триггеры замещения (instead of)
- •Тип xmltype: назначение, создание таблиц с xml-полями, основные функции для работы с xmltype.
- •Большие типы: clob, blob, bfile, назначение, создание и применение.
- •Табличные и поточные функции
- •Расписание (Schedule)
- •Программа (Program)
- •Секцинирвание
- •Диапазонное секционирование
- •Интервальное секционирование
- •Списочное секционирование
- •Композитное секционирование
- •Эквисекционирование
- •Секционирование по ссылке
- •Секционирование по виртуальному столбцу
- •Системное секционирование
Хранимые процедуры и функции: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
Хранимые процедуры - (именованный PL/SQL-блок) – группа связанных между собой операторов sql или функций и сохраняемой в откомпилированном виде.
EXECUTE - Отменяется право запускать хранимую процедуру, пользовательскую функцию или пакет.
AUTHID — как будет выполняться программа и как должны разрешаться ссылки на объекты: DEFINER — в соответствии с привилегиями владельца объекта, либо CURRENT_USER — в соответствии с привилегиями пользователя вызывающего программу. По умолчанию считается DEFINER.
USER_PROCEDURES, USER_SOURCE
grant create procedure to kvcore
Пакеты: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
Пакет – совокупность некоторых функций и процедур, объявленных под общим именем.
EXECUTE - Отменяется право запускать хранимую процедуру, пользовательскую функцию или пакет.
AUTHID — как будет выполняться программа и как должны разрешаться ссылки на объекты: DEFINER — в соответствии с привилегиями владельца объекта, либо CURRENT_USER — в соответствии с привилегиями пользователя вызывающего программу. По умолчанию считается DEFINER.
USER_PROCEDURES, USER_SOURCE
grant create procedure to kvcore
Триггеры: DLL/DML – триггеры, BEFORE/AFTER-триггеры, триггеры уровней строки и оператора, необходимые привилегии, операторы создания, предикаты INSERTING, UPDATATING, DELETING, INSTEAD OF-триггеры, NEW/OLD-префиксы, системные (DDL) триггеры.
Триггер базы данных: особый вид именованных блоков PL/QL (особый вид процедур) которые срабатывают (firing – стрелять, запускать) по запускающему их событию.
Триггер базы данных: выполняется под правами создателя триггера.
Запускающие события: DML – события, системные события.
Применение триггеров:
для реализации сложных ограничений целостности базы данных;
для аудита (контроля хранимой и изменяемой информации – дельного аудита);
для автоматического оповещения программ о произошедших событиях;
Типы триггеров: DML – триггеры, триггеры замещения instead-of), системные триггеры.
Привилегии на триггер: назначаются напрямую USER у, а не через роль.
CREATE TRIGGER (создавать, удалять изменять в своей подсхеме);
CREATE ANY TRIGGER (создать любой триггер в любой схеме, кроме SYS, не рекомендуется для словаря, не разрешает менять текст триггера);
ALTER ANY TRIGGER (разрешать, запрещать, изменять, компилировать, любые, кроме SYS-триггеров, триггеры) ;
DROP ANY TRIGGER (удалять любой триггер, кроме SYS-триггеров);
ADMINISTER DATABASE TRIGGER (создавать, изменять, удалять системные триггеры, должен иметь привилегию CREATE TRIGGER или CREATE ANY TRIGGER).
DML-события: оператор: INSERT, DELETE, UPDAТE.
DML-триггеры: только для таблиц, для представлений нельзя
DML-триггеры: момент времени: AFTER (после события), BEFFORE (до события). BEFORE – до записи в журнал, AFTER – после записи в журнал.
DML-триггеры: уровень: FOR EACH ROW (для каждой строки), ПО УМОЛЧАНИЮ (операторный уровень).
DML-триггеры: всего типов триггеров = 28 = (7 комбинаций операторов)× 2 момента × 2 уровня.
DML-триггеры: для таблицы может быть любое количество.
DML-триггер – это часть транзакции: не может выдавать COMMIT/ROLBACK (может только, если в теле триггера автономная транзакция),может выдавать RAISE_SPPLICATION_ERROR.
Системные триггеры: BEFORE, AFTER (момент выполнения)
Системные триггеры: DATABASE, SCHEMA (уровень триггера)
Системные триггеры: 1)серверные события; 2) DDL-события; 3)события сбора статистики; 4) события аудита; 5) DCL-события.
Системные триггеры: все кроме LOGOFF работают в режиме автофиксации; LOGOFF входит в транзакцию отключения.
Системный триггер: может генерировать исключение RAISE.