- •Содержание
- •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.3. Вертикально-горизонтальный срез таблицы.
Представление данных формируется как вертикально-горизонтальный срез таблицы когда оператор SELECT возвращает значения не из всех полей таблицы и на записи, которые войдут в представление данных, наложено ограничение.
ПРИМЕР
Предоставить пользователям базы данных «БИБЛИОТЕКА» сведения о книгах, изданных после 1984 года. В представление данных включить название книги, год, место издания и шифр.
CREATE VIEW BookAfter1984
AS
SELECT Name, IssueYaer, Drawing, Cipher
FROM Books
WHERE IssueYear >= ’01.01.1984’
В результате получим виртуальную таблицу 13.3.
Таблица 13.3.
Name |
IssueYear |
Drawing |
Cipher |
Автоматизация производственных процессов на обогатительной фабрике |
1985 |
«Недра» |
622.7-52/Т |
Асимптотические методы оптимального управления |
1987 |
«Автомат» |
681.513.5:/А |
Методы оптимизации стохастических систем |
1987 |
«Матстат» |
681.513.5:/К |
Автоматизированные системы управления технологическим процессом обогащения руды |
1987 |
«Автомат» |
622.7-52/П |
13.3.4. Подмножество строк и столбцов соединения разных таблиц.
Представление данных формируется как подмножество строк и столбцов, когда в операторе SELECT используется внутренние или внешние соединения таблиц.
ПРИМЕР
Предоставить пользователям базы данных «БИБЛИОТЕКА» информацию о том, кто и какие книги возвращал в библиотеку не вовремя. Представление данных должно содержать: номер читательского билета, фамилию и имя читателя, название, инвентарный номер и стоимость книги, дату выдачи, возврата и фактического возврата книги.
CREATE VIEW Debtors
(ReaderCardNumber, ReaderFamilyName, ReaderName, BookName,
BookInventoryNumber, BookCost, IssueDate, ReturnDate, FactReturnDate)
AS
SELECT R.ReaderCardNumber, R.FamilyName, R.Name,
B.Name, I.InventoryNumber, I.Cost,
G.IssueDate, G.ReturnDate, G.FactReturnDate
FROM Readers R, Books B, BookInventoryNumbers I, BookGiveOutRecord G
WHERE G.ReturnDate < G.FactReturnDate AND
G.ReaderCode = R.Code AND
G.InventoryCode = I.Code AND
I.BookCode = B.Code
В результате получим виртуальную таблицу 13.4.
Таблица 13.4.
ReaderCardNumber |
ReaderFamilyName |
ReaderName |
BookName |
BookInventoryNumber |
BookCost |
IssueDate |
ReturnDate |
FactReturnDate |
1345 |
Ильин |
Иван |
Синтез оптимальных автоматических систем |
4512890 |
12.99 |
02.09.2004 |
16.09.2004 |
11.12.2004 |
543 |
Суренко |
Дмитрий |
Автоматизированные системы управления технологическим процессом обогащения руды |
4632112 |
10.1 |
30.10.2004 |
13.11.2004 |
10.01.2005 |