Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_Full.docx
Скачиваний:
28
Добавлен:
13.09.2019
Размер:
945.28 Кб
Скачать
  1. Субд Oracle. Создание индексов.

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

Индексы логически и физически независимы от данных таблицы с которой они связаны. Поскольку это независимые структуры, то они требуют физического пространства. Для индексов доступны операции создания и удаления. Это никак не влияет на базовые таблицы, приложения базы данных или другие индексы. Oracle автоматически ведет индексы при вставке, обновлении и удалении строк связанной с ним таблице. Если индекс удалить, то все приложения и запросы продолжат работать, однако доступ к проиндексированным данным может замедлиться.

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

Создайте индекс по столбцу Name таблицы CUSTOMER:

CREATE INDEX CustNameIdx ON CUSTOMER(Name);

Индексу дано имя CustNameIdx. Имя не играет роли для Oracle. Чтобы создать уникальный индекс, перед ключевым словом INDEX используют ключевое слово UNIQUE. Например, чтобы гарантировать, что ни одно произведение не 6удет записано дважды в таблицу WORK, можно создать уникальный индекс по столбцам (Title, Copy, ArtistID):

СREATE UNIQUE INDEX WorkUniqueIndex ON WORK (Title, Copy, ArtistID);

  1. Субд Oracle. Создание представлений

Представление – это виртуальная таблица. В действительности представление – всего лишь результат выполнения оператора SELECT, который хранится в структуре памяти, напоминающей SQL таблицу, например, Oracle. Для тех, кто работает с представлением, манипулирование его данными ничем не отличается от манипулирования данными таблицы. В некоторых случаях пользователь может вводить данные в представление, как если бы оно было таблицей. Работая с представлением нужно помнить, что:

  • Представления добавляют уровень защиты данных (например, можно создать представление для таблицы, где пользователю, выполняющему SELECT над представлением, видны только сведения о зарплате)

  • Представления могут скрывать сложность данных, комбинируя нужную информацию из нескольких таблиц

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

Представление создается с помощью команды CREATE VIEW. После создания представления становятся частью схемы создавшего их пользователя.

Пример:

Определим представление, соединяющее три таблицы, с наложенным условием на столбцы AcquisitionPrice и CustomerID. Это представления соединения – они базируются на соединениях.

CREATE VIEW ExpensiveArt AS

SELECT Name, Copy, Title

FROM ARTIST, WORK, TRANSACTION

WHERE ARTIST.ArtistID = WORK.ArtistID AND

WORK.WorkID = TRANSACTION.WorkID AND

AcquisitionPrice > 10000 AND

CustomerID IS NULL;

Вообще говоря, представления, основанные на одной таблице, допускают обновление данных. Если это почему-либо нежелательно, вы можете создать представление только для чтения, добавив выражение WITH READ ONLY в конец определения представления. Так, выражение

CREATE VIEW V1 AS SELECT * FROM ARTIST WITH READ ONLY;

создаст представление, доступное только для чтения.

Пример 2:

CREATE VIEW US AS

SELECT a,b

FROM U WITH READ ONLY

В общем случае:

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

AS SELECT

Текст

[атрибуты]

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