- •Основные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Логическая и физическая независимость данных
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Модели «клиент-сервер» в технологи баз данных
- •Модель файлового сервера
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Модель сервера приложений
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •Нормальные формы и нормализация
- •Модель «объект-свойство-отношение», 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-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Изменение последовательностей
В любой момент можно поменять любой из параметров последовательности, за исключением параметра START WITH, при помощи команды ALTER SEQUENCE. Например:
ALTER SEQUENCE Dealers_seq
INCREMENT BY 10
MAXVALUE 10000
CYCLE
CACHE 20;
.Использование последовательностей
Обращение к последовательности осуществляется в предложениях SQL через методы NEXTVAL и CURRVAL; каждый новый номер данной последовательности генерируется обращением к методу NEXTVAL, тогда как текущий номер последовательности можно извлекать неоднократно путем обращения к методу CURRVAL.
Например, используя созданную ранее последовательность Dealers_seq, можно при добавлении строки в таблицу DEALERS задать номер для идентификатора D_id:
INSERT INTO Dealers(D_id, Name, Procent)
VALUES (Dealers_seq.NEXTVAL, ‘Иванов В. И.’, 10);
Использование метода CURRVAL последовательности возможно только внутри одной транзакции с методом NEXTVAL. Это правило обусловлено необходимостью обеспечения целостности базы данных. Действительно, если представить, что существует последовательность, разделяемая между несколькими пользователями, то использование метода CURRVAL не будет ничем отличаться от использования запроса на получение максимального идентификатора. По этой причине текущее значение последовательности для каждого пользователя, воспользовавшегося одной и той же последовательностью, будет разным.
Чаще всего метод CURRVAL используется тогда, когда необходимо внутри одной транзакции добавить связанную по полю идентификатора информацию и в главную таблицу, и в зависимую, например:
-- добавление строки в главную таблицу
INSERT INTO Dealers(D_id, Name, Procent)
VALUES (Dealers_seq.NEXTVAL, ‘Иванов В. И.’, 10);
-- добавление строки в подчиненную таблицу
INSERT INTO Managers(Man_id, D_id, Name)
VALUES
(Managers_seq.NEXTVAL, Dealers_seq.CURRVAL, ‘Петров И.А.');
Методы последовательностей NEXTVAL и CURRVAL могут использоваться в следующих местах:
в фразе VALUES предложения INSERT;
в списке SELECT предложения SELECT;
в фразе SET предложения UPDATE.
Методы последовательностей NEXTVAL и CURRVAL не могут использоваться в следующих местах:
в подзапросе;
в запросе, определяющем представление;
в предложении SELECT с оператором DISTINCT;
в предложении SELECT с фразой GROUP BY или ORDER BY;
в предложении SELECT, скомбинированном с другим предложением SELECT одним из операторов множеств UNION, INTERSECT или MINUS;
в фразе WHERE предложения SELECT;
в выражении DEFAULT для столбца в предложении CREATE TABLE или ALTER TABLE;
в условии ограничения CHECK.
Оператор ввода новых строк insert Вставка единственной записи в таблицу
Любая новая информация попадает в базу данных посредством использования оператора INSERT. Для добавления информации о каждом новом объекте используется один оператор INSERT, имеющий следующий синтаксис:
INSERT INTO имя_таблицы[(список_атрибутов)]
VALUES (список_значений);
Указание списка атрибутов является необязательным, но только в том случае, если список значений будет содержать значения для абсолютно всех атрибутов таблицы, и если указаны эти значения будут в порядке, соответствующему порядку указания атрибутов при создании таблицы. В общем случае допускается неполное указание атрибутов в произвольном порядке, но среди этих атрибутов обязательно должны указываться те, которые имеют опцию NOT NULL и не имеют значения по умолчанию. Если при добавлении строки какой-то атрибут не был указан в списке атрибутов, то для СУБД сначала попытается присвоить ему значение по умолчанию, если оно было указано для данного столбца при создании таблицы. Если значения по умолчанию нет, то СУБД попытается указать для данного атрибута значение NULL, если это не противоречит созданным ограничениям целостности. В противном случае оператор INSERT будет завершен с ошибкой. Ниже представлены примеры выполнения оператора INSERT:
-- вставка строки в таблицу DEALERS с указанием всех
-- атрибутов:
INSERT INTO Dealers VALUES(1, ‘Иванов А.И.’, 3, null);
-- вставка строки в таблицу DEALERS с указанием некоторых
-- атрибутов в произвольном порядке
INSERT INTO Dealers(name, d_id, procent)
VALUES(‘Иванов А.И.’, 1, 3);