Файл: Отчет по лабораторной работе 5 дисциплина Проектирование архитектуры и программного обеспечения автоматизированных систем.docx
Добавлен: 07.11.2023
Просмотров: 14
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное образовательное учреждение высшего
образования «Алтайский государственный технический университет им. И. И. Ползунова»
Заочный институт
Отчет защищен с оценкой________
Преподаватель_________(подпись)
«____» ______________ 2023 г.
Отчет
по лабораторной работе №5
дисциплина «Проектирование архитектуры и программного обеспечения автоматизированных систем»
Студент группы 9ИВТ-01 Савичев С.М.
Старший преподаватель Третьяков А.А.
Барнаул 2023
Вариант 13
Цели и задачи работы:
Разработка диаграммы классов и модели базы данных.
Задание к работе:
1. Разработать диаграмму классов программной системы;
2. Разработать модель базы данных;
3. Сгенерировать скрипт базы данных из разработанной модели.
«Информационная система городской телефонной сети»
Задание 1.
В ходе выполнения лабораторной работы было разработано две диаграммы классов программной среды, на основе информационной системы.
Рисунок 1 – Сокращенная диаграмма классов программной системы
Рисунок 2 – Расширенная диаграмма классов программной системы
Задание 2.
Модель базы данных Microsof SQL Server «SubscribersTelephoneNetwork»
Рисунок 3 – Модель базы данных «SubscribersTelephoneNetwork»
В построенной модели базы данных имеются таблицы, а именно:
Таблица "Subscriber" (Абонент): Отвечает за хранение информации об абонентах. Включает атрибуты, такие как идентификатор абонента, ФИО, адрес, контактные данные и другую персональную информацию.
Таблица "Gender" (Пол): Содержит список доступных полов для абонентов. Включает значения, такие как мужской, женский.
Таблица "Number" (Номер): Хранит информацию о номерах телефонов. Может содержать атрибуты, такие как идентификатор номера, сам номер и статус (активен, неактивен), тарифный план, дата регистрации и баланс.
Таблица "Status" (Статус): Содержит список возможных статусов для абонентов или номеров. Включает значения, такие как активный, либо заблокированный.
Таблица "Calls" (Звонки): Отвечает за хранение информации о звонках, сделанных абонентами. Включает атрибуты, такие как идентификатор звонка, дата и время звонка, длительность, идентификатор исходящего и входящего номеров.
Таблица "Benefit" (Льгота): Содержит информацию о льготных условиях или скидках, предоставляемых абонентам. Включает атрибуты, а именно положена льгота или нет.
Таблица "Employee" (Сотрудник): Отвечает за хранение информации о сотрудниках, работающих в системе. Включает атрибуты, такие как идентификатор сотрудника, логин и пароль для доступа, ФИО, email (почту), должность и другую персональную информацию.
Таблица "TariffPlan" (Тарифный план): Хранит информацию о различных тарифных планах, доступных для абонентов. Включает атрибуты, такие как идентификатор тарифного плана, название, описание, стоимость.
-
Таблица "Position" (Должность): Содержит список доступных должностей для сотрудников. Включает значения, такие как менеджер, оператор.
Каждая из этих таблиц играет определенную роль в информационной системе городской телефонной сети и содержит соответствующую информацию, необходимую для обработки данных и обеспечения функциональности системы.
Задание 3.
Скрипт базы данных для информационной системы система городской телефонной сети «SubscribersTelephoneNetwork».
Листинг:
go
create database SubscribersTelephoneNetwork collate Cyrillic_General_CI_AS;
USE [SubscribersTelephoneNetwork]
GO
/****** Object: Table [dbo].[Benefit] Script Date: 07.06.2023 21:15:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Benefit](
[BenefitCode] [nchar](1) NOT NULL,
[BenefitName] [nvarchar](60) NOT NULL,
[Description] [nvarchar](150) NULL,
CONSTRAINT [PK_Benefit] PRIMARY KEY CLUSTERED
(
[BenefitCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Calls] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Calls](
[IdCalls] [int] IDENTITY(1,1) NOT NULL,
[IdInNumber] [int] NOT NULL,
[IdOutNumber] [int] NOT NULL,
[CallsDate] [date] NOT NULL,
[DurationInMinute] [int] NOT NULL,
CONSTRAINT [PK_Calls_1] PRIMARY KEY CLUSTERED
(
[IdCalls] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Employee] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employee](
[IdEmployee] [int] IDENTITY(1,1) NOT NULL,
[IdPosition] [int] NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[Patronymic] [nvarchar](50) NULL,
[GenderCode] [nchar](1) NOT NULL,
[BirthDate] [date] NOT NULL,
[NumberPhone] [nvarchar](11) NOT NULL,
[Email] [nvarchar](100) NULL,
[Login] [nvarchar](15) NOT NULL,
[Password] [nvarchar](15) NOT NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[IdEmployee] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Gender] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Gender](
[GenderCode] [nchar](1) NOT NULL,
[GenderName] [nvarchar](7) NOT NULL,
CONSTRAINT [PK_Gender] PRIMARY KEY CLUSTERED
(
[GenderCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Number] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Number](
[IdNumber] [int] IDENTITY(1,1) NOT NULL,
[IdSubscriber] [int] NOT NULL,
[NumberName] [nvarchar](11) NOT NULL,
[RegDate] [datetime] NOT NULL,
[IdTariffPlan] [int] NULL,
[Balance] [decimal](10, 2) NOT NULL,
[StatusCode] [nchar](1) NOT NULL,
CONSTRAINT [PK_Number] PRIMARY KEY CLUSTERED
(
[IdNumber] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Position] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Position](
[IdPosition] [int] NOT NULL,
[PositionName] [nvarchar](30) NOT NULL,
[Description] [nvarchar](150) NULL,
CONSTRAINT [PK_Position] PRIMARY KEY CLUSTERED
(
[IdPosition] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Status] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Status](
[StatusCode] [nchar](1) NOT NULL,
[StatusName] [nvarchar](9) NOT NULL,
CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED
(
[StatusCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Subscriber] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Subscriber](
[IdSubscriber] [int] IDENTITY(1,1) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[Patronymic] [nvarchar](50) NULL,
[GenderCode] [nchar](1) NOT NULL,
[BirthDate] [date] NULL,
[Email] [nvarchar](100) NULL,
[PassportSeries] [nchar](4) NOT NULL,
[PassportNumber] [nchar](6) NOT NULL,
[Address] [nvarchar](150) NULL,
[RegDate] [datetime] NOT NULL,
[BenefitCode] [nchar](1) NOT NULL,
[BenefitCertififcate] [nchar](10) NULL,
[IsDeleted] [bit] NOT NULL,
CONSTRAINT [PK_Subscriber] PRIMARY KEY CLUSTERED
(
[IdSubscriber] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[TariffPlan] Script Date: 01.06.2023 21:15:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TariffPlan](
[IdTariffPlan] [int] IDENTITY(1,1) NOT NULL,
[TariffName] [nvarchar](60) NOT NULL,
[Description] [nvarchar](150) NULL,
[Cost] [decimal](10, 2) NOT NULL,
[IsDeleted] [bit] NOT NULL,
CONSTRAINT [PK_TariffPlan] PRIMARY KEY CLUSTERED
(
[IdTariffPlan] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Number] ADD CONSTRAINT [DF_Number_IdTariffPlan] DEFAULT (NULL) FOR [IdTariffPlan]
GO
ALTER TABLE [dbo].[Number] ADD CONSTRAINT [DF_Number_StatusCode] DEFAULT (N'а') FOR [StatusCode]
GO
ALTER TABLE [dbo].[Subscriber] ADD CONSTRAINT [DF_Subscriber_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]
GO
ALTER TABLE [dbo].[TariffPlan] ADD CONSTRAINT [DF_TariffPlan_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]
GO
ALTER TABLE [dbo].[Calls] WITH CHECK ADD CONSTRAINT [FK_Calls_NumberIn] FOREIGN KEY([IdInNumber])
REFERENCES [dbo].[Number] ([IdNumber])
GO
ALTER TABLE [dbo].[Calls] CHECK CONSTRAINT [FK_Calls_NumberIn]
GO
ALTER TABLE [dbo].[Calls] WITH CHECK ADD CONSTRAINT [FK_Calls_NumberOut] FOREIGN KEY([IdOutNumber])
REFERENCES [dbo].[Number] ([IdNumber])
GO
ALTER TABLE [dbo].[Calls] CHECK CONSTRAINT [FK_Calls_NumberOut]
GO
ALTER TABLE [dbo].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Gender] FOREIGN KEY([GenderCode])
REFERENCES [dbo].[Gender] ([GenderCode])
GO
ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Gender]
GO
ALTER TABLE [dbo].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Position] FOREIGN KEY([IdPosition])
REFERENCES [dbo].[Position] ([IdPosition])
GO
ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Position]
GO
ALTER TABLE [dbo].[Number] WITH CHECK ADD CONSTRAINT [FK_Number_Status] FOREIGN KEY([StatusCode])
REFERENCES [dbo].[Status] ([StatusCode])
GO
ALTER TABLE [dbo].[Number] CHECK CONSTRAINT [FK_Number_Status]
GO
ALTER TABLE [dbo].[Number] WITH CHECK ADD CONSTRAINT [FK_Number_Subscriber] FOREIGN KEY([IdSubscriber])
REFERENCES [dbo].[Subscriber] ([IdSubscriber])
GO
ALTER TABLE [dbo].[Number] CHECK CONSTRAINT [FK_Number_Subscriber]
GO
ALTER TABLE [dbo].[Number] WITH CHECK ADD CONSTRAINT [FK_Number_TariffPlan] FOREIGN KEY([IdTariffPlan])
REFERENCES [dbo].[TariffPlan] ([IdTariffPlan])
GO
ALTER TABLE [dbo].[Number] CHECK CONSTRAINT [FK_Number_TariffPlan]
GO
ALTER TABLE [dbo].[Subscriber] WITH CHECK ADD CONSTRAINT [FK_Subscriber_Benefit] FOREIGN KEY([BenefitCode])
REFERENCES [dbo].[Benefit] ([BenefitCode])
GO
ALTER TABLE [dbo].[Subscriber] CHECK CONSTRAINT [FK_Subscriber_Benefit]
GO
ALTER TABLE [dbo].[Subscriber] WITH CHECK ADD CONSTRAINT [FK_Subscriber_Gender] FOREIGN KEY([GenderCode])
REFERENCES [dbo].[Gender] ([GenderCode])
GO
ALTER TABLE [dbo].[Subscriber] CHECK CONSTRAINT [FK_Subscriber_Gender]
GO