- •Аннотация
- •Содержание
- •Введение
- •Безопасность.
- •Индексы.
- •Руководство пользователя (администратора).
- •1. Описание предметной области
- •2. Проектирование базы данных
- •2.1. Схема базы данных
- •2.2. Концептуальное проектирование
- •2.3. Обоснование нормализации (3нф)
- •3. Создание базы данных
- •4. Создание таблиц и ограничений целостности
- •5. Заполнение таблиц данными
- •6. Объекты промежуточного слоя
- •6.1. Пользовательские функции (udf)
- •6.2. Представления (Views)
- •6.3. Хранимые процедуры и подсистема xml
- •7. Стратегия резервного копирования
- •Часть 4: стратегия резервного копирования
- •8. Безопасность
- •8.1. Уровни аутентификации и авторизации
- •8.2. Ролевая модель разграничения доступа
- •8.3. Тестирование системы безопасности
- •9. Индексы
- •9.1. Кластеризованные индексы
- •9.2. Некластеризованные индексы
- •10. Руководство пользователя (администратора)
- •10.1. Установка и развертывание системы
- •10.2. Сценарии работы с данными
- •Заключение
- •Список используемых источников
- •Приложение а
- •Часть 1: оптимизация (индексы)
- •Часть 2: безопасность (без dbo)
- •Часть 3: ролевая модель (schema permissions)
- •Часть 4: стратегия резервного копирования
6.2. Представления (Views)
Представления используются для упрощения доступа к данным и формирования отчетов [5]. В проекте реализованы запросы различной сложности:
Сводный отчет — [Stock].[v_FullComponentReport] Реализует классическое соединение (INNER JOIN) четырех таблиц для отображения полной информации о компоненте с расшифровкой всех справочных полей (производитель, категория, корпус).
Инженерный фильтр — [Stock].[v_ActiveComponentsSpiceready] Предоставляет выборку только активных компонентов, имеющих математическую модель SPICE. Используется для быстрой фильтрации данных в инженерных подсистемах.
Аналитическое представление — [Stock].[v_CategoryAnalytics] Демонстрирует использование продвинутых конструкций SQL. Запрос построен с применением обобщенных табличных выражений (CTE) для предварительной агрегации данных. Также используется предложение HAVING для пост-фильтрации сгруппированных данных и вычисления процента активных компонентов внутри каждой категории.
6.3. Хранимые процедуры и подсистема xml
Хранимые процедуры образуют основной интерфейс (API) для изменения данных, обеспечивая безопасность и целостность информации. Прямой доступ к таблицам для пользователей закрыт.
Управление транзакциями и обработка ошибок. В процедурах модификации данных (usp_CreateComponent, usp_ImportComponentsFromXML) реализован механизм явного управления транзакциями:
Все операции выполняются внутри блока BEGIN TRANSACTION ... COMMIT.
Используется конструкция BEGIN TRY ... BEGIN CATCH для перехвата ошибок. В случае возникновения сбоя (например, нарушение уникальности или разрыв соединения) выполняется автоматический откат транзакции (ROLLBACK), что гарантирует атомарность операций: данные либо сохраняются полностью, либо не сохраняются вовсе.
Поиск и фильтрация. Процедура [Stock].[usp_SearchComponents] реализует логику динамической фильтрации. Использование параметров по умолчанию (NULL) позволяет использовать одну процедуру для различных сценариев поиска: по артикулу, по производителю или комбинированно. Также процедура генерирует временную метку выполнения запроса «на лету» средствами функции GETDATE().
Интеграция с внешними системами (XML). Для обмена данными реализованы процедуры импорта и экспорта [8]:
Экспорт (usp_ExportReportToXML): Использует конструкцию FOR XML PATH для преобразования реляционных табличных данных в иерархический XML-формат.
Импорт (usp_ImportComponentsFromXML): Выполняет разбор входящего XML-документа с помощью метода .nodes(). Процедура автоматически сопоставляет текстовые названия из файла с числовыми идентификаторами справочников (Look-up), обеспечивая корректную загрузку данных даже из внешних источников, не знающих о внутренней структуре ID базы данных.
На рисунке 3 показан получившийся xml-файл в среде ms service
Рисунок 3 – Получившийся xml-документ
Этот документ можно открыть в ms excel и удобно просматривать таблицу.
Сконвертированный xml-файл, открытый через ms excel показан на рисунке 4.
Рисунок 4 – сконвертированный xml-файл, открытый через ms excel
