русс | укр

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

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

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

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


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

Использование виртуальных таблиц.


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


Виртуальные таблицы используются для создания постоянно хранящихся сложных запросов. К виртуальной таблице можно обращаться как к обычной таблице. Она может использоваться в качестве таблицы в предложениях SELECT, INSERT, INPUT, UPDATE, DELETE. Виртуальная таблица не занимает места в базе данных как обычная таблица. Синтаксис следующий:

CREATE VIEW <view_name> [(column1, column2...)] AS

SELECT <column_names>

FROM <table_names>

[WHERE …]

[WITH CHECK OPTION]

Необязательная фраза WITH CHECK OPTION (с проверкой) указывает, что для операций INSERT и UPDATE над этой таблицей должна осуществляться проверка, обеспечивающая удовлетворение WHERE фразы подзапроса.

Таким образом, виртуальная таблица – это поименованная таблица, получаемая в результате выполнения SELECT предложения с возможным изменением имен столбцов.

Простая виртуальная таблица. Это виртуальная таблица, являющаяся копией исходной, но под другим именем.

CREATE VIEW FACULTYCOPY AS

SELECT * FROM FACULTY

Здесь создается виртуальная таблица FACULTYCOPY, являющаяся точной копией FACULTY.

Можно также создавать виртуальные таблицы на основе других виртуальных таблиц.

Выбор колонок. Можно указать на использование в виртуальной таблице отдельных колонок исходной таблицы.

CREATE VIEW DEP_HEAD_NAMES (Name, Head) AS

SELECT * FROM FACULTY

Переименование колонок. Синтаксис создания виртуальных таблиц позволяет переименовывать колонки исход­ной таблицы. Для этого необходимо явно указать колонки во фразе SELECT и указать необходимые имена колонок во фразе CREATE VIEW.

CREATE VIEW TEACHER_NAME_POST (First_Name, Position) AS

SELECT Name, Post FROM TEACHER

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



CREATE VIEW TEACHER_2 (First_Name, Position) AS

SELECT TEACHER.Name, Post

FROM FACULTY, DEPARTMENT, TEACHER

WHERE FACULTY.#F = DEPARTMENT.#F AND

DEPARTMENT.#D = TEACHER.#D AND

FACULTY.Name = 'IT' AND

TEACHER.Name IN

SELECT TEACHER.Name

FROM FACULTY, DEPARTMENT, TEACHER

WHERE FACULTY.#F = DEPARTMENT.#F AND

DEPARTMENT.#D = TEACHER.#D

FACULTY.Name != 'IT'

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

· нельзя использовать оператор UNION,

· нельзя использовать фразу ORDER BY.

Изменение данных через виртуальные таблицы. Виртуальные таблицы можно использовать в предложениях UPDATE, INSERT, DELETE для изменения данных в базе данных, но при этом должны выполняться следующие условия:

· нельзя использовать предложение DELETE к виртуальным таблицам, определенным на многих базовых таблицах

· предложение INSERT можно использовать только в том случае, если виртуальная таблица содержит все NOT NULL колонки базовой таблицы.

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

· нельзя вставлять или обновлять записи через виртуальную таблицу, определенную с фразой DISTINCT.

· нельзя обновлять виртуальные колонки (то есть колонки, являющиеся вычислением выражения или выпол­не­ния функции)

Возможные применения виртуальных таблиц. Виртуальная таблица может использоваться для:

· обеспечение логической независимости,

· обеспечения защиты данных,

· осуществления конвертирования данных,

· упрощения конструкций сложных запросов.

Обеспечение логической независимости. Одна из основных задач, которую позволяют решать виртуальные табли­цы, - обеспечение независимости пользовательских программ от изменения логической структуры базы данных при ее расширении и (или) изменении размещения столбцов, возникающего, например, при расщеплении таблиц.

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

Конвертирование данных. Виртуальные таблицы могут оказаться полезными, когда необходимо представить пользователю данные в формате, отличающимся от используемого при хранении данных в базе данных. Например, довольно легко можно решить проблему преобразования данных о зарплате, хранимой в базе данных в одной денеж­ной единице, в другую денежную единицу в той или иной виртуальной таблице.

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

Удаление виртуальной таблицы. Есть команда для удаления виртуальной таблицы. Ее синтаксис следующий:

DROP VIEW view_name

При удалении виртуальной таблицы следует помнить, что все другие виртуальные таблицы, которые определялись на ее основе, становятся недействительными.



<== предыдущая лекция | следующая лекция ==>
Создание таблицы. Предложение CREATE TABLE | Использование индексов


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


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

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

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


 


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

 
 

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

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