Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

КРАТКАЯ ТЕОРИЯ. Последовательность – объект базы данных, посредством которого пользователи могут генерировать уникальные целые значения





Последовательность – объект базы данных, посредством которого пользователи могут генерировать уникальные целые значения. Как правило, последовательности используют для автоматической генерации уникальных ключей.

Значения для каждой последовательности автоматически генерируются специальными подпрограммами ORACLE и, следовательно, позволяют избежать неизбежных потерь в производительности в результате реализации последовательностей на уровне приложений. Например, обычным способом такой реализации является блокирование таблицы, хранящей номер, в каждой транзакции в момент приращения последовательности. В результате только один номер последовательности может быть сгенерирован в каждый момент времени. Последовательности же ORACLE позволяют одновременное генерирование нескольких номеров последовательности, гарантируя при этом, что каждый номер последовательности будет уникальным.

Когда генерируются номера последовательности, осуществляется приращение этой последовательности независимо от того, завершается эта транзакция или отменяется. Если два пользователя параллельно осуществляют приращение одной и той же последовательности, номера последовательности, видимые каждым из этих пользователей, могут иметь пропуски значений, поскольку эти значения были сгенерированы другим пользователем. Одному пользователю никогда не может встретиться номер последовательности, сгенерированный другим пользователем. Если значение последовательности сгенерировано каким-либо пользователем, этот пользователь может использовать это значение независимо от того, осуществляется ли приращение последовательности другими пользователями.

Так как номера последовательности генерируются независимо от таблиц, одна и та же последовательность может использоваться для одной или более таблиц. Возможно, что отдельные номера последовательности будут вообще пропущены из-за того, что они могли быть сгенерированы и использованы в транзакции, которая, в конечном счете, была отменена.

Если в операторе CREATE SEQUENCE кроме имени не указать ни одного предложения, то по умолчанию создается возрастающая последовательность, которая начинается с 1, имеет шаг 1 и не имеет верхнего предела. Если указать только предложение INCREMENT BY -1, то создается убывающая последовательность, которая начинается с -1 и не имеет нижнего предела.

Можно создать последовательность так, чтобы приращение ее значений происходило одним из следующих способов:

- приращение значений последовательности продолжается неограниченно;

- приращение значений последовательности происходит до
определенного предела и затем прекращается;

- приращение значений последовательности происходит до
определенного предела и затем начинается заново.

Чтобы создать последовательность, приращение значений которой продолжается неограниченно, необходимо опустить параметр MAXVALUE или указать параметр NOMAXVALUE для возрастающей последовательности. Для убывающей последовательности опустить параметр MINVALUE или указать параметр NOMINVALUE.

Чтобы создать последовательность, приращение значений которой прекращается на определенном значении, необходимо указать значение для параметра MAXVALUE (если последовательность возрастающая) или значение для параметра MINVALUE (если последовательность убывающая). При этом необходимо указать также параметр NOCYCLE. Любая попытка сгенерировать номер последовательности, если последовательность уже достигла своего предела, приведет к ошибке.

Чтобы создать последовательность, приращение значений которой начинается заново после достижения определенного значения, необходимо указать значения для обоих параметров, MAXVALUE и MINVALUE, а также параметр CYCLE.

Значение параметра START WITH устанавливает начальное значение, генерируемое последовательностью, после того как ее создали. Следует обратить внимание, что это не обязательно именно то значение, с которого циклическая последовательность начинается заново после достижения своего максимального или минимального значения.

Количество кэшируемых значений для последовательности определяется значением параметра CACHE. Кэшированные последовательности обеспечивают быструю генерацию номеров последовательности. Кеш для данной последовательности заполняется при первом запросе номера этой последовательности. Кеш регенерируется после количества запросов, указанного в параметре CACHE. В случае сбоя системы все копированные номера последовательности, которые не были использованы в завершенных операторах языка манипулирования данными, теряются. Возможное количество потерянных значений равно величине параметра CACHE. По умолчанию ORACLE кэширует 20 номеров последовательности.

Триггер базы данных (database trigger) – это хранимый блок PL/SQL, который ассоциирован с таблицей. В триггере посредством PL/SQL описаны действия, которые необходимо выполнить при обработке операторов SQL (таких как Insert, Update, Delete и т.д.) для данной таблицы. Oracle автоматически выполняет триггер, во время обработки оператора SQL.







Дата добавления: 2014-11-10; просмотров: 555. Нарушение авторских прав; Мы поможем в написании вашей работы!




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Что происходит при встрече с близнецовым пламенем   Если встреча с родственной душой может произойти достаточно спокойно – то встреча с близнецовым пламенем всегда подобна вспышке...

Реостаты и резисторы силовой цепи. Реостаты и резисторы силовой цепи. Резисторы и реостаты предназначены для ограничения тока в электрических цепях. В зависимости от назначения различают пусковые...

Studopedia.info - Студопедия - 2014-2025 год . (0.014 сек.) русская версия | украинская версия