Создание представлений - Банки и базы данных. Системы управления базами данных
Представлением (View) называется виртуальная таблица, отображающая данные, получаемые из реальных таблиц БД, а также из других представлений. Представление может быть получено как из одной таблицы БД, так и из нескольких. Кроме того, в представлении допускается включение вычисляемых полей. В общем случае представление можно рассматривается как хранимый запрос на выборку.
В отличие от реальной таблицы представление действительно не существует в БД, хотя все представленные в нем данные реально существуют в БД в разных ее таблицах. Эти данные компонуются в удобном для пользователя виде с помощью запроса. При создании представление обязательно получает уникальное имя и его описание хранится в описании схемы БД. СУБД при обращении к представлению выполняет запрос, соответствующий описанию этого представления.
Оператор определения представления имеет следующий формат:
CREATE VIEW <имя представления>
[(<имя столбца> [, <имя столбца>]...)]
AS <оператор SELECT>
[WITH[CASCADED/LOCAL]CHECK OPTIONS]
Выполнение этого оператора приводит к созданию виртуальной таблицы, состав которой определяется оператором SELECT. Пользователь может работать с представлениями как с реальной таблицей не зная даже при этом, что на самом деле он работает с виртуальной таблицей. Понятие виртуальной таблицы означает, что представление не хранится в памяти компьютера в виде физической таблицы данных - сохраняется лишь описание представления, следующее за оператором AS. Сама же виртуальная таблица формируется лишь в момент обращения к представлению.
При необходимости можно задавать любые имена для столбцов виртуальной таблицы, создаваемой представлением. В случае, если список имен столбцов не указывается, то каждый столбец получает имя соответствующего столбца реальной таблицы БД. В явном виде имена столбцов должны задаваться в случаях, когда какой-то столбец представления получается в результате вычисления арифметического выражения, является результатом функции, константой, то есть другими словами тогда, когда в реальной таблице ему не соответствует ни один столбец, чье имя он может наследовать. Имя столбца должно также задаваться в случае, когда без этого два или более столбца имели бы совпадающие имена.
Для уничтожения представления используется стандартный оператор DROP:
DROP VIEW <имя представления>
Представления могут быть использованы для достижения следующих целей:
- 1. Скрытие от пользователя не предназначающейся для него информации. 2. Обеспечение улучшенной степени защиты данных: часть данных скрывается от пользователей в соответствии с правами доступа различных категорий пользователей. 3. Упрощение сложных запросов. 4. Предоставление пользователю дополнительной информации, не содержащейся в реальных таблицах: в этом случае значения столбцов в представлении являются вычисляемыми.
Последняя строка в операторе создания представления (WUTH CHECH OPTION) означает, что при создании представления должно проверяться некоторое заданное условие.
Основными базовыми видами представлений, на основе которых строятся более сложные представления, являются горизонтальные, вертикальные, сгруппированные и объединенные представления.
Горизонтальное представление используется, главным образом, для уменьшения объема реальных таблиц и имеет вид:
CREATE VIEW <имя представления>
AS
SELECT *
FROM <имя таблицы>
WHERE <имя столбца> = <значение>
Это представление является фактически аналогом операции выборки реляционной алгебры. В результате его реализации виртуальная таблица будет содержать весь набор столбцов реальной таблицы и столько строк, сколько раз в заданном условием WHERE столбце встречается данное значение.
Аналогом операции проектирования является вертикальное представление, отображающее все строки реальной таблицы и только те столбцы, которые задаются оператором SELECT:
CREATE VIEW <имя представления>
[(<имя столбца> [, <имя столбца>]...)]
AS
SELECT [(<имя столбца> [, <имя столбца>]...)]
FROM <имя таблицы>
Сгруппированные представления содержат в себе запросы, имеющие группировку. Эти представления всегда должны содержать список столбцов. В них возможно использование агрегированных функций и в дальнейшем данные этого типа представления можно использовать в других запросах. Формат такого представления имеет вид:
CREATE VIEW <имя представления>
[(<имя столбца> [, <имя столбца>]...)]
AS
SELECT [([<функция>]<имя столбца> [, <имя столбца>]...)]
FROM <имя таблицы>
GROUP BY [(<имя столбца> [, <имя столбца>]...)]
Объединенные представления используются для представления в одной виртуальной таблице данных из нескольких таблиц БД:
CREATE VIEW <имя представления>
[(<имя столбца> [, <имя столбца>]...)]
AS
SELECT [(<имя столбца> [, <имя столбца>]...)]
FROM [(<имя таблицы> [, <имя таблицы>]...)]
[WHERE <условие>]
Несмотря на то, что зачастую представления можно использовать в операциях реляционного исчисления как реальные отношения, имеются ограничения на операции модификации данных, содержащихся в представлениях. Обновление данных через представления (корректирующий запрос) возможно лишь в тех случаях, когда каждая строка (столбец) представления может быть однозначно сопоставлена строке (столбцу) реальной таблицы данных. Если для горизонтальных и вертикальных представления это условие практически всегда может быть выполнено, то для сгруппированных и объединенных представлений, а также для сложных запросов, включающих в себя подзапросы, сопоставление данных представления и реальной таблицы не всегда может быть однозначно интерпретировано.
В соответствии с существующим стандартом SQL данные, содержащиеся в представлении, можно модифицировать только при выполнении следующих условий:
- 1. Модифицировать можно только данные, полученные из одной базовой таблицы данных, причем пользователь должен иметь соответствующие права доступа к этой таблице. При этом, если базовая для данного представления таблица сама по себе является представлением, то она также должна удовлетворять этому условию. 2. В корректирующем запросе не должны присутствовать данные, полученные с помощью операторов GROUP BY и HAVING. 3. В корректирующем запросе не должен использоваться оператор DISTINCT. То есть если имеются повторяющиеся строки, то они не должны исключаться из виртуальной таблицы запроса. 4. Столбцы представления должны быть простыми в том смысле, что они не должны быть вычисляемыми, полученными с помощью агрегированных функций или содержать выражения. 5. В представлении не должно содержаться вложенных запросов. 6. В представлении нельзя использовать соединение таблицы "сама с собой". 7. Ни на один столбец в выражении оператора SELECT нельзя ссылаться более одного раза.
Соблюдение перечисленных условий необходимо прежде всего потому, что это позволяет сохранить целостность БД. При этом в ряде СУБД обеспечивается контроль не всех из этих условий, поэтому при использовании представлений необходимо контролировать осуществляемые с помощью них операции.
Похожей на представление конструкцией является курсор, поскольку при его создании используется запрос. Курсор используется только во встроенном SQL и создается следующим образом:
DECLARE <имя курсора> CURSOR
FOR <подзапрос>
Использование курсоров обусловлено необходимостью согласования включающих языков и теоретико-множественного языка SQL.
Курсор может находиться в открытом и закрытом состояниях. Открытие курсора осуществляется командой
OPEN CURSOR <имя курсора>.
При закрытии курсора используется команда
CLOSE CURSOR <имя курсора>.
При выполнении этой команды происходит выполнение запроса, описанного при определении курсора. В открытом состоянии позиция курсора может быть произвольной - перед заданной строкой, в строке, после последней строки. Однако при первом открытии курсора он устанавливается перед первой строкой. Строка, на которой установлен курсор, является текущей строкой курсора.
Курсоры бывают обновляемыми и только для чтения. Обновляемым может быть только такой курсор, который базируется только на одной таблице данных.
Похожие статьи
-
Запросы на выборку - Банки и базы данных. Системы управления базами данных
Запросы используются для получения пользователем информации, содержащейся в БД, в удобном для него виде. Результат запроса отображается для пользователя...
-
Структура SQL - Банки и базы данных. Системы управления базами данных
Широкое развитие информационных систем и связанная с этим унифицированность информационного пространства привело к необходимости создания стандартного...
-
Создание запроса выбора в режиме конструктора. - Технология создания и управления баз данных
Для создания запроса выбора с помощью Конструктора необходимо открыть окно Конструктора запроса, выполнив действия: Окно БД => объекты Запросы =>...
-
Введение - Система управления базами данных
Развитие средств вычислительной техники обеспечило для создания и широкого использования систем обработки данных разнообразного назначения....
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
Сетевая модель данных, Реляционная модель данных - Система управления базами данных
Отличие сетевой структуры от иерархической заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом (рис. 8)....
-
Структурированный язык запросов SQL - Система управления базами данных
Запрос представляет собой специальным образом описанное требование, определяющее состав производимых над БД операций по выборке, удалению или модификации...
-
Целостность БД - Банки и базы данных. Системы управления базами данных
Банк база данный case технология Понятие целостности является одним из основополагающих в теории БД. Любая БД содержит в себе информацию об объектах...
-
Вычисления в запросах, формах, отчетах. - Технология создания и управления баз данных
В итоговую таблицу запросов можно включить вычисляемые поля (графы), т. е. получить данные, которые отсутствуют в исходной таблице. Новое вычисляемое...
-
Классификация команд языка. - Технология создания и управления баз данных
Команды SQL Команда Назначение Описание данных CREATE TABLE Создает структуру таблицы Манипулирование данными INSERT Добавляет новые записи в таблицу...
-
Пользовательский интерфейс должен позволять заводить в базе данных информацию о новых охранниках, обслуживаемых объектах, автоматизировать составление...
-
Даталогическое проектирование - Банки и базы данных. Системы управления базами данных
Даталогической моделью БД называется модель логического уровня, построенная в рамках конкретной СУБД, в среде которой проектируется БД. Описание...
-
Реляционная алгебра, реляционное исчисление - Банки и базы данных. Системы управления базами данных
Для работы с реляционными отношениями используется аппарат реляционной алгебры, предложенный Ф. Э. Коддом. Этот аппарат мог возникнуть потому, что в...
-
Создание запросов - Разработка системы управления базой данных "Судоходство"
Для дальнейшего формирования отчетов необходимо создать два запроса на выборку это "Кто и где находится" и "Страны где были корабли". Для создания...
-
Причины возникновения систем баз данных Основой решения большинства задач является обработка информации. Информация - это совокупность фактов,...
-
Начинать следует с определения структуры таблицы, соответствующей предметной области, т. е. с определения полей, которые надо включить в таблицу, типов...
-
Регистрация нового пользователя в системе возможна двумя способоами: 1) Самостоятельная регистрация пользователя; 2) Регистрация пользователя...
-
Структура и процесс функционирования системы управления базами данных - Разработка базы данных
СУБД является прикладным программным обеспечением, предназначенным для решения конкретных прикладных задач и выполнения системных функций, расширяющих...
-
Постановление Правительства Российской Федерации №1119 "Об утверждении требований к защите персональных данных при их обработке в информационных системах...
-
Для создания банка данных использовали пошаговый алгоритм, последовательно фотографируя картотеки встреч видов птиц с отметкой карточек, которые были...
-
Построение реляционной схемы БД - Банки и базы данных. Системы управления базами данных
В основе реляционной модели БД лежит понятие отношения. Под отношением в этой модели понимается двумерная таблица данных. Строки таблицы называются...
-
Определение и типология банков данных - Банки и базы данных. Системы управления базами данных
В основе решения практически любой задачи лежит обработка определенной информации. Система обработки информации, в том числе и автоматизированная с...
-
Основные термины теории баз данных - БД (База данных) - совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы...
-
Модели транзакций - Банки и базы данных. Системы управления базами данных
Под транзакциями понимаются действия, производимые над базой данных и переводящие ее из одного согласованного состояния в другое согласованное состояние....
-
Для того, чтобы разработать оптимальный метод интеграции сторонних систем в существующую ИТ-инфраструктуру систем компании, требуется точно поставить...
-
Многомерная модель - Система управления базами данных
Многомерный подход к представлению данных появился практически одновременно с реляционным, но интерес к многомерным СУБД стал приобретать массовый...
-
Постреляционная модель - Система управления базами данных
Классическая реляционная модель предполагает неделимость данных, хранящихся в полях записей таблиц. Постреляционная модель представляет собой расширенную...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
Введение - Разработка системы управления базой данных "Судоходство"
Любому предприятию, фирме, организации в процессе экономической деятельности приходится постоянно сталкиваться с большими информационными потоками:...
-
Наиболее распространенная форма - ЭВМ. Раньше чаще использовались вычислительные центры (ВЦ). Вычислительный центр - организуется и специализируется на...
-
Заключение, Список литературы - Создание электронного банка данных ФГБУ "Заповедное Прибайкалье"
В результате производственной практике удалось выполнить все поставленные задачи. Рабочие гипотезы подтвердились, были сделаны следующие выводы: 1....
-
Описание выполнения задания - Создание электронного банка данных ФГБУ "Заповедное Прибайкалье"
В результате оформили 2 лотка с карточками встреч, общим размером 10 гигабайт, с 1958 г. по 2015 г. Выполнено не менее 2300 фотографий, которые переданы...
-
Типы СУБД - Система управления базами данных
По степени универсальности систем управления базами данных различают два вида - системы общего назначения и специализированные системы. СУБД общего...
-
Управляющим компонентом многих СУБД является ядро, выполняющее следующие функции: Хоменко А. Д. Основы современных компьютерных технологий /А. Д....
-
Настройка и администрирование СУБД - Банки и базы данных. Системы управления базами данных
Для успешного функционирования разработанной ИС недостаточно выбора СУБД и сервера БД. В процессе эксплуатации всегда на разных этапах приходится...
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Отличия цифрового представления сигналов от аналогового Традиционное аналоговое представление сигналов основано на подобии (аналогичности) электрических...
-
Защита информации в БД - Банки и базы данных. Системы управления базами данных
Целью защиты информации является обеспечение безопасности ее хранения и обрабатывания. Процесс построения эффективной защиты начинается на начальных...
-
Физические модели БД - Банки и базы данных. Системы управления базами данных
Под физической моделью БД понимается способ размещения данных на устройствах внешней памяти и способ доступа к этим данным. Каждая СУБД по-разному...
-
ИЕРАРХИЧЕСКАЯ МОДЕЛЬ ДАННЫХ ИМД основана на понятии деревьев, состоящих из вершин и ребер. Вершине дерева ставится в соответствие совокупности атрибутов...
Создание представлений - Банки и базы данных. Системы управления базами данных