Маркус Винанд е независим автор и консултант по всички въпроси около 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.
Интервюто проведе Атанас Нейчев.