Изменение таблиц. Добавление строки. Копирование строк из таблицы. Команда UPDATE, страница 6

Большинство индексных файлов построены по принципу В-дерева. При отсутствии индексы СУБД выполняет последовательный поиск в таблице.

Примечание. Microsoft SQL считает значения null как повторяющиеся в случае применения уникального индекса.

Удаление индекса выполняется командой DROP INDEX. Ее синтаксис различается. В частности, требуется либо не требуется указывать название таблицы.

DROP INDEX название_индекса ON таблица.

(В Microsoft SQL Server – DROP INDEX таблица.название_индекса)

Представления

Представление (view) – экранная форма для отображения выборки. Его нередко называют виртуальной таблицей. СУБД хранит представление в виде команды SELECT, а не результатов выборки. Этим исключается дублирование данных.

Представление можно использовать в запросах, так же как и обычную таблицу (или запрос).

Представления применяются для отображение данных пользователям приложений БД. Они:

- упрощают доступ к данным, поскольку пользователям не надо понимать связь между различными таблицами;

- автоматически обновляют данные при изменениях в таблицах;

- обеспечивают безопасность, т.к. отображают только часть данных, скрывают другие;

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

Виртуализация позволяет пользователям абстрагироваться от изменения структуры БД .

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

Представление создается практически любой командой SELECT, хотя применение конструкции ORDER BY обычно запрещено. Запрещается применение индексов и ограничений.

СУБД выполняет представление каждый раз, когда на него ссылаются. Поэтому сложные представления могут существенно влиять на производительность.

Представление создается командой

CREATE VIEW имя_представления [(столбцы_представления)] AS оператор_SELECT

столбцы_представления – названия столбцов в создаваемом представлении, количество имен должно совпадать с количеством столбцов, выбираемых в запросе. Если список названий столбцов не задан, используются имена столбцов из оператора SELECT. Представление должно содержать уникальные названия столбцов. Названия столбцам можно задать и в команде SELECT.

Пример. Создать представление, скрывающее персональную информацию об авторах. (пример CR_View_Authors)

CREATE VIEW au_names

AS SELECT au_id, au_fname, au_lname

FROM authors;

В результате выполнения команды (типа конструктор) создается запрос на выборку с именем au_names.

Д.з. Создать представление, которое отображает список всех авторов, проживающих в городах, где расположены издательства.

Пример. Создать представление, отображающая полученную прибыль, сгруппированную по типу книг для каждого издательства. (пример CR_Revenue)

CREATE VIEW  revenues (Publisher, BookType, Revenue)

AS

SELECT pub_id, type, SUM(price * sales)

FROM title

GROUP BY pub_id, type;

Для представления можно выполнить действия аналогичные действиям с таблицей:

- выбрать данные;

- изменить представление:

- добавить строку;

- изменить строку;

- удалить строку.

Представление можно удалить командой DROP VIEW.

Транзакции

Транзакция – последовательность команд SQL, которые выполняются как единое целое. СУБД рассматривает транзакцию как неделимую группу и исполняет либо все ее команды, либо ни одной.

Границы транзакции должны быть четко обозначены. Транзакция начинается командой BEGIN NRANSACTION, завершается командами COMMIT либо ROLLBACK (отмена транзакции).