- •Основные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Логическая и физическая независимость данных
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Модели «клиент-сервер» в технологи баз данных
- •Модель файлового сервера
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Модель сервера приложений
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •Нормальные формы и нормализация
- •Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных. Инфологическая модель данных «Сущность-связь»
- •Классификация сущностей
- •Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •Типы данных в субд oracle 9.2i
- •Структура языка sql
- •Оператор выбора select
- •Запросы с использованием единственной таблицы Выборка без использования параметра where
- •Выборка с использованием параметра where
- •Использование параметров group by и having
- •Запросы с использованием нескольких таблиц Запросы с использованием соединений
- •Последовательности
- •Создание и удаление последовательностей
- •Изменение последовательностей
- •.Использование последовательностей
- •Оператор ввода новых строк insert Вставка единственной записи в таблицу
- •Вставка множества записей
- •Оператор изменения значений полей update
- •Обновление единственной записи
- •Обновление множества записей
- •Обновление с подзапросом
- •Оператор удаления строк delete
- •Удаление единственной записи
- •Удаление множества записей
- •Удаление с вложенным подзапросом
- •Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления. Оператор create Создание таблицы
- •Создание первичного ключа
- •Создание уникального ключа
- •Создание домена
- •Создание внешнего ключа
- •Удаление ограничений целостности
- •Оператор drop
- •Представления
- •Создание и удаление представлений
- •Операции выборки из представлений
- •Обновляемые представления
- •Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •Объектные и системные привилегии
- •Операторы grant и revoke
- •Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •Операторы управления транзакциями
- •Журналы транзакций
- •Язык pl/sql, его структура, основные операторы.
- •Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
- •Процедуры, функции, пакеты.
- •Триггеры, их основные свойства и значение.
- •Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •Распределенные базы данных, фрагментация, тиражирование.
- •Средства защиты данных в субд.
- •Аутентификация/авторизация при помощи паролей.
- •Инкапсуляция передаваемой информации в специальных протоколах обмена.
- •Ограничение информационных потоков.
- •Классы безопасности
- •Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд. Промежуточное программное обеспечение (ппо) баз данных
- •Доступ к базам данных
- •Недостатки реляционных субд
- •Манифест систем объектно-ориентированных баз данных Обязательные свойства: золотые правила
- •Необязательные возможности Множественное наследование, проверка и вывод типов, распределенность, проектные транзакции (протяженные транзакции или вложенные транзакции), версии
- •Объектная модель данных
- •Объектно-ориентированные, объектно-реляционные бд, универсальные бд
- •Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •Роль grid-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
Курсор - это имя многострочного запроса или указатель на контекстную область, с помощью которого программа PL/SQL управляет этой областью и ее состоянием во время обработки.
В языке PL/SQL курсоры используются для управления обработкой SQL-операторов select. В одних случаях курсоры объявляются явно, а других программист предоставляет PL/SQL самому выполнить эту операцию.
Явное объявление курсора производится в области DECLARE, причем указанный в определении SQL-оператор содержит команды select.
Для обработки явного курсора в PL/SQL необходимо выполнить 4 шага:
1) Объявление курсора
При объявлении курсора ему назначается имя и ставится в соответствие некоторый оператор SELECT. Синтаксис объявления курсора таков:
CURSOR имя_курсора IS оператор_select
где имя_курсора - это имя курсора,
оператор_select - запрос, который будет обрабатываться.
2) Открытие курсора для запроса
Синтаксис открытия курсора таков:
OPEN имя_курсора;
где имя_курсора - предварительно объявленный курсор.
3) Выбор результатов в переменные PL/SQL
Производится считывание строк из курсора.
Оператор FETCH имеет две формы:
FETCH имя_курсора INTO список_переменных;
и FETCH имя_курсора INTO запись_ PL/SQL;
где имя_курсора - обозначает объявленный и открытый курсор,
список_переменных - представляет собой список объявленных переменных PL/SQL, разделенных запятыми,
запись_ PL/SQL - предварительно объявленная запись PL/SQL.
4) Закрытие курсора
Когда выбран весь активный набор, курсор следует закрыть и освободить отведенные для него ресурсы. Синтаксис закрытия курсора таков:
CLOSE имя_курсора;
где имя_курсора - ранее открытый курсор.
Неявно объявляемые курсоры
Оператор select указывается в теле блока, и PL/SQL берет на себя всю заботу об определении курсора, выполняя соответствующие действия неявно. При этом программисту не требуется вносить в секцию DECLARE никаких дополнительных объявлений.
Каждый оператор select выполняется в пределах контекстной области и поэтому имеет курсор, указывающий на конкретную контекстную область. Такой курсор называется SQL-курсором. В отличии от явных курсоров SQL-курсор не открывается и не закрывается программой. PL/SQL неявно открывает SQL-курсор, обрабатывает SQL- оператор и закрывает этот курсор.
Примеры:
CURSOR ordercursor IS select id, customerid, orderdate from orders;
DECLARE
CURSOR ordercursor (ordernumber NUMBER) IS
SELECT id, customerid, orderdate FROM orders
WHERE id > ordernumber;
BEGIN
OPEN ordercursor (3)
В данном примере возвращаемый набор ordercursor включает строки таблицы orders, для которых идентификатор id > 3
Атрибуты курсора:
%ISOPEN - открыт курсор (true, false)
%ROWCOUNT - число строк, выбранных после открытия курсора
%NOTFOUND - последняя команда выборки возвратила строку, то
%FOUND (%NOTFOUND – false, %FOUND – true) и наоборот