Вы находитесь на странице: 1из 7

Разработка SQL-сценария на языке Transact-SQL

Цель работы:
Разработать набор скриптов с использованием средств языка определения и
манипулирования данными T-SQL, реализующих работу базы данных
«Библиотека». Разработать SQL-запросы на добавление, обновление и выборку
данных
Задание:
Разработать SQL-сценарий на языке Transact-SQL, который включает:
1. Создание файла базы данных Библиотека в Microsoft SQL Server,
включающее указание параметров к физическому файлу (имя, размещение,
размеры файла) и указание параметров к файлу журнала транзакций (имя,
размещение, размеры файла);
2. Создание таблицы Читатели. Таблица включает следующие атрибуты:
ФИО, должность, место работы, город, адрес, паспортные данные, дата рождения,
телефон. В таблице определить первичный ключ, как уникальное целочисленное
поле, значения которого автоматически должны изменяться;
3. Создание таблицы Выдача литературы. Таблица включает следующие
атрибуты: дата выдачи, дата возвращения, читатель, название литературы,
категория литературы, сумма к оплате. В таблице выполнить:
 определить первичный ключ, как уникальное целочисленное поле,
значения которого автоматически должны изменяться;
 определить внешний ключ и установить для него каскадное
обновление и удаление данных;
 сумма к оплате; его значение не вводится, а является вычисляемым с
использованием функции пользователя;
4. Создать функцию пользователя Расчет_суммы для базы данных
Библиотека.
 функция должна иметь три входных параметра: Дата выдачи, Дата
возвращения, Категория литературы (Современная, старинная,
имеющая высокую ценность);
 функция должна возвращать значение Суммы к оплате как
действительное число;
 внутри функции необходимо рассчитать Длительность взятия
литературы на дом и в зависимости от приведенных условий
рассчитать значение Цены оплаты в сутки:
 Если Категория литературы = «Современная», то Цена в сутки = 10 руб.
 Если Категория литературы = «Старинная», то Цена в сутки = 50 руб.
 Если Категория литературы = «Имеющая высокую ценность», то Цена в
сутки = 100 руб.
 Посчитать Сумму к оплате.
 Применить функцию в таблице Выдача литературы для расчета поля
Сумма к оплате;
5. Создать новое имя входа на сервер Microsoft SQL Server Петров_ПП с
паролем, создать нового пользователя Иванов_ИИ к базе данных Библиотека,
создать новую роль – Регистратор и присвоить роли все права доступа к таблице
Читатели и Выдача литературы;
6. Создать триггер под именем Триггер_upd на обновление строк в таблице
Читатели. Допустим, что все читатели старше 50 лет переехали из города
Хабаровск в город Калининград. Выполнить, с помощью триггера проверку по
условию: если читатель, проживает в г. Хабаровск и его возраст меньше 50 лет –
выдать на экран сообщение «Запрос на изменение выполнен», а иначе –
выполнить обновление данных;
7. Создать SQL-запрос на обновление данных в таблице Читатели – всех
читателей из города Хабаровск «переместить» в город Калининград;
8. Создать SQL-запрос на добавление данных в таблицу Выдача
литературы;
9. Создать SQL-запрос, с помощью которого вывести список всех
Читателей, с указанием их фамилий и должностей, и общей суммы задолженности
за 2022 год, если количество дней взятия книг превысило более 7 дней.

Выполнение:
Создаем файлы базы данных Библиотека, включающее указание параметров
к физическому файлу (имя, размещение, размеры файла) и указание параметров к
файлу журнала транзакций (имя, размещение, размеры файла):

Рисунок 1 – Код создания файла БД

Создаем таблицу Читатели со следующими атрибутами: ФИО, должность,


место работы, город, адрес, паспортные данные, дата рождения, телефон.
Определяем первичный ключ.
Рисунок 2 – Код создания таблицы Читатели
Создаем таблицу Выдача литературы со следующими атрибутами: дата
выдачи, дата возвращения, читатель, название литературы, категория литературы,
сумма к оплате. Определяем первичный ключ. Также определяем внешний ключ и
устанавливаем для него каскадное обновление и удаление данных.

Рисунок 3 – Код создания таблицы Выдача литературы

Создаем функцию пользователя Расчет_суммы и применяем её в таблице


Выдача литературы для расчета поля Сумма к оплате.

Рисунок 4 – Код создания функции Расчет суммы

Создаем новое имя входа на сервер Microsoft SQL Server Петров_ПП с


паролем и нового пользователя Иванов_ИИ для базы данных Библиотека.
Рисунок 5 – Код создания нового имени входа на сервер и нового
пользователя БД
Создаем новую роль – Регистратор и присваиваем ей все права доступа к
таблице Читатели и Выдача литературы.

Рисунок 6 – Код создания роли Регистратор

Создание триггера под именем Триггер_upd на обновление строк в таблице


Читатели, по условию: если читатель проживает в г. Хабаровск и его возраст
меньше 50 лет – выдать на экран сообщение «Запрос на изменение выполнен», а
иначе – выполнить обновление.

Рисунок 7 – Код создания триггера


Рисунок 8 – Местонахождение триггера
При изменении данных в таблице с помощью пользовательского
интерфейса и соблюдения нужных условий, триггер срабатывает, но не выводит
сообщения «Запрос на изменение выполнен», но при использовании SQL-запроса
на обновление данных в таблице сообщение выводится.

Рисунок 9 – Запрос на изменение с выполнением условия триггера и


результат выполнения

Создание SQL-запроса на добавление данных в таблицу Читатели.

Рисунок 10 – Код запроса на добавление в таблицу Читатели и результат


выполнения

Создание SQL-запроса на обновление данных в таблице Читатели – всех


читателей из города Хабаровск «переместить» в город Калининград.
Рисунок 11 – Код запроса на обновление данных в таблице Читатели и
результат выполнения

Создание SQL-запроса на добавление данных в таблицу Выдача


литературы.

Рисунок 12 – Код запроса на добавление в таблицу Выдача литературы и


результат выполнения

Создание SQL-запроса, с помощью которого выводится список всех


Читателей, с указанием их фамилий и должностей, и общей суммы задолженности
за 2022 год, если количество дней взятия книг превысило более 7 дней.
Рисунок 13 – Код запроса на вывод по условию и результат выполнения

Вывод: в ходе лабораторной работы разрабатывался набор скриптов с


использованием средств языка определения и манипулирования данными T-SQL,
реализующих работу базы данных.

Вам также может понравиться