Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение3.Х.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
806.75 Кб
Скачать
        1. Задания для самостоятельного решения

  1. Создать структуру базы данных, разработанную в результате выполнения лабораторной работы №2, в среде СУБД с применением команд управления структурой. Желательно дать таблицам и их полям названия латинскими буквами, например транслитерацией. В таблицах должны быть определены первичный и внешние ключи.

  2. Заполнить таблицы БД с применением команд манипулирования данными.

  3. Разработать запрос, выводящий на экран универсальное отношение.

  4. Создать представление, выводящее на экран универсальное отношение.

  5. Разработать запрос, указанный после универсального отношения (см. задание к лабораторной работе №2).

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

  1. Что означает выражение «полная функциональная зависимость» в отношении полей таблицы?

  2. Что означает выражение «таблица находится в первой нормальной форме»?

  3. Что означает выражение «таблица находится во второй нормальной форме»?

  4. Что означает выражение «таблица находится в третьей нормальной форме»?

  5. Что означает выражение «таблица находится в нормальной форме Бойса-Кодда»?

  6. Что такое первичный ключ? Составной первичный ключ?

  7. Что такое внешний ключ?

  8. Что такое универсальное отношение?

        1. Содержание отчета

Отчет о лабораторной работе должен включать: цель работы, постановку задачи, даталогическую схему базы данных, полученной при выполнении лабораторной работы №2 и разрабатываемые SQL команды и запросы.

    1. Лабораторная работа №3. Разработка системы протоколирования операций над данными реляционной таблицы с использованием триггеров

Цель работы: ознакомиться с системой триггеров современных СУБД, приобрести практические навыки по разработке триггеров и реализации системы протоколирования на их основе.

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

Задание для самостоятельного решения:

  1. Создать таблицу исходных данных «mydata» (команда CREATE TABLE), содержащую следующие атрибуты:

    1. ID (integer) – уникальный идентификатор, являющийся первичным ключом таблицы.

    2. STRDATA (varchar(100)) – строковый атрибут

    3. INTDATA (integer)– числовой атрибут

    4. FLOATDATA (float) – числовой атрибут

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

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

  4. Ввести в исходную таблицу целочисленное поле (команда ALTER TABLE). С помощью соответствующих триггеров обеспечить автоматическое заполнение данного поля следующими значениями: при вставке новой записи поле инициализируется значением 0. При изменении данных строки значение увеличивается на единицу, тем самым поле хранит текущее количество изменений каждой строки таблицы.

  5. Создать дополнительную таблицу «mydata2», содержащую все поля исходной таблицы и поле CHANGETIME (datetime), являющееся первичным ключом.

  6. Разработать триггер уровня строки, обеспечивающий при изменении данных исходной таблицы создание резервной записи в таблице «mydata2», содержащей предыдущие значения атрибутов, поле CHANGETIME заполняется системным временем (функция GETDATE ()), при этом резервная копия создается только в случае, если выполняется дополнительное условия (см. табл. 2).

Таблица 2 

Вариант

Условие

1

Уникальный идентификатор записи изменяется.

2

Значение поля INTDATA становится меньше.

3

Если длина строки в поле STRDATA увеличивается.

4

Значение поля INTDATA меняет знак.

5

Сумма полей INTDATA и FLOATDATA увеличивается.

6

Значение поля FLOATDATA устанавливается в NULL.

7

Значения всех полей кроме ID изменяется.

8

Изменение значений полей не происходит.