Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

3.7. Виртуальные отношения

Виртуальные отношения (view – представления) хранятся в базе данных как именованные операторы select и создаются с помощью следующего оператора:

create view имя_виртуального_отношения as оператор_select

Выполнение оператора select происходит в момент обращения к представлению. Представления можно использовать для извлечения данных подобно таблицам, в частности, в операторе select.

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

Представление может быть индексированным (в Microsoft SQL Server – начиная с версии 2000). В этом случае оно материализуется, то есть сохраняется в базе данных как «вычисленный» запрос. При модификации базовых таблиц, через которые вычисляется представление, СУБД автоматически модифицирует и материализованное представление. Причина материализации – в необходимости поддержки индекса.

Удалить представление можно с помощью оператора

drop view имя_виртуального_отношения

3.8. Вопросы для самоконтроля

Типы данных

Перечислите базовые типы данных.

Какие варианты может иметь целочисленный тип данных?

Что такое перечислимый тип данных?

Что представляет собой десятичный тип данных с фиксированной точкой?

Что представляет собой денежный тип данных?

Чем различаются строки бит фиксированной и переменной длины?

Чем различаются строки символов фиксированной и переменной длины?

Какие варианты типа даты и времени существуют?

Каковы правила работы с данными типа счетчика?

Для чего предназначены объекты типа BLOB?

Что представляет собой тип данных, определяемый пользователем?

Как создаются подтипы базовых типов данных, определяемые пользователем? Первичные и кандидатные ключи

Опишите понятие ключа схемы базового отношения. Что понимается под требованием «неизбыточности»?

Чем отличается простой ключ от составного? Приведите примеры.

Что такое суперключ?

Чем различаются понятия первичного и кандидатных ключей?

Из каких соображений должен выбираться первичный ключ?

Создание базовых отношений

Какие металингвистические символы используются при описании синтаксических конструкций?

В чем различие понятий базового и виртуального атрибутов?

Запишите в общей форме оператор создания базового отношения.

Что задается при объявлении базового атрибута?

Как определяется виртуальный атрибут?

Как формулируется ограничение кортежа?

Как определяется первичный ключ?

Как определяется кандидатный ключ?

Что понимается под внешним ключом? Индексы

Для чего предназначены индексы?

Чем различаются индексы простые и составные?

Чем различаются индексы уникальные и неуникальные.

Запишите оператор создания индекса.

Как следует создавать уникальные индексы? Модификация базовых отношений

Что понимается под термином «модификация отношения»?

Приведите три формы оператора вставки строк в существующие таблицы.

Приведите форму оператора обновления строк.

Приведите формы оператора удаления строк.

Целостность

В чем смысл понятия целостность? В чем его отличия от понятия безопасности?

Укажите уровни декларативной поддержки ограничений целостности.

Какие ограничения декларативно поддерживаются на уровне атрибута?

Какие ограничения декларативно поддерживаются на уровне кортежа?

Какие ограничения декларативно поддерживаются на уровне отношения?

Какие ограничения декларативно поддерживаются на уровне базы данных?

Что понимается под ограничением ссылочной целостности? Какие кортежи называются висящими?

Какие декларативные правила поддержания ссылочной целостности используются?

Для чего предназначен механизм транзакций?

Как можно программно управлять откатом транзакций?

Для чего предназначен механизм блокировок? Какие типы блокировок существуют?

В чем различие между хранимыми процедурами и триггерами?

Приведите основной формат команды создания триггера.

Виртуальные отношения

Как создаются виртуальные отношения (представления)?

Что понимается под обновляемым представлением?

Для чего используется материализация представлений?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]