Схема бази даних: таблиці, зв’язки та ключі

Що таке база даних: визначення, типи та застосування

# Що таке база даних: розмова на кухні з чайником, котом і повідомленням, що блимає

Дощ у вікно — як барабанщик-початківець. Нерівно, але старається. Чайник гуде, ніби він тут головний айтішник, а я лише помічник на підхваті. На столі крихти від учорашнього круасана, які я, чесно кажучи, планував прибрати ще зранку. Телефон помирає від власної наполегливості: повідомлення блимає, вже третє за п’ять хвилин. Кіт лізе на коліна, робить вигляд, що нічого не хоче, але лапою штовхає блокнот. Тільки напишу “база даних — це…”, а він хвостом зітре. Класика.

Чай вистиг. Я про це згадаю, коли зроблю ковток і скривлюся. А поки що давайте просто скажу. Ну от. Що таке база даних? Це як ваш кухонний шафчик, де у контейнерах лежать крупи, сіль, спеції, і на кожному контейнері є наклейка. Ви ж не вивалюєте все на одну полицю, правда? Бо потім шукаєш гречку, а знаходиш коріандр, і життя стає цікавішим, але не там. База даних — це спосіб покласти інформацію по контейнерах. Так, щоб і знайти можна, і додати, і не розсипати по підлозі.

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

Якщо зняти всі метафори, то база даних — це впорядковане сховище інформації з чіткою структурою, яка дозволяє зберігати, шукати, змінювати і видаляти дані без істерик. Крапка. Але крапки тут не буде, бо давайте ще трішки побуту. У вас на телефоні — контакти. Ви відкриваєте “Мама”, тицяєте “подзвонити” і не думаєте, де зберігається номер, коли він доданий, хто його змінив. Це все — база. Ваша галерея з фото — теж. Інтернет-магазин, де ви клацаєте “додати в кошик” — там база даних працює, як мурахи: тихо, без пафосу і без шансів на славу.

Типи баз даних просто

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

– Реляційні — це педанти. У них все по таблицях, рядки рівненькі, стовпці однакової ширини. Вони люблять, коли є правила: ось тут ім’я, ось тут дата, ось тут сума. Якщо вам потрібно вести бухгалтерію або щось, де “одна людина — багато замовлень”, “одне замовлення — багато товарів”, реляційні зітхають і кажуть: “Добре, зробимо як книжка пише”.

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

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

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

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

Це, звісно, спрощення. Але з ним легше дихати. Бо правда: немає “найкращої” бази даних. Є ваша задача і ваш здоровий глузд. І ще бюджет.

Реляційні та нереляційні бази: як це працює

Реляційна база — думає таблицями. Створюєте таблицю “Клієнти”, таблицю “Замовлення”, таблицю “Товари”. У кожній — колонки: ім’я, дата, кількість. Об’єднуєте їх ключами, як застібками. І потім можете спитати: “Покажіть мені всі замовлення Ірини, окрім тих, що з червня”. І база така: “Будь ласка”. Гарно? Гарно.

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

Сусід грюкнув дверима. Я підскочив і пролив краплю чаю на стіл. Ця база — вони іноді як сусіди. Одні тихі й пунктуальні, інші галасні й швидкі, зате без форми. І далі вже обираєте, з ким вам жити.

З іменами — теж просто. Реляційні — це, наприклад, PostgreSQL або MySQL. Нереляційні — MongoDB, Redis, Cassandra. І якщо хтось скаже вам, що одна з них “єдино правильна” — не вірте. Кухня у всіх різна, рецепти теж.

SQL vs NoSQL: без фанатизму

SQL — це мова, якою ви говорите з реляційною базою. Вона любить чіткі прохання. “SELECT це і це FROM там-то WHERE сього-то”. Як формула для замовлення піци: “одна середня, сир, без ананаса, адреса — оця”. Ну от. Воно звучить як холодна інструкція, але в реальності SQL — доволі елегантний інструмент: якщо ви чітко сформулювали, база відповість красиво і швидко.

NoSQL — це парасолькове слово для багатих на характер нереляційних підходів. Тут запити можуть бути іншими: інколи ви просто кажете “дай документ із таким-то ID”, інколи — “дай всі, де поле Х містить Y”. Можна швидко, можна гнучко. А інколи — гнучко і повільно, якщо переборщити.

Мені подобається думати так: SQL — це педантична записочка-список від людини, яка зранку складає плани. NoSQL — це голосове повідомлення від друга, який говорить швидше, ніж думає, але має інтуїцію. Обидва способи працюють. Головне — не сварити їх між собою.

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

Неочікувана аналогія номер два. База даних — це ніби ваш холодильник. Якщо на поличці молоко, на дверцятах соуси, а в морозилці ягоди — все добре. Але якщо ви раз на місяць не викидаєте те, що “ще трошечки придатне”, починається сморід. У базах це називається “дані втратили актуальність”. А запах однаковий — тільки невидимий.

І ще одна. База — як бабусин записник з рецептами. Там є маленькі хитрощі: “цукор не повна ложка, а трохи менше”, “борщ смачніший на другий день”. У даних так само: індекси, кеші, резервне копіювання. Слова лякають, але це ті самі “трохи менше”. І якщо цього не зробити — воно теж буде, тільки гірше.

А потім — тиша.

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

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

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

Іноді мені кажуть: “Ми не айті-компанія, нам база даних не треба”. Я знаю, знаю. Але якщо у вас є продажі, реєстри, клієнтські картки, навіть список учнів у нотатнику — це вже дані. І хоч як це називай, воно працює як база. Питання тільки — чи ви керуєте ними, чи вони вами.

Це місце для короткого правилка. Резервне копіювання — робіть. Інші люди будуть говорити “потім”, “якось”, “після свят”. А потім падає світло і всі роблять великі очі. Копія — як запасний ключ від квартири. Вам може не знадобитися роками. І дай Бог. Але одного дня ви скажете собі “фух, я ж зробив”.

Якщо чесно кажучи, немає нічого героїчного в тому, щоб знати терміни. Героїчне — це не загубити важливе. І коли вам пишуть “додайте нас у CRM”, не треба одразу шукати чарівну кнопку. Подивіться, що у вас за дані. Хто їх вбиває (у сенсі вводить), хто бере. Де вузьке місце. Бо інколи ви купуєте супер-систему, а насправді потрібно — одна таблиця і одна людина, яка відповідальна. Так буває.

Це вже інша історія.

Якщо хочете зануритись, я, ну от, зібрав невеличку шпаргалку про зберігання даних і типи запитів. Там те саме, тільки без моїх побутових стендапів і з прикладами на пальцях (див. більше: “Шпаргалка для новачків з баз даних” — /guides/bazy-danyh-shparhalka). Безкоштовно, без “залиште пошту і печінку”. Просто клацнути і читати.

А тепер давайте, як дорослі люди, назвемо головні речі своїми іменами:
– база даних — місце для ваших “складних реалій”;
– структура — назви контейнерів і що в них;
– індекси — ярлики, щоб швидше шукати;
– транзакції — щоб дії були “все або нічого”;
– бекапи — щоб не плакати;
– доступи — щоб не бігав хто попало в вашу комору.

Мені подобається уявляти запит до бази як записку на холодильнику: “Купи молоко, печиво, і не забудь — візьми знижку з нижньої шухляди”. Якщо записка чітка — її виконають. Якщо там “щось для чаю” — готуйтеся до сюрпризів. Техніка витончена, але людська. Так, як і ми.

Щоб не збрехати, дві останні поради.
Перша: спробуйте самі. Встановіть просту реляційну базу, наприклад, SQLite, створіть одну-дві таблиці. Внесіть дані про свої книги або витрати на каву (о, я тут чемпіон). Зробіть запит “покажи всі кави дорожче 80 грн за вересень”. Ви відчуєте, як дані перестають бути хаосом і стають розмовними.
Друга: не бійтеся видаляти. Слабка база — це завжди база, яку бояться чистити. Збережіть копію і сміливо вирізайте сміття. Дані мають дихати.

І якщо вам хтось скаже: “та що ти там зі своїми таблицями, це ж нудно” — покличте його в будь-який інтернет-магазин на чорну п’ятницю. Коли там усе летить, і хтось кричить, і платежі дублюються, і доставка їде на іншу адресу. Ось де видно, у кого база — база, а у кого — коробка з печивом без кришки.

Повідомлення блимає знову. Кіт ліг на клавіатуру, і тепер мені в блоціноті написано “;;;;;”. Я дивлюся на холодну чашку, думаю про теплий чай і розумію щось дуже просте. База даних — це не про техніку. Це про вашу пам’ять, яка втомлюється. І про порядок, який тримає дім.

І все.

Іван Коломієць

Іван Коломієць — засновник, головний редактор і постійний автор онлайн-видання «Полтавська Новинарня», створеного для тих, хто хоче бачити Полтаву без прикрас — такою, якою вона є насправді.

Народився і виріс у Полтаві. Закінчив факультет журналістики Полтавського національного педагогічного університету імені В. Г. Короленка. Ще студентом почав писати для місцевих газет, пізніше — для кількох національних онлайн-видань. Після 2022 року вирішив створити власну інформаційну платформу, де журналістика не зводиться до копіювання прес-релізів, а повертається до людських історій і чесних слів.

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

У «Полтавській Новинарні» Іван Коломієць відповідає за аналітичні матеріали, репортажі та розділ «Місцеві історії». Його тексти часто починаються з короткої сцени з життя міста — розмови в черзі, випадкового спостереження — і поступово переходять у розбір системних проблем: від стану доріг і медицини до воєнної мобілізації та соціальної справедливості.

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

«Полтава — це не просто географічна точка. Це місце, де видно, як країна живе насправді. Якщо чесно дивитися навколо, завжди знайдеться про що написати», — каже Іван.

Більше від автора

Нові фотозони та найдорожча ялинка: як виглядає новорічний Епіцентр у Полтаві

Новорічний Епіцентр у Полтаві здивував містян новими фотозонами та найдорожчою ялинкою сезону

Що таке браузер: інтерфейс, принцип роботи та приклади

Що таке браузер: просте пояснення, приклади й поради