You are on page 1of 22

ІВАНО-ФРАНКІВСЬКИЙ КОЛЕДЖ

ДЕРЖАВНОГО ВИЩОГО НАВЧАЛЬНОГО ЗАКЛАДУ


«ПРИКАРПАТСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ ВАСИЛЯ СТЕФАНИКА»

ЗВІТ
з виробничої практики
студента 4 курсу освітнього рівня бакалавр групи ПМ-41
Кузюк Ростислав Любомирович

База практики «Інформаційно-обчислюваний центр Прикарпатського


національного університету імені Василя Стефаника»
Термін практики з « 30 » січня 2023 р.
до « 10 » березня 2023 р.

Виконала: Р. Л. Кузюк

Керівник від
бази практики : А.Б. Аннич

Керівник від
навчального О.В. Махней
закладу :
2

ЗМІСТ
ВСТУП.........................................................................................................................................
РОЗДІЛ І. РЕАЛІЗАЦІЯ ПРОЕКТУ(PNU-ENERGY).............................................................
1.1 Що таке PNU-ENERGY?.................................................................................................
1.2 Реалізація(PHP)................................................................................................................
1.3 Веб-дизайн........................................................................................................................
1.3.1 Перенос проекта на Node.js.........................................................................................
РОЗДІЛ ІІ. МОВА ЗАПИТІВ SQL............................................................................................
2.1 Що таке мова запитів SQL?............................................................................................
2.2 Створення та підключення бази даних..........................................................................
2.3 Створення таблиці...........................................................................................................
2.4 Заповнення таблиць.........................................................................................................
2.5 Встановлення зв’язків.....................................................................................................
2.6 Введення обмежень.........................................................................................................
2.7 Запити...............................................................................................................................
2.7.1 Запити на вибірку.........................................................................................................
2.7.2 Запити на оновлення....................................................................................................
2.7.3 Запити на видалення.....................................................................................................
2.8 Об’єднання.......................................................................................................................
2.9 Представлення.................................................................................................................
2.10 Бази даних студенти та викладачі................................................................................................
ВИСНОВКИ.....................................................................................................................................................
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ...................................................................................
3

ВСТУП
Для прийняття обґрунтованих та ефективних рішень у виробничій
діяльності, в управлінні економікою і в політиці сучасний фахівець повинен
уміти за допомогою комп'ютерів і засобів зв'язку одержувати, накопичувати,
зберігати й обробляти дані, представляючи результат у виді наочних
документів.
Сучасне життя немислиме без ефективного управління. Важливою
категорією є системи обробки інформації, від яких багато в чому залежить
ефективність роботи будь-якого підприємства чи установи. Така система
повинна:
• забезпечувати отримання загальних та / або деталізованих звітів за
підсумками роботи;
• дозволяти легко визначати тенденції зміни найважливіших показників;
• забезпечувати отримання інформації, критичної за часом, без істотних
затримок;
• виконувати точний і повний аналіз даних.
Метою практики є освоєння нових вмінь та застосування з теоретичних
знань на практичних завданнях, дослідження переваг та недоліків мови запитів
SQL, здобуття вмінь, які допоможуть запрограмувати власну базу даних.
Основним завданням практики є дослідити індивідуальне завдання,
скласти повний план дій та запрограмувати його, дослідити всі нюанси роботи
та зробити відповідні висновки.
Індивідуальне завдання: розробити базу даних «Тревел тур» та
реалізувати її за допомогою мови запитів SQL. Та реалізація проекту PNU-
Energy.
4

РОЗДІЛ І. РЕАЛІЗАЦІЯ ПРОЕКТУ(PNU-ENERGY)


1.1 Що таке PNU-ENERGY?
Це сайт який повинен спрости комунікації інженерів для подавання
актульних покажчиків споживань електро, газо та водопостачання.
Чому саме веб реалізація? Після перебору різних варіантів було
вирішено що це самий простий в розробці та підтримці спосіб який не
потребує велихи ресурсів.
1.2 Реалізація(PHP)
Розробка почалась на мові PHP за основу була взята Admin panel яка
розроблялась на молодших курсах. Використовувалась локальна база даних
PhPMyAdmin реалізована програмним забезпеченням XAMPP дерево бази
даних наведено на Рисунку 1. Акаунти адміністраторів були передбачені
для головних інженерів та техпідтримки Рисунок 2. Всі паролі шифруются
за допомогою кодування SHA-256.

Рисунок 1 Дерево бази даних

Рисунок 2 Таблица admin_acounts

Далі необхідно було створити таблиці для простих користувачів та для всіх
виді покажчиків. Реалізація Рисунок 3 та Рисунок 4.

Рисунок 3 Реалізація таблиці простих користувачів


5

Рисунок 4 Реалізація таблиці покажчиків

1.3 Веб-дизайн
Після реалізації баз необхідно було реалізувати клієнську сторону а сами
веб інтерфейс.
Для простішої та ефективної розробки було використано Bootstrap — це
набір інструментів з відкритим кодом, призначений для створення
вебсайтів та вебзастосунків, який містить шаблони CSS та HTML для
типографіки, форм, кнопок, навігації та інших компонентів інтерфейсу, а
також додаткові розширення JavaScript.
Для початку був розроблений чорновий макет Рисунок 5.

Рисунок 5 Чорновий варіант дизайну


6

Далі булу про ведо робозу змістовним навантаженням сайту були


реалізовані типи покажчиків їх обрахування та фіксування дати подання
покажчиків також був добавлений вхід на сайт система логіну. Вигляд сайту на
цій стадії розробки Рисунок 6 та Рисунок 7.

Рисунок 6 Панель керування

Рисунок 7 Фінальний вигляд

Всі обрахунки проводились в коді Рисунок 8.


7

Рисунок 8 Реалізація обрахунків

1.3.1 Перенос проекта на Node.js


Для оптимізації проекту прийнято рішення перенести його на Node
з використанням Pug - це препроцессор HTML і шаблонізатор, який був
написаний на JavaScript для Node.js. та Express.js, або просто Express
— програмний каркас розробки серверної частини вебзастосунків для
Node.js, реалізований як вільне і відкрите програмне забезпечення під
ліцензією MIT. Він спроєктований для створення вебзастосунків і API.
Де-факто є стандартним каркасом для Node.js.
8

Це дозволило замінити код на 1000 рядків коду в 100 іноді навіть


менше порівняння коду Рисунок 10.
9
10
11

Рисунок 10 Порівняння коду PHP та Node

РОЗДІЛ ІІ. МОВА ЗАПИТІВ SQL


2.1 Що таке мова запитів SQL?
SQL (Structured query language – мова структурованих запитів) –
декларативна мова програмування для взаємодії користувача з базами даних,
що застосовується для формування запитів, оновлення і керування
реляційними БД, створення схеми бази даних і її модифікації, системи
контролю за доступом до бази даних.
Сам по собі SQL не є ні системою керування базами даних, ні окремим
програмним продуктом. Не являючись мовою програмування в тому розумінні,
як C# або Java, SQL може формувати інтерактивні запити або, будучи
вбудованою в прикладні програми, виступати в якості інструкцій для
керування даними.
Стандарт SQL, крім того, включає функції для визначення зміни, перевірки
і захисту даних. SQL – це діалогова мова програмування для здійснення запиту
і внесення змін до бази даних, а також управління базами даних. Багато баз
даних підтримує SQL з розширеннями до стандартної мови. Ядро SQL формує
командна мова, яка дозволяє здійснювати пошук, вставку, обновлення, і
вилучення даних, використовуючи систему управління і адміністративні
функції. SQL також включає CLI (Call Level Interface) для доступу і управління
базами даних дистанційно.
Оператор SQL складається із зарезервованих слів, а також зі слів,
визначених користувачем. Зарезервовані слова є постійною частиною мови
SQL і мають фіксоване значення. Їх слід записувати в точності так, як це
встановлено, не можна розбивати на частини для переносу з одного рядка на
іншу. Слова, що визначаються користувачем, задаються їм самим (відповідно з
синтаксичними правилами) і являють собою ідентифікатори або імена різних
об’єктів бази даних. Слова в операторі розміщуються також відповідно до
встановлених синтаксичними правилами.
12

Ідентифікатори мови SQL призначені для позначення об’єктів в базі даних і


є іменами таблиць, уявлень, стовпців та інших об’єктів бази даних. Символи,
які можуть використовуватися в створюваних користувачем ідентифікаторах
мови SQL, повинні бути визначені як набір символів. Стандарт SQL задає
набір символів, який використовується за умовчанням, – він включає великі та
малі літери латинського алфавіту (A-Z, a-z), цифри (0-9) і символ підкреслення
(_).
Більшість компонентів мови не чутливі до регістру. Оскільки у мови SQL
вільний формат, окремі SQL-оператори та їх послідовності будуть мати більш
зручний вигляд при використанні відступів та вирівнювання. Мова, в термінах
якого дається опис мови SQL, називається метамовою.
Мова SQL використовується не лише для обробки інформації, але й
призначена для виконання усіх операцій з базами даних і таблицями,
включаючи також створення таблиць та робота з ними.
2.2 Створення та підключення бази даних
Створюємо базу даних даючи й ім’я, використовуючи команду USE
підключаємо дану базу для подальшої роботи з нею.
2.3Створення таблиці
Для створення таблиць програмним способом використовують
оператор CREATE TABLE. Для цього потрібно вказати наступні дані:
- ім'я таблиці, яке вказується після ключового слова CREATE TABLE;
- імена та визначення стовпців таблиці, що відділені комами;
- в деяких СУБД також вимагається, щоби було вказано місце розташування
таблиці.

2.4 Заповнення таблиць


13

2.5 Встановлення зв’язків


Перевага реляційних баз полягає в тому, що в них можна зберігати
специфічно згруповані дані в різних таблицях і задавати зв'язки між цими
таблицями, з'єднуючи їх в єдину базу. Але зв'язки між таблицями автоматично
не утворюються, їх треба створити примусово, використовуючи засоби SQL
Server. Зв'язки між таблицями за допомогою полів установлюються попарно,
при цьому одна з таблиць, що пов'язується, має бути головною, а інша -
підпорядкованою. Одна та сама таблиця може виступати в одному зв'язку як
головна, а в іншому - як підпорядкована. Як правило, пов'язуючим полем у
головній таблиці є поле первинного ключа.

2.6 Введення обмежень


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

2.7Запити
2.7.1 Запити на вибірку
Для формування запитів на вибірку даних в SQL використовується
оператор SELECT.
14

Вираз SELECT обробляється цілком, а не "через підрядник", як зазвичай


буває в мовах програмування. У кілька узагальненому вигляді схема
виконання оператора SELECT виглядає наступним чином:
1) виконується розділ FROM;
2) виконується розділ WHERE (якщо є);
3) виконується GROUP BY (якщо є);
4) виконується HAVING (якщо є);
5) виконуються визначення в розділі SELECT;
6) виконується ORDER BY (якщо є).

2.7.2 Запити на оновлення


Запит оновлює дані згідно поставленої умови.

2.7.3 Запити на видалення


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

2.8 Об’єднання
Оператор SQL INNER JOIN формує таблицю із записів двох або декількох
таблиць. Кожен рядок з першої (лівої) таблиці, зіставляється з кожним рядком
з другої (правої) таблиці, після чого відбувається перевірка умови. Якщо
умова істинна, то рядки потрапляють в результуючу таблицю. У результуючій
таблиці рядки формуються в результаті конкатенації(об’єднання) рядків
першої та другої таблиць.
15

2.9 Представлення
Представлення (VIEW) – це одне з потужних засобів мови SQL, призначене
для реалізації механізм підсхем користувачів бази даних. Представлення
дозволяють приховати від користувачів схему бази даних. Вони являють
собою збережені в базі даних запити, виражені операторами SELECT.
На базі одних представлень можуть бути створені нові представлення, які
успадковують всі властивості базових представлень.
Формувати представлення можуть користувачі з привілеями SELECT для
використовуваних в представленнях таблиць (базових таблиць).

2.10 Бази даних студенти та викладачі


3 CREATE DATABASE TEACHER;
4 GO
5 USE TEACHER;
6 GO
7 CREATE TABLE TEACHER
8 (ID INT NOT NULL,
9 LAST_NAME CHAR(25) NOT NULL,
10 FIRTH_NAME CHAR(25) NOT NULL,
11 FATHER_NAME CHAR(25) NOT NULL,
12 DATE DATE DEFAULT GETDATE(),
13 ID_CHAIR INT NOT NULL)
14 GO
15 ALTER TABLE TEACHER
16 ADD
17 PRIMARY KEY (ID)
18 GO
19 CREATE TABLE DESCRIPTION
20 ( ID INT NOT NULL,
21 QUALIFICATION CHAR(25) NOT NULL,
22 DEGREE CHAR(25) NOT NULL,
23 DESCRIPTION TEXT NOT NULL)
24 GO
25 ALTER TABLE DESCRIPTION
26 ADD
27 PRIMARY KEY(ID)
28 GO
29 ALTER TABLE DESCRIPTION
30 ADD
16

31 FOREIGN KEY(ID) REFERENCES TEACHER (ID)


32 ON DELETE CASCADE
33 GO
34 CREATE TABLE LESSONS
35 (ID INT NOT NULL,
36 NAME_LESSONS CHAR(25) NOT NULL,
37 GROUPS INT NOT NULL)
38 GO
39 ALTER TABLE LESSONS
40 ADD
41 PRIMARY KEY(ID)
42 GO
43 ALTER TABLE LESSONS
44 ADD
45 FOREIGN KEY(ID) REFERENCES TEACHER (ID)
46 ON DELETE CASCADE
47 GO
48 CREATE TABLE CHAIR
49 (ID INT NOT NULL,
50 NAME_CHAIR CHAR(25) NOT NULL,
51 NAME_HEAD CHAR(25) NOT NULL)
52 GO
53 ALTER TABLE CHAIR
54 ADD
55 PRIMARY KEY(ID)
56 GO
57 ALTER TABLE CHAIR
58 ADD
59 FOREIGN KEY(ID) REFERENCES TEACHER (ID)
60 ON DELETE CASCADE
61 GO
62
63
64
65
66 CREATE DATABASE STUDENT;
67 GO
68 USE STUDENT;
69 GO
70 CREATE TABLE STUDENTS
71 (ID INT NOT NULL,
72 LAST_NAME CHAR(25) NOT NULL,
73 FIRTH_NAME CHAR(25) NOT NULL,
74 FATHER_NAME CHAR(25) NOT NULL,
75 DATE DATE DEFAULT GETDATE())
17

76 GO
77 ALTER TABLE STUDENTS
78 ADD
79 PRIMARY KEY (ID)
80 GO
81 CREATE TABLE GROUPS
82 (ID INT NOT NULL,
83 GROUPS INT NOT NULL,
84 NAME_CURATOR CHAR(25) NOT NULL,
85 COUNT_OF_STUDENTS INT NOT NULL)
86 GO
87 ALTER TABLE GROUPS
88 ADD
89 PRIMARY KEY(ID)
90 GO
91 ALTER TABLE GROUPS
92 ADD
93 FOREIGN KEY(ID) REFERENCES STUDENTS (ID)
94 ON DELETE CASCADE
95 GO
96 CREATE TABLE LESSONS
97 (ID INT NOT NULL,
98 ID_STUDENTS INT NOT NULL,
99 ID_TEACHER INT NOT NULL,
100 NAME_LESSONS CHAR(25) NOT NULL)
101 GO
102 ALTER TABLE LESSONS
103 ADD
104 PRIMARY KEY(ID)
105 GO
106 ALTER TABLE LESSONS
107 ADD
108 FOREIGN KEY(ID) REFERENCES STUDENTS (ID)
109 ON DELETE CASCADE
110 GO
111 CREATE TABLE COURSES
112 (ID INT NOT NULL,
113 NAME_COURSES CHAR(25) NOT NULL,
114 COURSES_DESCRIPTION CHAR(25) NOT NULL)
115 GO
116 ALTER TABLE COURSES
117 ADD
118 PRIMARY KEY(ID)
119 GO
120 ALTER TABLE COURSES
18

121 ADD
122 FOREIGN KEY(ID) REFERENCES STUDENTS (ID)
123 ON DELETE CASCADE
124 GO
19
20

ВИСНОВКИ
Дана практика дозволила застосувати теоретичні знання на практиці, за
допомогою індивідуального завдання. Також, в ході виконня роботи,
дозволила визначити переваги і недоліки мови запитів.
Переваги
- Незалежність від конкретної СУБД
Незважаючи на наявність діалектів і відмінностей в синтаксисі, в більшості
своїй тексти SQL-запитів, що містять, DDL і DML, можуть бути досить легко
перенесені з однієї СУБД в іншу. Існують системи, розробники яких спочатку
закладалися на застосування щонайменше кількох СУБД (наприклад: система
електронного документообігу Documentum може працювати як з Oracle, так і
з Microsoft SQL Server та IBM DB2). Природно, що при застосуванні деяких
специфічних для реалізації можливостей такої переносимості добитися вже дуже
важко.
- Наявність стандартів
Наявність стандартів і набору тестів для виявлення сумісності і
відповідності конкретній реалізації SQL загальноприйнятому стандарту тільки
сприяє «стабілізації» мови.
- Декларативність
За допомогою SQL програміст описує тільки те, які дані потрібно
витягнути, або модифікувати. Те, яким чином це зробити, вирішує СУБД
безпосередньо при обробці SQL-запиту. Проте не варто думати, що це повністю
універсальний принцип — програміст описує набір даних для вибірки, або
модифікації, проте йому при цьому корисно уявляти, як СУБД розбиратиме текст
його запиту. Особливо критичні такі моменти стають при роботі з великими
базами даних і зі складними запитами — чим складніше сконструйований запит,
тим більше він допускає варіантів написання, різних за швидкістю виконання, але
тих самих за набором даних.
Недоліки
- Складність
21

Хоча SQL і замислювався, як засіб роботи кінцевого користувача, врешті-


решт він став настільки складним, що перетворився на інструмент програміста.
- Відступи від стандартів
Незважаючи на наявність міжнародного стандарту ANSI SQL-92, багато
компаній, СУБД (наприклад, Oracle, Sybase, Microsoft, MySQL), що займаються
розробкою, вносять зміни до мови SQL, вживаної в розроблених ними СУБД, тим
самим відступаючи від стандарту. Таким чином з'являються специфічні для
кожної конкретної СУБД діалекти мови SQL.
22

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ


1. Анісімов А.В., Кулябко П.П. Інформаційні системи та бази даних:
Навчальний посібник для студентів факультету комп’ютерних наук та
кібернетики. - Київ. – 2017. – 110 с.
2. Бази даних та інформаційні системи. Навчальний посібник / С.В. Шаров,
В.В. Осадчий. – Мелітополь: Вид-во МДПУ ім. Б. Хмельницького, 2014. – 352
с.
3. Зарицька О.Л. Бази даних та інформаційні системи: Методичний посібник. –
Житомир: Вид-во ЖДУ ім. І. Франка, 2009. – 132 с., іл.
4. Морзе Н.В. Бази даних у навчальному процесі (2007)
5. Балик Н.Р., Мандзюк В.І., MySQL – лабораторний практикум. Пібник для
студентів 2008.
6. Teresa Hennig, Rob Cooper, Geoffrey L. Griffith, Jerry Dennison, Access 2010
Programmer’s Reference
7. Крис Фиайли «SQL» (2013)
8. Алан Бьюли «Изучаем SQL» (2007)
9. Душан Петкович. Microsoft SQL Server 2012. Руководство для начинающих

You might also like