
- •А рхитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi)
- •Пользователи баз данных. Основные функции группы администратора бд
- •Описание процесса прохождения пользовательского запроса
- •Перечислить классы субд. Какие возможности обеспечивает использование профессиональных субд
- •Этапы разработки аис
- •Модели данных
- •Режимы работы с базой данных
- •Архитектура клиент-сервер: структура типового интерактивного приложения
- •Инфологическое моделирование. Er - модель.
- •Системный анализ предметной области
- •Этапы жизненного цикла ис. Этапы проектирования бд
- •Алгоритм перехода от er к реляционной модели данных.
- •Даталогическое проектирование, корректная схема бд.
- •Последовательность нормальных форм. Их свойства. Первая нормальная форма (1нф), вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф), нормальная форма Бойса-Кодда (бк нф)
- •Сурбд Oracle. Конфигурации Oracle. Архитектура Oracle (физический и логический уровень)
- •Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.
- •Объекты бд Oracle. Создание таблиц. Типы данных. Пользовательские типы данных
- •Субд Oracle. Создание индексов.
- •Субд Oracle. Создание представлений
- •Субд Oracle. Создание последовательностей
- •Субд Oracle. Определенные пользователем типы данных. Создание синонимов
- •Субд Oracle. Создание ограничений
- •Субд Oracle. Создание табличных пространств
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции
- •Реляционная алгебра. Специальные операции.
- •Язык sql. История развития sql. Структура sql. Типы данных.
- •Операторы описания данных (ddl).
- •Операторы манипулирования данными (dml)
- •Основные понятия и конструкции pl/sql. Архитектура pl/sql
- •Язык запросов dql. Оператор выбора select.
- •Агрегатные функции в операторе выбора. Вложенные запросы.
- •Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения
- •Предикаты раздела where
- •Структура программы и переменные pl/sql
- •Null-значения, трехзначная логика
- •Pl/sql. Условные операторы if
- •Pl/sql. Циклы
- •Pl/sql. Курсоры. Курсорный цикл for.
- •Pl/sql. Хранимые процедуры
- •Pl/sql. Функции
- •Pl/sql. Триггеры
Pl/sql. Условные операторы if
Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true.
IF-THEN – используется тогда, когда нужно выполнять действия, если условие истинно.
IF (УСЛОВИЕ) THEN
END IF;
IF-THEN-ELSE – используется, когда нужно выполнить один набор действий при истинном условии и другой набор при ложном.
IF (УСЛОВИЕ) THEN
ELSE
END IF;
IF-THEN-ELSIF – используется, когда нужно выполнить один набор действий при истинном УСЛОВИИ1; другой набор при истинном УСЛОВИИ2; и третий набор, когда УСЛОВИЕ1 и УСЛОВИЕ2 ложные.
IF (УСЛОВИЕ1) THEN
ELSIF (УСЛОВИЕ2) THEN
ELSE
END IF;
Pl/sql. Циклы
Цикл — конструкция, предназначенная для организации многократного исполнения набора инструкций.
LOOP
Оператор LOOP используется, когда неизвестно, сколько раз нужно выполнить тело цикла.
Синтаксис:
LOOP
/* statements */
END LOOP;
statements – код выполняющийся при каждом прохождении через цикл.
Есть определенные пути выхода из циклов. Их три:
1. EXIT Безусловный выход из цикла. Используется посредством применения оператора IF.
2. EXIT WHEN Выход при выполнении условия.
3. GOTO Выход из цикла во внешний контекст.
Цикл LOOP можно прервать любым оператором EXIT, или когда он сталкивается с EXIT WHEN, который принимает значение TRUE.
Например:
LOOP
A := A + 1;
EXIT WHEN A > 5;
END LOOP;
FOR LOOP
Цикл FOR LOOP позволяет выполнить код повторно в течение фиксированного количества раз.
Синтаксис:
FOR loop_counter IN [REVERSE] lowest_number..highest_number
LOOP
/* statements */
END LOOP;
loop_counter – переменная счетчика цикла.
REVERSE не является обязательным. Если REVERSE указан, то счетчик цикла будет считать в обратном порядке.
lowest_number – начальное значение для loop_counter
highest_number – конечное значение для loop_counter.
statements – код выполняющийся при каждом прохождении через цикл.
CURSOR FOR LOOP
CURSOR FOR LOOP можно использовать тогда, когда нужно выгрузить и обработать каждую запись курсора. Цикл завершится, когда все записи будут извлечены в курсор.
Синтаксис:
FOR record_index in cursor_name
LOOP
/* statements */
END LOOP;
record_index – индекс записи
cursor_name – имя курсора, из которого нужно извлечь записи.
statements – код выполняющийся при каждом прохождении через цикл.
WHILE LOOP
Цикл будет выполняться до тех пор, пока условие истинно.
Синтаксис:
WHILE (condition)
LOOP
/* statements */
END LOOP;
Condition проверяется при каждом прохождении цикла. Если condition принимает значение TRUE, цикла выполняется, иначе прекращается.
statements – код выполняющийся при каждом прохождении через цикл.
Pl/sql. Курсоры. Курсорный цикл for.
Под курсором понимается получаемый при выполнении запроса результирующий набор и связанный с ним указатель текущей записи. В PL/SQL поддерживаются два типа курсоров: явные и неявные. Явный курсор объявляется разработчиком, а неявный курсор не требует объявления.
Курсор может возвращать одну строку, несколько строк или ни одной строки. При работе с курсорами используются операторы: OPEN, FETCH, CLOSE, CURSOR.
Оператор |
Смысл |
Действие |
CURSOR |
Выполняет объявление явного курсора |
Задает имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных (ВНД) |
OPEN |
Открывает курсор, создавая новый результирующий набор на базе указанного запроса. |
Создает новый результирующий набор на базе указанного запроса |
FETCH |
Выполняет последовательное извлечение строк из результирующего набора от начала до конца |
Считывает очередную строку из результирующего набора |
CLOSE |
Закрывает курсор и освобождает занимаемые им ресурсы. |
Прекращает доступ к ВНД, соответствующему курсору |
Синтаксис:
CURSOR имя_курсора
IS
SELECT_statement /* код запроса */;
Цикл FOR
Цикл FOR с курсором выполняет следующие действия:
1. Неявно объявляет переменную цикла как запись %ROWTYPE.
2. Открывает курсор.
3. При каждои ̆итерации извлекает следующую строку из результирующего набора в поля неявно объявленной записи.
4. По достижении конца результирующего набора закрывает курсор.