Способы формирования просмотра

Просмотр может создаваться как:

1) вертикальный срез таблицы, когда в просмотр включается подмножество столбцов таблицы, например:

CREATE VIEW RASH_VERT AS

SELECT DAT_RASH, TOVAR, KOLVO FROM RASHOD

2) горизонтальный срез таблицы, когда в просмотр включаются все столбце, но не все записи, например:

CREATE VIEW RASH_GORIZ AS

SELECT * FROM RASHOD WHERE TOVAR = “Сахар”

3) вертикально-горизонтальный срез таблицы:

CREATE VIEW RASH_VERT_GORIZ AS

SELECT DAT_RASH, TOVAR, KOLVO FROM RASHOD WHERE TOVAR = “Сахар”

4) подмножество строк и столбцов соединения разных таблиц:

CREATE VIEW FULL_RASHOD AS

SELECT R.DAT_RASH, R.TOVAR, R.KOLVO, T.ZENA

FROM RASHOD R, TOVARY T

WHERE R.TOVAR = T.TOVAR

Обновляемые и необновляемые просмотры

Чтобы просмотру можно было применять операторы UPDATE, DELETE необходимо одновременное выполнение двух условий:

1. Просмотр должен формироваться из записей только одной таблицы;

2. Оператор SELECT просмотра не должен использовать агрегатных функций, режима DISTINCT, предложения HAVING, соединения таблиц, хранимых процедур и функций, определённых пользователем.

Чтобы в просмотр можно было добавлять записи оператором INSERT необходимо одновременное выполнение трёх условий:

1. В просмотр должен быть включен каждый столбец таблицы, имеющий атрибут NOT NULL ;

2. Просмотр должен формироваться из записей только одной таблицы;

3. Оператор SELECT просмотра не должен использовать агрегатных функций, режима DISTINCT, предложения HAVING, соединения таблиц, хранимых процедур и функций, определённых пользователем.

Дополнительные параметры просмотра

1) Указание имен столбцов просмотра. Имена столбцов просмотра должны указываться, когда в качестве столбца определяется выражение.

Пример.

CREATE VIEW STOIM_RASH (DAT_RASH, TOVAR, STOIM) AS

SELECT R.DAT, R.TOVAR, R.KOLVO*T.ZENA

FROM RASHOD R, TOVARY T

WHERE R.TOVAR = T.TOVAR

2) Использование CHECK OPTION. Если указан CHECK OPTION, то будут отвергаться все попытки добавления новых или изменения существующих записей таким образом, чтобы нарушалось условие WHERE оператора SELECТ.

Пример.

Нельзя добавить записи со значением поля KOLVO, меньшим 1000

CREATE VIEW RASH_1000_CHECK AS

SELECT * FROM RASHOD

WHERE KOLVO > 1000

WITH CHECK OPTRION

Работа с хранимыми процедурами

Понятие хранимой процедуры

Хранимые процедуры это процедуры и функции, хранящиеся непосредственно в базе данных в откомпилированном виде и которые могут запускаться пользователями или приложениями, работающими с базой данных. Хранимые процедуры обычно пишутся либо на специальном процедурном расширении языка SQL (например, PL/SQL для ORACLE или Transact-SQL для MS SQL Server), или на некотором универсальном языке программирования, например, C++, с включением в код операторов SQL в соответствии со специальными правилами такого включения. Основное назначение хранимых процедур - реализация бизнес-процессов предметной области.

Существует два вида хранимых процедур:

· процедуры выбора - могут возвращать более одного значения. В приложении имя ХП выбора подставляется в оператор SELECT вместо имени таблицы или просмотра;

· процедуры действия – вообще могут не возвращать данных и используются для реализации каких-либо действий .

3.5.2. Преимущества использования ХП:

1. одну процедуру можно использовать многими приложениями;

2. разгрузка приложения клиента путем переноса части кода на сервер и вследствие этого – упрощение клиентских приложений;

3. при изменении ХП все изменения немедленно становятся доступными для всех клиентских приложений;

4. улучшенные характеристики выполнения, связанные с тем, что ХП выполняются сервером, в частности – уменьшенный сетевой трафик.