русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 528; Нарушение авторских прав


Представление – это шаблон, через который можно просматривать базу данных. Его можно также назвать виртуальным отношением, которое не существует на самом деле, но которое динамически воспроизводится на основании запроса к одной или нескольким таблиц или к другим (или другому) представлениям. Представления не хранят каких-либо данных. В словаре данных хранится только предложение SELECT того или иного представления.

Синтаксис команды:

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

[(<имя столбца> [,…n ])

[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}]

AS

< команда SELECT>

[WITH CHECK OPTION];

WITH CHECK OPTION – ограничивает действие команд INSERT и UPDATE. При задании этого предложения они разрешены только в том случае, если они создают строки, которые потом видны в представлении.

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

При создании представления SQL не осуществляет контроль за типом переменных, то есть представление будет создано без генерации сообщения об ошибке, но при попытке осуществить запрос будет сгенерировано сообщение об ошибке.

Ранее отмечалось, что опция WITH CHECK OPTION может ограничить действие команд INSERT и UPDATE, однако существуют и другие ограничения на использовании команд DML.

Команда DELETE запрещена, если представление содержит:

· условие соединения

· групповые функции или предложение GROUP BY

· предложение DISTINCT

· столбец со свойством IDENT I TY

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

Команда INSERT запрещена всегда, когда запрещена команда UPDATE, а также тогда, когда какой-либо столбец таблицы NOT NULL не содержится в представлении.



После успешного завершения команды CREATE VIEW выдается сообщение

View created (Представление создано).

Представления используются для:

· ограничения доступа к базе данных;

· упрощения запросов;

· сокрытия схемы базы данных.

В первом случае можно не только ограничить просмотр тех или иных данных, но и составив ограничение тем или иным способом, сделать невозможным выполнение той или иной комбинации операций над базами данных (удаление, добавление, редактирование).

Пример 79

Задача.

Создать представление, предотвращающее ввод информации в таблицу Student.

Решение.

Как уже отмечалось выше, для реализации подобного требования достаточно исключить из представления хотя бы один атрибут с признаком NOT NULL, например IDGroup.

CREATE VIEW VStudentNOINSERT

AS

SELECT

NRecordBook ,

INN ,

StName ,

SPasport ,

NPasport ,

DataPasport ,

NameDeptPasport

FROM Student

Попытка ввести данные через созданное представление

INSERT INTO VStudentNOINSERT

VALUES('050008','1111111117','Ипатов В.И.','8701','192304','01.06.2002', 'УВД г.Ухты');

спровоцирует сообщение об ошибке (если при создании Вы запретили неопределённые значения в столбце IDGroup):

Server: Msg 515

Cannot insert the value NULL into column 'IDGroup', table 'Student.dbo.Student'; column does not allow nulls. INSERT fails.

The statement has been terminated.

Пример 80

Задача.

Создать представление, разрешающее просмотр, ввод и редактирование только данных о студентах группы ИСТ-03 (IDGroup=1) в таблице Student.

Решение.

Создадим представление VStudentNOINSERTIST03, используя опцию WITH CHECK OPTION

CREATE VIEW VStudentNOINSERTIST03

AS

SELECT

NRecordBook ,

INN ,

StName ,

IDGroup,

SPasport ,

NPasport ,

DataPasport ,

NameDeptPasport

FROM Student

WHERE IDGroup =1



<== предыдущая лекция | следующая лекция ==>
GROUP BY IDGroup | WITH CHECK OPTION


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.715 сек.