- •Аннотация
- •Содержание
- •Введение
- •1. Формулировка задания
- •1.1. Задание
- •1.2. Структура идз
- •Описание предметной области
- •Проектирование базы данных
- •Создание бАзы данных
- •Создание таблиц и ограничений целостности
- •Заполнение таблиц данными
- •Заполнение таблицы «Staff» (Сотрудники)
- •Заполнение таблицы «Tables» (Столы):
- •Заполнение таблицы «Categories» (Категории)
- •Заполнение таблицы «MenuItems» (Меню)
- •Заполнение таблицы «Orders» (Заказы)
- •Заполнение таблицы «OrderItems» (Позиции заказа)
- •Заполнение таблицы «Payments» (Платежи)
- •Разработка объектов промежуточного слоя
- •Хранимые процедуры
- •Процедура «CreateOrder» для создания нового заказа
- •Процедура «AddItemToOrder» для добавления позиций в заказ
- •Процедура «SetOrderWaitingForPayment» для перевода заказа в статус ожидания оплаты
- •Процедура «PayOrder» для оплаты заказа
- •Представления
- •Представление «ActiveOrders» для просмотра активных заказов
- •Представление «WaiterDailyRevenue», показывающее выручку, принесённую каждым из официантов
- •Представление «DailyOrderStats», показывающее по дням заработок ресторана, оплаченные заказы, средний чек
- •Представление «OrdersByWaiterStatus», показывающее количество заказов, обслуженных каждым из официантов по статусам заказа
- •Функции
- •Скалярная функция «OrderTotal» для подсчета стоимости заказа
- •Табличная функция «GetOrdersWithTotal», которая возвращает блюда по заказам
- •Табличная функция «GetMenuItemsByAvailability», показывающая оставшиеся блюда
- •Табличная функция «GetLastOrderItems» возвращающая последние блюда в заказах
- •Скалярная функция «MenuItemSalesPaid» для подсчета проданных позиций блюд в день
- •Разработка триггеров
- •Триггер «InsertWaiterTable» для вставки в таблицу WaiterTables, когда происходит заказ
- •Триггер «CheckStock», уменьшающий количество блюд в MenuItems и предупреждающий, если блюда закончились
- •Триггер «PreventWaitingPaymentWithoutItems», проверяющий пустой заказ
- •Разработка стратегии резервного копирования и восстановления
- •Процедура полного резервного копирования
- •Процедура дифференциального резервного копирования
- •Процедура резервного копирования журнала транзакций
- •Процедура тестирования всех бэкапов
- •Автоматизация через sql server agent
- •Процедура восстановления
- •Заключение
- •Список использованных источников
Процедура восстановления
Данная процедура выполняет восстановление полной версии бэкапа.
USE master;
GO
CREATE OR ALTER PROCEDURE dbo.sp_RestoreSimple
@BackupPath NVARCHAR(500)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
ALTER DATABASE [DataBase_Restaurant]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [DataBase_Restaurant]
FROM DISK = @BackupPath
WITH REPLACE, RECOVERY, STATS = 5;
ALTER DATABASE [DataBase_Restaurant] SET MULTI_USER;
PRINT 'База данных восстановлена из файла: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Ошибка восстановления: ' + ERROR_MESSAGE();
RAISERROR('Восстановление прервано.', 16, 1);
END CATCH
END;
GO
Восстановим одну из версий бэкапа, хранящейся на диске D (рис. 48):
EXEC dbo.sp_RestoreSimple 'D:\Backup\DataBase_Restaurant.bak';
Теперь перейдем в диск C, где хранилась БД и увидим, что файл обновился (рис. 49)
Заключение
В ходе выполнения индивидуального домашнего задания была успешно разработана и реализована реляционная база данных «Ресторан», предназначенная для информационной поддержки ключевых процессов заведения общественного питания.
Была создана структура из восьми взаимосвязанных таблиц, охватывающих управление персоналом, столовым фондом, меню, заказами и финансовыми операциями. Для обеспечения надежности и согласованности данных были применены различные ограничения целостности. Особое внимание уделено разработке объектов промежуточного слоя, которые обеспечивают гибкость и безопасность работы с данными.
В завершение была разработана и протестирована стратегия резервного копирования на основе хранимой процедуры с механизмом повторных попыток.
Список использованных источников
Draw.io. — 2025. — URL: https://www.drawio.com/
Горячев А. В., Новакова Н. Е. Распределенные базы данных: методические указания к лабораторным работам / А. В. Горячев, Н. Е. Новакова. — СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2008. — 48 с.
Образцы диаграмм сущность. — 2025. — URL: ссылка
Организация ресторанного обслуживания. — 2025. — URL: https://frost26.ru/blog/biznes/organizatsiya-restorannogo-obsluzhivaniya/#priem-zakazov
Примеры меню ресторанов. — 2025. — URL: https://www.restoclub.ru/uploads/menufile/b/7/5/d/b75d2567db42c95fd1375e4d80cd869f.pdf
