Основные объекты базы данных (лекция 8)

Содержание

Слайд 2

Основные объекты базы данных Пользователи и схемы Привилегии и роли Таблицы,

Основные объекты базы данных

Пользователи и схемы
Привилегии и роли
Таблицы, столбцы, ограничения и

типы данных (в том числе абстрактные типы данных)
Последовательности
Кластеры и хэш-кластеры
Индексы
Синонимы
Представления
Моментальные снимки и материализованные представления
Связи баз данных
Секции
Триггеры
Процедуры, функции, пакеты
Слайд 3

Пользователи и схемы Учетная запись пользователя не является физической структурой Пользователям

Пользователи и схемы

Учетная запись пользователя не является физической структурой
Пользователям принадлежат объекты
Схема

– набор объектов, принадлежащий учетной записи пользователя
Объекты создаются с правами учетных записей пользователей
Учетные записи пользователей можно связать с учетными записями в ОС
Двухкомпонентные имена – имя схемы.имя объекта
Слайд 4

Таблицы Таблица – основная структура сохранения информации в БД Типы таблиц:

Таблицы

Таблица – основная структура сохранения информации в БД
Типы таблиц:
Традиционные таблицы (heap

organized table)
Индекс-таблицы (index organized table)
Кластеризованные индекс-таблицы (index clustered table)
Кластеризованные хэш-таблицы (hash clustered table)
Отсортированные кластеризованные хэш-таблицы (sorted hash clustered table)
Вложенные таблицы (nested table)
Временные таблицы (temporary table)
Объектные таблицы
Внешние таблицы
Слайд 5

Таблицы Может иметь до 1000 столбцов ( Может иметь неограниченное число

Таблицы

Может иметь до 1000 столбцов (<254)
Может иметь неограниченное число строк
Может иметь

неограниченное число индексов
Нет ограничения на число таблиц
Слайд 6

Таблицы

Таблицы

Слайд 7

Параметры

Параметры

Слайд 8

Параметры PCTFREE и PCTUSED Параметр PCTFREE – процент памяти блока, резервируемой

Параметры PCTFREE и PCTUSED

Параметр PCTFREE – процент памяти блока, резервируемой

для возможных обновлений строк, уже содержащихся в блоке
Параметр PCTUSED – процент занятой части памяти блока
Слайд 9

Управление параметрами заполнения блока Automatic segment space management - только PCTFREE

Управление параметрами заполнения блока

Automatic segment space management - только PCTFREE
Manual segment

space management - PCTUSED, PCTTHRESHOLD, FREELISTS и др.
Слайд 10

Таблицы Типы данных: CHAR / NCHAR VARCHAR2 / NVARCHAR2 DATE INTERVAL

Таблицы

Типы данных:
CHAR / NCHAR
VARCHAR2 / NVARCHAR2
DATE
INTERVAL DAY TO SECOND / INTERVAL

YEAR TO MONTH TIMESTAMP
TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME
NUMBER (A,B)
LONG RAW/ LONG / RAW
BLOB / CLOB / NCLOB
ROWID / UROWID
Слайд 11

Типы данных ORACLE - символьные

Типы данных ORACLE - символьные

Слайд 12

Типы данных ORACLE – символьные

Типы данных ORACLE – символьные

Слайд 13

Типы данных ORACLE – дата/время

Типы данных ORACLE – дата/время

Слайд 14

Типы данных ORACLE – числовые

Типы данных ORACLE – числовые

Слайд 15

Таблицы ROWID – 16-тиричный тип для уникального определения любой строки любой

Таблицы

ROWID – 16-тиричный тип для уникального определения любой строки любой таблицы

в БД
Длина – 18 символов, которая делится на 4 элемента (6 + 3 + 6 + 3):
OOOOOO – уникальный номер объекта в БД, которому принадлежит строка;
FFF – уникальный номер файла данных БД, где хранится строка;
BBBBBB –номер блока данных, который хранит строку, уникален на уровне файла данных БД;
RRR – адрес строки в блоке
UROWID – специальный 16-тиричный тип данных для адресации строк в таблицах, организованных по индексу
Слайд 16

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

Последовательности

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

Слайд 17

Последовательности Привилегия CREATE SEQUENCE

Последовательности

Привилегия CREATE SEQUENCE

Слайд 18

Последовательности

Последовательности

Слайд 19

Последовательности Представления словаря: SYS.DBA_SEQUENCES SYS.ALL_SEQUENCES SYS.USER_SEQUENCES

Последовательности

Представления словаря:
SYS.DBA_SEQUENCES
SYS.ALL_SEQUENCES
SYS.USER_SEQUENCES

Слайд 20

Кластеры Таблицы, с которыми часто работают совместно, можно физически хранить совместно.

Кластеры

Таблицы, с которыми часто работают совместно, можно физически хранить совместно.
Для

этого создается кластер, который будет их содержать
Строки из отдельных таблиц сохраняются в одних и тех же блоках, поэтому объединяющие запросы выполняются быстрее
Уменьшается количество операций ввода-вывода
Производительность операций вставки, обновления и удаления может быть ниже, чем для обычных таблиц
Связанные столбцы называются кластерным ключом
Слайд 21

Хэш-кластеры Хэш-кластеры используют функции хэширования кластерного ключа строки для определения физической

Хэш-кластеры

Хэш-кластеры используют функции хэширования кластерного ключа строки для определения физической локализации

места, где строку следует хранить
Наибольшие преимущества – в запросах, использующих операции равенства:
select Name from STUDENT where Id = 999;
Слайд 22

Кластеры Кластер – объект БД, который хранит значения общих столбцов нескольких

Кластеры

Кластер – объект БД, который хранит значения общих столбцов нескольких таблиц
Создание

CREATE CLUSTER
Привилегия CREATE CLUSTER
Слайд 23

Кластеры

Кластеры

Слайд 24

Кластеры

Кластеры

Слайд 25

Кластеры

Кластеры

Слайд 26

Индексы Индекс – структура базы данных, используемая сервером для быстрого поиска

Индексы

Индекс – структура базы данных, используемая сервером для быстрого поиска строки

в таблице
Типы индексов:
Табличный (B*Tree) индекс
Битовый индекс
Функциональный индекс
Кластерный индекс
Слайд 27

Индексы Плотность запроса – количество возвращаемых строк запроса Селективность запроса –

Индексы

Плотность запроса – количество возвращаемых строк запроса
Селективность запроса – количество возвращаемых

значений ключа (% разных ключей от общего количества)
Слайд 28

Индексы Табличный индекс (B*Tree) структурирован в виде сбалансированного дерева Листовой блок

Индексы

Табличный индекс (B*Tree) структурирован в виде сбалансированного дерева
Листовой блок содержит индексированные

значения столбца и соответствующий ему идентификатор строки (RowId)
Предназначен для индексирования уникальных столбцов или столбцов с высокой селективностью
Слайд 29

Индексы Битовый индекс создает битовые карты для каждого возможного значения столбца,

Индексы

Битовый индекс создает битовые карты для каждого возможного значения столбца, где

каждому биту соответствует строка, а значение бита 1 (0) означает, что соответствующая строка содержит (не содержит) индексируемое значение
Предназначен для индексирования столбцов с низкой селективностью
Не подходит для таблиц с частым обновлением
Хорошо подходят для хранилищ данных
Слайд 30

Индексы Функциональный индекс – предварительно вычисляют значения функции по заданному столбцу

Индексы

Функциональный индекс – предварительно вычисляют значения функции по заданному столбцу и

сохраняют результат в индексе
LOWER(NAME) / UPPER (NAME)
Слайд 31

Индексы

Индексы

Слайд 32

Синонимы Синоним – способ обращаться к объекту базы данных без указания

Синонимы

Синоним – способ обращаться к объекту базы данных без указания обязательной

полной идентификации объекта (хост – экземпляр – владелец – объект).
Частный синоним принадлежит пользователю, который его создал.
Публичный синоним используется совместно всеми пользователями базы данных.
Слайд 33

Синонимы Привилегия – CREATE (PUBLIC) SYNONYM Создание – CREATE (PUBLIC) SYNONYM

Синонимы

Привилегия – CREATE (PUBLIC) SYNONYM
Создание – CREATE (PUBLIC) SYNONYM
Допустимость синонима не

проверяется сервером при создании!
Представление словаря dba.synonyms
Слайд 34

Синонимы Может указывать на: Таблицы, Процедуры, Функции, Последовательности, Представления Пакеты Объекты

Синонимы

Может указывать на:
Таблицы,
Процедуры,
Функции,
Последовательности,
Представления
Пакеты
Объекты в локальной или удаленной базе

данных
Слайд 35

Синонимы

Синонимы

Слайд 36

Представления Представление – хранимый запрос Можно обращаться, как к обычной таблице

Представления

Представление – хранимый запрос
Можно обращаться, как к обычной таблице
Данные хранятся в

таблице
Добавляют уровень защиты данных
Скрывают сложность данных
Скрывают имена столбцов таблиц
Слайд 37

Представления Привилегия – CREATE VIEW Создание – CREATE (OR REPLACE) VIEW

Представления

Привилегия – CREATE VIEW
Создание – CREATE (OR REPLACE) VIEW
FORCE – создает

представление, независимо от того, существуют ли таблицы и есть ли права
NOFORCE – по умолчанию
WITH CHECK OPTION – указывает, что будут вставлены или изменены строки, которые будут выбираться через это представление
READ ONLY
Слайд 38

Представления

Представления

Слайд 39

Представления

Представления

Слайд 40

Материализованные представления Привилегия – CREATE MATERIALIZED VIEW Создание – CREATE MATERIALIZED

Материализованные представления

Привилегия – CREATE MATERIALIZED VIEW
Создание – CREATE MATERIALIZED VIEW
BUILD IMMEDIATE

– создает представление в момент выполнения оператора
START WITH – показывает, когда выполнится в первый раз (если не был построен сразу)
NEXT– показывает, когда выполнится в следующий раз
Далее – в разницу времени между START WITH и NEXT
Слайд 41

Материализованные представления

Материализованные представления

Слайд 42

Материализованные представления

Материализованные представления

Слайд 43

Временные таблицы Временные таблицы – механизм хранения данных в БД Состоит

Временные таблицы

Временные таблицы – механизм хранения данных в БД
Состоит из столбцов

и строк, как и обычная таблица
Слайд 44

Временные таблицы Временные таблицы – глобальны Привилегии для создания временной таблицы

Временные таблицы

Временные таблицы – глобальны
Привилегии для создания временной таблицы CREATE TABLE
Можно

разместить временную таблицу в заданном табличном пространстве.
Временные таблицы – это шаблон, хранящийся в словаре базы данных, для нее выделяется временный сегмент в (по умолчанию) TEMPORARY-табличном пространстве и для каждого пользователя свой.
Каждый пользователь видит только свои данные (свой сегмент данных).
Слайд 45

Временные таблицы Статичны: временные таблицы создаются (CREATE) один раз и существуют,

Временные таблицы

Статичны: временные таблицы создаются (CREATE) один раз и существуют, пока

их не удалят (DROP).
DROP не получится, если таблица в этот момент используется другим пользователем.
Слайд 46

Временные таблицы Временные таблицы бывают: ON COMMIT PRESERVE ROWS – на

Временные таблицы

Временные таблицы бывают:
ON COMMIT PRESERVE ROWS – на время

сеанса, данные существуют только на время сеанса, возможны все DML-операторы, TCL-операторы
ON COMMIT DELETE ROWS – на время транзакции, данные существуют только на время транзакции, возможны все DML-операторы, после выполнения COMMIT или ROLLBACK таблица становится пустой
В начале сеанса временная таблица всегда пуста
Слайд 47

Временные таблицы Для временных таблиц можно создавать триггеры Для временных таблиц

Временные таблицы

Для временных таблиц можно создавать триггеры
Для временных таблиц можно указать

констрейны (ограничения)
Для временных таблиц можно создавать индексы
Слайд 48

Временные таблицы Не могут быть индексно-организованными, нельзя секционировать, размещать в кластере.

Временные таблицы

Не могут быть индексно-организованными, нельзя секционировать, размещать в кластере.
Данные

повторного выполнения генерируются, но их количество пренебрежительно мало.
Слайд 49

Временные таблицы

Временные таблицы

Слайд 50

Временные таблицы

Временные таблицы

Слайд 51

Временные таблицы

Временные таблицы

Слайд 52

Временные таблицы

Временные таблицы

Слайд 53

Привилегии и роли GRANT / REVOKE Системные и объектные привилегии Нельзя выдавать в одном предложении

Привилегии и роли

GRANT / REVOKE
Системные и объектные привилегии
Нельзя выдавать в одном

предложении
Слайд 54

Системные привилегии WITH ADMIN OPTION – дают право пользователю также назначать/отбирать

Системные привилегии

WITH ADMIN OPTION – дают право пользователю также назначать/отбирать привилегии
ALTER
ANALYZE
AUDIT


BACKUP
CREATE
DROP
SELECT
ANY – для любого объекта
ALL – для всех объектов
Слайд 55

Объекты грантов для системных привилегий DATABASE USER PROFILE TABLESPACE ROLE TABLE INDEX TRIGGER PROCEDURE SEQUENCE VIEW

Объекты грантов для системных привилегий

DATABASE
USER
PROFILE
TABLESPACE
ROLE
TABLE
INDEX
TRIGGER
PROCEDURE
SEQUENCE
VIEW

Слайд 56

Объектные привилегии WITH GRANT OPTION – дают право пользователю также назначать/отбирать

Объектные привилегии

WITH GRANT OPTION – дают право пользователю также назначать/отбирать привилегии
ALTER
DELETE


EXECUTE
INSERT
UPDATE
SELECT
REFERENCES
Снимает привилегии тот, кто их назначил
Слайд 57

Объекты грантов для объектных привилегий TABLE VIEW SEQUENCE PROCEDURE

Объекты грантов для объектных привилегий

TABLE
VIEW
SEQUENCE
PROCEDURE

Слайд 58

Привилегии и роли CASCADE – каскадный отзыв REVOKE REFERENCES ON dept FROM skott CASCADE CONSTRAINTS;

Привилегии и роли

CASCADE – каскадный отзыв
REVOKE REFERENCES ON dept
FROM skott


CASCADE CONSTRAINTS;