DDL и объекты схемы — Итоги
Объекты БД
- Некоторые объекты содержат данные, главные это таблицы и индексы.
- Программные объекты такие как хранимые процедуры и функции это исполняемый код
- Представления и синонимы это объекты которые предоставляют доступ к другим объектам
- Талблица это двумерная структура данных, хранящая строки с определёнными столбцами
- Таблица существует в схеме. Имя схема с именем таблицы организуют уникальный идентификатор
Типы данных
- Самые часто используемые типы данных это VARCHAR2, NUMBER и DATE
- Существует много других типов данных
Создание простой таблицы
- Таблицы могут создаваться из ничего или используя подзапрос
- После создания столбцы могут добавляться, изменяться и удаляться
- Определение столбца может включать значение по умолчанию
Создание и использование временных таблиц
- Строки во временной таблице доступны только для сессии которая их добавила
- DML надо временными таблицами не генерируют данных для отмены изменений
- Временные таблицы существуют только в PGA сессии или во временных сегментах
- Временная таблица может хранить данные всё время жизни сессии или только время действия транзакции, в зависимости от того как она была создана
Ограничения
- Ограничения могут определяться в момент создания таблицы и добавляться позже
- Ограничения могут определяться в строке определения столбца или после определения столбцов
- Ограничения табличного-уровня могут быть более гибко настраиваемы чем ограничения создаваемые в строке определения столбца
- Таблица может иметь только один первичный ключ но много ограничений уникальности
- Превичные ключ функционально равен ограничению уникальности вместе с ограничением обязательности
- Ограничение уникальности не предотвращает от возможности вставки нескольки строк со значением NULL
- Внешний ключ определяет отношения между таблицами
Индексы
- Индексы необходимы для работы ограничений уникальности и первичных ключей
- Значени NULL не влючается в B* Tree индекс, но включается в bitmap индекс
- B* Tree индексы подходят для столбцов с высокой мощностьб, битмап индексы – для столбцов с маленькой мощностью
- B* Tree индекс может быть уникальным или неуникальным, что определяет возможность хранить дубликаты в значении ключа
- Bitmap индексы могут быть составными, основанными на функции, и сортированными; B* Tree индексы в добавок к этим свойствам так же ещё могут быть уникальными, сжатыми и обратными
Представления
- Простые представления используют одну (базовую или детальную) таблицу и не используют ни функции ни аггрегацию
- Сложные представления основаны на команде SELECT вне зависимости от сложности запроса
- Представления это объекты схемы. Для использования представления из другой схемы, имя представления должно предваряться именем схемы
- К представлениям можно писать запросы как будто это таблицы
- Предстваления можно объединять с другими представлениями или таблицами, их можно аггрегивароть и в некоторых случаях использовать для DML команд
- Представления существуют только как конструкции в словаре данных. Когда вы выполняете запрос к представлению запрос-основа всегда выполняется
Синонимы
- Синонимы это псевдоним для представления или таблицы
- Частные синонимы это объекты схемы; общие синонимы существуют вне пользовательской схемы и могут использоваться без указания схемы в уникальном идентификаторе
- Синонимы используют тоже пространство имен что и представления и таблицы
Сиквенсы
- Сиквенсы генерируют уникльные значения – до тех пор пока MAXVALUE или MINVALUE и CYCLE не указаны
- Увеличение значения сиквенса не может подтверждаться или отменяться
- Любая сессия может увеличить значение сиквенса путём запроса следующего значения. Также возможно получить текущее (последнее использованное) значение для текущей сессии но не последнее сгенерированное значение.