24 август, 2019

Маркус Винанд е независим автор и консултант по всички въпроси около SQL. Неговата книга „SQL Performance Explained“ е преведена на пет езика. В момента Маркус работи върху втората си книга, посветена на идеята, че нещата се промениха много след SQL-92. На същата тема беше и лекцията му на jPrime. Той отговори на няколко въпроса за езика и какво е най-важното, което не трябва да пропускаме.

Защо SQL? Кога започна да го използваш?

Първият ми контакт с SQL беше през 1998 година. И не можех да повярвам, че такова нещо действително съществува. Просто задавате въпрос и получавате отговор. Мислех, че идва от Стар Трек!

Въпреки това отне повече от 10 години, преди да се специализирам в SQL. През това време имах няколко роли като разработчик, архитект, ръководител на екип и дори прекарах известно време като системен админ. Един ден забелязах два модела:

– Когато имаме проблем, базата данни обикновено е замесена по някакъв начин

– След решаването на проблема, винаги се оказваше, че сме използвали базата данни погрешно

Затова се чудех защо използваме толкова зле SQL и ето как започна SQL пътуването ми.

Какви са новите неща около SQL и какво трябва да знае всеки разработчик?

Бих могъл да напиша цяла книга за този въпрос. Всъщност – аз съм! Ще го кажа кратко и на високо ниво:

– SQL не е същото като „релационна база данни“

Релационният модел е просто ** един ** начин, по който можете да използвате SQL бази данни. Има и други начини и те са еднакво валидни.

– SQL не е „език за заявки“, а „език за трансформиране“

Една от ключовите идеи на SELECT е трансформиране на данни от постоянен формат на данни в друг формат, който е по-полезен за извършването на една конкретна задача. Тъй като вероятно има много различни неща, които искате да направите с данните си, един лесен, но мощен начин за трансформиране на данни е много полезен.

Имайте предвид, че формата на данните ви не се променя толкова често, колкото това, което искате да направите с тези данни. SQL решава този проблем, като отделя постоянния формат на данните, от какъвто и да е формат, който е по-подходящ за всяка обработка, която трябва да направите.

Нека да направим едно преразглеждане. Как SQL се развива от 1992 г. насам?

Считам, че актуализацията от 1999 г. е „големият взрив“ на съвременния SQL. Това беше, когато SQL еволюира релационната идея. Около 80% от възможностите на SQL днес не са свързани с тази идея.

Ето някои етапи:

– 1999: богати типове данни (масиви, съставни типове), рекурсивни заявки;

– 2003: „съхранение на документи (XML)“ и функции на прозореца. Ако не познавате функциите на прозореца, не знаете SQL;

– 2011: пътуване във времето (non-destructive INSERT, UPDATE, DELETE);

– 2016: съчетаване на JSON и ред на редове

Върху следващия стандарт вече се работи!

Коя база данни препоръчваш най-много?

Правилната, разбира се. Има различни нужди и тези нужди оправдават различни посоки. Ако обаче попитате за безопасна база, за да започнете с модерен SQL, предлагам да използвате PostgreSQL.

Хареса ли ти тук в България? Какво мислиш за разработчиците тук? Намери ли си възможност да говориш повече с някого по темата около SQL, Query и т.н.?

Да бъдеш „SQL Renaissance Ambassador“ включва много пътувания и за съжаление, да разгледам държавите не е сред моите задължения : / С други думи, харесвам това, което съм виждал: летището, такситата, мястото на конференцията и хотела 🙂 Причината, поради която отивам на конференции, е да общувам с хора. Аз разговарях с доста разработчици и съм щастлив, че можех да ги убедя да погледнат отново с друго око към SQL.

Можеш ли да споделиш виждане за бъдещето на технологиите? Какво би било следващото голямо нещо?

Всъщност предпочитам да използвам обратния подход, защото не виждам в бъдещето. Когато възникне нов шум, не питайте „какво следва“ – попитайте какво ще остане след приключването на хайпа. Все още е въпрос, на който е трудно да се отговори, но отговорът е нещо, което си струва да се научи. Виждам много млади хора, които ловят един хайп след друг. След няколко години, всичко, което те имат, е бух на остарели технологии в автобиографията си. Това не се ограничава само с JavaScript рамки, въпреки че там е най-очевидно.

Обичам да мисля по отношение на „полуживотния период на знанието“. Ако научите нещо ново, попитайте се колко време ще е полезно това ноу-хау. Надявам се да ми вярвате, когато казвам, че периодът на полуразпад на международно стандартизиран език като SQL е по-дълъг от този на най-горещата NoSQL система, която току-що видяхте на HackerNews.

Интервюто проведе Атанас Нейчев.

Тагове: , , , , , , , , , , , , , ,