- •Аннотация
- •Содержание
- •Введение
- •Безопасность.
- •Индексы.
- •Руководство пользователя (администратора).
- •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: стратегия резервного копирования
9. Индексы
Для обеспечения высокой производительности системы при росте объема данных была разработана стратегия индексации [10]. Проектирование индексов выполнялось на основе анализа планов выполнения (Execution Plans) типовых запросов, используемых в хранимых процедурах и представлениях.
В базе данных «CircuitDB» реализованы три типа индексов:
9.1. Кластеризованные индексы
Создаются автоматически при определении ограничений первичного ключа (PRIMARY KEY). В таблице [Stock].[Components] данные физически упорядочены на диске по полю ComponentID. Это обеспечивает максимально быстрый доступ к строке при выборке по идентификатору.
9.2. Некластеризованные индексы
Для оптимизации поиска по неключевым полям были созданы дополнительные структуры B-деревьев:
Уникальный индекс по артикулу (IX_Components_PartNumber)
Цель: Оптимизация процедуры поиска usp_SearchComponents и контроль целостности.
Обоснование: Поле PartNumber является основным критерием поиска для пользователей. Без индекса СУБД вынуждена выполнять полное сканирование таблицы, просматривая каждую строку. Создание индекса позволяет использовать операцию поиска по индексу.
Особенность: Индекс объявлен как UNIQUE, что создает дополнительное логическое ограничение, запрещая вставку дубликатов.
Покрывающий индекс (IX_Components_ManufacturerID_Includes)
Цель: Ускорение формирования отчетов и операций соединения (JOIN).
Обоснование: Большинство аналитических запросов (например, представление v_FullComponentReport) соединяют таблицу компонентов с таблицей производителей по ключу ManufacturerID.
Особенность (Покрывающий индекс): В индекс, помимо ключа, включены неключевые поля — IsActive и CategoryID.
Эффект: Это позволяет SQL Server извлекать все необходимые данные непосредственно из индекса, не обращаясь к основной таблице. Это снижает нагрузку на дисковую подсистему ввода-вывода.
10. Руководство пользователя (администратора)
Так как информационная система реализована на уровне базы данных, взаимодействие с ней осуществляется через среду SQL Server Management Studio.
10.1. Установка и развертывание системы
Для установки системы на сервер разработан пакет SQL-скриптов, обеспечивающий автоматизированное развертывание всех компонентов.
Порядок установки:
Запустить Microsoft SQL Server Management Studio.
Подключиться к целевому серверу (SQLExpress).
Последовательно открыть и выполнить файлы скриптов в строгом порядке нумерации:
01_CreateStructure.sql — Создание базы данных, схем [Ref] и [Stock], таблиц.
02_InsertData.sql — Первичное наполнение справочников и тестовых данных.
03_Procedures.sql — Загрузка бизнес-логики (хранимые процедуры).
04_ViewsAndFunctions.sql — Создание аналитических представлений и функций.
05_SecurityAndAdmin.sql — Настройка пользователей, прав доступа и индексов.
После успешного выполнения всех скриптов в Обозревателе объектов появится база данных «CircuitDB» с настроенной структурой.
Рисунок 8 – Структура базы данных после успешной установки
Средства автоматизации В дополнение к ручному режиму, для администратора системы разработаны пакетные командные файлы (Batch scripts), использующие утилиту командной строки sqlcmd [6]:
Install_DB.bat: Выполняет автоматическое развертывание системы «в один клик», последовательно запуская все скрипты (01–05).
AutoBackup.bat: Предназначен для настройки регулярного автоматического резервного копирования через Планировщик заданий Windows (Task Scheduler).
