Организация и использование представлений 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Организация и использование представлений



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

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

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

Создание представления:

CREATE VIEW view1 AS

SELECT КодКлиента, Фамилия, ГородКлиента

FROM Клиент

WHERE ГородКлиента='Москва'

 

FORCE – создание представления независимо от того, существует ли таблица

NOFORSE– создание при условии, что базовая таблица существует.

WITHCHECKOPTION– режим, при котором добавление/обновление ограничено.

Удаление представления:

DROPVIEWимя_представления


Работа с курсорами

Курсор – поименованный запрос, содержащий некоторое фиксированное число строк выборки.

Курсор является окном, через которое пользователь получает доступ к информации БД. SQL неявно объявляет курсор для всех SQL-приложений манипулирования данными, включая запросы, возвращающие ровно одну строку. Под курсором в Oracle понимается получаемый при выполнении запроса результирующий набор,а также связанный с ним указатель текущей записи. В SQL поддерживается 2 типа курсоров: явный и неявный.

Явный курсор объявляется разработчиком, а неявный не требует объявления. Курсор может возвращать одну строку, несколько строк или не возвращать их вообще.

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

CURSOR – объявление явного курсора.

OPEN – открывает курсор, создавая новый результирующий набор на базе запроса.

FETCH – последовательное извлечение строк из результирующего набора от начала до конца.

CLOSE – закрывает курсор и освобождает занимаемые им ресурсы.

CURSOR cursor_name[(parameter[,parameter]..)] [RETURN return_type] IS select_statement.

Каждыйпараметр parameter определяетсякак: cursor_ parameter_name [IN] datatype [{:=\DEFAULT} expr].

Тип возвращаемого значения должен соответствовать столбцу, перечисленному в операторе select. Для работы с курсорами можно использовать атрибуты, которые указываются послеимени курсора:

% ISOREN – возвращает “True”, если курсор открыт.

% FOUND – определяет, найдена ли строка удовлетворяющая условию.

% NOTFOUND – возвращает “True”, если строка не найдена.

% ROWCOUNT – номер текущей строки.

Пример создания курсора:

CURSOR c3(p1 INTEGER DEFAULT 10, p2 INTEGER DEFAULT 1300)

IS SELECT f1, f2, f3, f4

FROM tbl1

WHERE f4>p1 AND f2=p2;

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


Целостность баз данных

Средства обеспечения целостности БД включают автоматическую поддержку некоторой системы данных.

Правила реляционной модели:

· Ограничение домена

· Ограничение таблицы

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

Типы статических ограничений целостности:

- ограничение на определенность значения атрибута (NOTNULL)

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

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

- ограничение – внешний ключ


Работа с триггерами

Триггер БД – это процедура, которая автоматически запускается при возникновении определенных событий, связанных с выполнением операций вставки, удаления или модификации данных таблицы. Триггер необходим там, где требуется обеспечить сложный контроль защиты данных. Он может также осуществлять контроль, когда требуется более сложная проверка, чем проверка декларативными ограничениями целостности.

Триггер запускается при выполнении одной из 3-х операций изменения содержимого таблицы: INSERT, DELETE, UPDATE.Код триггера может выполняться либо до, либо после тех операторов, которые инициировали его запуск. Код триггера может быть ассоциирован с каждой строкой, над которой выполняется операция. Операторные триггеры обычно используются для проверки файла, оперирующего таблицей в целом.

Построчные – для проверки ограничения целостности при вставке строк.



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 263; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.193.129 (0.005 с.)