База даних — набір впорядкованої та структурованої інформації, що зберігається в електронному вигляді. Завдяки БД (Базам даних) набагато зручніше виконувати управління, коригування, оновлення, контроль та впорядкування.
У цьому матеріалі ми розповімо про бази даних, їх типи та системи управління, а також допоможемо обрати відповідну БД виходячи з поставлених завдань.
СУБД (система управління базами даних) — це програмний комплекс, який дозволяє користувачеві отримувати та оновлювати дані, оптимізувати їх та впорядковувати. Крім того, СУБД дає можливість виконувати й інші завдання, наприклад, відстеження продуктивності, коригування налаштувань, зберігання та відновлення інформації, резервне копіювання.
Серед популярних СУБД можна виділити MySQL, dBASE, Microsoft Access та інші. Найчастіше, для роботи сайту на базі CMS, використовуються системи управління БД з наступними особливостями:
Щоб адміністрування СУБД було зручніше, існують різні додатки зі зручним графічним інтерфейсом. Такий веб-додаток надає просте та безперешкодне управління БД, а також виконання різних адміністративних завдань. Наприклад, для роботи з СУБД MySQL — використовується phpMyAdmin, ця утиліта доступна на віртуальному хостингу WPHost.
База даних може знадобитися не тільки програмісту на сайт, але навіть пересічному студентові, який задіяний в університетському проекті. Якщо ж ви раніше вже користувалися певною БД, то звичайно можете знову вибрати її, але зауважте щодо такого показника, як продуктивність, оскільки він для вас дуже важливий. В певних випадках, неправильний рівень продуктивності може погано позначитися на роботі вашого сайту чи іншого проекта, особливо на стадії його розширення. Таку помилку, в результаті, досить складно усунути.
Навіть якщо ви вже працюєте з певною БД, вам необхідно знати та розуміти її обмеження, щоб своєчасно замінити базу чи додати ще одну БД, але вже іншого типу. Дуже багато користувачів саме так і роблять — використовують одночасно кілька баз різних типів.
Далі ми розповімо про основні види БД, розглянемо їх особливості, переваги, недоліки та призначення.
Реляційні БД складаються з таблиць, пов’язаних між собою, а кожен рядок є окремим записом. Вони побудовані на відносинах об’єктів, які описані в базі даних. Наприклад, у вас є дві таблиці, які пов’язані між собою. Так ось, реляційні БД дозволяють співвідносити інформацію в одній таблиці з інформацією в другій.
Всі запити виконуються за допомогою мов SQL, які підтримують об’єднання. Також, такі БД дають можливість швидко виконати запит з індексацією стовпців. Популярні приклади реляційних БД: PostgreSQL, MySQL, MS SQL Server, Oracle.
NoSQL — це нереляційні бази даних. Всього існує чотири види NoSQL-баз:
Їх неподільна одиниця — документ (JSON). При цьому єдиної схеми не існує, структура в різних документах може бути абсолютно різною. Сама БД дає можливість проіндексувати частину полів для більш швидкого виконання запитів. Через незалежність кожного документа та полів в ньому, БД дозволяють використовувати паралельні обчислення для швидкого аналізу великої кількості інформації. Серед популярних документних баз можна виділити DocumentDB, CouchDB та MongoDB.
Їх неподільна одиниця — колонка таблиці, що дозволяє досягти більшої швидкості та ефективності саме запитів колоночного типу. Також, однорідність інформації в кожному стовпчику значно покращує її стиснення. Колоночні БД мають високу швидкість обробки запитів до підмножини стовпців, так як не читають рядки повністю, звертаючись тільки до конкретних колонок. Особливо зручно при сортуванні виходячи з конкретних характеристик, коли кожна колонка містить інформацію за певною ознакою. Популярна колоночна БД — Cassandra.
Ключ — основа всіх запитів. Запитавши ключ, вам видається його значення. Такі БД відрізняються високою швидкістю та забезпечують максимально оперативний доступ до інформації. Для роботи БД “Ключ-значення” користуються оперативною пам’яттю, тому, найчастіше, вони коштують дорожче інших видів. Основна сфера застосування — кешування (як приклад, сховище сесій чи кошик інтернет-магазину). Популярні представники: Amazon DynamoDB, Memcached та Redis.
Ці нереляційні БД розроблені для графової інформації, на кшталт соцмереж та мереж знань. Вони складаються з вузлів та ребер, де вузли відображають об’єкти, а ребра — відносини між цими об’єктами. Наприклад, InfiniteGraph та Neo4j.
З вищеописаного можна зробити висновок, що універсальної бази даних просто не існує. Кожен тип призначений для вирішення певних завдань. Так для регулярного застосування найкраще підходять документні та реляційні БД, для кешування — бази ключ-значення, для графовой інформації — графові, а колоночні — для обробки запитів по характеристиках та колонках.