курсач / Наволоцкий_1302_v2
.pdf
Рисунок 10 – Результаты генерации комплексной аналитической отчетности в режиме реального времени
Добавление новых данных
Ввод данных осуществляется через процедуру usp_CreateComponent,
которая гарантирует целостность данных и проверку на дубликаты. Процедура
возвращает ID созданной записи, подтверждая успех операции.
51
Рисунок 11 – Успешное добавление нового компонента |
|
|
Интеграция |
(Экспорт |
XML) |
Система поддерживает обмен данными в формате XML. Процедура экспорта выгружает текущее состояние склада в иерархическом виде, удобном для обработки внешними системами. Результат выполнения операции приведен на рисунке 10.
52
Рисунок 12 – Результат выполнения операции
Ссылку из результатов можно открыть и просмотреть. Структура получившегося файла после экспорта представлена на рисунке 13.
Рисунок 13 – Структура получившегося файла после экспорта
Интеграция с внешними системами (Импорт XML)
53
Система поддерживает автоматизированную загрузку данных от поставщиков в формате XML. Реализованный механизм импорта
(usp_ImportComponentsFromXML) обладает следующими особенностями:
Транзакционность: Весь пакет данных загружается в рамках одной транзакции. В случае ошибки в структуре файла изменения не применяются.
Интеллектуальное сопоставление (Smart Look-up): Входящий XML-
файл содержит текстовые названия (например, Manufacturer="Vishay"),
в то время как база данных оперирует числовыми идентификаторами.
Процедура автоматически находит соответствующие ID в справочниках схемы [Ref], обеспечивая ссылочную целостность.
На демонстрационном примере производится эмуляция поступления внешнего файла с компонентом артикула XML-IMPORT-TEST. После выполнения процедуры контрольная выборка подтверждает, что запись успешно добавлена в таблицу [Stock].[Components], а текстовые поля корректно преобразованы в связные ключи.
54
Рисунок 14 – Результат программного импорта данных из XML-структуры с автоматическим сопоставлением справочников
55
ЗАКЛЮЧЕНИЕ
В данной курсовой работе было рассмотрено проектирование базы данных для учета «БД схемотехнических компонентов для смешанного моделирования».
Разработка базы данных включала не только структурное проектирование (описание сущностей и таблиц), но и обеспечение ее функциональности и устойчивости. Были созданы объекты промежуточного слоя для унификации доступа к данным, реализована автоматическая стратегия резервирования посредством планировщика Windows, а также спроектирована ролевая модель безопасности для эффективного контроля доступа и соблюдения принципа наименьших привилегий.
56
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1.Горячев А. В., Новакова Н. Е. Распределенные базы данных.
Методические указания «ЛЭТИ», 2008, 42 с.
2.Разрешения и принципалы баз данных // Microsoft Learn [Электронный
ресурс] |
URL |
— https://learn.microsoft.com/ru-ru/sql/t- |
sql/statements/create-role-transact-sql (дата обращения: 10.12.2025).
3.Предоставление разрешений на объекты базы данных // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru-ru/sql/t- sql/statements/grant-transact-sql (дата обращения: 10.12.2025).
4.Имитация другого пользователя для проверки прав доступа // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru- ru/sql/t-sql/statements/execute-as-transact-sql (дата обращения:
10.12.2025).
5.Использование представлений для абстракции данных // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru-ru/sql/t- sql/statements/create-view-transact-sql (дата обращения: 10.12.2025).
6.sqlcmd Utility. Использование командной строки для выполнения
запросов T-SQL // Microsoft Learn [Электронный ресурс] URL
— https://learn.microsoft.com/ru-ru/sql/tools/sqlcmd/sqlcmd-utility (дата
обращения: 10.12.2025).
7.Ограничения первичных и внешних ключей // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru- ru/sql/relational-databases/tables/primary-and-foreign-key-constraints (дата обращения: 10.12.2025).
8.Поддержка XML в SQL Server (FOR XML) // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru- ru/sql/relational-databases/xml/for-xml-sql-server (дата обращения:
10.12.2025).
57
9. Обзор резервного копирования (SQL Server) // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru- ru/sql/relational-databases/backup-restore/backup-overview-sql-server (дата обращения: 10.12.2025).
10.Описание кластеризованных и некластеризованных индексов // Microsoft Learn [Электронный ресурс] URL — https://learn.microsoft.com/ru-ru/sql/relational-databases/indexes/clustered- and-nonclustered-indexes-described (дата обращения: 10.12.2025).
58
ПРИЛОЖЕНИЕ А
01_CreateStructure.sql
USE master;
GO
-- Логирование времени начала выполнения
PRINT '=========================================================== ==';
PRINT 'Начало выполнения скрипта создания структуры.'; PRINT 'Время запуска: ' + CONVERT(VARCHAR(30), GETDATE(), 120);
PRINT '=========================================================== ==';
GO
/* =============================================
1. УДАЛЕНИЕ И ПЕРЕСОЗДАНИЕ БД С ОПЦИЯМИ РАЗМЕЩЕНИЯ ФАЙЛОВ
============================================= */
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'CircuitDB')
BEGIN
PRINT 'Обнаружена старая версия БД. Удаление...';
-- Переводим базу в однопользовательский режим, чтобы закрыть все соединения
59
ALTER DATABASE CircuitDB SET SINGLE_USER WITH ROLLBACK
IMMEDIATE;
DROP DATABASE CircuitDB;
END
GO
PRINT 'Создание базы данных CircuitDB с настройками файлов... ' + CONVERT(VARCHAR(30), GETDATE(), 120); GO
-- ВАЖНО: Мы разделяем файлы данных и журнала.
CREATE DATABASE CircuitDB
ON PRIMARY
(
NAME = N'CircuitDB_Data',
FILENAME = N'C:\Program Files (x86)\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\CircuitDB.mdf',
SIZE = 10MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 5MB
)
LOG ON
(
NAME = N'CircuitDB_Log',
FILENAME = N'C:\Program Files (x86)\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\CircuitDB_log.ldf',
SIZE = 5MB,
MAXSIZE = 2GB,
FILEGROWTH = 1MB
60
