Це буде серія постів про мій досвід з базами даних, або чому мені подобається Redis. Почати хочу, власне, спочатку.
Ще в школі я читав комп'ютерні журнали, і там писали про бази даних. Для мене це було щось складне. База даних. Ого! Там були назви FoxPro, Clipper: настольні бази (доволі примітивні насправді), проте таблиці, індекси, запити мене вражали. А потім це вже став сервер, ти підключаєшся до сервера, і це звучало дуже потужно.
На моїй першій роботі ми масово використовували MS SQL, і на то були свої причини. Одна з них та, що тоді, мабуть, нічого іншого особливо і не було. Реляційні бази — це був way to go, industry стандарт без якихось альтернатив. Та й зараз, коли хтось каже "база даних", у більшості людей в голові буде SQL.
Ну, ви знаєте: нормальні форми, relations, кортежі (шо це?), SQL, ось це все. Думаю, що нормальні форми — це штука, обумовлена обмеженнями тогочасних технологій, тому що storage був доволі дорогим, і треба було думати, як зберігати інформацію ефективно. До речі, я б мабуть не пройшов співбесіду, якби треба було пояснити різницю між третьою та другою нормальною формою, але пам'ятаю, як упарювався, доводячи кастомеру, що дублювати одне поле в двох таблицях не можна, і треба робити третю куди це виносити 🙂
І якщо обрати топ-один причину, чому реляційна база стрельнула, то, мабуть, це саме storage. Інша причина, можливо, в тому, що таблиці в головах людей були дуже схожі на те, з чим вони працювали на папері. На папері ти малюєш таблички, ось тобі таблички в компутері. Спредшити, Excel, а до того Lotus 1-2-3. Метафора з паперу перейшла в застосунки, а потім на сервер (чи спочатку на сервер, якщо згадати мейнфрейми).
Ми писали проги на Delphi, і щоб оновити програму, треба було піти на сервак, скопіювати її на шару, а перед цим прослідкувати, щоб всі люди з неї повиходили, бо файл тримався Windows-сервером. А stored procedure ти просто міняв, і одразу вся логіка застосовувалась у всіх, хто її використовував. Тому не дивно, що ми доволі широко використовували SQL для зберігання бізнес-логіки.
Можна подумати, що я хейтер SQL і насправді його не знаю, а просто хочу будь-що, аби не SQL. Але насправді ніт. Я робив на ньому дуже складні речі, саме на Transact SQL, які, можливо, не варто було б робити на ньому. Працював з тригерами, з транзакціями. Єдине, чого не робив: процедури, які викликають процедури, бо це навіть для мене здавалось занадто. Але працював з кодом, який це використовував, і свого часу вважав себе дійсно експертом. Тому ні, SQL я знаю нормально і вважаю, що можу його критикувати і шукати щось інше.
Проте з часом воно трошки приїдається, настає криза формошльопа, який хоче жити інтересно і бути шпіоном, як казав класик. І тут на сцену виходить NoSQL, але про це буде наступний пост.
Напишіть шо ви думаєте за SQL — норм чи стрьом?
Post #693
2.1K
- ❤ 21
- 👍 19
- 🔥 7
- 🥱 1