- •Содержание
- •13.1. Механизм представления данных в реляционной модели.
- •13.2. Создание представления данных.
- •13.3. Способы формирования представлений данных.
- •13.3.1 Вертикальный срез таблицы.
- •13.3.2. Горизонтальный срез таблицы.
- •13.3.3. Вертикально-горизонтальный срез таблицы.
- •13.3.4. Подмножество строк и столбцов соединения разных таблиц.
- •13.4. Ограничения на использование представлений.
- •13.5. Обновление данных в представлениях.
- •13.6. Использование фразы with checк/option.
- •13.7. Преимущества и недостатки представлений.
- •Контрольные вопросы:
13.3. Способы формирования представлений данных.
Существуют, по крайней мере, четыре способа формирования представлений данных. Или другими словами представление данных для пользователя можно формировать как:
вертикальный срез таблицы;
горизонтальный срез таблицы;
вертикально-горизонтальный срез таблицы;
подмножество строк и столбцов соединения разных таблиц.
Одной из важнейших причин использования представлений является стремление к упрощению многотабличных запросов. После определения представления с соединением нескольких таблиц можно будет использовать простейшие однотабличные запросы к этому представлению вместо запросов с выполнением того же самого многотабличного соединения.
13.3.1 Вертикальный срез таблицы.
Представление данных формируется как вертикальный срез таблицы, когда оператор SELECT возвращает значения не всех столбцов таблицы, а ограничение на записи, которые войдут в представление данных не определено. Вертикальные представления обычно используются в тех случаях, когда сохраняемые в таблице данные обрабатываются различными пользователями или группами пользователей. С помощью вертикальных представлений в распоряжение пользователей каждого типа предоставляется виртуальная таблица, состоящая только из тех столбцов, которые им необходимы.
ПРИМЕР
Предоставить пользователям базы данных «БИБЛИОТЕКА» возможность просмотра следующих сведений о читателях: № читательского билета, фамилия, имя, отчество, место работы и должность.
CREATE VIEW ReadersView
AS
SELECT ReaderCardNumber, FamilyName, Name, Patronymic, Job, Post
FROM Readers
В результате получим виртуальную таблицу 13.1.
Таблица 13.1.
FamilyNamе |
Name |
Patronymic |
ReaderCardNumber |
Job |
Post |
Иванов |
Петр |
Иванович |
317 |
ДГУ, каф. ЭВТ |
Ассистент |
Федорец |
Ирина |
Олеговна |
28 |
ДГУ, АХЧ |
Вахтер |
Ильин |
Иван |
Петрович |
1345 |
ДГУ, каф. физики |
Доцент |
Суренко |
Дмитрий |
Павлович |
543 |
ДГУ, каф. геофизики |
Ст. преподаватель |
Коршунова |
Наталья |
Юрьевна |
128 |
ДГУ, каф. геоинформа-тики |
Ассистент |
Носенко |
Олег |
Владимирович |
5672 |
ДГУ, ИКК |
Инженер |
13.3.2. Горизонтальный срез таблицы.
Представление данных формируется как горизонтальный срез таблицы когда оператор SELECT возвращает значения из всех столбцов таблицы, но на записи, которые войдут в представление данных наложено ограничение.
ПРИМЕР
Предоставить пользователям базы данных «БИБЛИОТЕКА» сведения о книгах, изданных после 1984 года.
CREATE VIEW AllBookAfter1984
AS
SELECT *
FROM Books
WHERE IssueYear >= ’01.01.1984’
В результате получим виртуальную таблицу 13.2.
Таблица 13.2.
Code |
Name |
AuthorCode |
IssueYear |
Drawing |
UDK |
Cipher |
Note |
1 |
Автоматизация производственных процессов на обогатительной фабрике |
1 |
1985 |
«Недра» |
NULL |
622.7-52/Т |
Blob |
3 |
Асимтотические методы оптимального управления |
2 |
1987 |
«Автомат» |
NULL |
681.513.5:/А |
Blob |
5 |
Методы оптимизации стохастических систем |
5 |
1987 |
«Матстат» |
NULL |
681.513.5:/К |
BLOB |
6 |
Автоматизированные системы управления технологическим процессом обогащения руды |
3 |
1987 |
«Автомат» |
NULL |
622.7-52/П |
Blob |
