- •Ведение в реляционные субд. Понятие реляционной субд. Сущности Первичный и внешний ключ. Правила построения схемы бд.
- •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. Распределенные бд. Хранилища данных. Определение и назначение. Понятие репликации. Варианты архитектуры хд. Гиперкуб. Его назначение и реализация средствами рсубд.
Использование цикла for для работы с курсорами
Как и в других циклах FOR, область видимости переменной - индекса цикла ограничена этим циклом.
Формат цикла FOR для работы с курсорами следующий:
FOR индексцикла IN курсор | операторSELECT LOOP
…
END LOOP
15. Обработка исключений. Пользовательские исключения. Возбуждение исключений.
Исключительная ситуация – это событие, не приводящие к возникновению непоправимой ошибки, но прерывающее нормальное выполнение программы и вызывающее переход к обработчику исключительной ситуации.
Исключительные ситуации делятся на внутренние и пользовательские. Внутренние исключения возбуждаются неявно (автоматически) системой исполнения; пользовательские исключения возбуждаются явно, посредством предложений RAISE (эти предложения могут также возбуждать предопределенные исключения). Перечислим имена некоторых внутренних исключений и соответствующие им коды ошибок, которые возвращаются системной функцией SQLCODE:
исключения
CURSOR_ALREADY_OPEN Попытка повторного открытия курсора без его предварительного закрытия код ошибки (-6511)
DUP_VAL_ON_INDEX Операция INSERT или UPDATE пытается создать повторяющееся значение в столбце, ограниченном опцией UNIQUE код ошибки (-1)
INVALID_ CURSOR Некорректный курсор (например, попытка закрыть неоткрытый курсор) код ошибки (-1001)
INVALID_NUMBER Невозможно преобразовать строку символов в число в предложении SQL код ошибки (-1722)
LOGIN_DENIED Некорректное имя пользователя или пароль при попытке подключения к ORACLE код ошибки (-1017)
NO_DATA_FOUND Предложение SELECT INTO не возвратило ни одной строки код ошибки (+100)
NOT_LOGGED_ON Не было выполнено подключение к ORACLE код ошибки (-1012)
STORAGE_ERROR Нехватка памяти код ошибки (-6500)
TIMEOUT_ON_RESOURCE Время ожидания ресурса истекло код ошибки (-51)
TRANSACTION_BACKED_OUT Выполнен явный или неявный откат транзакции код ошибки (-61)
VALUE_ERROR Возникла арифметическая ошибка, ошибка преобразования, ошибка усечения или ошибка ограничения. код ошибки (-6502)
Обработчик исключительных ситуаций имеет вид
BEGIN EXCEPTION{ WHEN исключение THENобработчик; } …[ WHEN OTHERS THENобработчик; ]END;
Вместе такие конструкции работают как группа операторов IF..ELSIF..ELSE. Если возникающая исключительная ситуация не соответствует ни одной из упомянутых в разделе EXCEPTION, то срабатывает WHEN OTHERS. Рекомендуется всегда использовать OTHERS в конце обработчика исключительных ситуаций, чтобы исключить подъем непредвиденного исключения на более высокий уровень.
Исключения также повышают надежность: вам нет необходимости беспокоиться о проверке ошибки в любой точке, где она может возникнуть.
Разрешается объявлять исключения только в декларативной части блока, подпрограммы или пакета PL/SQL. Для объявления исключения используется следующий синтаксис:
DECLAREимяисключения EXCEPTION;
Однако к исключениям применимы те же правила области видимости, что и к переменным:-нельзя объявлять исключение дважды в одном и том же блоке. Однако можно объявить то же самое исключение в двух различных блоках;-исключения, объявленные в блоке, считаются локальными в этом блоке и глобальными во всех его подблоках;-вы можете переобъявить глобальное исключение в подблоке. Внутренние исключения возбуждаются неявно исполнительной системой, как и те пользовательские исключения, которые ассоциированы с кодами ошибок ORACLE с помощью прагмы EXCEPTION_INIT. Однако остальные пользовательские исключения должны возбуждаться явно, посредством предложений RAISE.
Формат предложения RAISE:
RAISE имяисключения;