47477 (Контроль и учет технического состояния магистральных трубопроводов, транспортирующих огнеопасные продукты), страница 3
Описание файла
Документ из архива "Контроль и учет технического состояния магистральных трубопроводов, транспортирующих огнеопасные продукты", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "47477"
Текст 3 страницы из документа "47477"
Трубопровод
Участки трубопровода
Примечания
Обследования с целью продления срока службы
Ремонт на участков
Ревизия участков
Диагностика участков
Транспортируемые продукты
Отказы участков
Испытания участков
Категория трубопроводов
Тип изоляции
Тип и вид трубопроводов
Тип попутного обогрева
Предприятие
Тип ингибитора
Строительно-монтажные организации
Рис. 1. ER – диаграмма.
Переход от ER-диаграммы к схеме базы данных осуществляется по следующим правилам:
-
сущности преобразуются в таблицы,
-
связи один ко многим преобразуются во внешние ключи,
-
связи многие ко многим преобразуются в таблицы.
Полученная по этим правилам схема базы данных расположена на рисунке 2.
Рис. 2.
-
Хранимые процедуры
Хранимая процедура для удаления записи из таблицы «Трубопроводы»:
CREATE PROCEDURE spDelPipeline(@Id uniqueidentifier) AS
DELETE FROM CommentaryPipeline
WHERE Id_Pipeline = @id
DELETE FROM InspectionPipeline
WHERE Id_Pipeline = @id
Delete from RevisionPartsPipeline where
RevisionPartsPipeline.id_RevisionPartsPipeline in
(select RevisionPartsPipeline.id_RevisionPartsPipeline from
((Pipeline inner join PartsPipeline on Pipeline.id_Pipeline = PartsPipeline.id_Pipeline) inner join
RevisionPartsPipeline on PartsPipeline.id_PartsPipeline = RevisionPartsPipeline.id_PartsPipeline)
where Pipeline.id_Pipeline=@id)
Delete from TestPartsPipeline where
TestPartsPipeline.id_TestPartsPipeline in
(select TestPartsPipeline.id_TestPartsPipeline from
((Pipeline inner join PartsPipeline on Pipeline.id_Pipeline = PartsPipeline.id_Pipeline) inner join
TestPartsPipeline on PartsPipeline.id_PartsPipeline = TestPartsPipeline.id_PartsPipeline)
where Pipeline.id_Pipeline=@id)
Delete from RefusalPartsPipeline where
RefusalPartsPipeline.id_RefusalPartsPipeline in
(select RefusalPartsPipeline.id_RefusalPartsPipeline from
((Pipeline inner join PartsPipeline on Pipeline.id_Pipeline = PartsPipeline.id_Pipeline) inner join
RefusalPartsPipeline on PartsPipeline.id_PartsPipeline = RefusalPartsPipeline.id_PartsPipeline)
where Pipeline.id_Pipeline=@id)
Delete from DiagnosticPartsPipeline where
DiagnosticPartsPipeline.id_DiagnosticPartsPipeline in
(select DiagnosticPartsPipeline.id_DiagnosticPartsPipeline from
((Pipeline inner join PartsPipeline on Pipeline.id_Pipeline = PartsPipeline.id_Pipeline) inner join
DiagnosticPartsPipeline on PartsPipeline.id_PartsPipeline = DiagnosticPartsPipeline.id_PartsPipeline)
where Pipeline.id_Pipeline=@id)
Delete from RepairPartsPipeline where
RepairPartsPipeline.id_RepairPartsPipeline in
(select RepairPartsPipeline.id_RepairPartsPipeline from
((Pipeline inner join PartsPipeline on Pipeline.id_Pipeline = PartsPipeline.id_Pipeline) inner join
RepairPartsPipeline on PartsPipeline.id_PartsPipeline = RepairPartsPipeline.id_PartsPipeline)
where Pipeline.id_Pipeline=@id)
DELETE FROM PartsPipeline
WHERE Id_Pipeline=@id
DELETE FROM Pipeline
WHERE Id_Pipeline=@Id
GO
Хранимая процедура для удаления записи из таблицы «Транспортируемые продукты» :
CREATE PROCEDURE SPDelDic_ClassTransportProductTE(@idrec uniqueidentifier) AS
DECLARE @ins_error int, @ROWCOUNT int
BEGIN TRANSACTION TranName
DELETE FROM DIC_CLASSTRANSPORTPRODUCTTE
WHERE Id_Dic_ClassTransportProductTE = @idrec
select @ROWCOUNT=@@ROWCOUNT, @ins_error=@@error
if @ins_error=0
begin
COMMIT TRANSACTION TranName
return (0)
end
else
begin
ROLLBACK TRAN TranName
return (1)
end
GO
-
Запросы
Запрос на добавления записи в таблицу «Трубопроводы»:
SQLStr.Add('INSERT INTO dbo.PartsPipeline (Id_PartsPipeline, Id_Pipeline, '+
'NameParts, NameProjectOrganizations, DateEndConstract, DatePutting, '+ 'DateEndServiceLife, DateLeavePutting, DepartureTehPar, '+ 'Id_Dic_ClassDBAOrganizationsTE, 'Id_Dic_ClassTypeIsolationTE, '+ Id_Dic_ClassTypeHeatingTE, Id_Dic_ClassTypeInhibitorTE, '+
'IncutDate, Length, StellGrade, OuterDiameter, WorkingPressure, WorkingTemperature, '+
'NominalThickness, ActualThickness, VelocityCorrosion, '+
'MotiveLeavePutting, NumberProject) '+
'VALUES ('''+ Id_PartsPipeLine +''', '+
''''+ Id_Pipeline +''', '+
''''+ memNameParts.text +''', '+
''''+ memNameProjectOrg.text +''','+
''+ DateTimeToStrDB(deDateEndConstract.Date,' : ') +', '+
''+ DateTimeToStrDB(deDatePutting.Date,' : ') +', '+
''+ DateTimeToStrDB(deDateEndServiceLife.Date,' : ') +', '+
''+ DateTimeToStrDB(deDateLeavePutting.Date,' : ') +', '+
''''+ memDepartureTehPar.text +''', '+
Id_ClassDBAOrganizations +', '+
Id_ClassTypeIsolation +', '+
Id_ClassTypeHeating +', '+
Id_ClassTypeInhibitor +', '+
''+ DateTimeToStrDB(deIncutDate.Date,' : ') +', '+
''''+ edtLength.text +''', '+
''''+ edtStellGrade.text +''', '+
''''+ edtOuterDiameter.text +''', '+
''''+ edtWorkingPressure.text +''', '+
''''+ edtWorkingTemperature.text +''', '+
''''+ edtNominalThickness.text +''', '+
''''+ edtActualThickness.text +''', '+
''''+ edtVelocityCorrosion.text +''', '+
''''+ memMotiveLeavePutting.text +''', '+
''''+ edtNumberProject.text +''')');
Запрос на обновление записи примечания к трубопроводу в таблице «Примечания»:
MemberCommentary.Add('UPDATE dbo.CommentaryPipeline SET '+
'Commentary = '''+ Data.Commentary +''', '+
'DateCommentary = '+ ConvertFormatDate(Data.DateCommentary) +' '+
' WHERE Id_CommentaryPipeline = '''+ Data.Id_Commentary +''' ');
-
Выбор модели базы данных
Существую три дореляционных подхода к организации баз данных:
-
системы, основанные на инвертированных списках,
-
иерархические системы,
-
сетевые системы.
Одними из современных подходов к организации баз данных являются объектно-ориентированный и реляционный.
Данные в рамках рассматриваемой предметной области сильно структурированы. В данной работе использована реляционная модель, поскольку она является наиболее эффективной для представления такого рода данных.
-
Организация взаимодействия с пользователем
Пользовательский интерфейс должен предоставлять следующие функции:
-
поиск по типу;
-
поиск по виду;
-
поиск по наименованию трубопровода;
-
поиск по категории трубопровода;
-
поиск по транспортируемым продуктам;
-
поиск по регистрационному номеру ФСТН;
-
поиск по дате регистрации в ФСТН;
-
поиск по регистрационному номеру СТН;
-
поиск по дате регистрации в СТН;
-
поиск по месторождению;
3. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
-
-
3.1 Выбор средства разработки
Для реализации данного проекта был выбран язык Delphi. Будучи языком высокого уровня, он всё же предоставляет программисту полный контроль над машиной, позволяет переходить на язык более низкого уровня (ассемблер). Delphi является стандартом для приложений, где нужно быстродействие и малый размер кода при достаточно глобальных масштабах проекта.
В качестве рабочей среды разработки пользовательского приложения программы использовался Delphi 2005. Выбор именно этой среды разработки был обусловлен целым рядом факторов – эта среда позволяет быстро создавать приложения различной сложности, также она поддерживает все современные наработки как в собственно языке Pascal, так и разнообразных библиотек, необходимых для разработки.
-
3.2 Выбор СУБД
Для решения поставленной задачи СУБД должна отвечать следующим требованиям:
-
реляционная модель представления данных,
-
поддержка многопользовательского режима работы,
-
работа на платформе Windows 2000 и выше.
Предъявленным требованиям отвечают следующие СУБД:
-
Microsoft SQL Server 2000,
-
Oracle,
-
IBM DB-2.
СУБД DB-2 может обслуживать до 64 000, а Oracle до 10 000 одновременно работающих пользователей [8]. Использование их в рамках данного проекта является не целесообразным расходованием ресурсов.
На этапе разработки системы была построена реализация с использованием базы данных на MS Access. Тестовая эксплуатация в сети Интернет показала правильность выбранных методов решения поставленной задачи. Было выявлено, что MS Access не выдерживает необходимые нагрузки, это выражается в увеличении времени ответа системы. Система интерактивная и подобные задержки недопустимы.
Из выше перечисленного следует, что в данном проекте необходимо использовать СУБД MS SQL Server 2000.
-
-
3.3 Описание системы
Для настройки работы программы формируется файл DataBase.ini. В этом файле необходимо прописать провайдера, имя базы данных и имя сервера к которому будет происходить обращение. Также необходимо указать путь к справочникам, к которым происходит обращение при работе пользовательского приложения. Пример файла конфигурации представлен в приложении 1.
Пользовательский интерфейс
Пользовательский интерфейс системы состоит из трех панелей. В верхней части экрана расположена «Инструментальная» панель. Панель содержит кнопки для управления записями в базе данных.
На верхней панели расположена форма «Трубопроводы». Форма предназначена для отображения основных сведений о трубопроводе.
На нижней панели расположена форма «Участки трубопровода». В процессе работы с системой отображает все участки выделенного трубопровода.
В строке состояния отображается информация, когда и кем были произведены последние изменения выделенной записи.
При добавление нового трубопровода или участка трубопровода, необходимо выбрать тип добавляемой записи.
Форма добавления нового «Трубопровода».
На левой панели находятся название тематических разделов данных. При выборе пользователем нужного раздела данных. На правой панели обновляется информации, соответствующая данному разделу. Поля которые однозначно определяются значениями, которые выбирается пользователем из справочника, не доступны для редактирования. Поля в которых предусмотрен ввод данных пользователем не обрабатываются на правильность ввода и имеют дополнительный редактор для удобства ввода и просмотра информации.
Внизу находятся две кнопки управления: ОК, Отмена. При нажатии кнопки Отмена, пользователь отказывается от добавления нового трубопровода. При нажатии ОК, пользователь подтверждает добавление нового трубопровода и правильность введенных данных.
Форма редактирования «Трубопровода».
При выборе пользователем режима редактирования, поля на форме автоматически заполняются данными, которые содержаться в базе. Пользователь в этом режиме может осуществлять редактирование данных. При выборе кнопки ОК, пользователь подтверждает сохранение измененных данных. После обновления данных форма редактирования закрывается. При нажатии кнопки Отмена, пользователь завершает редактирование данных о трубопроводе без сохранения данных. При нажатии кнопки Сохранить, пользователь подтверждает сохранение данных с дальнейшим редактированием их.
Форма просмотра «Трубопровода».