Oracle
Oracle - це не найпопулярніша база даних, але найвідоміша. Хоча можна стверджувати, що найпопулярніша. Дивлячись як рахувати . Якщо просто дивитися на кількість компаній, то СУБД MySQL найпопулярніша: вона досить хороша і повністю безкоштовна :)
Але ж можна вважати і по-іншому. Якщо є одна компанія з мільйоном клієнтів , яка використовує Oracle, та 5 компанією з сотнею клієнтів , які використовують MySQL, то виходить, що Oracle обслуговує мільйон клієнтів, а MySQL – лише 500 осіб.
Загалом, якщо взяти великі компанії, які мають гроші, і дивитися, яку СУБД вони обирають, то десь третина всіх компаній у світі сидять на Oracle. Якось так.
У тебе, як у програміста, більше шансів працювати в майбутньому на СУБД Oracle, ніж на MySQL. В інтернеті є чудове відео, яке демонструє, як змінювалася популярність СУБД за останні 20 років.
MySQL
Друга за популярністю серед усіх СУБД – це MySQL. І вона перша за популярністю серед усіх безкоштовних СУБД. Тепер ти розумієш, чому ми вчимо SQL саме на її прикладі. Хайп хайпом, а бізнес досить консервативний у виборі інфраструктури.
В принципі, про MySQL ми вже говорабо. Колись їх купила компанія Sun , потім – Oracle . Яку дуже складно назвати корпорацією добра.

Саме вони після придбання Sun постійно намагаються зробити Java платною.
Так, компанія Sun володіла і Java, і MySQL, перш ніж їх купила Oracle.
Цей факт і репутація Oracle трохи налякала розробників MySQL, які вирішабо створити fork проекту MySQL і назвали його MariaDB.
MariaDB – це фактично клон MySQL з деякими особливостями реалізації, які дозволяють обійти нюанси закриття патентами та ліцензіями.
Однак у компанії Oracle теж не дурні сидять. Щоб клієнти та розробники не втекли на MariaDB, компанія Oracle продовжує фінансувати розвиток та розробку MySQL, який продовжує залишатися безкоштовним.
І щоб всидіти на двох стільцях, для корпоративних клієнтів був випущений платний MySQL Enterprise , який нічим не відрізняється від MySQL Community Edition , але чиї ліцензії краще підходять для бізнесу.
PostgreSQL
Ще одна цікава СУБД - це PostgreSQL (читається як "поустгрес-кью-ель").

Це ще одна безкоштовна СУБД, яка дуже швидко набирає популярності останніми роками. Хоча до MySQL їй ще далеко.
PostgreSQL насамперед орієнтована на розподілену роботу. Її сильними сторонами вважаються:
- Високопродуктивні та надійні механізми транзакцій та реплікації
- Система вбудованих мов програмування, що розширюється: PL SQL, PL JS, PL Python, …
- Наслідування таблиць
- Можливість індексування геометричних (зокрема, географічних) об'єктів
- Вбудована підтримка слабоструктурованих даних у форматі JSON з можливістю їх індексації
- Розширюваність (можливість створювати нові типи даних, типи індексів, мови програмування, модулі розширення, підключати будь-які зовнішні джерела даних)
А знаєш, чому вона так називається? Діло було так…
Десь 50 років тому, на початку 70-х років в університеті Берклі почали розробляти свою реляційну СУБД та назвали її Ingres .
На початку 80-х із проекту вийшов професор Майкл Стоунбрейкер, який вирішив написати свою власну СУБД із блек-джеком та куртизанками. Він та його студенти почали писати свою СУБД, яку назвали просто Post Ingres , що в майбутньому скоротабо до Postgres .
Оскільки назва Postgres ні про що нікому не говорила, у нього було вирішено додати суфікс SQL. Ось так і вийшов PostgresSQL, який відразу втратив подвійну S, і став писатися як PostgreSQL. Але вимовляєш назву, потрібно читати її як PostgresQL.
NoSQL
Якщо ти цікавишся базами даних, то точно чув про NoSQL бази даних . Поспішаю тебе засмутити: NoSQL - це чисто маркетингова назва , і SQL там є. Він просто урізаний.
На що це схоже? Ось уяви хорошу веб-сторінку, написану на HTML, CSS та JavaScript... яку відкрабо на браузері 1995 року. Там працює від сабо 10% CSS і взагалі не підтримується JavaScript. І цей новий урізаний стандарт назвали… NoHtml .
Наприклад, в NoSQL можуть не підтримуватися JOIN між таблицями, і тоді доводиться або емулювати це на рівні Java-коду в програмі, або зберігати всі дані пов'язаних таблиць в одній величезній таблиці.
І якщо у випадку з NoHtml ми ніби відкотабося на 20 років тому, то у випадку з NoSQL відкат відбувається десь на 40 років.
Візьмемо, наприклад, NoSQL базу даних Cassandra , яку використовує Facebook для зберігання даних мільярдів користувачів. Власне, вони її розробабо і потім виклали як OpenSource проект.
Почнемо з найцікавішого - весь код СУБД написаний на Java . Код C++ швидше за все працював би швидше, але там було б більше помилок. А код на Java простіше підтримувати та розвивати.
Загальний формат запитів до СУБД Casandra виглядає дуже знайомо:
SELECT колонки
FROM таблиця
WHERE умова
GROUP BY колонки
ORDER BY сортування
LIMIT кількість
Як бачиш, SQL тут є. А знаєш, чого тут не вистачає? Оператора JOIN ! Можна вибирати дані лише з однієї таблиці :)
Ось вам цитата з офіційної документації:
Ви не можете працювати joins в Cassandra . Якщо ви маєте налагоджений формат даних і хотіли, що ви потребуєте деякого часу, щоб зробити, ви повинні зробити їх в роботі на клієнтській стороні , або створабо деформалізований 2-ий table , що становлять join results for you.

ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ