Hoe kinne jo it ferskil útlizze tusken SQL en NoSQL oan jo beppe

Hoe kinne jo it ferskil útlizze tusken SQL en NoSQL oan jo beppe

Одно из наиболее важных решений, которые принимает разработчик, заключается в том, какую базу данных использовать. В течение многих лет опции были ограничены различными вариантами реляционных баз данных, которые поддерживали язык структурированных запросов (SQL). К ним относятся MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 и многие другие.

За последние 15 лет на рынке появилось много новых баз данных в рамках подхода No-SQL. К ним относятся хранилища ключей-значений, такие как Redis и Amazon DynamoDB, широкие колоночные базы, такие как Cassandra и HBase, хранилища документов, такие как MongoDB и Couchbase, а также графовые базы данных и поисковые системы, такие как Elasticsearch и Solr.

В этой статье мы попробуем разобраться в SQL и NoSQL, не влезая в их функционал.
Кроме того, мы немного повеселимся в процессе.

Объясняем бабушке SQL

Бабушка, представь, что я не единственный твой внук. Вместо этого мама и папа любили друг друга как кролики, у них было 100 детей, затем они усыновили еще 50.

Итак, ты любишь всех нас и не хочешь забыть ни одного из наших имен, дней рождений, вкусов любимого мороженого, размеров одежды, хобби, имен супругов, имен отпрысков и других супер важных фактов. Однако давай посмотрим правде в глаза. Тебе 85 лет, и старая добрая память просто не в состоянии справиться.

К счастью, я, будучи самым умным из твоих внуков, могу помочь. Поэтому я прихожу к тебе домой, достаю несколько листов бумаги и прошу тебя испечь печенье перед тем, как мы начнем.

На одном листе бумаги мы составляем список под названием «Внуки». Каждый pakesizzer записан с некой существенной информацией о нем, включая уникальный номер, который теперь будет обозначать, каким внуком он является. Кроме того, ради организованности мы выписываем именованные атрибуты в верхней части списка, чтобы мы всегда знали, какую информацию этот список содержит.

id
namme
jierdei
last visit
klean grutte
favorite ice-cream
oannommen

1
Jimmy
09-22-1992
09-01-2019
L
Mint chocolate
falsk

2
jessica
07-21-1992
02-22-2018
M
Rocky road
wier

…продолжаем список!

Cписок внуков

Через некоторое время ты во всем разбираешься и мы почти закончили со списком! Однако ты поворачиваешься ко мне и говоришь: «Мы забыли добавить место для супругов, хобби, внуков!» Но нет, мы не забыли! Это следует дальше и требует нового листа бумаги.

Так что я вытаскиваю еще один лист бумаги, и на нем мы называем список Spouses. Мы снова добавляем атрибуты, которые нам важны, в начало списка и начинаем добавлять в строках.

id
grandchild_id
namme
jierdei

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

…больше супругов!

Список супругов

На этом этапе я объясняю бабушке, что если она хочет знать, кто с кем состоит в браке, то ей нужно только сопоставить id yn de list внуков с grandchild_id в списке супругов.

После пары десятков печений мне нужно вздремнуть. «Можешь продолжить, бабуля?» Я ухожу, чтобы вздремнуть.

Я возвращаюсь через несколько часов. А ты крута, бабуля! Все выглядит отлично, за исключением списка hobby. В списке около 1000 хобби. Большинство из них повторяются; что случилось?

grandchild_id
leafhawwerij

1
fytsen

4
fytsen

3
fytsen

7
te rinnen

11
fytsen

…продолжаем!

Извини, совсем забыл сказать! Используя один список, можно отслеживать только hobby. Затем в другом списке нам нужно отследить внуков, которые занимаются этим hobby. Мы собираемся назвать это «Общий список». Видя, что тебе это не нравится, я начинаю переживать и возвращаюсь в режим списка.

id
leafhawwerij

1
fytsen

2
te rinnen

3
swimmen

…больше хобби!

Список хобби

Как только у нас есть наш список хобби, мы создаем наш второй список и называем его «Увлечения внуков".

grandchild_id
hobby_id

4
1

3
1

7
2

…больше!

Общий список внуки хобби

После всей этой работы у бабушки теперь есть крутая система запоминания для слежки за всей ее удивительно большой семьей. А потом — чтобы задержать меня подольше — она задает волшебный вопрос: «Где ты научился все это делать?»

Relasjonele databases

Реляционная база данных — это набор формально описанных таблиц (в нашем примере это листы), из которых можно получить доступ к jûn или собрать их различными способами без необходимости реорганизации таблиц Databank. Существует много разных типов реляционных баз данных, но к сожалению список на листе бумаги не является одной из них.

Отличительная черта наиболее популярных реляционных баз данных — язык запросов SQL (Structured Query Language). Благодаря нему, если бабушка перенесет свою систему запоминания в компьютер, она сможет быстро получить ответ на такие вопросы, как: «Кто не посещал меня в прошлом году, женат и не имеет никаких увлечений?»

Одна из наиболее популярных систем управления базами данных SQL это MySQL с открытым исходным кодом. Она реализована в первую очередь как система управления реляционными базами данных (RDBMS) для программных приложений на базе веб-технологий.

Некоторые ключевые особенности MySQL:

  • Она довольно известна, широко используется и тщательно протестирована.
  • Есть много квалифицированных разработчиков, имеющих опыт работы с SQL и реляционными базами данных.
  • Данные хранятся в различных таблицах, что позволяет легко устанавливать связь с использованием первичных и внешних ключей (идентификаторов).
  • Он прост в использовании и эффективен, что делает его идеальным для больших и малых предприятий.
  • Исходный код находится на условиях GNU General Public License.

Теперь забудь ALLE.

Объясняем бабушке NoSQL

Бабушка, у нас огромная семья. В ней 150 внуков! Многие из них женаты, имеют детей, чем-то увлекаются и прочее. В твоем возрасте невозможно помнить все обо всех нас. Что тебе нужно, так это это система запоминания!

К счастью, я, net желая, чтобы ты забыла мой день рождения и любимый вкус мороженого, могу помочь. Поэтому я бегу в ближайший магазин, беру тетрадь и возвращаюсь к тебе домой.

Первый шаг, который я делаю, это пишу «Внуки» большими жирными буквами на обложке тетради. Затем я перелистываю на первую страницу и начинаю писать все, что ты должна помнить обо мне. Через несколько минут страница выглядит примерно так.

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я: “Кажется все готово!”
Grandma: “Подожди, а как же остальные внуки?”
Я: “Да, точно. Тогда выделяем по странице на каждого.”
Grandma: “А мне нужно будет записывать всю ту же самую информация для всех, как я делала для тебя?”
Я: “Нет, только если ты хочешь. Давай покажу.”
Забрав у бабушки ручку, я перелистываю страницу и быстро записываю информацию о моем самом нелюбимом двоюродном брате.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

Всякий раз, когда бабушке нужно что-то вспомнить об одном из внуков, ей нужно только перейти на нужную страницу в записной книжке внуков. Вся информация о них будет храниться прямо там, на их странице, которую она может быстро изменить и обновить.

Когда все уже сделано, она задает волшебный вопрос: «Где ты научился все это делать?»

NoSQL-databases

D'r binne in protte баз данных NoSQL (“не только SQL”). В наших примерах мы показали базу данных документов. Базы данных NoSQL моделируют данные способами, исключающими табличные отношения, используемые в реляционных базах данных. Эти базы данных стали популярными в начале 2000-х годов среди компаний, которым требовалась облачная кластеризация баз данных из-за их явных требований к масштабированию (например, Facebook). В таких приложениях согласованность данных была намного менее важной, чем производительность и масштабируемость.

В начале базы данных NoSQL часто использовались для нишевых задач управления данными. В основном, когда дело доходило до веб и облачных приложений, базы данных NoSQL обрабатывали и распределяли значительные объемы данных. Инженерам, работающим с NoSQL, также понравилась гибкая схема данных (или ее полное отсутствие), так что были возможны быстрые изменения в обновляемых приложениях.

Ключевые особенности NoSQL:

  • Очень гибкий способ хранения данных
  • Горизонтальное масштабирование до кластеров
  • Возможная последовательность на постоянство / распространение
  • Документы, которые идентифицируются с использованием уникальных ключей

Детальное сравнение

MySQL требует определенной и структурированной схемы.
NoSQL позволяет сохранять любые данные в «документе».

MySQL поддерживает огромное сообщество.
У NoSQL есть небольшое и быстро растущее сообщество.

NoSQL отличается простотой масштабирования.
MySQL нуждается в большей управляемости.

MySQL использует SQL, который применяется во множестве типов баз данных.
NoSQL — это база данных на основе дизайна с популярными реализациями.

MySQL использует стандартный язык запросов (SQL).
NoSQL не использует стандартный язык запросов.

MySQL имеет много отличных инструментов отчетности.
В NoSQL есть несколько инструментов отчетности, которые сложно стандартизировать.

MySQL может выдать проблемы с производительностью для больших данных.
NoSQL обеспечивает отличную производительность на больших данных.

Мысли 8base

Yn selskip 8base, в которой я работаю, мы обеспечиваем рабочую область каждого проекта реляционной базой данных Aurora MySQL, которая размещается на AWS. Хотя NoSQL является логичным выбором, когда требования вашего приложения требуют высокой производительности и масштабируемости, мы считаем, что строгая согласованность данных, обеспечиваемая СУБД, необходима при создании SaaS-приложений и другого программного обеспечения для бизнеса.

Для стартапов и разработчиков, создающих такие бизнес-приложения, которые нуждаются в отчетности, целостности транзакций и четко определенных моделях данных, вкладываться в работу с реляционными базами данных — это, по нашему мнению, правильный выбор.

Узнайте больше о разработке с Aurora, Serverless и GraphQL с помощью 8base.com hjir.

Boarne: www.habr.com

Add a comment