SQL: Да стъпиш на стабилна база

от | май 25, 2021 | Блог, Тенденции, Хостинг

Технологиите идват и си отиват по-бързо от снега миналата пролет. Някои неща си остават вечни. Като например (няма да споменаваме Лили Иванова) добрите стари SQL бази данни. Дори не знаем как да ги наричаме, и то не само на български – „секуъл“, „ескюел“ и как ли още не, важното е, че това са същите онези, базирани на таблици системи за съхранение на данните, които все още дават хляба на бекенд програмистите и пазят информацията онлайн по-сигурно от каквото и да било друго.

Как се появиха и защо се оказаха толкова успешни?

 

Ко? Релация!

Днес базите данни – онези софтуерни структури, които имат отговорността да пазят цялата информация в огромната компютърна мрежа, се делят на две. Първите, които продължават своето дългогодишно царстване в компютърния свят, са релационните. С други думи близки или малко по-далечни варианти на темата на днешната ни среща – SQL.

Какво ги обединява? Че винаги са изградени от изпитаната структура на таблици, свързани помежду си по различни начини, откъдето идва и думата „релация“. Да, има и нерелационни бази данни, които подреждат и запазват информацията под формата на графи или други алтернативни структури, но за тях и трудния им път в битката с нашия днешен герой ще разкажем повече следващ път.

Компютрите днес са ултрамодерни и нямат нищо общо с огромните, изпълващи цели стаи шкафове от 60-те години на миналия век? Е, почти вярно е това съждение, с изключение на едно общо нещо – основните принципи, по които работят и тогава, и сега. И също – с изключение на SQL базите данни.

Историята започва именно през 60-те, когато за първи път компаниите получават достатъчно достъпната възможност да се сдобият с работещи изчислителни ресурси, с прародителите на днешните компютри. Тук се ражда и нуждата от добре структурирани бази данни, които да пазят информацията. Създават се различни модели, всяка по-голяма софтуерна компания предлага свои алтернативи.

През 1970 г. Едгар Ф. Код (явно доста е обичал да „коди“) предлага в научна публикация принципите на релационните бази данни – логическа организация на информацията, която не е свързана с физическите машини, на които се съхранява. Той предлага изцяла нов подход за моделиране на данните, който може да реши на практика всяка нужда, свързана с тях.

 

50 години (не) стигат

Защото, чисто и просто, няма информация, която да не може да бъде сведена до поредица от таблици, свързани помежду си. Всяка информация е достатъчно да бъде съхранена веднъж, а после взаимовръзките са гъвкави и интуитивни, появяват се само там, където са нужни. Всъщност, много подобно устройство на това, чрез което работят невроните в мозъка ни.

Преди времето на таблиците на власт са дърветата. Почти всички разработки за организиране на данните са свързани с йерархични структури, които подреждат информацията. Единствено релационният модел залага на равномерно разпределени данни в отделни таблици.

Всяка от таблиците може да има връзка с друга, което отново позволява йерархия, само че гъвкава такава. Един запис от едната таблица може да е свързан с много от стойностите в друга, а има и трети вариант на отношения – много към много. С това се изчерпват и всички потенциални нужди в организирането.

 

Като зряла круша

В релационните бази данни информацията е консистентна. Знаеш, че в таблицата за имена има точно и само думи, а не числа или булеви променливи. А това помага значително както за поддръжката и сигурността, така и за скоростта.

Ето че идват и 70-те, за да претворят идеята в стандарт. А след нея се появяват и системите за управление на този тип бази данни. Трудно е да се каже коя е първата наистина ефективна релационна система – няколко са компаниите и изследователските екипи, които почти едновременно разработват прототипи на базата на предложения принцип. Между 1974 и 1977 г. са създадени Ingres и System R, които се смятат за основните прототипи, следвани от много други.

После идва 1980-а когато SQL (Structured Query Language – „структуриран език за заявки“) се превръща в стандартен език за осъществяване на връзка с базата данни.

Оттогава той не се е променял и няма защо – умее всичко, което се очаква от него, лесен е, разбираем, почти все едно „говориш“ на компютъра на човешки, разбираем език. И той ти отговаря именно с онова, което си очаквал.

 

Обяснителен режим

Освен това езикът е достатъчно обяснителен – софтуерните инженери формулират какво им е нужно, а самата организация на базите данни знае как да им предостави това, което се търси. Една концепция, която е изпреварила с много своето време и днес се преоткрива в редица технологии.

Всъщност, достатъчно признание е, че и до днес състезанието в света на базите данни е между SQL и NoSQL. Опонентът дори не е успял да формулира достатъчно добра своя алтернатива, а разчита на противопоставянето на доказания авторитет.

В ущърб на технологията, за която ви разказваме, често ще чуете, че е създадена по времето, когато всички процеси се случваха само на една машина. Че е разработена преди ерата на интернет. Че по онези, същите времена обемите данни са били с драстично, драстично по-малки измерения от днешните.

Именно това обаче е и дефиницията на работещо инженерно решение – което залага принципи, а същите тези принципи се доказват, справят се при многократно по-голямо натоварване и при условия, които създателите им не биха могли и да допуснат, че ще им се „изсипят на гърба“.

Ай, SQ…тир

Разбира се, NoSQL имат какво да предложат, базите данни не спират да се развиват и всеки отделен случай има своето оптимално решение, което е в ръцете на инженерите. В някои случаи структурите, базирани на графи или други по-нови принципи, са по-гъвкави, позволяват по-високи скорости и по-добра защита.

SQL Injection например и в наши дни остава една от най-разпространените уязвимости за сигурността на софтуерните продукти. Тя обаче никога не е по вина на самите принципи на SQL. За да стане възможна подобна атака, винаги става дума за пропуск на инженерите, които са разработвали защитата. Но това е друга и интересна тема, на която скоро ще се спрем в рубриката за сигурността онлайн в блога на ZETTAHOST.bg.

Така или иначе, SQL базите данни са готови дори да отговорят на очакванията на днешните облачни технологии. От 2012 г. Google не само разработва, но и разчита на дистрибутирани технологии, базиращи се на SQL. В този случай една и съща база данни успешно е дистрибутирана, или „клонирана“ на многобройни сървъри на разни краища на света, така че да бъде максимално близо до потребителите, които се нуждаят от нейната информация.

 

Базирайки се на фактите

Днес добре познатата система има много „роднински“ варианти, които обаче продължават да носят със себе си основната идея. Независимо дали става дума за технологиите, свързани с MySQL, PostgreSQL или Microsoft SQL, зад тях винаги се крие един и същи принцип, а и доста подобен синтаксис за работа, който се очаква да познават програмистите. Защото принципът е, меко казано, изпитан от времето.

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

<a href="https://www.zettahost.bg/author/georgik/" target="_self">Георги Караманев</a>

Георги Караманев

Георги е журналист, писател и Front-end програмист – част от екипа на ZETTAHOST.bg. Има повече от 15 години опит в подготвянето на публикации на технологична тематика за Списание 8, в. „24 часа“ и други медии. През 2019 г. и 2021 г. получи наградите в категория „Технологии и иновации“ от конкурса на Dir.bg за чиста журналистика Web Report.
Последвайте ни

Най-нови публикации:

Всички обичат Flutter

„Манджа с грозде“ ще го нарекат много от по-опитните софтуерни инженери, защото за тях си изглежда така. И все пак, платформата Flutter неслучайно е много сериозен хит през последните години. Определено е явление, което се оказа издръжливо и, по всичко личи, ще е...

WordPress 6.0 Arturo е тук с невиждани досега възможности за редакция

WordPress 6.0 Arturo е вече тук с над 1000 подобрения и отстранени бъгове! Втората версия за 2022 г. може да се похвали с по-добро цялостно представяне, по-бързо зареждане на сайта и с над 50 актуализации, свързани с достъпността на платформата. Какво трябва да знаем...

Качествен код. Що е то?

Ако не работите в сферата на софтуерната разработка, може би ще ви звучи странно, че програмистите биват наричани и софтуерни инженери. А в това има много сериозна логика, знаят го всички, които са натрупали определен опит в тази област. Защото писането на компютърен...

5 идеи как да привлечете гости на сайта си

Всички сме минавали през това. Създавате си сайт, влагате всичко от себе си. Влизате в ролята на ресторантьор, създал забележително място с невероятни блюда и… гостите ги няма, за да оценят храната. Налага се сами да си хапвате от гурме блюдата, които иначе ще се...

Раз, два, тест! Типовете тестване в софтуерния свят

Ако си поговорите с някой от „динозаврите“ в софтуерната индустрия, той ще ви разкаже как само преди няколко десетилетия никой не е обръщал внимание на тестовете и дори не е съществувала професията на QA инженерите. Днес тестовете са основополагащ елемент от...

Личен сайт безплатно!

Регистрирай се безплатно и си направи сайт още днес.

Безплатната хостинг услуга на ZETTAHOST.bg няма скрити такси и изисквания за ползване.

Безплатен хостинг

Pin It on Pinterest

Share This