Що таке база даних і як вона працює?

Автор: Опубліковано

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

База даних і програма для роботи з нею

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

Сама база — це не те саме, що система керування базою даних, тобто програма для записування, читання та контролю даних. Приклади таких систем — PostgreSQL, MySQL і SQLite. У повсякденному мовленні назвою «база даних» часто позначають і сукупність інформації, і програмне забезпечення для роботи з нею, але технічно це два різні елементи.

Користувач магазину чи застосунку зазвичай не працює з базою безпосередньо. Він заповнює форму або натискає кнопку, а застосунок передає відповідну команду системі керування базою.

Як дані організовані та як їх шукають

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

Спрощена таблиця товарів може виглядати так:

Ідентифікатор товаруНазваЦінаДоступні одиниці
101Біла чашка29 zł18
102Темно-синя чашка32 zł7

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

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

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

Що відбувається в базі під час купівлі

Уявіть магазин, у якому залишилася остання одиниця товару. Двоє людей намагаються купити її майже одночасно. Самого відображення числа «1» на сайті недостатньо: система має визначити, яка операція може завершитися успішно.

У цьому допомагає транзакція — група операцій, які розглядаються як єдине ціле. Створення замовлення та зменшення складського залишку можна виконати так, щоб обидві зміни були підтверджені або жодна не була записана. Правильно спроєктована обробка транзакцій та одночасного доступу дає змогу уникнути продажу тієї самої останньої одиниці двом людям.

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

Чим база даних відрізняється від електронної таблиці

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

База даних стає особливо корисною, коли:

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

Як вибрати тип бази та подбати про дані

Не всі бази використовують пов’язані таблиці. Бази NoSQL — це загальна назва різних рішень, зокрема документних баз, які зберігають інформацію як документи з певною структурою, та баз «ключ–значення», які пов’язують значення з унікальним ключем. Вони не є за визначенням швидшими чи кращими за реляційні бази — вибір залежить від способу записування та читання інформації.

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

Незалежно від технології потрібні обмежені права доступу, оновлення та резервні копії. Резервна копія дає змогу відновити дані після збою чи помилки, але її придатність потрібно перевіряти пробним відновленням. Саме повідомлення про те, що копія «створюється щодня», не підтверджує, що з неї можна відновити працездатну базу.

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

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.