Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсач / Наволоцкий_1302_v2

.pdf
Скачиваний:
0
Добавлен:
27.12.2025
Размер:
2.69 Mб
Скачать

); GO

USE CircuitDB;

GO

/* =============================================

2. СОЗДАНИЕ СХЕМ (LOGICAL SEPARATION) Ref - Справочные данные (Reference)

Stock - Складские данные (Components)

============================================= */

PRINT 'Создание схем Ref и Stock... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

CREATE SCHEMA [Ref] AUTHORIZATION [dbo];

GO

CREATE SCHEMA [Stock] AUTHORIZATION [dbo];

GO

/* =============================================

3. СОЗДАНИЕ СПРАВОЧНИКОВ (Схема Ref)

============================================= */ PRINT 'Создание таблиц справочников... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

-- Производители

61

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)

);

-- Категории

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)

);

-- Типы корпусов

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)

);

-- Типы симуляции

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)

62

); GO

/* =============================================

4. СОЗДАНИЕ ОСНОВНЫХ ТАБЛИЦ (Схема Stock)

============================================= */ PRINT 'Создание таблиц данных (Components)... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

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),

63

CONSTRAINT FK_Components_Categories FOREIGN KEY (CategoryID)

REFERENCES [Ref].[Categories] (CategoryID),

CONSTRAINT FK_Components_PackageTypes FOREIGN KEY (PackageID)

REFERENCES [Ref].[PackageTypes] (PackageID)

); GO

/* =============================================

5. СОЗДАНИЕ ДЕТАЛИЗАЦИИ (Схема Stock)

============================================= */ PRINT 'Создание таблиц параметров и моделей... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

-- Параметры

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)

64

REFERENCES [Stock].[Components] (ComponentID)

ON DELETE CASCADE

);

-- Модели

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)

); GO

PRINT '=========================================================== ==';

PRINT 'Скрипт 01 выполнен успешно.';

65

PRINT 'Время завершения: ' + CONVERT(VARCHAR(30), GETDATE(),

120);

PRINT

'===========================================================

==';

GO

66

02_InsertData.sql

/*

============================================================

=====================

СКРИПТ 02: НАПОЛНЕНИЕ ДАННЫМИ (INSERT DATA)

Логика: Загрузка справочников (Ref) и данных (Stock)

Объем: Расширенный набор данных (20+ компонентов) для демонстрации отчетов

============================================================

===================== */

USE CircuitDB;

GO

PRINT '=========================================================== ==';

PRINT 'Начало наполнения базы данными.';

PRINT 'Время запуска: ' + CONVERT(VARCHAR(30), GETDATE(), 120);

PRINT '=========================================================== ==';

GO

/* =============================================

1. ОЧИСТКА ТАБЛИЦ (CLEANUP)

============================================= */

67

PRINT 'Очистка старых данных... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

-- Отключаем ограничения

ALTER TABLE [Stock].[ComponentModels] NOCHECK CONSTRAINT

ALL;

ALTER TABLE [Stock].[ComponentParams] NOCHECK CONSTRAINT

ALL;

ALTER TABLE [Stock].[Components] NOCHECK CONSTRAINT ALL;

-- Удаляем данные

DELETE FROM [Stock].[ComponentModels];

DELETE FROM [Stock].[ComponentParams];

DELETE FROM [Stock].[Components];

DELETE FROM [Ref].[SimulationTypes];

DELETE FROM [Ref].[PackageTypes];

DELETE FROM [Ref].[Categories];

DELETE FROM [Ref].[Manufacturers];

-- Сброс счетчиков ID

DBCC CHECKIDENT ('[Stock].ComponentModels', RESEED, 0);

DBCC CHECKIDENT ('[Stock].ComponentParams', RESEED, 0);

DBCC CHECKIDENT ('[Stock].Components', RESEED, 0);

DBCC CHECKIDENT ('[Ref].SimulationTypes', RESEED, 0);

DBCC CHECKIDENT ('[Ref].PackageTypes', RESEED, 0);

DBCC CHECKIDENT ('[Ref].Categories', RESEED, 0);

DBCC CHECKIDENT ('[Ref].Manufacturers', RESEED, 0);

68

-- Включаем ограничения

ALTER TABLE [Stock].[ComponentModels] WITH CHECK CHECK

CONSTRAINT ALL;

ALTER TABLE [Stock].[ComponentParams] WITH CHECK CHECK

CONSTRAINT ALL;

ALTER TABLE [Stock].[Components] WITH CHECK CHECK CONSTRAINT

ALL;

GO

/* =============================================

2. ЗАПОЛНЕНИЕ СПРАВОЧНИКОВ (Схема Ref)

============================================= */ PRINT 'Заполнение справочников (Schema Ref)... ' + CONVERT(VARCHAR(30), GETDATE(), 120);

GO

-- 2.1. Производители

INSERT INTO [Ref].[Manufacturers] (Name, Website) VALUES

(N'Texas Instruments', N'https://www.ti.com'),

(N'Vishay', N'https://www.vishay.com'),

(N'Microchip Technology', N'https://www.microchip.com'),

(N'Analog Devices', N'https://www.analog.com'),

(N'STMicroelectronics', N'https://www.st.com'),

(N'NXP Semiconductors', N'https://www.nxp.com'),

(N'Murata', N'https://www.murata.com'),

(N'ON Semiconductor', N'https://www.onsemi.com');

-- 2.2. Категории

69

INSERT INTO [Ref].[Categories] (Name, Description) VALUES (N'Операционные усилители', N'Аналоговые усилители'), (N'Резисторы', N'Пассивные компоненты'), (N'Микроконтроллеры', N'Программируемые ИС'), (N'Конденсаторы', N'Накопители заряда'),

(N'Транзисторы', N'Биполярные и полевые транзисторы'), (N'Диоды', N'Полупроводниковые диоды'), (N'Стабилизаторы', N'LDO и DC-DC преобразователи');

-- 2.3. Корпуса

INSERT INTO [Ref].[PackageTypes] (Name, MountType) VALUES

(N'DIP-8', N'THT'),

(N'SOIC-8', N'SMD'),

(N'0603', N'SMD'), (N'TQFP-32', N'SMD'), (N'SOT-23', N'SMD'), (N'TO-220', N'THT'), (N'0805', N'SMD'), (N'LQFP-48', N'SMD'), (N'SMA', N'SMD'), (N'SOT-223', N'SMD'), (N'SOD-123', N'SMD');

-- 2.4. Типы симуляции

INSERT INTO [Ref].[SimulationTypes] (Name, Engine) VALUES

(N'SPICE', N'LTSpice'),

(N'IBIS', N'Signal Integrity');

GO

70

Соседние файлы в папке курсач