Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Представление или виртуальная таблица - это таблица, которой физически нет в БД, но которая существует в представлении пользователя о логической структуре БД. Т.е. это поименованный запрос на выборку данных из одной или нескольких таблиц, определение которых сохранено в словаре БД.
Оператор определения представления имеет следующий вид:
<создание представления>::= 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!