Бърз преглед на релационни и нерелационни бази данни

Досега опитът ми с бази данни като разработчик беше ограничен до релационни (SQL) бази данни. Въпреки това, докато изследвах популярните стекове на технологии, използвани от професионални разработчици, попаднах на стека MEAN (MongoDB, Express, Angular и Node), който след това ме доведе до изследване на MongoDB и концепцията за бази данни, които не разчитат на техниките използва се за съхраняване на данни в релационни бази данни.

Първо: бързо опресняване на основните понятия на релационна база данни. Релационните бази данни се основават на релационния модел на данните, предложен за първи път от английския компютърен учен Е.Ф. Код през 1970 г. Данните се организират въз основа на това как всяка таблица е свързана помежду си и тези връзки се определят количествено въз основа на „чужди ключове“ във всяка таблица, която идентифицира кои чужди таблици са свързани с текущата таблица, която питате. Почти всички релационни бази данни използват SQL за търсене и поддържане на базата данни.

Прост пример за релационна база данни

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

Защо да използвате база данни NoSQL?

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

Бавното зареждане на страници значително увеличава степента на отпадане

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

Винаги ли е по-добрият избор на бази данни от NoSQL?

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

Сравнение на различни бази данни NoSQL с релационна база данни

Източници / Допълнително четене

https://www.hadoop360.datasciencecentral.com/blog/advantages-and-disadvantages-of-nosql-databases-what-you-should-k