- •Основные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Логическая и физическая независимость данных
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Модели «клиент-сервер» в технологи баз данных
- •Модель файлового сервера
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Модель сервера приложений
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •Нормальные формы и нормализация
- •Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных. Инфологическая модель данных «Сущность-связь»
- •Классификация сущностей
- •Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •Типы данных в субд oracle 9.2i
- •Структура языка sql
- •Оператор выбора select
- •Запросы с использованием единственной таблицы Выборка без использования параметра where
- •Выборка с использованием параметра where
- •Использование параметров group by и having
- •Запросы с использованием нескольких таблиц Запросы с использованием соединений
- •Последовательности
- •Создание и удаление последовательностей
- •Изменение последовательностей
- •.Использование последовательностей
- •Оператор ввода новых строк insert Вставка единственной записи в таблицу
- •Вставка множества записей
- •Оператор изменения значений полей update
- •Обновление единственной записи
- •Обновление множества записей
- •Обновление с подзапросом
- •Оператор удаления строк delete
- •Удаление единственной записи
- •Удаление множества записей
- •Удаление с вложенным подзапросом
- •Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления. Оператор create Создание таблицы
- •Создание первичного ключа
- •Создание уникального ключа
- •Создание домена
- •Создание внешнего ключа
- •Удаление ограничений целостности
- •Оператор drop
- •Представления
- •Создание и удаление представлений
- •Операции выборки из представлений
- •Обновляемые представления
- •Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •Объектные и системные привилегии
- •Операторы grant и revoke
- •Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •Операторы управления транзакциями
- •Журналы транзакций
- •Язык pl/sql, его структура, основные операторы.
- •Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
- •Процедуры, функции, пакеты.
- •Триггеры, их основные свойства и значение.
- •Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •Распределенные базы данных, фрагментация, тиражирование.
- •Средства защиты данных в субд.
- •Аутентификация/авторизация при помощи паролей.
- •Инкапсуляция передаваемой информации в специальных протоколах обмена.
- •Ограничение информационных потоков.
- •Классы безопасности
- •Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд. Промежуточное программное обеспечение (ппо) баз данных
- •Доступ к базам данных
- •Недостатки реляционных субд
- •Манифест систем объектно-ориентированных баз данных Обязательные свойства: золотые правила
- •Необязательные возможности Множественное наследование, проверка и вывод типов, распределенность, проектные транзакции (протяженные транзакции или вложенные транзакции), версии
- •Объектная модель данных
- •Объектно-ориентированные, объектно-реляционные бд, универсальные бд
- •Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •Роль grid-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Последовательности
Последовательность (sequence) – это объект базы данных, используемый для автоматической генерации последовательности целых чисел. Чаще всего полученные целые числа, составляющие последовательность, используют при добавлении новых строк таблиц и присвоения значений идентификаторам, являющихся первичными ключами.
Если базой данных одновременно пользуются множество пользователей, то следить за тем, какие значения уже были использованы для нумерации объектов, а какие еще нет, достаточно сложно. Частично эту проблему можно решить, выполняя запрос к базе данных, возвращающий максимальное значение существующих идентификаторов. Но при таком подходе могут возникнуть серьезные проблемы с обеспечением целостности базы данных, если предположить, что одновременно к базе данных могут получить доступ более одного пользователя, имеющих возможность добавлять объекты в одни и те же таблицы. Например, есть два пользователя, которые хотят добавить по одному объекту в какую-либо таблицу. Между выполнением запроса на определение значения максимального существующего идентификатора и запросом на добавление объекта может пройти какое-то время. Существует вероятность, что оба пользователя получат одинаковые результаты при выполнении первого запроса, поэтому второй запрос будет выполнен успешно только у одного из пользователей.
Описанной выше проблемы при использовании последовательностей не возникнет, поскольку каждый элемент последовательности доступен только одному пользователю.
Создание и удаление последовательностей
Последовательности создаются при помощи оператора CREATE SEQUENCE, имеющей следующий синтаксис:
CREATE SEQUENCE имя_последовательности
[START WITH начальное_значение]
[INCREMENT BY приращение]
[MAXVALUE максимальное_значение | NOMAXVALUE]
[MINVALUE минимальное_значение | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE размер_кэша | NOCACHE];
Все параметры последовательности имеют значения по умолчанию. Если не указывать ни один из перечисленных параметров, то последовательность начнется с 1, приращение будет равно 1, максимального и минимального значения не будет, последовательность не будет цикличной, и при генерации элементов не будет использоваться кэш. Например, следующая команда создает последовательность с параметрами по умолчанию, которую можно использовать для генерации номеров дилеров для столбца D_id таблицы DEALERS:
CREATE SEQUENCE Dealers_seq;
Последовательность может быть как возрастающей, так и убывающей, что задается положительным или отрицательным значением приращения. Если указано максимальное или минимальное значение последовательности, то по его достижении генерация новых элементов прекратится, либо начнется сначала, если был задан параметр CYCLE. В противном случае, при отсутствии параметра CYCLE, по достижении минимума или максимума последовательности СУБД будет генерировать сообщение об ошибке при попытке получение очередного ее элемента.
Опция CACHE команды CREATE SEQUENCE обеспечивает предварительную генерацию нескольких номеров последовательности и поддерживает их в памяти (кэширует), так что доступ к ним ускоряется. Когда использован последний из номеров в кэше, ORACLE считывает в кэш очередную группу номеров.
Несмотря на то, что последовательности жестко не связаны с таблицами, чаще всего для каждой таблицы, имеющей независимый идентификатор, создается отдельная последовательность. Если по смыслу необходимо, чтобы в двух или более таблицах были абсолютно уникальные идентификаторы, то возможно использование одной единственной последовательности.
Удаление последовательностей осуществляется с помощью команды DROP SEQUENCE. Например:
DROP SEQUENCE Dealers_seq;