🗊Презентация Реализация представлений. (Лекция 8)

Категория: Информатика
Нажмите для полного просмотра!
Реализация представлений. (Лекция 8), слайд №1Реализация представлений. (Лекция 8), слайд №2Реализация представлений. (Лекция 8), слайд №3Реализация представлений. (Лекция 8), слайд №4Реализация представлений. (Лекция 8), слайд №5Реализация представлений. (Лекция 8), слайд №6Реализация представлений. (Лекция 8), слайд №7Реализация представлений. (Лекция 8), слайд №8Реализация представлений. (Лекция 8), слайд №9Реализация представлений. (Лекция 8), слайд №10Реализация представлений. (Лекция 8), слайд №11Реализация представлений. (Лекция 8), слайд №12Реализация представлений. (Лекция 8), слайд №13Реализация представлений. (Лекция 8), слайд №14Реализация представлений. (Лекция 8), слайд №15Реализация представлений. (Лекция 8), слайд №16Реализация представлений. (Лекция 8), слайд №17Реализация представлений. (Лекция 8), слайд №18Реализация представлений. (Лекция 8), слайд №19Реализация представлений. (Лекция 8), слайд №20Реализация представлений. (Лекция 8), слайд №21Реализация представлений. (Лекция 8), слайд №22Реализация представлений. (Лекция 8), слайд №23Реализация представлений. (Лекция 8), слайд №24Реализация представлений. (Лекция 8), слайд №25Реализация представлений. (Лекция 8), слайд №26Реализация представлений. (Лекция 8), слайд №27Реализация представлений. (Лекция 8), слайд №28Реализация представлений. (Лекция 8), слайд №29Реализация представлений. (Лекция 8), слайд №30Реализация представлений. (Лекция 8), слайд №31Реализация представлений. (Лекция 8), слайд №32Реализация представлений. (Лекция 8), слайд №33Реализация представлений. (Лекция 8), слайд №34Реализация представлений. (Лекция 8), слайд №35Реализация представлений. (Лекция 8), слайд №36Реализация представлений. (Лекция 8), слайд №37Реализация представлений. (Лекция 8), слайд №38Реализация представлений. (Лекция 8), слайд №39Реализация представлений. (Лекция 8), слайд №40Реализация представлений. (Лекция 8), слайд №41Реализация представлений. (Лекция 8), слайд №42Реализация представлений. (Лекция 8), слайд №43Реализация представлений. (Лекция 8), слайд №44Реализация представлений. (Лекция 8), слайд №45Реализация представлений. (Лекция 8), слайд №46Реализация представлений. (Лекция 8), слайд №47Реализация представлений. (Лекция 8), слайд №48Реализация представлений. (Лекция 8), слайд №49Реализация представлений. (Лекция 8), слайд №50Реализация представлений. (Лекция 8), слайд №51Реализация представлений. (Лекция 8), слайд №52Реализация представлений. (Лекция 8), слайд №53Реализация представлений. (Лекция 8), слайд №54Реализация представлений. (Лекция 8), слайд №55Реализация представлений. (Лекция 8), слайд №56Реализация представлений. (Лекция 8), слайд №57Реализация представлений. (Лекция 8), слайд №58Реализация представлений. (Лекция 8), слайд №59Реализация представлений. (Лекция 8), слайд №60Реализация представлений. (Лекция 8), слайд №61Реализация представлений. (Лекция 8), слайд №62Реализация представлений. (Лекция 8), слайд №63Реализация представлений. (Лекция 8), слайд №64Реализация представлений. (Лекция 8), слайд №65Реализация представлений. (Лекция 8), слайд №66Реализация представлений. (Лекция 8), слайд №67Реализация представлений. (Лекция 8), слайд №68Реализация представлений. (Лекция 8), слайд №69Реализация представлений. (Лекция 8), слайд №70Реализация представлений. (Лекция 8), слайд №71Реализация представлений. (Лекция 8), слайд №72Реализация представлений. (Лекция 8), слайд №73Реализация представлений. (Лекция 8), слайд №74

Содержание

Вы можете ознакомиться и скачать презентацию на тему Реализация представлений. (Лекция 8). Доклад-сообщение содержит 74 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Представления.

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

Слайд 2





Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. 
Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. 
После этого происходит преобразование пользовательской команды в её эквивалент с учетом запроса. У пользователя возникает впечатление, что он работает с настоящей реально существующей таблицей.
Описание слайда:
Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. После этого происходит преобразование пользовательской команды в её эквивалент с учетом запроса. У пользователя возникает впечатление, что он работает с настоящей реально существующей таблицей.

Слайд 3





СУБД имеет две возможности реализации представления:
СУБД имеет две возможности реализации представления:
-   если определение представления простое, то система формирует каждую запись по мере необходимости;
-  если представление сложное, СУБД сначала выполняет материализацию  представления, т.е. сохраняет информацию, из  которой состоит представление во временной таблице. Затем система выполняет пользовательские команды и формирует её результаты, после временная таблица удаляется.
Описание слайда:
СУБД имеет две возможности реализации представления: СУБД имеет две возможности реализации представления: -   если определение представления простое, то система формирует каждую запись по мере необходимости; -  если представление сложное, СУБД сначала выполняет материализацию представления, т.е. сохраняет информацию, из которой состоит представление во временной таблице. Затем система выполняет пользовательские команды и формирует её результаты, после временная таблица удаляется.

Слайд 4





CREATE VIEW <Name of view > [(name of attributes),…]  AS  <SELECT …>;

Пример 12.1. Создать представление о студентах, получающих стипендию в размере 25.50.
 CREATE VIEW STIP25_50 
AS SELECT * FROM STUDENTS 
WHERE STIP=25.50;
Описание слайда:
CREATE VIEW <Name of view > [(name of attributes),…] AS <SELECT …>; Пример 12.1. Создать представление о студентах, получающих стипендию в размере 25.50. CREATE VIEW STIP25_50 AS SELECT * FROM STUDENTS WHERE STIP=25.50;

Слайд 5





Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: 
Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: 
SELECT * FROM STIP25_50;
будет получена таблица.
Описание слайда:
Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: SELECT * FROM STIP25_50; будет получена таблица.

Слайд 6


Реализация представлений. (Лекция 8), слайд №6
Описание слайда:

Слайд 7





При создании представлений можно часть информации скрыть.
Пример 12.2. Создать представление о студентах без указания стипендии.
CREATE VIEW STIPOFF AS SELECT SNUM, SFAM, SNAME, SFATH 
FROM STUDENTS;
Описание слайда:
При создании представлений можно часть информации скрыть. Пример 12.2. Создать представление о студентах без указания стипендии. CREATE VIEW STIPOFF AS SELECT SNUM, SFAM, SNAME, SFATH FROM STUDENTS;

Слайд 8





При выполнении запроса к ней, будет получена таблица :
При выполнении запроса к ней, будет получена таблица :
Описание слайда:
При выполнении запроса к ней, будет получена таблица : При выполнении запроса к ней, будет получена таблица :

Слайд 9





Представление теперь может изменяться также как и таблица, фактически же команда направлена к таблице STUDENTS.
Пример 12.3. Изменить у студента с номером студенческого билета 3415 имя.
UPDATE STIPOFF SET SNAME =’ Василий’ WHERE SNUM=3415;
UPDATE STUDENTS SET SNAME =’ Василий’ WHERE SNUM=3415;
Описание слайда:
Представление теперь может изменяться также как и таблица, фактически же команда направлена к таблице STUDENTS. Пример 12.3. Изменить у студента с номером студенческого билета 3415 имя. UPDATE STIPOFF SET SNAME =’ Василий’ WHERE SNUM=3415; UPDATE STUDENTS SET SNAME =’ Василий’ WHERE SNUM=3415;

Слайд 10





Но команда 
Но команда 
UPDATE STIPOFF SET STIP =100 WHERE SNUM=3415;
будет отвергнута, так как поле STIP в представлении STIPOFF отсутствует.
Описание слайда:
Но команда Но команда UPDATE STIPOFF SET STIP =100 WHERE SNUM=3415; будет отвергнута, так как поле STIP в представлении STIPOFF отсутствует.

Слайд 11





Существуют ограничения на модификацию представлений.
Чаще всего в представлении используются те же имена столбцов, что и в базовых таблицах. При использовании объединения может быть конфликт имен. Допустимо указание других имен в представлении в скобках после имени.
Пример 12.4.
CREATE VIEW STIPCOUNT(STIP, NUM) AS SELECT STIP, COUNT(*) FROM STUDENTS GROUP BY STIP;
Описание слайда:
Существуют ограничения на модификацию представлений. Чаще всего в представлении используются те же имена столбцов, что и в базовых таблицах. При использовании объединения может быть конфликт имен. Допустимо указание других имен в представлении в скобках после имени. Пример 12.4. CREATE VIEW STIPCOUNT(STIP, NUM) AS SELECT STIP, COUNT(*) FROM STUDENTS GROUP BY STIP;

Слайд 12





Сделаем запрос к представлению: показать все  данные о стипендиях, которые получают 2 и более человек.
Сделаем запрос к представлению: показать все  данные о стипендиях, которые получают 2 и более человек.
SELECT * FROM STIPCOUNT WHERE NUM>=2;
Но не допускается функция в предикате WHERE:
 SELECT  STIP, COUNT(*) FROM STUDENTS WHERE COUNT(*) >= 2 GROUP BY STIP; Правильная команда:
SELECT  STIP, COUNT(*) as NUM    FROM STUDENTS  GROUP BY STIP     HAVING COUNT(*)>=2;
Описание слайда:
Сделаем запрос к представлению: показать все данные о стипендиях, которые получают 2 и более человек. Сделаем запрос к представлению: показать все данные о стипендиях, которые получают 2 и более человек. SELECT * FROM STIPCOUNT WHERE NUM>=2; Но не допускается функция в предикате WHERE: SELECT STIP, COUNT(*) FROM STUDENTS WHERE COUNT(*) >= 2 GROUP BY STIP; Правильная команда: SELECT STIP, COUNT(*) as NUM FROM STUDENTS GROUP BY STIP HAVING COUNT(*)>=2;

Слайд 13


Реализация представлений. (Лекция 8), слайд №13
Описание слайда:

Слайд 14





Представления могут основываться на двух и более таблицах. 
Пример 12.5.Создать представление о студентах и их оценках.
CREATE VIEW STUDMARK AS SELECT C.UNUM, A.SFAM, B.PNAME, C.MARK
FROM STUDENTS A, PREDMET B, USP C WHERE A.SNUM=C.SNUM AND B.PNUM=C.PNUM;
Описание слайда:
Представления могут основываться на двух и более таблицах. Пример 12.5.Создать представление о студентах и их оценках. CREATE VIEW STUDMARK AS SELECT C.UNUM, A.SFAM, B.PNAME, C.MARK FROM STUDENTS A, PREDMET B, USP C WHERE A.SNUM=C.SNUM AND B.PNUM=C.PNUM;

Слайд 15





После этого легче ориентироваться в оценках:
После этого легче ориентироваться в оценках:
SELECT * FROM STUDMARK;
Описание слайда:
После этого легче ориентироваться в оценках: После этого легче ориентироваться в оценках: SELECT * FROM STUDMARK;

Слайд 16





Допускается соединение представления с базовыми таблицами:
Допускается соединение представления с базовыми таблицами:
SELECT  SFAM, PNAME, MARK, UDATE 
FROM STUDMARK A, USP B 
WHERE A.SFAM= ‘Поляков’
AND A.UNUM=B.UNUM;
Описание слайда:
Допускается соединение представления с базовыми таблицами: Допускается соединение представления с базовыми таблицами: SELECT SFAM, PNAME, MARK, UDATE FROM STUDMARK A, USP B WHERE A.SFAM= ‘Поляков’ AND A.UNUM=B.UNUM;

Слайд 17


Реализация представлений. (Лекция 8), слайд №17
Описание слайда:

Слайд 18





Представления допускают соотнесенные подзапросы. Пример12.6.Пусть в таблице USP
Описание слайда:
Представления допускают соотнесенные подзапросы. Пример12.6.Пусть в таблице USP

Слайд 19





Создадим представление об оценках превышающих среднюю.
Создадим представление об оценках превышающих среднюю.
1)CREATE VIEW AVGMARK AS SELECT * FROM USP A WHERE MARK>(SELECT  AVG(MARK) FROM USP B WHERE B.PNUM= A.PNUM);
2)SELECT * FROM AVGMARK;
Описание слайда:
Создадим представление об оценках превышающих среднюю. Создадим представление об оценках превышающих среднюю. 1)CREATE VIEW AVGMARK AS SELECT * FROM USP A WHERE MARK>(SELECT AVG(MARK) FROM USP B WHERE B.PNUM= A.PNUM); 2)SELECT * FROM AVGMARK;

Слайд 20


Реализация представлений. (Лекция 8), слайд №20
Описание слайда:

Слайд 21





Существуют ограничения на построения представлений:
Существуют ограничения на построения представлений:
1) в них не допускаются объединения UNION запросов;
2)  не допустимо упорядочение ORDER BY, так как в базовых таблицах записи не упорядочены.
Описание слайда:
Существуют ограничения на построения представлений: Существуют ограничения на построения представлений: 1) в них не допускаются объединения UNION запросов; 2)  не допустимо упорядочение ORDER BY, так как в базовых таблицах записи не упорядочены.

Слайд 22





Для удаления представлений используется команда
DROP VIEW <Name of view>;
Для удаления представления не требуется удалять все данные, потому что реально они в нем не содержатся. 
DROP VIEW AVGMARK;
Описание слайда:
Для удаления представлений используется команда DROP VIEW <Name of view>; Для удаления представления не требуется удалять все данные, потому что реально они в нем не содержатся. DROP VIEW AVGMARK;

Слайд 23





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

Слайд 24





Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым:
Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым:
1)   представление должно основываться только на одной таблице;
2)  оно должно содержать первичный ключ этой таблицы;
3)   представление  не должно иметь полей - агрегатных функций;
Описание слайда:
Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым: Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым: 1)   представление должно основываться только на одной таблице; 2)  оно должно содержать первичный ключ этой таблицы; 3)   представление  не должно иметь полей - агрегатных функций;

Слайд 25





4)  представление  не должно использовать DISTINCT;
4)  представление  не должно использовать DISTINCT;
5)  представление  не должно использовать GROUP BY, HAVING;
6)     представление  не должно использовать подзапросы;
7)     представление  не должно использовать константы, строки, выражения среди полей вывода;
8)   для команды INSERT оно может содержать любые поля базовой таблицы, для которой имеются ограничения NOT  NULL, если другое значение по умолчанию не определено.
Описание слайда:
4)  представление  не должно использовать DISTINCT; 4)  представление  не должно использовать DISTINCT; 5)  представление  не должно использовать GROUP BY, HAVING; 6)     представление  не должно использовать подзапросы; 7)     представление  не должно использовать константы, строки, выражения среди полей вывода; 8)   для команды INSERT оно может содержать любые поля базовой таблицы, для которой имеются ограничения NOT NULL, если другое значение по умолчанию не определено.

Слайд 26





Модификация представлений подобна фрагментации базовых таблиц.
Модификация представлений подобна фрагментации базовых таблиц.
Пример 12.7.
CREATE VIEW PRCOUNT (UDATE, COL) AS SELECT UDATE, COUNT(*) FROM USP GROUP BY UDATE;
Это представление не модифицируемо - 
GROUP BY.
Описание слайда:
Модификация представлений подобна фрагментации базовых таблиц. Модификация представлений подобна фрагментации базовых таблиц. Пример 12.7. CREATE VIEW PRCOUNT (UDATE, COL) AS SELECT UDATE, COUNT(*) FROM USP GROUP BY UDATE; Это представление не модифицируемо - GROUP BY.

Слайд 27





Пример 12.8.
Пример 12.8.
CREATE VIEW  MATEMUSP
 AS SELECT * FROM USP 
WHERE PNUM = 2003;
Это представление – модифицируемо.
Описание слайда:
Пример 12.8. Пример 12.8. CREATE VIEW MATEMUSP AS SELECT * FROM USP WHERE PNUM = 2003; Это представление – модифицируемо.

Слайд 28





Другой результат достигается на представлении:
Другой результат достигается на представлении:
1)CREATE VIEW   ONLY5
AS SELECT SNUM, MARK
FROM USP
WHERE MARK = 5;
2)INSERT INTO ONLY5 
VALUES (3415, 4);
Это допустимая команда, в таблицу эти значения будут вставлены, но на экране не появятся.
Описание слайда:
Другой результат достигается на представлении: Другой результат достигается на представлении: 1)CREATE VIEW ONLY5 AS SELECT SNUM, MARK FROM USP WHERE MARK = 5; 2)INSERT INTO ONLY5 VALUES (3415, 4); Это допустимая команда, в таблицу эти значения будут вставлены, но на экране не появятся.

Слайд 29





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

Слайд 30





Если его добавить к команде:
Если его добавить к команде:
CREATE VIEW   ONLY5
AS SELECT SNUM, MARK
FROM USP
WHERE MARK = 5
WITH CHECK OPTION;
То любое значение отличное от указанных будет отключено.
Описание слайда:
Если его добавить к команде: Если его добавить к команде: CREATE VIEW ONLY5 AS SELECT SNUM, MARK FROM USP WHERE MARK = 5 WITH CHECK OPTION; То любое значение отличное от указанных будет отключено.

Слайд 31





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

Слайд 32





CREATE VIEW DATEMARK 
CREATE VIEW DATEMARK 
AS SELECT SNUM, SFAM FROM STUDENTS WHERE SNUM IN ( SELECT SNUM FROM USP WHERE UDATE = 10.06.2002);
Это представление для чтения – имеется подзапрос.
Описание слайда:
CREATE VIEW DATEMARK CREATE VIEW DATEMARK AS SELECT SNUM, SFAM FROM STUDENTS WHERE SNUM IN ( SELECT SNUM FROM USP WHERE UDATE = 10.06.2002); Это представление для чтения – имеется подзапрос.

Слайд 33





Что будет если пользователь решит добавить запись:
Что будет если пользователь решит добавить запись:
INSERT INTO DATEMARK VALUES (3415,’Котенко’);
Часть данных будет заполнена как NULL.
Проблема не решится если применить 
WITH CHECK OPTION, так как  представление станет модифицируемым и удаляемым, но без вставки.
Описание слайда:
Что будет если пользователь решит добавить запись: Что будет если пользователь решит добавить запись: INSERT INTO DATEMARK VALUES (3415,’Котенко’); Часть данных будет заполнена как NULL. Проблема не решится если применить WITH CHECK OPTION, так как представление станет модифицируемым и удаляемым, но без вставки.

Слайд 34





Пример 12.9.
Пример 12.9.
CREATE VIEW STIPSTUD
AS SELECT SNUM, SFAM, STIP
FROM STUDENTS WHERE STIP>0
WITH CHECK OPTION;
То вставка будет не удачна.
INSERT INTO STIPSTUD 
VALUES (3417, Решетник,  0.00);
3)однако в NEW1 она возможна.
CREATE VIEW NEW1
AS SELECT * FROM STIPSTUD;
Описание слайда:
Пример 12.9. Пример 12.9. CREATE VIEW STIPSTUD AS SELECT SNUM, SFAM, STIP FROM STUDENTS WHERE STIP>0 WITH CHECK OPTION; То вставка будет не удачна. INSERT INTO STIPSTUD VALUES (3417, Решетник, 0.00); 3)однако в NEW1 она возможна. CREATE VIEW NEW1 AS SELECT * FROM STIPSTUD;

Слайд 35





Вставка выполнится.Это означает, что любое корректное представление модифицируемо. Даже если:
Вставка выполнится.Это означает, что любое корректное представление модифицируемо. Даже если:
CREATE VIEW NEW1
AS SELECT * FROM STIPSTUD
WITH CHECK OPTION;
Описание слайда:
Вставка выполнится.Это означает, что любое корректное представление модифицируемо. Даже если: Вставка выполнится.Это означает, что любое корректное представление модифицируемо. Даже если: CREATE VIEW NEW1 AS SELECT * FROM STIPSTUD WITH CHECK OPTION;

Слайд 36


Реализация представлений. (Лекция 8), слайд №36
Описание слайда:

Слайд 37


Реализация представлений. (Лекция 8), слайд №37
Описание слайда:

Слайд 38





Лекция № 11 Views – Представления 
Представления.
Представление VIEW – это именованная виртуальная таблица, содержание которой выбирается из других таблиц с помощью запросов. 
При изменении значений в таблицах автоматически меняются значения представления. 
Наличие имени у такой таблицы позволяет пользователю выполнять с ней операции аналогичные операциям с базовыми таблицами.
Описание слайда:
Лекция № 11 Views – Представления Представления. Представление VIEW – это именованная виртуальная таблица, содержание которой выбирается из других таблиц с помощью запросов. При изменении значений в таблицах автоматически меняются значения представления. Наличие имени у такой таблицы позволяет пользователю выполнять с ней операции аналогичные операциям с базовыми таблицами.

Слайд 39





Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. 
Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. 
После этого происходит преобразование пользовательской команды в её эквивалент с учетом запроса. У пользователя возникает впечатление, что он работает с настоящей реально существующей таблицей.
Описание слайда:
Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. Рассмотрим таблицы, относящиеся к базовым, т.е. таким, которые содержат данные и постоянно находятся на устройствах хранения информации. Представления по сравнению с ними являются более гибкими средствами. Когда СУБД отыскивает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. После этого происходит преобразование пользовательской команды в её эквивалент с учетом запроса. У пользователя возникает впечатление, что он работает с настоящей реально существующей таблицей.

Слайд 40





СУБД имеет две возможности реализации представления:
СУБД имеет две возможности реализации представления:
-   если определение представления простое, то система формирует каждую запись по мере необходимости;
-  если представление сложное, СУБД сначала выполняет материализацию  представления, т.е. сохраняет информацию, из  которой состоит представление во временной таблице. Затем система выполняет пользовательские команды и формирует её результаты, после временная таблица удаляется.
Описание слайда:
СУБД имеет две возможности реализации представления: СУБД имеет две возможности реализации представления: -   если определение представления простое, то система формирует каждую запись по мере необходимости; -  если представление сложное, СУБД сначала выполняет материализацию представления, т.е. сохраняет информацию, из которой состоит представление во временной таблице. Затем система выполняет пользовательские команды и формирует её результаты, после временная таблица удаляется.

Слайд 41





CREATE VIEW <Name of view > [(name of attributes),…]  AS  <SELECT …>;

Пример 12.1. Создать представление о студентах, получающих стипендию в размере 25.50.
 CREATE VIEW STIP25_50 
AS SELECT * FROM STUDENTS 
WHERE STIP=25.50;
Описание слайда:
CREATE VIEW <Name of view > [(name of attributes),…] AS <SELECT …>; Пример 12.1. Создать представление о студентах, получающих стипендию в размере 25.50. CREATE VIEW STIP25_50 AS SELECT * FROM STUDENTS WHERE STIP=25.50;

Слайд 42





Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: 
Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: 
SELECT * FROM STIP25_50;
будет получена таблица.
Описание слайда:
Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: Теперь в БД существует представление STIP25_50. Это такая же таблица, как и остальные. С ней можно выполнять запросы, изменения, вставки как с другими таблицами. При выполнении запроса к ней: SELECT * FROM STIP25_50; будет получена таблица.

Слайд 43


Реализация представлений. (Лекция 8), слайд №43
Описание слайда:

Слайд 44





При создании представлений можно часть информации скрыть.
Пример 12.2. Создать представление о студентах без указания стипендии.
CREATE VIEW STIPOFF AS SELECT SNUM, SFAM, SNAME, SFATH 
FROM STUDENTS;
Описание слайда:
При создании представлений можно часть информации скрыть. Пример 12.2. Создать представление о студентах без указания стипендии. CREATE VIEW STIPOFF AS SELECT SNUM, SFAM, SNAME, SFATH FROM STUDENTS;

Слайд 45





При выполнении запроса к ней, будет получена таблица :
При выполнении запроса к ней, будет получена таблица :
Описание слайда:
При выполнении запроса к ней, будет получена таблица : При выполнении запроса к ней, будет получена таблица :

Слайд 46





Представление теперь может изменяться также как и таблица, фактически же команда направлена к таблице STUDENTS.
Пример 12.3. Изменить у студента с номером студенческого билета 3415 имя.
UPDATE STIPOFF SET SNAME =’ Василий’ WHERE SNUM=3415;
UPDATE STUDENTS SET SNAME =’ Василий’ WHERE SNUM=3415;
Описание слайда:
Представление теперь может изменяться также как и таблица, фактически же команда направлена к таблице STUDENTS. Пример 12.3. Изменить у студента с номером студенческого билета 3415 имя. UPDATE STIPOFF SET SNAME =’ Василий’ WHERE SNUM=3415; UPDATE STUDENTS SET SNAME =’ Василий’ WHERE SNUM=3415;

Слайд 47





Но команда 
Но команда 
UPDATE STIPOFF SET STIP =100 WHERE SNUM=3415;
будет отвергнута, так как поле STIP в представлении STIPOFF отсутствует.
Описание слайда:
Но команда Но команда UPDATE STIPOFF SET STIP =100 WHERE SNUM=3415; будет отвергнута, так как поле STIP в представлении STIPOFF отсутствует.

Слайд 48





Существуют ограничения на модификацию представлений.
Чаще всего в представлении используются те же имена столбцов, что и в базовых таблицах. При использовании объединения может быть конфликт имен. Допустимо указание других имен в представлении в скобках после имени.
Пример 12.4.
CREATE VIEW STIPCOUNT(STIP, NUM) AS SELECT STIP, COUNT(*) FROM STUDENTS GROUP BY STIP;
Описание слайда:
Существуют ограничения на модификацию представлений. Чаще всего в представлении используются те же имена столбцов, что и в базовых таблицах. При использовании объединения может быть конфликт имен. Допустимо указание других имен в представлении в скобках после имени. Пример 12.4. CREATE VIEW STIPCOUNT(STIP, NUM) AS SELECT STIP, COUNT(*) FROM STUDENTS GROUP BY STIP;

Слайд 49





Сделаем запрос к представлению: показать все  данные о стипендиях, которые получают 2 и более человек.
Сделаем запрос к представлению: показать все  данные о стипендиях, которые получают 2 и более человек.
SELECT * FROM STIPCOUNT WHERE NUM>=2;
Но не допускается функция в предикате WHERE:
 SELECT  STIP, COUNT(*) FROM STUDENTS WHERE COUNT(*) >= 2 GROUP BY STIP; Правильная команда:
SELECT  STIP, COUNT(*) as NUM    FROM STUDENTS  GROUP BY STIP     HAVING COUNT(*)>=2;
Описание слайда:
Сделаем запрос к представлению: показать все данные о стипендиях, которые получают 2 и более человек. Сделаем запрос к представлению: показать все данные о стипендиях, которые получают 2 и более человек. SELECT * FROM STIPCOUNT WHERE NUM>=2; Но не допускается функция в предикате WHERE: SELECT STIP, COUNT(*) FROM STUDENTS WHERE COUNT(*) >= 2 GROUP BY STIP; Правильная команда: SELECT STIP, COUNT(*) as NUM FROM STUDENTS GROUP BY STIP HAVING COUNT(*)>=2;

Слайд 50


Реализация представлений. (Лекция 8), слайд №50
Описание слайда:

Слайд 51





Представления могут основываться на двух и более таблицах. 
Пример 12.5.Создать представление о студентах и их оценках.
CREATE VIEW STUDMARK AS SELECT C.UNUM, A.SFAM, B.PNAME, C.MARK
FROM STUDENTS A, PREDMET B, USP C WHERE A.SNUM=C.SNUM AND B.PNUM=C.PNUM;
Описание слайда:
Представления могут основываться на двух и более таблицах. Пример 12.5.Создать представление о студентах и их оценках. CREATE VIEW STUDMARK AS SELECT C.UNUM, A.SFAM, B.PNAME, C.MARK FROM STUDENTS A, PREDMET B, USP C WHERE A.SNUM=C.SNUM AND B.PNUM=C.PNUM;

Слайд 52





После этого легче ориентироваться в оценках:
После этого легче ориентироваться в оценках:
SELECT * FROM STUDMARK;
Описание слайда:
После этого легче ориентироваться в оценках: После этого легче ориентироваться в оценках: SELECT * FROM STUDMARK;

Слайд 53





Допускается соединение представления с базовыми таблицами:
Допускается соединение представления с базовыми таблицами:
SELECT  SFAM, PNAME, MARK, UDATE 
FROM STUDMARK A, USP B 
WHERE A.SFAM= ‘Поляков’
AND A.UNUM=B.UNUM;
Описание слайда:
Допускается соединение представления с базовыми таблицами: Допускается соединение представления с базовыми таблицами: SELECT SFAM, PNAME, MARK, UDATE FROM STUDMARK A, USP B WHERE A.SFAM= ‘Поляков’ AND A.UNUM=B.UNUM;

Слайд 54


Реализация представлений. (Лекция 8), слайд №54
Описание слайда:

Слайд 55





Представления допускают соотнесенные подзапросы. Пример12.6.Пусть в таблице USP
Описание слайда:
Представления допускают соотнесенные подзапросы. Пример12.6.Пусть в таблице USP

Слайд 56





Создадим представление об оценках превышающих среднюю.
Создадим представление об оценках превышающих среднюю.
1)CREATE VIEW AVGMARK AS SELECT * FROM USP A WHERE MARK>(SELECT  AVG(MARK) FROM USP B WHERE B.PNUM= A.PNUM);
2)SELECT * FROM AVGMARK;
Описание слайда:
Создадим представление об оценках превышающих среднюю. Создадим представление об оценках превышающих среднюю. 1)CREATE VIEW AVGMARK AS SELECT * FROM USP A WHERE MARK>(SELECT AVG(MARK) FROM USP B WHERE B.PNUM= A.PNUM); 2)SELECT * FROM AVGMARK;

Слайд 57


Реализация представлений. (Лекция 8), слайд №57
Описание слайда:

Слайд 58





Существуют ограничения на построения представлений:
Существуют ограничения на построения представлений:
1) в них не допускаются объединения UNION запросов;
2)  не допустимо упорядочение ORDER BY, так как в базовых таблицах записи не упорядочены.
Описание слайда:
Существуют ограничения на построения представлений: Существуют ограничения на построения представлений: 1) в них не допускаются объединения UNION запросов; 2)  не допустимо упорядочение ORDER BY, так как в базовых таблицах записи не упорядочены.

Слайд 59





Для удаления представлений используется команда
DROP VIEW <Name of view>;
Для удаления представления не требуется удалять все данные, потому что реально они в нем не содержатся. 
DROP VIEW AVGMARK;
Описание слайда:
Для удаления представлений используется команда DROP VIEW <Name of view>; Для удаления представления не требуется удалять все данные, потому что реально они в нем не содержатся. DROP VIEW AVGMARK;

Слайд 60





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

Слайд 61





Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым:
Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым:
1)   представление должно основываться только на одной таблице;
2)  оно должно содержать первичный ключ этой таблицы;
3)   представление  не должно иметь полей - агрегатных функций;
Описание слайда:
Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым: Рассмотрим критерии, по которым мы определяем, является ли представление модифицируемым: 1)   представление должно основываться только на одной таблице; 2)  оно должно содержать первичный ключ этой таблицы; 3)   представление  не должно иметь полей - агрегатных функций;

Слайд 62





4)  представление  не должно использовать DISTINCT;
4)  представление  не должно использовать DISTINCT;
5)  представление  не должно использовать GROUP BY, HAVING;
6)     представление  не должно использовать подзапросы;
7)     представление  не должно использовать константы, строки, выражения среди полей вывода;
8)   для команды INSERT оно может содержать любые поля базовой таблицы, для которой имеются ограничения NOT  NULL, если другое значение по умолчанию не определено.
Описание слайда:
4)  представление  не должно использовать DISTINCT; 4)  представление  не должно использовать DISTINCT; 5)  представление  не должно использовать GROUP BY, HAVING; 6)     представление  не должно использовать подзапросы; 7)     представление  не должно использовать константы, строки, выражения среди полей вывода; 8)   для команды INSERT оно может содержать любые поля базовой таблицы, для которой имеются ограничения NOT NULL, если другое значение по умолчанию не определено.

Слайд 63





Модификация представлений подобна фрагментации базовых таблиц.
Модификация представлений подобна фрагментации базовых таблиц.
Пример 12.7.
CREATE VIEW PRCOUNT (UDATE, COL) AS SELECT UDATE, COUNT(*) FROM USP GROUP BY UDATE;
Это представление не модифицируемо - 
GROUP BY.
Описание слайда:
Модификация представлений подобна фрагментации базовых таблиц. Модификация представлений подобна фрагментации базовых таблиц. Пример 12.7. CREATE VIEW PRCOUNT (UDATE, COL) AS SELECT UDATE, COUNT(*) FROM USP GROUP BY UDATE; Это представление не модифицируемо - GROUP BY.

Слайд 64





Пример 12.8.
Пример 12.8.
CREATE VIEW  MATEMUSP
 AS SELECT * FROM USP 
WHERE PNUM = 2003;
Это представление – модифицируемо.
Описание слайда:
Пример 12.8. Пример 12.8. CREATE VIEW MATEMUSP AS SELECT * FROM USP WHERE PNUM = 2003; Это представление – модифицируемо.

Слайд 65





Другой результат достигается на представлении:
Другой результат достигается на представлении:
1)CREATE VIEW   ONLY5
AS SELECT SNUM, MARK
FROM USP
WHERE MARK = 5;
2)INSERT INTO ONLY5 
VALUES (3415, 4);
Это допустимая команда, в таблицу эти значения будут вставлены, но на экране не появятся.
Описание слайда:
Другой результат достигается на представлении: Другой результат достигается на представлении: 1)CREATE VIEW ONLY5 AS SELECT SNUM, MARK FROM USP WHERE MARK = 5; 2)INSERT INTO ONLY5 VALUES (3415, 4); Это допустимая команда, в таблицу эти значения будут вставлены, но на экране не появятся.

Слайд 66





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

Слайд 67





Если его добавить к команде:
Если его добавить к команде:
CREATE VIEW   ONLY5
AS SELECT SNUM, MARK
FROM USP
WHERE MARK = 5
WITH CHECK OPTION;
То любое значение отличное от указанных будет исключено.
Описание слайда:
Если его добавить к команде: Если его добавить к команде: CREATE VIEW ONLY5 AS SELECT SNUM, MARK FROM USP WHERE MARK = 5 WITH CHECK OPTION; То любое значение отличное от указанных будет исключено.

Слайд 68





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

Слайд 69





CREATE VIEW DATEMARK 
CREATE VIEW DATEMARK 
AS SELECT SNUM, SFAM FROM STUDENTS WHERE SNUM IN ( SELECT SNUM FROM USP WHERE UDATE = 10.06.2002);
Это представление для чтения – имеется подзапрос.
Описание слайда:
CREATE VIEW DATEMARK CREATE VIEW DATEMARK AS SELECT SNUM, SFAM FROM STUDENTS WHERE SNUM IN ( SELECT SNUM FROM USP WHERE UDATE = 10.06.2002); Это представление для чтения – имеется подзапрос.

Слайд 70





Что будет если пользователь решит добавить запись:
Что будет если пользователь решит добавить запись:
INSERT INTO DATEMARK VALUES (3415,’Котенко’);
Часть данных будет заполнена как NULL.
Проблема не решится если применить 
WITH CHECK OPTION, так как  представление станет модифицируемым и удаляемым, но без вставки.
Описание слайда:
Что будет если пользователь решит добавить запись: Что будет если пользователь решит добавить запись: INSERT INTO DATEMARK VALUES (3415,’Котенко’); Часть данных будет заполнена как NULL. Проблема не решится если применить WITH CHECK OPTION, так как представление станет модифицируемым и удаляемым, но без вставки.

Слайд 71





Пример 12.9.
Пример 12.9.
CREATE VIEW STIPSTUD
AS SELECT SNUM, SFAM, STIP
FROM STUDENTS WHERE STIP>0
WITH CHECK OPTION;
То вставка будет не удачна.
INSERT INTO STIPSTUD 
VALUES (3417, Решетник,  0.00);
3)однако в NEW1 она возможна.
CREATE VIEW NEW1
AS SELECT * FROM STIPSTUD;
Описание слайда:
Пример 12.9. Пример 12.9. CREATE VIEW STIPSTUD AS SELECT SNUM, SFAM, STIP FROM STUDENTS WHERE STIP>0 WITH CHECK OPTION; То вставка будет не удачна. INSERT INTO STIPSTUD VALUES (3417, Решетник, 0.00); 3)однако в NEW1 она возможна. CREATE VIEW NEW1 AS SELECT * FROM STIPSTUD;

Слайд 72


Реализация представлений. (Лекция 8), слайд №72
Описание слайда:

Слайд 73


Реализация представлений. (Лекция 8), слайд №73
Описание слайда:

Слайд 74


Реализация представлений. (Лекция 8), слайд №74
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию