Дипломная (вкр): Створення баз даних для електричних силових підстанцій

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

-       підтримка платформи .NET Framework 4. Visual C# Express підтримує .NET Framework 4, що дозволяє застосувати безліч компонент та методів при створенні власного програмного продукту;

-       спрощений інтерфейс. У Visual Studio Express представлений спрощений користувальницький інтерфейс, що фокусується на найбільш часто використовуваних командах, приховуючи рідко використовувані розширені меню і панелі інструментів;

-       нове середовище розробки на основі WPF. Новий редактор забезпечує гнучкість при роботі з кодом, підсвічує методи і володіє іншими можливостями;

-       підтримка платформи розробки. Незалежно від досвіду розробника, Visual C# Express допоможе реалізувати ідеї для операційної системи Microsoft Windows;

-       всі продукти Microsoft Visual Studio версій Express є безкоштовними для людей, які навчаються.

C# - об'єктно-орієнтована мова програмування. Розроблена в 1998-2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft, як мова розробки програмного забезпечення для платформи Microsoft .NET Framework і згодом була стандартизована як ECMA-334 і ISO/IEC 23270.# відноситься до сім'ї мов з C-подібним синтаксисом. Мова має статичну типізацію, підтримує поліморфізм, перевантаження операторів (у тому числі операторів явного і неявного приведення типу), делегати, атрибути, події, властивості, узагальнені типи і методи, ітератори, анонімні функції з підтримкою замикань, LINQ, виключення, коментарі у форматі XML.

Перейнявши багато що від своїх попередників - мов C++, Java, Delphi, Модула і Smalltalk - С#, спираючись на практику їх використання, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем. Наприклад, C# на відміну від C++ не підтримує множинне успадкування класів (між тим допускається множинне спадкування інтерфейсів).# розроблявся як мова програмування прикладного рівня для CLR і, як така, залежить, насамперед, від можливостей самої CLR. Це стосується, перш за все, системи типів C#, яка відображає BCL. Присутність або відсутність тих чи інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно розширились можливості і самої C#, подібної взаємодії слід чекати і надалі. Проте ця закономірність була порушена з виходом C# 3.0, що представляє собою розширення мови, не спираються на розширення платформи. NET. CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так само, як це робиться для програм на VB.NET, J# та ін.

У Microsoft Visual C# інтегрована підтримка роботи із різними СУБД для побудови програмних додатків на основі роботи із базами даних. Розглянемо СУБД MySQL, що було б доцільно використати для реалізації АІС.- компактний багато потоковий сервер баз даних, що характеризується великою швидкістю, стійкістю і легкістю у використанні.- вільна система управління базами даних. Зазвичай MYSQL використовується як сервер, до якого звертаються локальні або віддалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MYSQL в автономні програми.

Гнучкість СУБД MYSQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MYISAM, що підтримують повнотекстовий пошук, так і таблиці INNODB, що підтримують транзакції на рівні окремих записів. Більш того, СУБД MYSQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки відкритій архітектурі і GPL-ліцензуванню, в СУБД MYSQL постійно з'являються нові типи таблиць.

У розділ проектування програмного забезпечення було спроектовано інфологічну модель бази даних системи. Нижче ж приведемо опис сутностей предметної області дипломного проекту, що будуть реалізовуємо у СУБД MYSQL.

Підстанції - зберігає інформацію про назву підсистеми, виконує зв’язну функцію у інших сутностях:

-       idStantion - ключове поле таблиці, зберігає порядковий номер запису;

-       name - назва підстанції.

Завдання - призначена для зберігання інформації про те, які роботи виконувались на підстанціях, коли це відбувалось та хто ці роботи виконував, вказуючи робітників:

-       Id - порядковий номер запису, ключове поле;

-       Type - тип роботи на підстанції, може набувати значення ремонтна або планова;

-       date - відповідає за значення дати, коли виконувалась робота;

-       about - детальний опис завдання, та що було зроблено, у разі ремонту вказується суть поломки;

-       idstantion - значення підстанції, на якій виконувалася робота;

-       header - заголовок завдання, дуже стислий опис роботи.

Бригади - призначення полягає у тому, що на кожне завдання формується бригада, що складається із невизначеної кількості робітників, яку контролює оператор:

-       Id - порядковий номер, ключове поле;

-       Idjob - значення порядкового номеру роботи, на яку направляється робітник;

-       Idworker - робітник, що напрявляється на завдання.

Кабелі - довідник для зберігання параметрів кабелів та проводів, що використовуються на підстанціях:

-       idKabel - порядковий номер запису, ключове поле;

-       Name - назва марки кабелю;

-       Value1 - значення першого параметру кабелю;

-       Value2 - значення другого параметру кабелю;

-       Value3 - значення іншого параметру кабелю;

-       Idtype - значення, що відповідає за відношення конкретного кабелю, до певного типу.

Коефіцієнти - довідник для зберігання коефіцієнтів та констант, які потрібні для виконання розрахунків на підстанціях:

-       idKoeficient - порядковий номер запису, ключове поле;

-       Name - назва коефіцієнта;

-       Value - значення коефіцієнта.

Лінія 10кВ - призначена для зберігання даних про лінії 10000 вольт, із зазначенням потужностей, протяжності лінії її типом та ін.:

-       idLine10kV - ключове поле, порядковий номер запису;

-       Name - назва лінії;

-       Number - номер лінії на підстанції;

-       ComutationAparate - значення комутаційного апарату;

-       PowerOfTransformator - значення потужності трансформатора;

-       TC - вибір силового трансформатора;

-       TypeLine - вибір типу лінії, що надасть можливість вибрати конкретний кабель за вибраним типом;

-       Length - значення довжини лінії;

-       Security - значення захисту лінії;

-       idStantion - вказання, до якої підстанції відноситиметься лінія;

-       MaxReleToka - значення максимального струму, що проходить через релейний захист.

Лінія 110кВ - призначена для зберігання даних про лінії 110000 вольт, із зазначенням потужностей, захисту лінії її типом та ін.:

-       idLine110kV - ключове поле, порядковий номер запису;

-       TypePowerOff- значення типу вимикача, який може набувати лише двох значень;

-       TC - значення силового трансформатора;

-       Security - захист лінії;

-       Idstantion - до якої підстанції відноситься дана лінія.

Оперативний струм- призначена для зберігання даних про силу струма, ампераж та ін.:

-       idOperatingTok - порядковий номер запису, ключове поле;

-       Amper - ампераж оперативного струму;

-       SecondaryLineTok - тип струму на другорядних лініях, може бути або змінний, або постійний.

Панель - зберігання назв панелей, що входять у склад ОПУ на конкретній підстанції:

-       idPanel - порядковий номер запису, ключове поле;

-       Name - назва панелі;

-       Idstantion - до якої підстанції відноситься.

Силовий трансформатор - призначена для зберігання інформації про параметри, які є у трансформатора:

-       Id - порядковий номер запису, ключове поле;

-       Marka - марка силового трансформатора, що використовується на підстанції;

-       Power - значення потужності трансформатора;

-       RPN - значення ручного перемикача напруги, який може набути значення від 1 до 19;

-       Securiry - релейний захист трансформатора;

-       ConnectingGroup - значення групи з’єднань, що присутні на силовому трансформаторі;

-       InTransformatorTok - значення вбудованих трансформаторів струму;

-       TransformatorCount - значення кількості обмоток, що присутнє на силовому трансформаторі;

-       TypeOfTransformator - значення типу трансформатора;

-       Idstantion - вказання, до якої підстанції відноситься силовий трансформатор.

Реле - призначення полягає у збережені інформації про релейні пристрої, що можуть бути використані на підстанціях:

-       idRele - порядковий номер запису, ключове поле;

-       Value1 - перше значення параметру реле;

-       Value2 - друге значення параметру реле;

-       Name - назва релейного пристрою.

Секційний вимикач - зберігає властивості вимикача, у якому вказується його тип, та який силовий трансформатор при цьому використовується:

-       idSV - ключове поле, порядковий номер запису;

-       Type - значення типу секційного вимикача;

-       TC - значення силового трансформатора.

Тип лінії - довідник, призначений для зберігання назв типів ліній, що використовуються на підстанціях:

-       idTypeLine - порядковий номер запису, ключове поле;

-       Name - назва типу лінії.

Трансформатор напруги-призначений для зберігання значення приводу комутаційного апарату на підстанції:

-       idVoltageTransformator - ключове поле, порядковий номер запису;

-       PKA - значення приводу комутаційного апарату;

-       Idstation - зазначення до якої підстанції відноситься трансформатор напруги.

Робітник - призначена для того, щоб зберігати дані про робітників електропостачальної компанії, з подальшим обліком їх виконаних робіт та завдань на підстанціях:

-       Id - порядковий номер запису, ключове поле;

-       Name - прізвище, ім’я та по батькові робітника;

-       Tel - номер його телефону для швидкого налагодження зв’язку із особою;

-       Adres - домашня адреса проживання робітника;

-       Posada - посада, яку займає у компанії даний співробітник.

Для збереження даних в програмній системі було вибрано реляційну базу даних. Як раніше зазначалося у якості СУБД використано Mу SQL.

Адміністрування та створення СУБД буде здійснюватись за допомогою програмного засобу MySQL Workbench, що є інструментом для візуального проектування баз даних, що інтегрує проектування, моделювання, створення й експлуатацію БД в єдине безшовне оточення для системи баз даних MySQL.

Отже, спершу запускаємо даний інструмент, та здійснюємо певні налаштування, для того щоб під’єднатися до серверу баз даних. Для цього натискаємо на додатку піктограму у вигляді «+», що сигналізуватиме створення нового підключення.

Якщо підключення здійснюється до локального серверу, по потрібно у властивість “HostName” ввести значення localhost, або 127.0.0.1, що є внутрішньою адресою сервера. Далі у поле “UserName” потрібно ввести назву користувача серверу, на локальному сервері початковий користувач має назву root, для якого при встановлені серверу можна було ввести персональний пароль, який у програмі потрібно надати у параметр “Password”.

Якщо ж при встановлені серверу ніяких налаштувань не було здійснено, то пароль є пустим, тобто не потребує введення. Параметр “Default Schema” відповідає за підключення автоматично до бази даних вказаної у цьому параметрі, але він не є обов’язковим для підключення до серверу, і він може бути не заповнений.

Після того, як було введено параметри підключення, закриваємо вікно та під’єднуємося до серверу. У головному вікні додатку натискаємо на піктограму під назвою “New Schema”, або вибираємо пункт контекстного меню на сервері БД, для створення нової бази даних, після чого у робочій області появляється нова вкладка, у якій потрібно ввести назву створюваної бази даних та тип кодування текстових даних.

Відразу після створення БД, можна перейти до створення таблиць, розгорнувши у дереві серверу створену базу, та викликавши контекстне меню на гілці “Tables”. Відразу після цих дій відкриється нова вкладка, у якій буде запропоновано ввести назву таблиці, тип кодування та створення необхідних полів таблиці, надавши кожному необхідний тип даних, відповідних до схеми даних, що була створена раніше.

Після заповнення усіх необхідних даних для створення таблиці, потрібно натиснути на кнопку “Apply” для того щоб, трансформувати введену інформацію в скрипт на мові запитів SQL. Вміст скрипта відобразиться у наступному вікні, яке автоматично появляється після перетворення.

Аналогічним чином потрібно створити усі інші таблиці, що входять у склад бази даних розроблюваного дипломного проекту.

Після створення усіх таблиць, залишилось розставити зв’язки між таблицями, після цього робота із сервером баз даних завершується.

3.2 Програмування інтерфейсу та логіки роботи проекту


Після завершення програмування структур даних необхідно перейти до реалізації інтерфейсу та логіки роботи програми. На цьому етапі потрібно за допомогою середовища розробки ПЗ та мови програмування по результатам проектних рішень здійснити виконання поставленого завдання.

Як зазначалося програмна система має використовувати тип проекту WindowsFormsApplication, який працює на платформі .NET Framework 4.0. Тому спершу потрібно у середовищі MS Visual Studio 2013 створити проект відповідного типу із зазначенням, що реалізація буде здійснюватись об’єктно-орієнтованою мовою програмування C#, та вказанням назви проекту.

Програмний додаток буде складатись із одного вікна, який у собі міститиме: рядок заголовку, робочу область та головне меню вибору дій. У робочу область, залежно від вибраної дії на панелі, буде завантажено нове вікно із необхідним вмістом.

Але, перш ніж перейти до створення вікон, підключимо до проекту бібліотеку, яка надасть можливість обмінюватись даними із сервером MySql, з можливостями технології ADO.NET. Для цього потрібно створити посилання на відповідну бібліотеку.

Отже, викликаємо вікно менеджера посилань, натиснувши на пункт відповідного контекстного меню “Add Reference…”, далі натискаємо на кнопку “Browse”, для виклику діалогового вікна вибору файлів, та вибираємо файл бібліотеки, для доступу даних, що має назву “MySql.Data.dll”, після чого маємо можливість пересвідчитись, що бібліотека приєднана до проекту, переглянувши структуру проекту.

Тепер для доступу до можливостей цієї бібліотеки потрібно лише прописати наступний рядок у директиві підключень об’єктів: using MySql.Data.MySqlClient;

Для зручності використання функціональних можливостей об’єктів, потрібно створити власний клас, який міститиме рядок підключення, що складається з адреси підключення до серверу бази даних, назви самої бази даних, до якої здійснюється підключення, та з персональних даних користувача серверу, тобто значення логіна та паролю, для отримання доступу до даних.

Структура створеного класу: class MySqlUsing

{ private string ConnectionStringDb; - рядок підключення до бази даних, в якому зберігається адреса серверу, назва облікового запису та пароль доступу до БД.static bool msg = false; - значення, яке сигналізує чи виводити повідомлення, чи не потрібно.MySqlUsing(); - конструктор класу, у якому автоматично завантажується рядок підключення.string getConnectingString(); - функція, що повертає рядок підключення.bool Connected(); - функція, що перевіряє наявність підключення із завантаженим рядком підключення.void SetConnectionString(string ConStr); - функція для встановлення рядка підключення до БД.ArrayList GetDataQuery(string query, bool nil); - функція для виконання запиту та повернення масиву записів, що підлягають умовам запиту.DataSet GetaDataQuery(string query); - функція для виконання запиту та повертає колекцію таблиць, що підлягають умовам запиту.void Insert(string Table, string Polya, string Value); - функція для занесення даних до БД, потрібно зазначити назву таблиці у яку будуть заноситись дані, перелік полів та відповідно їм значення.void Update(string Table, string Set, string Where); - функція для занесення змін до записів БД, де потрібно зазначити до якої таблиці потрібно застосувати зміни, які саме зміни, та умову під яку повинні відповідати записи.void Delete(string DBTable, string DBWhere); - функція для видалення записів із БД, де зазначається із якої таблиці та за яких критеріїв потрібно здійснити видалення запису.int GetId(string DBTable, string DBWhere); - функція для повернення ключового поля таблиці.}

Источник: https://www.bibliofond.ru/detail.aspx?id=897098