От настъпването на дигиталната ера ние съхраняваме данни. С течение на времето бяха създадени системи за управление на бази данни и с това беше разработен език, наречен Structured Query Language (SQL), за да можем да работим магически с нашата СУБД.

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

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

Със скритата тази представа във всички наши данни можем лесно да открием търговски тайни, бизнес ниши и потенциални клиенти. Както се казва в новата поговорка, данните са новото масло. Когато решаваме SQL или No-SQL за нашата база данни, трябва да вземем решение внимателно.

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

В тази управлявана от данни ера, как съхраняваме нашите данни и как ги съхраняваме, се превърна във важна тема.

Нуждаем се от гъвкавост в схемата на нашите данни, но по някакъв начин се нуждаем и от организиране.

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

Трябва да извличаме и обработваме данни бързо, но по някакъв начин да съхраняваме терабайти данни едновременно.

Има огромни изисквания и очаквания към нашите бази данни и въз основа на това решаваме как да продължим напред.

В тази статия ще разгледаме как се сравняват SQL и No-SQL и кой е подходящ за вашия проект.

Схема

Готов съм да се обзаложа, че вероятно си мислите, че това трябва да е безсмислено. Ами не е. SQL и No-SQL съхраняват данни по различен начин. SQL съхранява данните по релационен начин, което означава, че те трябва да бъдат свързанис нещо друго. Той прави това чрез използването на външни ключове и връзки на първичен ключ. (Това се предполага, че човекът знае какво прави, когато проектира схемата.)

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

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

Например, забравили сте да добавите полето „Член на семейството“ към вашата таблица. Сега трябва да разберете дали трябва да създадете нова таблица или трябва да добавя ново поле към съществуващото? Или трябва да използвам масив или JSON низ? Искам да кажа, че може да има няколко членове на семейството, ние не искаме да имаме само един, нали? Каквото и да решите да направите, сега сте изправени пред проблем, трябва да изпълните някои SQL изрази, за да актуализирате вашата схема, след което трябва да я тествате. О, и не забравяйте, трябва да актуализирате предния край, така че да вземе това предвид! Радост!

Това е мястото, където се крие силата на No-SQL база данни. Искате ли да добавите поле за член на семейството? Просто продължавай! Променете своя преден край и готово! Когато изпратите данните ще се съхранят за вас! Толкова е лесно! Направете колкото искате промени, всичко, което трябва да направите, е да промените начина, по който изпращате данните. No-SQL не изисква схема (Можете ръчно да дефинирате такава, ако желаете), но е гъвкав и се развива според начина, по който съхранявате данните си. Работи по същия начин, както вашият мозък и как съхраняваме данни.

Да речем, че срещнете някого и всичко, което знаете, е вашето име. Нека използваме тяхното име като техен идентификатор. Когато срещнете човека, научавате неговата личност, интереси и външен вид и с течение на времето научавате все повече и повече за него. Съхранявате все повече и повече данни безпроблемно с течение на времето. Не е нужно да определяте критериите, за да събирате данни за тях, вие ги определяте автоматично, когато научавате все повече и повече за тях. Ето как работи No-SQL. Това е стилът на нещата без схеми, които ви позволяват да добавяте данни безпроблемно.

Целостта на данните

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

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

Оптимизиране на съхранението на данни

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

Съхраняване на големи количества данни

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

Начинът, по който е проектиран No-SQL, позволява бързо извличане на данни. Той също така поддържа връзки с външен ключ, така че не всеки бит данни е статичен. Данните без SQL се съхраняват в JSON низове. Това позволява светкавично бързо извличане и обработка на данни. Така че по същество няма повече бавни приложения и в тази бележка:

Съвместимост с предния край

Ако сте като мен и проектирате много уеб приложения, ще харесате No-SQL. Защо? Добре. Повечето No-SQL рамки използват JavaScript веднага. С други думи, интегрирането му във вашето приложение е толкова лесно, колкото да напишете още един ред JavaScript и да импортирате библиотека. No-SQL съхранява данни, използвайки JSON формат, така че след като вземете информация от задния си край, не е необходимо да се обработва, можете просто да го изобразите на предния си край.

От друга страна, SQL базите данни изискват да разработите интерфейс за вашия преден край, който да комуникира с задния край. SQL не използва непременно и JSON за всичко, така че вие ​​ще преведете в JSON всичко, което изобразите в предния край (все пак за повечето модерни JS рамки).

уф! Това бяха много неща. Освен това ще добавя още в бъдеще.

Както и да е, ето TLDR:

Използвайте No-SQL за всичко, с изключение на изключително важно съхранение и обработка на данни като финансови транзакции.

No-SQL е много по-бърз и съхранява данните по-добре.