Читацькі дописиСофт Читацькі дописи 20.12.2025 comment views icon

dat.A: коли бази даних стають зрозумілими

author avatar

Григорій ГромкоСтажер

Репутація Низька | Успішність статті 1

ІТ, Інтернет, комп’ютери, ґаджети – це все неймовірно круто, адже робить тебе причетним до своєрідної “магії”, всього того, що вирізняє сучасну людину, яка не уявляє себе поза світом цифрових технологій. Але чи розуміємо ми, як працює цей світ?

Сучасний світ — це світ Big Data, великих даних, в якому будь-яка взаємодія (покупка онлайн, реєстрація на рейс, перегляд стрічки новин) — це робота з базами даних(БД), саме тому вивчення роботи з ними дає не просто навички, а глибинне розуміння функціонування цифрової інфраструктури.

Взагалі знайомство з цифровими технологіями сьогодні відбувається напрочуд рано – мами-зумери вважають, що найкращої іграшкою дитині, яка переросла грудний вік є телефон з ТікТоком, але наразі мова не про це, а про більш серйозні речі — навчання та шкільну інформатику (така існує, хоча постійно піддається критиці з усіх сторін).

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

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

Насправді істина десь посередині – так, годин на вивчення мало (порівняно з програмуванням), але необхідність вивчення бази даних є вимогою Державного стандарту базової середньої освіти для інформатичної галузі (будете знати, що є і такий), згідно якого вивчення баз даних у школі є поєднанням формальних освітніх вимог і практичної цифрової грамотності — це не просто чергова тема з інформатики, а ключ до розуміння того, як організований сучасний світ інформації:

Освітній компонент Компетентнісні навички
Робота
з даними
Формування вміння структурувати, класифікувати та організовувати дані. Це виходить далеко за рамки простих електронних таблиць.
Критичне
мислення
Навчання аналізувати інформацію (через запити, фільтри та сортування), виділяти головне та встановлювати логічні зв’язки.
Алгоритмічне мислення Створення ефективної структури БД (схеми, зв’язки), що вимагає розробки логічного алгоритму для зберігання інформації.
Цифрова компетентність Опанування інструментів керування даними, які є основою для розуміння сучасних ІТ-систем (від соціальних мереж до банківських систем).

Наразі бази даних присутні в шкільній програмі останні 35 років, але до 2000-их років це була лише оглядова тема, яка мала на меті познайомити учнів з таким видом програмного забезпечення.

Натомість після початку 2000-их років (ближче до 2010 року) цей розділ вивчається більш детально, оскільки у ті часи система керування базами даних (СКБД, DBMS (англ.)) була включена до складу пакету офісного програмного забезпечення Microsoft Office – спрацював принцип  “якщо вивчаємо Word, Excel, PowerPoint, то маємо вивчати та Access”.

Так і зробили, і в програмах та підручниках появились сторінки про те як створювати бази даних та працювати з ними в середовищі Access. Тут варто зауважити той факт, що автори програм та підручників працювали у вищій школі, тож їх досвід роботи було перенесено на середню школу (10-11 класи, а тепер і 9-ий клас). Певною мірою, можливо. це стало причиною того, що бази даних “не зайшли” багатьом вчителям інформатики та учням.

Наявні методики пропонують вивчати бази даних, починаючи з понятійного апарату (поняття “бази даних”, структури бази даних, записів та полів, первинних та зовнішніх ключів, зв’язків між полями, нормалізації) і лише потім намагатися застосувати це все на практиці, використовуючи MS Access або LibreOffice Base.

Такий підхід може добре працювати зі студентами вишів, але не завжди спрацьовує з пересічними учнями, у яких і рівень знань значно нижчий, і мотивація “так собі”, та й  абстрактними речами типу реляційної алгебри вони теж не дуже. Втім, попри все це, є вчителі які можуть пояснити дітям ці речі(реляційні бази даних), і є учні, які показують фантастичні результати з Всеукраїнських олімпіадах з інформаційних технологій, на яких виконують завдання по базам даних.

Після такого вступу перейдемо до речей які менше пов’язані з освітою.

Колись давно, ще у 2007 році, після чергової “флешки” з вірусами, у комп’ютерному класі ліцензійну Windows XP було “знесено” і встановлено Linux+OpenOffice – це був(і є) цікавий досвід, про який варто написати окремо, але ж ми говоримо про бази даних, і природно, що вибір був безальтернативний – OpenOffice Base, система керування базами даних, яка намагалась бути відповідником Microsoft Access.

“Відповідник” – це достатньо гучно сказано, оскільки для серйозних проєктів це “чудо” навряд чи підійшло, але для навчання його можна було використати, причому його інтерфейс не надто відрізнявся від інтерфейсу Access, тож навіть “методички” та розробки уроків з Access можна було використовувати для OO Base.

LibreOffice Base
                                                                                          LibreOffice Base

Як на мене, в OO Base (тепер це вже LibreOffice Base) є суттєвий недолік — воно написано на Java, тож потребує JRE (Java Runtime Environment) – середовище виконання для Java. Більшість дистрибутивів Linux мають JRE або ж його можна безкоштовно завантажити з сайту Oracle — неначе не мало  бути проблем, але час від часу вони виникають через невідповідність версій JRE – системна може бути новішою, ніж та, що потрібна для Base, через що можуть не працювати драйвери баз даних або Base може просто “крашитись” як з повідомленнями про помилку або навіть без них.

Крім того для роботи Base потрібно достатньо багато пам’яті (ми пам’ятаємо про JRE?), і це на старих шкільних комп’ютерах. Тож чи є вихід?

Вихід було знайдено – KEXI. Це гарненька кросплатформна безкоштовна СКБД, яка працює як у Windows, так і у Linux, з приємним та непереобтяженим інтерфейсом, з можливістю імпорту баз даних Access (.mdb) та MySQL. Ми швиденько переклали інтерфейс українською мовою, розробили серію уроків по базам даних, але виявилось, що KEXI може падати у Segmentation fault з втратою всіх даних.

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

KEXI                                                            KEXI – засіб для роботи з базами даних

Отже, Земля обернулась і ми знову повернулись у початкову точку. Що робити? Окрім того появилась ще одна проблема – дистанційне навчання, а для “дистанційки” ні Access, ні Base абсолютно не підходять, адже має бути щось таке, що працює в онлайні, і бажано – запускається на телефоні.

Спочатку виникла ідея відмовитись від “візуальних конструкторів” і перейти на SQL, використавши в якості середовища python+sqlite3. Спробували – непогано, але це для “сильних” учнів, пересічному учню писати код SQL, якщо він у Python “мілко плаває” — це вже занадто.

Оскільки “що робити?” залишилось, тож якщо гора не йде до Магомета, то Магомет прийде до гори(щоб це не значило) – якщо немає відповідного програмного засобу, то чому не написати його власноруч?

Початкові умови(наші “хотілки”):

  • це має бути на HTML/CSS/JS;
  • працює в браузері на стороні клієнта;
  • підтримка SQLite;
  • використання localStorage для зберігання файлів баз даних;
  • можливість роботи як з SQL, так і в конструкторах;
  • це навчальне середовище з відповідними обмеженнями.

Була відпустка(56 днів), діти вже дорослі, онуки ще малі, тож чому не спробувати? Так було розпочато роботу над онлайн-середовищем керування базами даних – dat.A .

Чому така назва? Спочатку була назва dat.Access (від “data access”), але це викликало певні нездорові колізії з назвою програмного продукту однієї вельми крутої корпорації, тож назву було скорочено, а взагалі це має нагадувати. що це засіб роботи з даними.

Під “капотом” у dat.A знаходиться бібліотека sql.js — це SQL-СКБД на JavaScript. Вона дозволяє створювати реляційні бази даних SQLite і виконувати запити до них у веббраузері. “Фішка” sql.js у тому, що використовується Emscripten для компіляції SQLite у WebAssembly — це значно пришвидшує швидкодію та містить додаткові розширення для математичних та рядкових функцій. База даних повністю розміщується у пам’яті та з нею можна працювати за допомогою звичайних SQL-запитів.

За потреби користувач може експортувати створену базу даних у вигляді типізованого масиву JavaScript або імпортувати базу даних SQLite — якщо все було зроблено до нас, то чому ми маємо повторюватись і намагатись “винайти велосипед”?

Тобто наше завдання — розробити та реалізувати логіку роботи застосунку + приємний інтерфейс, який був би зручним як у браузері на “десктопі”, так і на мобільних пристроях. І наразі ми вже маємо працюючий онлайн-застосунок — середовище для роботи з базами даних, і його можна випробувати вже негайно, просто перейшовши за адресою – https://dat-a-dbms.github.io/

dat.A - онлайнове середовище для роботи з базами даних
                                dat.A – онлайнове середовище для роботи з базами даних, головна сторінка

Інтерфейс застосунку, на перший погляд,  не має нічого унікального – це  традиційні пункти меню вгорі вікна(“Файл”, “Створити”, “Дані”, “Таблиці”, Запити”, “Звіти”, Форми” та “Допомога”) назви яких говорять самі про себе. Варто звернути увагу на кнопку ліворуч внизу вікна — це перехід до відображення інтерфейсу, зручного для роботи на мобільних пристроях.

Головне меню - інтерфейс для мобільних пристроїв
                                                        Головне меню – інтерфейс для мобільних пристроїв

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

Працюємо на мобільному телефоні
                                                           Працюємо на мобільному телефоні

На загал, робота в dat.A, за відгуками користувачів є досить комфортною, а інтерфейс – зрозумілим як для досвідчених користувачів, які працювали з MS Acess/LO Base, так і для початківців, які вперше зіштовхнулися з базами даних та системами керування базами даних.

Оскільки це стаття, а не посібник користувача, то ми не будемо детально зупинятися на роботі в цьому середовищі, для бажаючих Володимир Бондаренко створив цикл відеозанять, де детально пояснено роботу в dat.A – https://www.youtube.com/playlist?list=PLW1_G4jip1oOfxaMP4s9_LhgNueyEMjti.

Базу даних ми можемо створити, завантажити зі Сховища баз даних(localStorage браузера), завантажити з пристрою збереження комп’ютера(чи мобільного телефону) або імпортувати існуючий файл SQLite.

Створення/реадгування структури таблиці бази даних
                                 Створення/редагування структури таблиці бази даних

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

Щодо “підстановок” – це засіб, який покращує роботу в реляційних базах даних, які мають зовнішні ключі. Для тих, хто “не в курсі” – зовнішні ключі є посиланнями на поля в інших таблицях, причому ці поля обов’язково мають бути первинними ключами, тобто унікальними значеннями-ідентифікаторами.

Ось тут є одне “але” – первинні ключі традиційно мають бути цілими числами з автоінкрементом(не завжди), тобто автоматично збільшуватись при кожному додаванні нового запису, і тут для пересічного користувача виникає проблема, оскільки потрібно пам’ятати всі первинні ключі (ідентифікатори) для таблиць зовнішніх ключів, фактично номери записів.

Насправді так ніхто не робить, і існує два способи цього уникнути:
– використовувати в якості первинних ключів унікальні текстові рядки(зрозуміло, що без автоінкременту), або використовувати різні способи підстановки — користувач працює з осмисленим значенням (наприклад, обирає “Країна” — “Франція”), а в базу даних пишеться числове значення первинного ключа.

Як це працює в dat.A?

Спочатку ми створюємо структури таблиць, від значень яких залежать значення інших таблиць (дехто називає їх “таблицями-довідниками”), а вже потім — таблиці, що мають зовнішні ключі, тобто посилаються на інші таблиці (ті, що були створені раніше). Якщо поле таблиці має містити зовнішній ключ — активуємо цю властивість, перемкнувши позначку у стовпчику зі значком канцелярською кнопкою.

У полях, що з’явились, обираємо таблицю і поле у ній, звідки будуть братися значення зовнішніх ключів – це має бути первинний ключ таблиці. Після цього кроку можна скористатися “фічею” – якщо увімкнути позначку у стовпчику з “рятуальним колом”, то при введенні/редагуванні даних таблиці будуть пропонуватися не значення поля, вказаного як первинний ключ, а значення поля таблиці зовнішнього ключа, яке має таку саму назву, як поле-“реципієнт”(те, в яку передається значення).

Для прикладу, таблиця Contacts має такі поля:

id – первинний ключ;
name;
phone;
address;
email.

Таблиця Employees:

id – первинний ключ;
name – зовнішній ключ у Contacts.id
job;
salary.

Якщо підстановку не увімкнено, то в полі Employees.name матимемо числові значення з поля Contacts.id – 1, 2, 3,…

Якщо підстановку увімкнено, матимемо значення з Contacts.name – Іван Петренко, Марія Сидорчук, … , при тому, що в базі даних зберігатимуться дійсні значення (1, 2, 3,…)
Підстановка працює та у звітах, і у формах. Вимкнути підстановку для поля даних завжди можна через зміну структури таблиці – дані від цього не псуються.

Дані, які зберігаються в таблицях та результатах запитів(результати запитів – це теж таблиці, які не можна напряму редагувати) доступні через розділ меню “Дані”, де можна їх переглядати, сортувати та фільтрувати за різними параметрами.

Робота з даними
                                                                             Робота з даними

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

  • хто?
  • скільки?
  • які саме?
  • за яких умов?
  • як це пов’язано з іншим?

Ці запитання ми можемо формувати і отримувати дані з баз за допомогою запитів.

Запити — ключовий інструмент будь-якої роботи з базами даних, тож в онлайн-середовищі dat.A їм приділено особливу увагу.

Ми пропонуємо працювати з запитами двома способами:

  • через конструктор запитів;
  • через безпосереднє написання SQL-запитів.

І це не просто «для зручності» – це педагогічно продуманий шлях від інтуїтивного до усвідомленого.

Конструктор запитів у dat.A є візуальним інструментом який дозволяє без використання SELECT, FROM чи WHERE
виконувати такі дії
:

  • обирати таблиці;
  • відмічати потрібні поля;
  • задавати умови відбору;
  • сортувати результати;
  • об’єднувати таблиці.

Навіщо це потрібно? Для початківця SQL виглядає як “магічне заклинання”:

SELECT name, grade FROM students WHERE grade >= 10;

А конструктор дозволяє безпосередньо візуалізувати запит через відбір потрібних таблиць і полів та створення зв’язків, і це важливо, адже учень (або вчитель) починає мислити категоріями даних, а не просто боротися з синтаксисом – комами й крапками з комою. Конструктор запитів доцільно використовувати на початковому етапі навчання, коли розуміння логіки даних та зв’язків між ними є важливішим за синтаксис.

Створення запиту у Конструкторі запитів
                                                             Створення запиту у Конструкторі запитів

Що важливо: конструктор не приховує SQL, а навпаки — поступово підводить до нього, адже при запуску створеного у конструкторі запиту його текст у SQL буде завжди показано.

Згенерований Конструктором SQL-запит
                                                      Згенерований Конструктором SQL-запит

Якщо створений запит є синтаксично правильним, він зберігається і виконується.

Таблиця з результатами виконання запиту
                                                     Таблиця з результатами виконання запиту

Також запити можна створювати і “вручну”, безпосередньо редагуючи код запиту, і ми вважаємо, що SQL має бути обов’язковим елементом  при вивченні баз даних, оскільки:

  • це простіше за повноцінну мову програмування;
  • це реально використовується в індустрії;
  • формує алгоритмічне мислення без зайвого синтаксичного “шуму”;
  • це чудовий вступ до Data Science та аналітики;
  • це практичне застосування абстрактних понять.

А для вчителя — це спосіб показати, що бази даних — це не нудно.

Також dat.A має інструменти для створення звітів за даними таблиць та результатами запитів. Форматування звітів спрощене, порівняно з “дорослими” СКБД, але воно дозволяє зрозуміти головне – призначення цього інструменту та спосіб роботи з ним.

Створення звіту у dat.A
                                                                              Створення звіту у dat.A

Звіт можна переглянути та роздрукувати. Створені звіти зберігаються разом з іншими файлами бази даних, але при зміні даних збережений звіт потрібно оновити “вручну”.

Перегляд створеного звіту
                                                                             Перегляд створеного звіту

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

Форма у dat.A
                                                                                  Форма у dat.A

 

Зрозуміло, що формат цієї статті не дозволяє розповісти про всі можливості цього середовища, але має бути усвідомлення того, що dat.A – не “вбивця” або альтернатива MS Access, його призначення інше за філософією, за аудиторією і за освітньою роллю, адже MS Access — інструмент для результату, а dat.A — інструмент для розуміння.

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

MS Access чудово працює з готовими користувачами, а dat.A — формує цих користувачів, і  вчить думати як працює база даних, а не просто “клацати по інтерфейсу”.

dat.A  робить навчання та роботу з даними простим та зрозумілим, адже не потрібно глибоких знань SQL чи складних серверних конфігурацій – просто відкриваєте браузер, створюєте базу, таблиці, запити, форми, звіти – і ваша база даних готова.

Для кого dat.A?

  • учні та студенти – вивчення баз даних на практиці;
  • вчителі та викладачі – наочні демонстрації для класів та аудиторій;
  • заклади освіти з обмеженими ресурсами – не потрібно додаткового ПЗ чи ліцензій.
Що думаєте про цю статтю?
Голосів:
Файно є
Файно є
Йой, най буде!
Йой, най буде!
Трясця!
Трясця!
Ну такої...
Ну такої...
Бісить, аж тіпає!
Бісить, аж тіпає!
Loading comments...

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: