Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по БД.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
2.17 Mб
Скачать

1. Краткие теоретические сведения

1.1. Понятие «обзор»

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

Когда обзор определен, с ним можно работать как с обычной таблицей. Обзор может быть получен из одной или нескольких таблиц или других обзоров. Обзоры выглядят также как и обычные таблицы БД, но физически не хранятся в БД. В БД хранится определение обзора.

Создание обзора не создает копию данных, в то же время изменение данных через обзор изменяет данные в основных таблицах.

Обзор представляет собой виртуальную таблицу, которая создается на основе результатов выборки данных из базы командой SELECT. Он может быть создан:

- на основе подмножества столбцов отдельной таблицы;

- на основе подмножества строк отдельной таблицы;

- на основе комбинации подмножества строк и столбцов отдельной таблицы;

- на основе комбинации подмножества строк и столбцов объединения нескольких таблиц;

- на основе результатов работы хранимой процедуры.

1.2. Создание обзоров

Синтаксис создания обзора следующий:

CREATE VIEW <имя обзора> [(<столбец обзора1>, <столбец обзора2>, ….)]

AS <условие выборки SELECT> [WITH CHECK OPTION];

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

В табл. 14.1 приведены синтаксические конструкции команды CREATE VIEW.

1.3. Типы обзоров

Обзоры могут быть:

- обновляемыми (updatable);

- необновляемыми (read-only).

Для обновляемого обзора необходимо, чтобы:

- он представлял собой подмножество одной таблицы или обновляемого обзора;

- все столбцы таблицы, не вошедшие в обзор, допускали значение NULL;

- команда SELECT, на которой основан обзор, не содержала подзапросов, конструкций DISTINCT, HAVING, огрегирующих функций, присоединенных таблиц, пользовательских функций или хранимых процедур.

Т а б л и ц а 14.1

Конструкция

Описание

<имя обзора>

Имя обзора. Имя должно быть уникальным в перечне имен обзоров, таблиц и хранимых процедур

<столбец обзора 1>

Имя столбца обзора. Имя должно быть уникальным в перечне имен столбцов обзора

Имя обязательно, если обзор включает столбцы-выражения. Если имя не указано, используется имя соответствующего столбца таблицы SELECT. Имена столбцов обзора соответствуют столбцам выборки SELECT

Условие выборки

SELECT

Задает условия выборки данных посредством команды SELECT. Может использоваться полный синтаксис команды за исключением конструкции ORDER BY

WITH CHECK

OPTION

Предотвращает операции INSERT и UPDATE в обзоре, если они нарушают условие поиска в конструкции WHERE команды SELECT

Обзоры только для чтения также могут обновляться, но на основе использования триггеров. В этом случае все действия по обновлению данных в таблицах выполняются соответствующими триггерами обзора.

Для обеспечения возможности обновления данных (команды INSERT, UPDATE) пользователь должен получить соответствующие права. Для создания обновляемого обзора его создатель должен иметь все права на таблицы, используемые обзором.

Пример 1. Создать обзор для вывода списка всех студентов.

CREATE VIEW STUD_1 AS

SELECT * FROM STUDENT

WHERE univ_id NOT IN (1);

Пример 2. Обновить данные в обзоре.

UPDATE stud_1

SET surname = 'Дубков'

WHERE kurs = 4;