Добавил:
владимир Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчеты по лабам / СУБД_ЛР6_вар3.docx
Скачиваний:
5
Добавлен:
21.06.2025
Размер:
2 Мб
Скачать
☆

Задание 2.

Для добавленной в 4-й лабораторной работе таблицы создайте любой триггер.

Сделал триггер, который запрещает добавлять студента с именем “Волков Александр Сергеевич”

CREATE OR REPLACE FUNCTION block_volkov()

RETURNS TRIGGER AS $$

BEGIN

IF NEW.last_name = 'Волков'

AND NEW.first_name = 'Александр'

AND NEW.patronymic = 'Сергеевич' THEN

RAISE EXCEPTION 'Добавление Волкова Александра Сергеевича в таблицу студентов запрещено!';

END IF;

RETURN NEW;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER prevent_volkov

BEFORE INSERT OR UPDATE ON Students

FOR EACH ROW EXECUTE FUNCTION block_volkov();

INSERT INTO students (student_id, last_name, first_name, patronymic, students_group_number, birthday, email, partner)

VALUES ('703942', 'Волков', 'Александр', 'Сергеевич', 'ПИН-33', '1995-02-05', 'email@example.com', NULL);

Контрольные вопросы

  1. В чем отличие между процедурой и функцией?

  2. Что такое курсоры?

  3. Для каких целей используют триггеры?

  4. Возможно ли написать триггерную функцию на языке SQL?

  5. Для чего нужны представления?

1. В чем отличие между процедурой и функцией?

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

2. Что такое курсоры?

Курсоры — это объекты, которые позволяют программам обрабатывать наборы строк, возвращаемых запросом, по одной строке за раз. Курсоры позволяют вам итеративно проходить через результаты выборки, что полезно для выполнения более сложных операций с каждой строкой.

3. Для каких целей используют триггеры?

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

4. Возможно ли написать триггерную функцию на языке SQL?

Да, в большинстве систем управления базами данных (СУБД) можно написать триггерные функции на языке SQL. Однако многие СУБД поддерживают написание триггеров на других языках программирования (например, PL/pgSQL в PostgreSQL), что предоставляет больше возможностей для управления логикой триггера.

5. Для чего нужны представления?

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

Соседние файлы в папке отчеты по лабам