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