Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новиков л.р.3,4.doc
Скачиваний:
8
Добавлен:
15.11.2019
Размер:
130.56 Кб
Скачать

Работа с последовательностями в оракл

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

В Oracle последовательности представлены в виде отдельных сущностей базы данных. Для последовательности следующие параметры имеют важные значения:

1) Начальное значение последовательности.

2) Шаг последовательности.

3) Минимальное значение последовательности.

Также для последовательности можно задать, циклична она или нет. Если последовательность циклична, то достигнув максимального значения последовательности, она перейдет к начальному значению последовательности. В случае, если последовательность нециклична и достигла своего конца, то будет сгенерирована ошибка (ORA-08004).

create sequence <имя>; -- создание последовательности

drop sequence <имя>; -- удаление последовательности

-- Получение следующего значения последовательности:

select <имя>.nextval from dual;

-- Занесение следующего значения последовательности в переменную:

select <имя>.nextval into <переменная> from dual;

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

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

В отличие от обычных таблиц реляционной БД, представление не является самостоятельной частью набора данных, хранящегося в базе. Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах. Изменение данных в реальной таблице БД немедленно отражается в содержимом всех представлений, построенных на основании этой таблицы.

Представления используются в запросах к БД тем же образом, как и обычные таблицы. В случае SQL-СУБД имя представления может находиться в SQL-запросе на месте имени таблицы (в предложении FROM). Запрос из представления обрабатывается СУБД точно так же, как запрос, в котором на месте имени представления находится подзапрос, определяющий это представление.

Оператор определения представлений Oracle использует следующий синтаксис:

CREATE [OR REPLACE] [{FORCE [ NO FORCE}] VIEW [ имя_схемы.] имя представления {{альтернативное_имя {альтернативное_имя...])] AS запрос WITH { READ ONLY | CHECK OPTION [CONSTRAINT ограничение целостности} ]

Лабораторная работа № 3

«Организация автоматического расчета сводных данных

и поддержки целостности данных с помощью триггеров»

Цель работы: познакомиться с триггерами в Оракл на примере модели склада.

Рассматриваемые объекты: группы товаров, товары.

Предметная область - складской учет.

Группы товаров

Код группы

Имя группы

Количество на складе

Сводная розничная стоимость

Наценка

(0…1)

Вводится вручную

Вводится вручную

Рассчитыва-ется автомати-чески

Рассчитывается автоматически

Вводится вручную

1

Телевизоры

15

532000,00

0.2

2

Фотоаппараты

25

212000,00

0.3

3

Холодильники

10

831200,00

0.15

Товары

Код товара

Наимено-вание

Код груп-пы

Приход-ная цена

Розничная цена

Кол-во на складе

Рассчиты-вается автомати-чески

Вводится вручную

Вводится вручную

Вводится вручную

Рассчиты-вается автомати-чески

Вводится вручную

1

Телевизор Philips

1

10000

12000

5

2

Телевизор Sony

1

12000

14400

3

3

Фото Panasonic

2

5000

6500

4

Задание:

  1. Организовать с помощью последовательностей автоматический ввод «кода товара» в таблице «Товары».

  2. Организовать автоматический расчет «Розничной цены» по формуле: «Розничная цена» = «Приходная цена» * (1 + «Наценка на группу»)

  3. Написать триггеры, которые при изменении количества товаров в таблице «Товары», меняют «количество товаров» и «сводную стоимость» для соответствующей группы в таблице «Группы товаров».

  4. Написать триггеры, которые при изменении наценки на товар в таблице «Группы товаров» меняют «розничные цены» в таблице «Товары» для соответствующей группы.

  5. При создании таблицы Товары нужно по умолчанию заполнить значение столбцов 0, а не NULL

  6. При изменении розничной цены должна пересчитываться сводная стоимость (создать триггер).

Лабораторная работа оценивается исходя из следующих параметров:

Общие требования:

  1. Нормализация таблиц, описание связей.

  2. Выбранные типы данных для описания свойств объектов и наложенные ограничения для поддержания целостности структуры.

  3. Качество построенных запросов, процедур, триггеров, представлений, обработок исключительных ситуаций.

Критерии оценки лабораторной работы № 3

1. Для получения минимального количества баллов необходимо:

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

2. Для получения баллов на оценку «хорошо» также необходимо:

создать дополнительные таблицы и связанные триггеры по заданию преподавателя.

3. Для получения баллов на оценку «отлично» дополнительно необходимо: создать дополнительные таблицы и связанные триггеры по заданию преподавателя; ответить на дополнительный теоретический вопрос.