
- •1. Основные понятия баз данных. Этапы развития субд. Функции, требования к субд.
- •2. Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд. Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •3. Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений. Обеспечение целостности данных.
- •4. Основы реляционной алгебры. Операторы реляционной алгебры. Понятия полной, транзитивной, функциональной зависимостей. Нормализация, третья нормальная форма, шаги нормализации.
- •5. Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных.
- •6. Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •7. Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления.
- •8. Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •9. Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •10. Pl/sql, структура, основные операторы.
- •11. Курсоры, операторы работы с курсором, оператор select into.
- •12. Процедуры, функции, пакеты.
- •13. Триггеры, их основные свойства и значение.
- •14. Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •15. Распределенные базы данных, фрагментация, тиражирование.
- •16. Средства защиты данных в субд.
- •17. Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд.
- •18. Объектная модель данных.
- •19. Объектно-ориентированные и объектно-реляционные бд.
- •20. Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •21. Перспективы развития бд.
10. Pl/sql, структура, основные операторы.
Programming Language for SQL, Procedured SQL — процедурный SQL, расширение стандартного языка SQL, предназнач. для создания более сложных бизнес-правил (ограничения, процедуры, функции и триггеры) на сервере Oracle. Их общая цель — реализация сложной бизнес-логики модульным способом (компонент за компонентом). Размещение бизнес-правил на сервере значительно повышает производительность, т. к. в большинстве случаев СУБД не интерпретирует SQL-запросы, а выполняет заранее скомпилированные хранимые процедуры.
Блок PL/SQL состоит из четырех секций:
Секция заголовка (header section). Содержит спецификацию, которая включает название блока, а также описание входных и выходных параметров.
Секция объявления (declaration). Предназначена для объявления переменных, констант, курсоров.
Выполняемая секция (execution, тело блока). Содержит операторы PL/SQL. Начинается со слова Begin и заканчивается словом Exception, если есть секция исключений, иначе — словом End.
Секция исключений (exception). Содержит обработчики исключительных ситуаций.
* Исключительная ситуация — когда дальнейшее выполнение тела блока не имеет смысла.
Обязательной является только выполняемая секция.
Простейший блок PL/SQL:
Declare string1 Varchar2(50);
Begin
string1 := 'Hello, world!';
dbms_output.put_line(string1); End;
Блоки могут быть вложены друг в друга. Последний, самый "верхний", блок PL/SQL называется базовым и всегда должен заканчивается символом "/", говорящий серверу о том, что можно приступать к компиляции введенной команды.
Виды блоков:
именованные (имеют секцию заголовка),
анонимные (не имеют секции заголовка),
базовые;
вложенные (для объявления временных переменных и обработки исключений).
Если блок базовый именованный, то он хранится на сервере; если анонимный, то выполнится сразу. В анонимных блоках и триггерах для создания секции заголовка указывается ключевое слово Declare.
Операторы управления PL/SQL:
операторы выбора:
If … Then … End If;
If … Then … Else … End If;
If … Then … Elsif … End If;
операторы цикла:
Loop … End Loop;
While … Loop … End Loop;
For … Loop … End Loop;
Exit;
Exit When;
операторы безусловного перехода:
Goto;
Null;
В Oracle автоматически применяются следующие основные классы блокировок:
Блокировки данных (на уровне DML). Применяется для таблиц и используется для защиты данных (обеспечение целостности). К этому типу относятся блокировки строки или блокировка на уровне таблицы, затрагивающая все строки таблицы. Генерируются при выполнении операторов Insert, Delete, Update, Select for Update.
Блокировки словаря (на уровне DDL). Используется для защиты структуры объектов. Генерируется при выполнении операторов Create, Alter.
Внутренняя блокировка и защелка. Защищает внутреннюю структуру данных.