- •Ведение в реляционные субд. Понятие реляционной субд. Сущности Первичный и внешний ключ. Правила построения схемы бд.
- •2. Общая характеристика субд Access. Создание и редактирование базы данных средствами субд Access. Свойства реляционной таблицы. Отношения между таблицами.
- •3.Построение запросов в субд Access. Структура запроса. Условие на значение.Between, In, Like Многотабличные запросы, вычисляемые поля. Групповые операции.
- •4. Запросы с параметрами. Групповые операции. Вспомогательные запросы
- •5. Параметры объединения в запросах. Функция Nz. Параметры объединения в запросах. Перекрестные запросы. Запросы действия.
- •6.Реляционная модель. Операции реляционной алгебры.
- •7. Построение модели «Сущность-связь» Сущности и атрибуты. Категории сущностей. Ключи и индексы. Связи. Улучшение модели.
- •8. Структура стандарта sql Типы данных и операции sql. Агрегирующие функции. Примеры.
- •9 . Формирование запросов средствами sql. Вложенные запросы. Группировка данных. Соединение таблиц. Объединение запросов. Примеры.
- •3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
- •10. Модификация данных. Модификация объектов бд. Последовательности. Модификация и удаление таблиц. Примеры использования.
- •Создание таблиц. Ограничения Для создания таблиц базы данных используется оператор, который в простейшем случае описывается так:
- •11. Управление транзакциями. Представления. Управление транзакциями
- •Представления
- •12. .Общая концепция субд «Oracle».
- •13. Язык pl/sql. Основные типы данных и операторы.
- •Структура программы
- •Типы данных
- •14. Курсоры, их атрибуты. Использование цикла for. Курсоры
- •Атрибуты курсора
- •Использование цикла for для работы с курсорами
- •15. Обработка исключений. Пользовательские исключения. Возбуждение исключений.
- •16. Подпрограммы. Пакеты. Хранимые подпрограммы.
- •17. Триггеры Объявление, назначение и примеры использования. Модификация триггеров.
- •18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.
- •Разграничение доступа
- •19. Управление параллельной обработкой данных. Блокировки.
- •20. Функциональные зависимости. Нормализация отношений. Нормальные формы.
- •21. Основные этапы проектирования реляционной базы данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование.
- •22. Распределенные бд. Хранилища данных. Определение и назначение. Понятие репликации. Варианты архитектуры хд. Гиперкуб. Его назначение и реализация средствами рсубд.
14. Курсоры, их атрибуты. Использование цикла for. Курсоры
Конструкция PL/SQL, называемая курсором, позволяет дать имя некоторой рабочей области, данные в которую будут помещаться операторами SQL. Имеются 2 типа курсоров: неявные и явные. PL/SQL неявно объявляет курсор для всех DML–утверждений языка SQL, включая запросы, возвращающие ровно одну строку.
Курсор может быть явно объявлен с помощью оператора
DECLARE
CURSOR имякурсора [(параметрыкурсора)]IS операторSelect;
Имя курсора - это необъявленный ранее идентификатор, а не переменная PL/SQL; его можно использовать только для обращения к запросу
Курсор может иметь параметры. Параметры описываются так же, как параметры любой процедуры или функции PL/SQL, а их конкретные значения задаются в момент открытия курсора.
После объявления курсора над ним можно выполнять следующие операции:
-открытие (OPEN). Открытие курсора предложением OPEN исполняет предложение SELECT и идентифицирует активное множество, т.е. все строки, удовлетворяющие поисковым условиям запроса. Для курсоров, объявленных с фразой FOR UPDATE, предложение OPEN также осуществляет блокировку этих строк. Предложение OPEN не извлекает строк активного множества. Пример предложения OPEN: OPEN accountants;
Курсору могут быть переданы параметры при открытии. Например, любое из следующих предложений открывает курсор dept_workers:
OPEN dept_workers; OPEN dept_workers('SALES');
-выбор очередной строки (FETCH). Предложение FETCH извлекает очередную строку из активного множества. Рассмотрим формат предложения FETCH: FETCH имякурсора INTO списокпеременных;
Для каждого значения столбца, извлекаемого запросом, ассоциированного с курсором, в списке INTO должна быть соответствующая переменная, имеющая совместимый с этим столбцом тип данных. Обычно используются не индивидуальные переменные, а переменная-запись.
-закрытие курсора (CLOSE). Предложение CLOSE деактивирует курсор, и активное множество становится неопределенным. Пример предложения CLOSE:
CLOSE dept_workers;
Атрибуты курсора
Каждый курсор, явно объявленный вами, имеет четыре атрибута: %NOTFOUND, %FOUND, %ROWCOUNT и %ISOPEN. Атрибуты позволяют вам получать полезную информацию о выполнении многострочного запроса.
Использование %NOTFOUND. Когда курсор открыт, строки, удовлетворяющие ассоциированному запросу, идентифицированы и образуют активное множество. Эти строки извлекаются операцией FETCH по одной за раз. Если последняя операция FETCH вернула строку, %NOTFOUND дает FALSE. Если последняя операция FETCH не смогла вернуть строку (так как активное множество исчерпано), %NOTFOUND дает TRUE.
Использование %FOUND. %FOUND логически противоположен атрибуту %NOTFOUND. После открытия явного курсора, но до первой операции FETCH, %FOUND дает NULL. Впоследствии он дает TRUE, если последняя операция FETCH вернула строку, или FALSE, если последняя операция FETCH не смогла извлечь строку, так как больше нет доступных строк.
Использование %ROWCOUNT. Когда вы открываете курсор, его атрибут %ROWCOUNT обнуляется. Перед первой операцией FETCH %ROWCOUNT возвращает 0. Впоследствии, %ROWCOUNT возвращает число строк, извлеченных операциями FETCH из активного множества на данный момент.
Использование %ISOPEN. %ISOPEN дает TRUE, если явный курсор открыт, и FALSE в противном случае. Следующий пример использует %ISOPEN для выбора действия: