View

View

Представление (англ. view, в сленге программистов часто используется в качестве заимствования из английского — «вью») — виртуальная (логическая) таблица, представляющая собой поименованный запрос (алиас к запросу), который будет подставлен как подзапрос при использовании представления.

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

Содержание

Способ создания и содержимое представлений

Типичным способом создания представлений для СУБД, поддерживающих язык запросов PostgreSQL, Interbase, Microsoft SQL Server, Oracle, представление может содержать:

  • подмножество записей из таблицы БД, отвечающее определённым условиям (например, при наличии одной таблицы «Люди» можно создать два представления «Мужчины» и «Женщины», в каждом из которых будут записи только о людях соответствующего пола);
  • подмножество столбцов таблицы БД, требуемое программой (например, из реальной таблицы «Сотрудники» представление может содержать по каждому сотруднику только ФИО и табельный номер);
  • результат обработки данных таблицы определёнными операциями (например, представление может содержать все данные реальной таблицы, но с приведением строк в верхний регистр и обрезанными начальными и концевыми пробелами);
  • результат объединения (join) нескольких таблиц (например, при наличии таблиц «Люди», «Адреса», «Улицы», «Фирмы и организации» возможно построение представления, которое будет выглядеть как таблица, для каждого человека содержащее его личные данные, адрес места жительства, название организации, где он работает, и адрес этой организации);
  • результат слияния нескольких таблиц с одинаковыми именами и типами полей, когда в представлении попадают все записи каждой из сливаемых таблиц (возможно, с исключением дублирования);
  • результат группировки записей в таблице (например, при наличии таблицы «расходы» с записями по каждому платежу можно построить представление, содержащее средства, израсходованные на каждую отдельную статью расходов);
  • практически любую комбинацию вышеперечисленных возможностей.

Использование

Представления используются в запросах к БД тем же образом, как и обычные таблицы. В случае SQL-СУБД имя представления может находиться в SQL-запросе на месте имени таблицы (в предложении FROM). Запрос из представления обрабатывается СУБД точно так же, как запрос, в котором на месте имени представления находится подзапрос, определяющий это представление. При этом СУБД с развитыми возможностями оптимизации запросов перед выполнением запроса из представления могут проводить совместную оптимизацию запроса верхнего уровня и запроса, определяющего представление, с целью минимизации затрат на выборку данных.

Использование представлений не даёт каких-то совершенно новых возможностей в работе с БД, но может быть очень удобно.

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

Специфические типы представлений

Некоторые СУБД имеют расширенные представления для данных, доступных только для чтения. Так, СУБД Oracle реализует концепцию «материализованных представлений» — представлений, содержащих предварительно выбранные невиртуальные наборы данных, совместно используемых в распределённых БД. Эти данные извлекаются из различных удалённых источников (с разных серверов распределённой СУБД). Целостность данных в материализованных представлениях поддерживается за счёт периодических синхронизаций или с использованием триггеров. Аналогичный механизм предусмотрен в Microsoft SQL Server версии 2000.

По самой сути представления могут быть доступны только для чтения. Тем не менее, в некоторых СУБД (например, в Oracle) представления могут быть редактируемыми, как и обычные физические таблицы. Редактирование может допускаться для представлений, выбранных из единственной физической таблицы таким образом, чтобы каждой записи в представлении соответствовала строго одна запись в таблице-источнике, а в числе полей представления был первичный ключ физической таблицы. При выполнении команд редактирования, добавления или удаления для такого представления сервер СУБД преобразует эти команды в соответствующие команды для физической таблицы-источника. Разумеется, если в представлении используется группировка записей или преобразование значений в полях, редактирование такого представления невозможно даже теоретически. Но и такие представления могут, тем не менее, редактироваться, посредством написания соответствующих триггеров (хотя осмысленность подобных операций целиком останется на совести программиста). Впрочем, редактируемые представления, как и возможность создания триггеров для представлений, поддерживают лишь немногие СУБД.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "View" в других словарях:

  • VIEW — – Die besten Bilder des Monats Beschreibung General Interest Magazin Verlag Gruner + Jahr Erstausgabe 2005 …   Deutsch Wikipedia

  • View — View, n. [OF. veue, F. vue, fr. OF. veoir to see, p. p. veu, F. voir, p. p. vu, fr. L. videre to see. See {Vision}, and cl. {Interview}, {Purview}, {Review}, {Vista}.] 1. The act of seeing or beholding; sight; look; survey; examination by the… …   The Collaborative International Dictionary of English

  • view — ► NOUN 1) the ability to see something or to be seen from a particular position: the mountains came into view. 2) a sight or prospect from a particular position, typically an appealing one. 3) a way of regarding something; an attitude or opinion …   English terms dictionary

  • view — [vyo͞o] n. [ME vewe < OFr veue < veoir, to see < L videre: see VISION] 1. a seeing or looking, as in inspection or examination 2. sight or vision; esp., range of vision [not a person in view] 3. mental examination or survey; critical… …   English World dictionary

  • view — I (opinion) noun advice, apprehension, aspect, attitude, belief, concept, conception, conclusion, conviction, credence, creed, discernment, doctrine, estimate, estimation, idea, impression, intent, judgment, notion, perception, perspective,… …   Law dictionary

  • view — is used in two common idioms, in view of and with a view to. In view of is used as an equivalent of because of or considering followed by a noun (or verbal noun) to introduce a known or expected circumstance: • He was especially anxious to court… …   Modern English usage

  • View — (englisch ‚Sicht, Ansicht‘) bezeichnet: Sicht (Datenbank), logische Tabelle in der Datenbanktechnik Seitenabruf, Messwert der Webseitenzugriffszahl View (Magazin) ein Tochtermagazin der Zeitschrift stern The View bezeichnet: The View (Band),… …   Deutsch Wikipedia

  • view — [n1] something that is seen appearance, aspect, composition, contour, design, field of vision, glimpse, illustration, landscape, look, opening, outline, outlook, panorama, perspective, picture, prospect, range of vision, representation, scene,… …   New thesaurus

  • View — View, v. t. [imp. & p. p. {Viewed}; p. pr. & vb. n. {Viewing}.] 1. To see; to behold; especially, to look at with attention, or for the purpose of examining; to examine with the eye; to inspect; to explore. [1913 Webster] O, let me view his… …   The Collaborative International Dictionary of English

  • View at 18 — (Херманус,Южно Африканская Республика) Категория отеля: 4 звездочный отель Адрес: Unit 18 …   Каталог отелей

  • view — n 1 *look, sight, glance, glimpse, peep, peek Analogous words: scrutiny, scanning, inspection, examination (see under SCRUTINIZE) 2 *opinion, belief, conviction, persuasion, sentiment Analogous words: *idea, thought, concept, conception:… …   New Dictionary of Synonyms


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»