русс | укр

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

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

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

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


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

Использование представлений.


Дата добавления: 2013-12-24; просмотров: 739; Нарушение авторских прав


До сих пор мы говорили о таблицах, которые реально хранятся в базе данных. Это, так называемые, базовые таблицы (base tables). Существует другой вид таблиц, получивший название «представления» (иногда их называют»представляемые таблицы»).

Определение:
Представление (view) - это таблица, содержимое которой берется из других таблиц посредством запроса. При этом новые копии данных не создаются

Когда содержимое базовых таблиц меняется, СУБД автоматически перевыполняет запросы, создающие view, что приводит к соответствующим изменениям в представлениях.

Представление определяется с помощью команды

CREATE VIEW <имя_представления> [<имя_столбца>,...]

AS <запрос>

При этом должны соблюдаться следующие ограничения:

§ представление должно базироваться на единственном запросе (UNION не допустимо)

§ выходные данные запроса, формирующего представление, должны быть не упорядочены (ORDER BY не допустимо)

Создадим представление, хранящее информацию об студентах, группе и адресе:

 

CREATE VIEW studentall AS

SELECT students.FIO, students.God_rogdenia, groups.Group_name, oblast.Obl_name, student_adres.gorod, student_adres.adres.

FROM students, groups, student_adres, oblast

WHERE (students.id_group = groups. id_group)

AND (student_adres.id = student_adres.id)

AND (oblast.id_oblast = student_adres.id_oblast);

 

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

 

SELECT FIO FROM studentall WHERE Group_name = ‘ИС-100’

 

SELECT FIO, count(FIO) FROM studentall GROUP BY Group_name

 

Права пользователей на доступ в представлениям назначаются также с помощью команд GRANT / REVOKE.

Из приведенного выше примера достаточно ясен смысл использования представлений. Если запросы типа «выбрать всех студентов данной группы с указанием адреса» выполняются достаточно часто, то создание представляемой таблицы studentall значительно сократит накладные расходы на выполнение соединения четырех базовых таблиц students, groups, student_adres и oblast. Кроме того, в представлении может быть представлена информация, явно не хранимая ни в одной из базовых таблиц. Например, один из столбцов представления может быть вычисляемым:



 

CREATE VIEW amount (group_name, student_count) AS

SELECT groups.Group_name, count(students.id_group)

FROM students, groups

WHERE students.id_group = groups. id_group

GROUP BY students.id_group;

 

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

Запрос на выборку данных к представлению выглядит абсолютно аналогично запросу к любой другой таблице. Однако на изменение данных в представлении накладываются ограничения. Кратко о них можно сказать следующее:

§ Если представление основано на одной таблице, изменения данных в нем допускаются. При этом изменяются данные в связанной с ним таблице.

§ Если представление основано более чем на одной таблице, то изменения данных в нем не допускаются, т.к. в большинстве случаев СУБД не может правильно восстановить схему базовых таблиц из схемы представления.

Удаление представления производится с помощью оператора:

 

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

 



<== предыдущая лекция | следующая лекция ==>
Сортировка данных. | Другие возможности SQL.


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


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

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

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


 


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

 
 

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

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