- •Глава I «Общие вопросы» Вопросы 1-6
- •История развития бд. Сравнить между собой этапы(файлы и файловые системы, бд на больших эвм, эпоха персональных компьютеров, распределенные базы данных)
- •История развития бд.
- •Файлы и файловые системы.
- •Базы данных на больших эвм.
- •Эпоха персональных компьютеров.
- •Распределенные базы данных.
- •Архитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi).
- •Описать процесс прохождения пользовательского запроса
- •Пользователи баз данных. Основные функции группы администратора бд
- •Пользователи баз данных.
- •Основные функции группы администратора базы данных.
- •Перечислить классы субд. Какие возможности обеспечивает использование профессиональных субд.
- •Этапы разработки аис.
- •Глава II «Архитектура бд, режимы работы» Вопросы 7-12
- •Режимы работы с базой данных.
- •Архитектура клиент-сервер: структура типового интерактивного приложения.
- •Модель fs.
- •Модель rda
- •Модель сервера баз данных
- •Модель сервера приложений
- •Глава III «Модели данных, язык описания данных, реляционная алгебра» Вопросы 13-19
- •Иерархическая модель данных. Язык описания данных иерархической модели. Внешние модели.
- •Иерархическая модель данных.
- •Язык описания данных иерархической модели.
- •Внешние модели.
- •Пример иерархической базы данных.
- •Язык манипулирования данными в иерархических базах данных. Операторы поиска данных. Операторы поиска данных с возможностью модификации. Операторы модификации данных.
- •Операторы поиска данных.
- •Операторы поиска данных с возможностью модификации.
- •Операторы модификации данных.
- •Обновить
- •Ввести новый экземпляр сегмента.
- •Сетевая модель данных. Язык описания данных в сетевой модели.
- •Сетевая модель данных.
- •15.2. Язык описания данных в сетевой модели.
- •Язык манипулирования данными в сетевой модели.
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции (объединение, пересечение, разность, конкатенация кортежей, произведение)
- •18.1. Теоретико-множественные операции реляционной алгебры.
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Специальные операции (выборка, проекция, соединение, деление).
- •Глава IV
- •Вопросы 20-27
- •Язык sql. История развития sql. Структура sql. Типы данных.
- •Язык sql. История развития sql.
- •Структура sql.
- •Типы данных.
- •Операторы описания данных (ddl).
- •Операторы манипулирования данными (dml)
- •Язык запросов dql. Оператор выбора select.
- •Предикаты раздела where
- •Null-значения. Трехзначная логика
- •Агрегатные функции в операторе выбора
- •Вложенные запросы.
- •Глава V «Проектирование бд» Вопросы 28-33
- •Проектирование реляционных бд на основе принципов нормализации:
- •Этапы жизненного цикла бд. Этапы проектирования бд
- •Системный анализ предметной области (два подхода к выбору состава и структуры предметной области)
- •Инфологическое моделирование. Er - модель (базовые понятия сущность, связь, типы связей: 1:1, 1:n, n:n, обязательная/необязательная).
- •Инфологическое моделирование.
- •Переход к реляционной модели данных (правила преобразования er-модели в реляционную).
- •Даталогическое проектирование. Перечень результирующих документов, корректная схема бд. Два пути проектирование схемы бд.
- •Глава VI «Нормальные формы» Вопросы 34-37
- •Последовательность нормальных форм. Их свойства. Первая нормальная форма (1нф), вторая нормальная форма (2нф),
- •Третья нормальная форма (3нф), нормальная форма Бойса-Кодда (бк нф),
- •Нф Бойса-Кодда.
- •Четвертая нормальная форма (4нф), пятая нормальная форма (5нф)
- •Глава VII «oracle (Теория)» Вопросы 38-42
- •Сурбд Oracle. Конфигурации Oracle. Типы пользователей. Основные обязанности dba.
- •Субд Oracle.
- •Конфигурации Oracle.
- •Типы пользователей.
- •Основные обязанности dba.
- •Архитектура Oracle (физический и логический уровень)
- •Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.
- •Онлайновые и офлайновые табличные пространства
- •Файлы данных
- •Сегменты, экстенты и блоки данных.
- •Сегменты.
- •Экстенты.
- •Блоки данных.
- •Экземпляр Oracle. Sga, pga
- •Процессы. 7 основных фоновых процессов Oracle
- •Пользовательские процессы
- •Процессы Oracle
- •Глава VIII «oracle (Практика)» Вопросы 43-49
- •Объекты бд Oracle. Создание таблиц. Типы данных
- •Объекты Oracle.
- •Создание таблиц.
- •Типы данных.
- •Субд Oracle. Создание индексов.
- •Субд Oracle. Создание представлений
- •Субд Oracle. Создание последовательностей
- •Субд Oracle. Определенные пользователем типы данных. Создание синонимов
- •Субд Oracle. Создание ограничений
- •Субд Oracle. Создание табличных пространств
- •Глава IX
- •Вопросы 50-58
- •Основные понятия и конструкции pl/sql. Архитектура pl/sql
- •Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения
- •Структура программы и переменные pl/sql
- •Pl/sql. Условные операторы if
- •Pl/sql. Циклы
- •Pl/sql. Курсоры. Курсорный цикл for.
- •Курсорный цикл for.
- •Pl/sql. Хранимые процедуры
- •Пример хранимой процедуры.
- •Pl/sql. Функции
- •Pl/sql. Триггеры
- •Пример триггера.
Субд Oracle. Создание последовательностей
Последовательности (Sequences) – объекты базы данных Oracle, которые используются для генерации целочисленных значений. Наиболее часто используются для генерации значений первичного ключа. Это бывает очень удобно, и снимает с разработчика необходимость реализовывать алгоритм для создания значений первичного ключа. Каждое новое значение в последовательности создается на основании правил, указанных при создании. Общий синтаксис создания:
CREATE SEQUENCE [schema].sequence_name [INCREMENT BY number] [START WITH number] [MAXVALUE number | NOMAXVALUE] [MINVALUE number | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE number | NOCACHE] [ORDER | NOORDER] ;
Пример:
CREATE SEQUENCE all-oracle.seq
INCREMENT BY 1
START WITH 1
MAXVALUE 99999
MINVALUE 1
NOCYCLE
Где:
sequence_name – имя последовательности
start_num - целочисленное значение с которого начинается отсчет. По умолчанию это 1
increment_num – шаг последовательности. По умолчанию, это 1. Абсолютное значение этого параметра должно быть меньше, чем разница между конечным и начальным значениями
maximum_num – максимальное значение последовательности; значение maximum_num должно быть больше или равно значению start_num, и значение maximum_num должно быть больше, чем значение minimum_num
NOMAXVALUE - устанавливает максимальное значение равным 1027 для возрастающей последовательности, или –1 для убывающей. NOMAXVALUE используется по умолчанию
minimum_num - минимальное значение последовательности; minimum_num должно быть меньше либо равно start_num, и minimum_num должно быть меньше, чем maximum_num.
NOMINVALUE – определяет минимальное значение равное 1 для возрастающей последовательности и -1026 для убывающей. NOMINVALUE используется по умолчанию.
CYCLE – подразумевает, что последовательность начинает генерировать значения по кругу, при достижении максимального или минимального значения. При обращении к последовательности, когда она достигла максимального значения, следующее сгенерированное значение будет минимальным значением последовательности. В ситуации с убывающей последовательностью, при достижении минимального значения, следующее сгенерированное будет максимальным.
NOCYCLE – указывает прекратить генерацию значений при достижении максимума или минимума последовательности. NOCYCLE используется по умолчанию.
cache_num – количество значений сохраняемых в памяти. По умолчанию это 20. Минимальное количество кэшированных значений – 2, максимальное значение высчитывается по формуле:
NOCACHE – отключает кэширование. Это не позволит базе данных выделить некоторое количество значений заблаговременно, что позволит избежать пробелов в последовательности, но увеличит затраты системных ресурсов. Пробелы могут возникнуть при остановке базы данных, когда кэшированные значения теряются. Если опции CACHE и NOCACHE не указываются, то по умолчанию кэшируется 20 значений.
ORDER – обеспечивает генерацию значений в порядке запросов. Как правило, ORDER используется в среде Real Application Clusters. NOORDER – не дает таких гарантий. По умолчанию используется NOORDER.
Пример 2:
Create Sequence CustID Increment by 1 start with 100:
Вспомним, что Метод NextVal выдает следующее значение в последовательности, а метод CurrVal выдает текущее значение в последовательности.
Вставим строку в таблицу CUSTOMER:
INSERT INTO CUSTOMER CustomerID, Name, Area_Code, Phorie_Nuniber)
VALUES (CustID.NextVal, 'Mary Jones', '350', '555-1234'):
Этот оператор создаст в таблице CUSTOMER строку, где столбцу CustomerID будет присвоено следующее значение в последовательности CustID. Выполнив этот оператор можно считать только что созданную строку с помощью метода CurrVaL:
SELECТ * FROM CUSTOMER WHERE CustomerID = CustID.CurrVal;
Здесь метод CustID.CurrVal возвращает текущее значение в последовательности, то есть только что использованное значение.
Использование последовательностей не гарантирует корректности значений суррогатных ключей (могут быть пропущенные или повторяющиеся значения).
