
- •Нормальные формы er-моделей.
- •Более сложные модели er модели.
- •Свойства:
- •Материал
- •Паттерны проектирования бд.
- •Задачи проектирования с применением графа.
- •Паттерн «периодические реквизиты»
- •Алгоритм получения действующего значения реквизита.
- •Паттерн. Документ с табличной частью.
- •Расширение курса бд по sql
- •1) Select Тип, цена, цена
- •Индекс. Синтаксис создания индекса
- •Автоматизация стандартных процедур.
- •Триггеры
- •Транзакции и курсоры
- •Объявление курсора
- •Выборка из курсора.
- •Перемещение курсора
Автоматизация стандартных процедур.
Последовательности
Последовательностью (sequence) называется объект базы данных, который фактически представляет собой автоматически линейно изменяемое число. В случае, если изменение подразумевает автоматическое увеличение на единицу, такой частный случай называют счетчиком.
Последовательности очень часто используются для присваивания уникальных значении идентификаторов в таблицах. Последовательность определяется текущим числовым значением и набором характеристик, определяющих алгоритм автоматического увеличения (или уменьшения) используемых данных.
Наряду с текущим значением в определение последовательности также включается минимальное значение, максимальное значение и приращение. Обычно приращение равно 1, но оно также может быть любым целым числом, желательно отличным от нуля.
Создание последовательности
Последовательности создаются командой SQL CREATE SEQUENCE с положительным или отрицательным приращением. Синтаксис команды CREATE SEQUENCE:
CREATE SEQUENCE последовательность [ INCREMENT приращение ] [ MINVALUE минимум ] [ MAXVALUE максимум ] [ START начало ] [ CACHE кэш ] [ CYCLE ]
Ниже описаны необязательные секции команды CREATE SEQUENCE.
INCREMENT приращение. Числовое изменение текущего значения последовательности. Используется при вызове для последовательности функции nextvaK). Отрицательное приращение создает убывающую последовательность. По умолчанию приращение равно 1.
MINVALUE минимум. Минимальное допустимое значение последовательности. Попытка уменьшить текущее значение ниже заданного минимума приведет к ошибке или циклическому переходу к максимальному значению (если последовательность создавалась с ключевым словом CYCLE). По умолчанию минимальное значение равно 1 для возрастающих последовательностей или -2 147 483 647 для убывающих последовательностей.
MAXVALUE максимум. Максимальное допустимое значение последовательности. Попытка увеличить текущее значение выше заданного максимума приведет к ошибке или циклическому переходу к минимальному значению. По умолчанию максимальное значение равно 2 147 483 647 для возрастающих последовательностей или -1 для убывающих последовательностей.
START начало. Начальное значение последовательности, которым является любое целое число в интервале между минимальным и максимальным значениями. По умолчанию последовательность начинается с нижнего порога для возрастающих последовательностей или с верхнего порога для убывающих последовательностей.
CACHE кэш. Возможность предварительного вычисления и хранения значений последовательности в памяти. Кэширование ускоряет доступ к часто используемым последовательностям. Минимальное значение, заданное по умолчанию, равно 1; увеличение объема кэша приводит к увеличению числа кэшируемых значений.
CYCLE. При достижении нижнего или верхнего порога последовательность продолжает генерировать новые значения. В этом случае она переходит к минимальному значению (для возрастающих последовательностей) или к максимальному значению (для убывающих последовательностей).
min – 1 -> max
max + 1 -> min
Операции с последовательностями
nextval (<последовательность>). Изменяет текущее значение заданной последовательности и возвращает получившуюся величину;
currval (<последовательность>). Возвращает текущее значение последовательности, не меняя его;
setval (<последовательность>,<значение>). Присваивает текущее значение последовательности.