ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 29.10.2023
Просмотров: 309
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Представление является «виртуальной таблицей», так как эта таблица в базе данных реально не существует. Строки и столбцы данных, которые пользователь видит с помощью представления, являются результатом запроса, лежащего в его основе. При создании представление получает имя, и его определение сохраняется в базе данных.
Преимущество: можно один раз отобрать записи и использовать их в дальнейшем без повторного выполнения оператора SELECT. Это выгодно при частом использовании одинаковых запросов, особенно тех, в которых реализованы сложные условия отбора.
Также для показа пользователю нужные ему данные из конкретной таблицы. Пользователь может не знать, что работает с представлением. Он может обращаться с этим представлением как со стандартной таблицей.
CREATE [OR REPLACE] [temp] VIEW Имя Представления AS SELECT …;
Temp – указывает на временность объекта базы данных, удалится поле завершения сеанса
DROP VIEW [IF EXISTS] name_pred// name_pred1, name_pred2, … [ CASCADE | RESTRICT]
ALTER VIEW [ IF EXISTS ] name_pred
ALTER [ COLUMN ] имя_колонки SET DEFAULT выражение
ALTER [ COLUMN ] имя_колонки DROP DEFAULT
RENAME TO новое_имя
Недостатки: Производительность. Представление создает лишь видимость существования соответствующей таблицы, и СУБД приходится преобразовывать запрос к представлению в запрос к исходным таблицам. Если представление отображает многотабличный запрос, то простой запрос к представлению становится сложным объединением и на его выполнение может потребоваться много времени;
Ограничения на обновление. Когда пользователь пытается обновить строки представления, СУБД должна установить их соответствие строкам исходных таблиц, а также обновить последние. Это возможно только для простых представлений (созданных на основе одной таблицы); сложные представления обновлять нельзя, они доступны только для выборки.
Горизонтальное представление
Этот вид представления широко применяется для уменьшения объема реальных таблиц в обработке и ограничения доступа пользователей к закрытой для них информации.
Вертикальное представление
Этот вид представления практически соответствует выполнению операции проектирования некоторого отношения на ряд столбцов. Он используется в основном для скрытия информации, которая не должна быть доступна в конкретной внешней модели.
-
Материализованные представления
CREATE MATERIALIZED VIEW это гибрид таблицы и представления, то есть она реально хранит данные полученные в результате запроса
Чтобы создать копию таблицы с ее полями и без данных то CREATE MATERIALIZED VIEW name AS SELECT … WITH NO DATA, будет пустая таблица и ее невозможно вывести SELECT, так как запрос не выполнится если данных в таблице нет.
Чтобы обновить данные на данные таблиц, на основе которых работает представление, этого представления используем REFRESH MATERIALIZED VIEW name
Используется MATERIALIZED VIEW для представления, которое имеет в основе себя очень сложный запрос и данные в таблицах меняются редко
-
Объекты БД
Таблицы (TABLE) - структура для хранения информации в форме строк (записей), упорядоченных в форме полей (колонок, столбцов). Идентификация строк производится по уникальному ключу. Таблица является основным объектом хранения данных и при обработке данных.
Представления (VIEW) — это виртуальные таблицы, содержимое которых определяется запросом. Подобно реальным таблицам, представления содержат именованные столбцы и строки с данными. Для конечных пользователей представление выглядит как таблица, но в действительности оно не содержит данных, а лишь представляет данные, расположенные в одной или нескольких таблицах. Информация, которую видит пользователь через представление, не сохраняется в базе данных как самостоятельный объект.
Пользовательские функции (UDF) — это конструкции, содержащие часто исполняемый код, который определяет пользователь. Функция выполняет какие-либо действия над данными и возвращает некоторое значение.
Индексы (INDEX) - структура, связанная с таблицей или представлением и предназначенная для ускорения поиска и сортировки информации в них. Индекс определяется для одного или нескольких столбцов, называемых индексированными столбцами. Он содержит отсортированные значения индексированного столбца или столбцов со ссылками на соответствующую строку исходной таблицы или представления. Повышение производительности достигается за счет сортировки данных. Использование индексов может существенно повысить производительность поиска, однако для хранения индексов необходимо дополнительное пространство в базе данных.
Последовательности (Sequences)
— это генератор последовательности на основе типа данных с минимальным и максимальным значением и шагом. Эта операция включает создание и инициализацию специальной таблицы имя, содержащей одну строку.
Пользовательские типы данных (DOMAIN) — это типы данных, которые создает пользователь на основе системных типов данных, когда в нескольких таблицах необходимо хранить однотипные значения
Триггеры (Trigger) — это объект базы данных, который представляет собой специальную хранимую процедуру. Эта процедура запускается автоматически, когда происходит связанное с триггером событие (при добавлении, изменении или удалении строки в таблице).
-
Операции над множествами SQL
Периодически требуется к результату выполнения запроса добавить или исключить строки, полученные другим запросом. Для решения подобных задач в стандарте SQL предусмотрены операции над множествами:
UNION - объединение строк (дополнение результатов первого запроса результатами второго запроса);
INTERSECT - пересечение строк (остаются строки, присутствующие в результатах обоих запросов);
EXCEPT - исключение строк (из строк первого запроса исключаются строки второго запроса).
Все запросы должны удовлетворять следующим правилам:
количество полей во всех запросах должно совпадать;
типы данных соответствующих полей должны совпадать.
Название поля в результате выборки берется из первого запроса.
-
Триггеры
Триггеры (Trigger) — это объект базы данных, который представляет собой специальную хранимую процедуру. Эта процедура запускается автоматически, когда происходит связанное с триггером событие (при добавлении, изменении или удалении строки в таблице).
Триггеры выполняют проверка логической целостности данных, заносимых в базу, предварительное форматирование данных перед вставкой или модификация других таблиц. Традиционно такие операции выполнялись на программном уровне.
Триггеры срабатывают при выполнении с таблицей команды INSERT, UPDATE или DELETE.
CREATE [ CONSTRAINT ] TRIGGER имя { BEFORE | AFTER | INSTEAD OF } { событие [ OR ... ] }
ON имя_таблицы
[ FROM ссылающаяся_таблица ]
[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
[ FOR EACH ROW (вызов триггера для каждой строки) | FOR EACH STATEMENT (вызов триггера один раз для конкретной операции) ]
[ WHEN ( условие ) ]
EXECUTE PROCEDURE имя_функции ( аргументы )