Помощь в учёбе, очень быстро...
Работаем вместе до победы

Представления. 
Организация баз данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Большинство параметров здесь имеют тот же смысл, что и в других командах. Опция USING INDEX создает индекс на основе rowid (псевдостолбец, определяющий конкретное место в памяти для строки данных) в первоначальной главной таблице. Фраза refresh определяет, когда снимок должен быть обновлен и как должно быть выполнено обновление. В качестве date_expression. Как только имена этих объектов будут… Читать ещё >

Представления. Организация баз данных (реферат, курсовая, диплом, контрольная)

Представления можно рассматривать как логические таблицы в базе данных. Представление состоит из предопределенного запроса по отношению к одной или нескольким таблицам и может использоваться в запросах Oracle так, как если бы это была таблица. Представление можно использовать в операторах базы данных INSERT и update, если выполнены два следующих условия:

  • 1. Представление основано на одной таблице.
  • 2. В представление включены все непустые столбцы таблицы. Для создания представления используйте следующий синтаксис:

CREATE [OR REPLACE] VIEW view_name AS select statement

[WITH READ ONLY | WITH CHECK OPTION];

Представление должно иметь уникальное имя (длиной до 30 символов), т. е. никакой другой объект в базе данных не может использовать то же имя, что и представление. Фраза or replace перезаписывает существующее представление. Если эта опция не выбрана и представление уже существует, будет сгенерировано сообщение об ошибке. Если представление создано с использованием параметра with read only, по отношению к представлению не будут разрешены операции вставки, обновления и удаления. Параметр WITH check option проверяет, чтобы любые строки, вставленные или модифицированные посредством представления, могли впоследствии быть выбраны посредством представления.

В качестве оператора SELECT, используемого в представлении, может применяться любой допустимый запрос Oracle. Когда представления используются в Oracle, интерпретатор запроса вставляет текст этого представления в оператор SQL прежде, чем оптимизатор запроса сгенерирует план выполнения. Если представление соединено с другими таблицами или представлениями, весь текст нескольких представлений будет слит в единый оператор SQL прежде, чем будет выполнен этот оператор. В результате ожидаемый план выполнения может в значительной степени зависеть от того, как выполнено это соединение.

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

Для просмотра текста оператора SELECT представления (с использованием SQL*Plus) вначале определите размер текстового блока с помощью следующего запроса: select textjength from user_views

where view_name = 'NEW_VIEW';

А теперь нужно установить размер отображения текста представления так, чтобы его значение превышало полученное значение text_length (в этом случае 5000 символов) с использованием следующих команд: set long 5000 set arraysizel

Теперь можно выбрать текст представления с помощью следующего запроса: select text from user views where

view name = 'NEW_VIEW';

Для удаления представления из базы данных используйте команду DROP VIEW следующим образом:

DROP VIEW view_ name;

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

CREATE SNAPSHOT snapshoMiame [PCTFREE integer]

[PCTUSED integer]

[INITRANS integer]

[MAXTRANS integer]

[TABLESPACE tablespace_name]

[STORAGE storage_ clause]

[USING INDEX [PCTFREE integer]

[INITRANS integer]

[MAXTRANS integer]

[STORAGE storage _ clause]]

[CLUSTER cluster name (cluster_ columns)]

[REFRESH [FAST | COMPLETE | FORCE]

START WITH date expression NEXT date_expression]

[AS subquery]

Большинство параметров здесь имеют тот же смысл, что и в других командах. Опция USING INDEX создает индекс на основе rowid (псевдостолбец, определяющий конкретное место в памяти для строки данных) в первоначальной главной таблице. Фраза refresh определяет, когда снимок должен быть обновлен и как должно быть выполнено обновление. В качестве date_expression

может применяться любое выражение, которое транслируется в значение даты, например, SYSDATE+?. (Значение sysdate — это текущая системная дата и время. Таким образом, предыдущее выражение определяет дату, которая наступит через семь дней, начиная с текущей даты и времени.) В качестве метода обновления может применяться либо complete (полное), либо fast (быстрое), в зависимости от того, был ли создан для главной таблицы журнал снимка, force определяет, что RDBMS выберет быстрое обновление или полное обновление, определив наличие соответствующих данных. Обновление complete выполняет запрос при каждом обновлении снимка, тогда как обновление EAST использует информацию журнала снимка для обновления только изменившихся строк.

Для определения журнала снимка для главной таблицы выдайте следующую команду:

CREATE SNAPSHOT LOG ON table_name [PCTFREE integer]

[PCTUSED integer]

[INITRANS integer]

[MAXTRANS integer]

[TABLESPACE tablespace _name]

[STORAGE storage_clause];

При создании снимка Oracle создает таблицу и представление, которые соответствуют этому снимку. Чтобы определить имена этих объектов, выдайте следующий запрос: select table_name, master_view from user snapshots where name =' new_snapshot name ';

Как только имена этих объектов будут известны, по отношению к этой новой таблице можно выполнять запросы, создавать индексы и выполнять любые другие функции, как если бы это была «обычная» таблица. Если снимок больше не нужен, используйте команду DROP snapshot, чтобы его уничтожить.

До сих пор в настоящей главе рассматривался синтаксис команд языка DDL (Data Definition Language — Язык определения данных) Oracle. Oracle предоставляет также команды, которые позволяют другим пользователям обращаться к вашим объектам.

Показать весь текст
Заполнить форму текущей работой