- •Аннотация
- •Содержание
- •Введение
- •Безопасность.
- •Индексы.
- •Руководство пользователя (администратора).
- •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: стратегия резервного копирования
2. Проектирование базы данных
2.1. Схема базы данных
На рисунке 1 представлена логически спроектированная база данных для курсовой работы.
Рисунок 1 – логически спроектированная база данных для курсовой работы
2.2. Концептуальное проектирование
Ниже приведена таблица 1, описывающая производителей.
Таблица 1
Описание структуры таблицы БД |
Наименование таблицы БД: Производители |
Имя таблицы: Manufacturers
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 1 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
ManufacturerID |
int |
P |
NOT NULL |
|
|||||
|
2 |
Название компании |
Name |
nvarchar(100) |
|
NOT NULL |
|
|||||
|
3 |
Веб-сайт |
Website |
nvarchar(255) |
|
NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Производители
CREATE TABLE [Ref].[Manufacturers] (
ManufacturerID INT IDENTITY(1,1) NOT NULL,
Name NVARCHAR(100) NOT NULL,
Website NVARCHAR(255) NULL,
CONSTRAINT PK_Manufacturers PRIMARY KEY (ManufacturerID)
);
Ниже приведена таблица 2, описывающая категории компонентов.
Таблица 2
Описание структуры таблицы БД |
Наименование таблицы БД: Категории компонентов
|
Имя таблицы: Categories
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 2 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
CategoryID |
int |
P |
NOT NULL |
|
|||||
|
2 |
Название категории |
Name |
nvarchar(100) |
|
NOT NULL |
|
|||||
|
3 |
Описание |
Description |
nvarchar(500) |
|
NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Категории
CREATE TABLE [Ref].[Categories] (
CategoryID INT IDENTITY(1,1) NOT NULL,
Name NVARCHAR(100) NOT NULL,
Description NVARCHAR(500) NULL,
CONSTRAINT PK_Categories PRIMARY KEY (CategoryID)
);
Ниже приведена таблица 3, описывающая типы корпусов.
Таблица 3
Описание структуры таблицы БД |
Наименование таблицы БД: Типы корпусов
|
Имя таблицы: PackageTypes
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 3 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
PackageID |
int |
P |
NOT NULL |
|
|||||
|
2 |
Название корпуса |
Name |
nvarchar(50) |
|
NOT NULL |
|
|||||
|
3 |
Тип монтажа |
MountType |
nvarchar(50) |
|
NOT NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Типы корпусов
CREATE TABLE [Ref].[PackageTypes] (
PackageID INT IDENTITY(1,1) NOT NULL,
Name NVARCHAR(50) NOT NULL,
MountType NVARCHAR(50) NOT NULL,
CONSTRAINT PK_PackageTypes PRIMARY KEY (PackageID)
);
Ниже приведена таблица 4, описывающая типы моделей.
Таблица 4
Описание структуры таблицы БД |
Наименование таблицы БД: Типы моделей
|
Имя таблицы: SimulationTypes
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 4 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
SimTypeID |
int |
P |
NOT NULL |
|
|||||
|
2 |
Название стандарта |
Name |
nvarchar(50) |
|
NOT NULL |
|
|||||
|
3 |
Движок симуляции |
Engine |
nvarchar(50) |
|
NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Типы симуляции
CREATE TABLE [Ref].[SimulationTypes] (
SimTypeID INT IDENTITY(1,1) NOT NULL,
Name NVARCHAR(50) NOT NULL,
Engine NVARCHAR(50) NULL,
CONSTRAINT PK_SimulationTypes PRIMARY KEY (SimTypeID)
);
Ниже приведена таблица 5, описывающая компоненты.
Таблица 5
Описание структуры таблицы БД |
Наименование таблицы БД: Компоненты
|
Имя таблицы: Components
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 5 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
ComponentID |
int |
P |
NOT NULL |
|
|||||
|
2 |
Артикул (Part Number) |
PartNumber |
nvarchar(100) |
|
NOT NULL |
|
|||||
|
3 |
ID Производителя |
ManufacturerID |
int |
F |
FK к Manufacturers |
|
|||||
|
4 |
ID Категории |
CategoryID |
int |
F |
FK к Categories |
|
|||||
|
5 |
ID Корпуса |
PackageID |
int |
F |
FK к PackageTypes |
|
|||||
|
6 |
Описание |
Description |
nvarchar(1000) |
|
NULL |
|
|||||
|
7 |
Статус активности |
IsActive |
bit |
|
DEFAULT (1) |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
CREATE TABLE [Stock].[Components] (
ComponentID INT IDENTITY(1,1) NOT NULL,
PartNumber NVARCHAR(100) NOT NULL,
-- Ссылки на справочники из схемы Ref
ManufacturerID INT NOT NULL,
CategoryID INT NOT NULL,
PackageID INT NOT NULL,
Description NVARCHAR(1000) NULL,
IsActive BIT DEFAULT 1 NOT NULL,
CONSTRAINT PK_Components PRIMARY KEY (ComponentID),
-- FK Constraints с указанием схемы
CONSTRAINT FK_Components_Manufacturers FOREIGN KEY (ManufacturerID)
REFERENCES [Ref].[Manufacturers] (ManufacturerID),
CONSTRAINT FK_Components_Categories FOREIGN KEY (CategoryID)
REFERENCES [Ref].[Categories] (CategoryID),
CONSTRAINT FK_Components_PackageTypes FOREIGN KEY (PackageID)
REFERENCES [Ref].[PackageTypes] (PackageID)
);
Ниже приведена таблица 6, описывающая технические параметры.
Таблица 6
Описание структуры таблицы БД |
Наименование таблицы БД: Технические параметры
|
Имя таблицы: ComponentParams
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 6 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
ParamID |
int |
P |
NOT NULL |
|
|||||
|
2 |
ID Компонента |
ComponentID |
int |
F |
FK к Components (ON DELETE CASCADE) |
|
|||||
|
3 |
Название параметра |
ParamName |
nvarchar(100) |
|
NOT NULL |
|
|||||
|
4 |
Значение |
ParamValue |
nvarchar(100) |
|
NOT NULL |
|
|||||
|
5 |
Ед. измерения |
Unit |
nvarchar(20) |
|
NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Параметры
CREATE TABLE [Stock].[ComponentParams] (
ParamID INT IDENTITY(1,1) NOT NULL,
ComponentID INT NOT NULL,
ParamName NVARCHAR(100) NOT NULL,
ParamValue NVARCHAR(100) NOT NULL,
Unit NVARCHAR(20) NULL,
CONSTRAINT PK_ComponentParams PRIMARY KEY (ParamID),
CONSTRAINT FK_ComponentParams_Components FOREIGN KEY (ComponentID)
REFERENCES [Stock].[Components] (ComponentID)
ON DELETE CASCADE
);
Ниже приведена таблица 7, описывающая модели компонентов.
Таблица 7
Описание структуры таблицы БД |
Наименование таблицы БД: Модели компонентов
|
Имя таблицы: ComponentModels
|
||||||||||
Дата разработки:
|
||||||||||||
Порядковый номер таблицы: 7 |
|
|||||||||||
|
|
|
|
|
|
|
|
|||||
|
№ п/п |
Наименование поля |
Спецификация данных |
|
||||||||
|
Имя поля |
Тип данных |
Ключ |
Ограничения целостности |
|
|||||||
|
1 |
Идентификатор |
ModelID |
int |
P |
NOT NULL |
|
|||||
|
2 |
ID Компонента |
ComponentID |
int |
F |
FK к Components (ON DELETE CASCADE) |
|
|||||
|
3 |
ID Типа модели |
SimTypeID |
int |
F |
FK к SimulationTypes |
|
|||||
|
4 |
Код модели (Текст) |
ModelCode |
nvarchar(max) |
|
NULL |
|
|||||
|
5 |
Путь к файлу |
FilePath |
nvarchar(255) |
|
NULL |
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
-- Модели
CREATE TABLE [Stock].[ComponentModels] (
ModelID INT IDENTITY(1,1) NOT NULL,
ComponentID INT NOT NULL,
SimTypeID INT NOT NULL, -- Ссылка на Ref
ModelCode NVARCHAR(MAX) NULL,
FilePath NVARCHAR(255) NULL,
CONSTRAINT PK_ComponentModels PRIMARY KEY (ModelID),
CONSTRAINT FK_ComponentModels_Components FOREIGN KEY (ComponentID)
REFERENCES [Stock].[Components] (ComponentID)
ON DELETE CASCADE,
CONSTRAINT FK_ComponentModels_SimulationTypes FOREIGN KEY (SimTypeID)
REFERENCES [Ref].[SimulationTypes] (SimTypeID)
);
На основе созданных таблиц схема база данных из SQL Server Management Studio представлена на рисунке 2.
Рисунок 2 – база данных из SQL Server Management Studio
