ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.03.2024
Просмотров: 32
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича»
Институт непрерывного образования (ИНО)
КОНТРОЛЬНАЯ РАБОТА
по дисциплине
«Автоматизация управления жизненным циклом изделия»
Вариант 9
Студент: Дудкин А.С.
Группа: ИБ-87с
Номер зачетной книжки: 1702019
Санкт-Петербург
2022 г
Задание работы
Разработать электронный паспорт изделия, который должен отражать информацию электронного паспорта, содержащего следующие параметры:
-
Номер изделия; -
Дата производства; -
Дата продажи; -
Цена изделия; -
ФИО продавца; -
Наименование регламентной работы; -
Дата и время выполнения регламентной работы; -
ФИО сервисного инженера.
Ход работы
-
Опишем классы базы данных и их связи
Классы базы данных
Engineer (сервисного инженера)
Идентификатор атрибута | Смысловое назначение |
Id | Уникальный идентификатор, первичный ключ, тип – Int. |
FIO | ФИО, тип – String. |
Work | Навигационное свойство к сущности Work. |
Passport (паспорт)
Идентификатор атрибута | Смысловое назначение |
Id | Уникальный идентификатор, первичный ключ, тип – Int. |
Number | Номер, тип – String. |
CreateDate | Дата производства, тип – DateTime. |
SellDate | Дата продажи, тип – DateTime. |
Price | Цена, тип – Int. |
SellerFIO | ФИО продавца, тип – String. |
Work | Навигационное свойство к сущности Work. |
Work (техническое обслуживание)
Идентификатор атрибута | Смысловое назначение |
Id | Уникальный идентификатор, первичный ключ, тип – Int. |
NameWork | Название работ, тип – String. |
DateTimeWork | Дата обслуживания, тип – DateTime. |
EngineerId | Внешний ключ на таблицу Engineer. |
PassportId | Внешний ключ на таблицу Passport. |
Engineer | Навигационное свойство к сущности Engineer. |
Passport | Навигационное свойство к сущности Passport. |
Свойства навигации
Свойства навигации служат для реализации отношений “один-ко-многим” и “многие-ко-многим”. В проекте использованы следующие навигационные свойства:
Идентификатор навигационного свойства | Смысловое назначение |
Work | У одного инженера, может быть, множество технических работ |
Engineer | У одного сеанса обслуживания может быть только один инженер |
| |
Work | У одного паспорта, может быть, множество технических работ |
Passport | У одного сеанса обслуживания может быть только один тех. паспорт |
-
Создадим приложение Windows Forms на языке C# в среде Visual Studio (Рис. 1 – Рис. 2)
Рис. 1
-
Добавим элемент модели базы данных в проект (Рис. 2 – Рис. 4)
Рис. 2
Рис. 3
Рис. 4
-
После добавления модели, непосредственно в саму модель добавим сущности (Рис. 5).
Рис. 5
-
Теперь добавим ассоциации (Рис. 6).
Рис. 6
-
После добавления всех сущностей и ассоциаций пересобираем проект (Рис. 7) и добавляем в модель элемент создания кода (Рис.8 - Рис. 9).
Рис. 7
Рис. 8
Рис. 9
-
Сформируем базу данных на основе модели (Рис. 10 – Рис. 16.)
Рис. 10
Рис. 11
Рис. 12
Рис. 13
Рис. 14
Рис. 15
Рис. 16
-
Теперь у нас есть созданная база данных. Теперь идем в “Источники данных” и устанавливаем связь с базой (Рис. 17 – Рис. 22).
Рис. 17
Рис. 18
Рис. 19
Рис. 20
Рис. 21
Рис. 22
-
Так как таблицы пусты – заполним их данными (Рис. 23 – Рис 25).
Рис. 23
Рис. 24
Рис. 25
-
Чтобы приложения успешно скомпилировалось необходим удалить или закомментировать код генерации базы данных (Рис. 26).
Рис. 26
-
Теперь добавим на форму элементы для отображения данных из таблиц базы данных, путём перетягивания из «Источников данных» (Рис. 27).
Рис. 27
-
Запустим компиляцию проекта. Результат работы представлен на Рис. 28.
Рис. 28
Приложение А
Скрипт SQL для создания базы данных
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 04/03/2022 16:46:35
-- Generated from EDMX file: C:\Users\Admin\source\repos\ayzhtsi\ayzhtsi\ModelAyzhtsi.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
USE [ayzhtsiDB];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'EngineerSet'
CREATE TABLE [dbo].[EngineerSet] (
[Id] int IDENTITY(1,1) NOT NULL,
[FIO] nvarchar(max) NOT NULL
);
GO
-- Creating table 'WorkSet'
CREATE TABLE [dbo].[WorkSet] (
[Id] int IDENTITY(1,1) NOT NULL,
[NameWork] nvarchar(max) NOT NULL,
[DateTimeWork] nvarchar(max) NOT NULL,
[EngineerId] int NOT NULL,
[PassportId] int NOT NULL
);
GO
-- Creating table 'PassportSet'
CREATE TABLE [dbo].[PassportSet] (
[Id] int IDENTITY(1,1) NOT NULL,
[Number] nvarchar(max) NOT NULL,
[CreateDate] nvarchar(max) NOT NULL,
[SellDate] nvarchar(max) NOT NULL,
[Price] nvarchar(max) NOT NULL,
[SellerFIO] nvarchar(max) NOT NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [Id] in table 'EngineerSet'
ALTER TABLE [dbo].[EngineerSet]
ADD CONSTRAINT [PK_EngineerSet]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- Creating primary key on [Id] in table 'WorkSet'
ALTER TABLE [dbo].[WorkSet]
ADD CONSTRAINT [PK_WorkSet]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- Creating primary key on [Id] in table 'PassportSet'
ALTER TABLE [dbo].[PassportSet]
ADD CONSTRAINT [PK_PassportSet]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- Creating foreign key on [EngineerId] in table 'WorkSet'
ALTER TABLE [dbo].[WorkSet]
ADD CONSTRAINT [FK_EngineerWork]
FOREIGN KEY ([EngineerId])
REFERENCES [dbo].[EngineerSet]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK_EngineerWork'
CREATE INDEX [IX_FK_EngineerWork]
ON [dbo].[WorkSet]
([EngineerId]);
GO
-- Creating foreign key on [PassportId] in table 'WorkSet'
ALTER TABLE [dbo].[WorkSet]
ADD CONSTRAINT [FK_PassportWork]
FOREIGN KEY ([PassportId])
REFERENCES [dbo].[PassportSet]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK_PassportWork'
CREATE INDEX [IX_FK_PassportWork]
ON [dbo].[WorkSet]
([PassportId]);
GO
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------