Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Представления. Виды представлений. Обновляемые представления. Примеры



Представление или виртуальная таблица - это таблица, которой физически нет в БД, но которая существует в представлении пользователя о логической структуре БД. Т.е. это поименованный запрос на выборку данных из одной или нескольких таблиц, определение которых сохранено в словаре БД.

Оператор определения представления имеет следующий вид:

<создание представления>::= CREATE VIEW <имя представления>

[ (<список столбцов>)] AS <SQL-запрос>

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

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

Виды представлений:

1. Горизонтальное (применяется для уменьшения объема реальных таблиц в обработке и уменьшения доступа пользователей);

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

Например, у нас есть таблица "Сотрудник" (EMPLOYEE) с полями "Табельный номер" (T_NUM), "ФИО" (NAME), "должность"(POSITION), "оклад"(SALARY), "надбав-ка"(PREMIUM), "отдел" (DEPARTMENT).

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

CREATE VIEW SAL_DEPT

AS

SELECT *

FROM EMPLOYEE

WHERE DEPARTMENT= "Отдел продаж"

2. Вертикальное;

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

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

CREATE VIEW TABEL

AS

SELECT T_NUM,NAME, POSITION, DEPARTMENT

FROM EMPLOYEE

3. Сгруппированное (создаются запросы с группировкой);

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

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

CREATE VIEW RATE

DEPARTMENT, COUNT(*), SUM(SALARY), SUM(PREMIUM), MAX(SALARY), MIN(SALARY),

AVERAGE (SALARY), MAX(PREMIUM), MIN(PREMIUM), AVERAGE (PREMIUM)

AS

SELECT DEPARTMENT, COUNT(*), SUM(SALARY), SUM(PREMIUM), MAX(SALARY),

MIN(SALARY), AVERAGE (SALARY), MAX(PREMIUM), MIN(PREMIUM),

AVERAGE (PREMIUM)

FROM EMPLOYEE

GROUP BY DEPARTMENT

4. Объединенные представления (виртуальные таблицы с соединениями. С такими таблицами используется опция проверки WITH CHECK OPTION. Любая вставка или обновление будет проверяться на соотв. опред. вирт. табл.)

Часто представления базируются на многотабличных запросах. Такое использование позволяет упростить разработку пользовательского интерфейса, сохранив при этом корректность схемы базы данных. Для примера снова обратимся к базе данных "Библиотека" и создадим представление, которое содержит список читателей-должников с указанием книг, которые у них на руках, и указанных в базе сроков сдачи этих книг. Такое представление может понадобиться для административного приложения, которое разрабатывается для директора библиотеки или его заместителя, они должны принимать административные меры для наказания нарушителей и возврата книг в библиотеку.

CREATE VIEW DEBTORS

ISBN,TITLE, NUM_READER,NAME,ADRES,HOME_PHON, WORK_PHON,DATA_OUT

AS

SELECT ISBN,TITLE,NUM_READER,NAME,ADRES,HOME_PHON, WORK_PHON,DATA_OUT

FROM BOOKS,EXEMPLAR,READERS

WHERE BOOKS.ISBN = EXEMPLAR.ISBN AND

EXEMPLAR.NUM_READER = READERS.NUM_READER AND

EXEMPLAR.PRESENT = FALSE AND

EXEMPLAR.DATA_OUT < GetDate()





Дата публикования: 2015-11-01; Прочитано: 605 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...