Представление – это логическое отношение, содержимое которого является производным от уже существующих отношений. Отношение – первичная или базовая таблица, а представление – это таблица, сформированная на базе отношений.
Понятие представления введено в языке SQL для того, чтобы избежать дублирования данных.
Создается при помощи оператора SELECT, который позволяет задать содержимое6 представления.
CREATE VIEW Счет1
AS
SELECT * FROM Счет
WHERE тип_счета=’депозитный’
В данном случае представление «Счет1» содержит те же столбцы, что и таблица «Счет», но в него входят только те строки, для которых соблюдается условие тип_счета=’депозитный’.
Представление не хранится в памяти как таковое. Там хранится только его закодированное определение. Всякий раз, когда с ним надо работать, производится соответствующая выборка из соответствующих таблиц.
DROP TABLE Клиент
DROP VIEW Счет1
При удалении таблицы удаляются и все ее представления, которые на нее ссылаются.
В SQL существуют операторы GRANT («дар») и REVOKE («отмена»). В каждом операторе надо указать пользователя, объект (таблицу или представление, по отношению к которому задаются полномочия) и сами полномочия. Например,
GRANT SELECT ON Клиент TO XX
Этот оператор дает пользователю XX возможность производить выборку из таблицы «Клиент», а REVOKE аннулирует все предоставленные ранее полномочия.
Транзакции.
Транзакции – несколько операторов языка SQL, которые либо все выполняются (по очереди), либо все не выполняются.
Поддержание механизма транзакций – показатель развитости СУБД. Этот механизм является основой обеспечения целостности БД. Он также является основой изолированности пользователей в многопользовательских СУБД.
Транзакция – это единица работы, выполняемая БД. Она может быть программой, частью программы или только одним оператором.
Транзакция характеризуется четырьмя основными свойствами:
1. Атомарность – выражается в том, что транзакция должна быть выполнена целиком или не выполнена вообще.
2. Согласованность – гарантия, что по мере выполнения транзакции данные переходят из одного согласованного состояния в другое.
3. Изолированность. Означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга. Пока не закончится выполнение одной, не начнется выполнение другой. Однако, для пользователя это выглядит так, как будто они выполняются параллельно. Причем промежуточные результаты незавершенной транзакции не должны быть доступны другим транзакциям.
4. Долговечность. Означает, что если транзакция завершена успешно, то те изменения, которые были произведены в данных, не могут быть потеряны в виде каких-либо обстоятельств.