ПредишенСледващото

SQL или NoSQL - това е въпросът 8

  • 03.27.17 11:15 •
  • ru_vds •
  • • # 324936
  • • Habrahabr
  • превод •
  • 23 •
  • 17100

- като Forbes, само по-добре.

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

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

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

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

Sql или NoSQL

Как да изберем технологията? Отговорът на този въпрос зависи от конкретния проект.

От избора на SQL-база данни


Не съществува база данни, която ще отговаря на всички. Ето защо много компании използват както релационни и не-релационна база данни за различни задачи. Докато NoSQL-бази данни са станали популярни в резултат на изпълнението на висока скорост и добра мащабируемост, в някои ситуации, може да се предпочита структуриран SQL-магазин. Ето две причини, които могат да доведат до избор на SQL-база данни:

  1. Необходимостта от спазване на база данни киселина (валентност, последователност, изолация, Дълготрайност - валентност, последователност, изолация, издръжливост). Това намалява вероятността от неочаквано поведение на системата и да се гарантира целостта на базата данни. Постигнати от подобен трудно се определи как сделките взаимодействат с базата данни. Това се различава от подхода, използван в NoSQL бази че дават крайъгълен камък гъвкавостта и скоростта, не целостта данни 100%.
  • Данните, с когото работите, структуриран и структурата не е предмет на чести промени. Ако вашата организация не е в етап на експоненциален растеж, най-вероятно няма да намерите по-убедителна причина да се използва база данни, която позволява достатъчно свободи с типове данни и е предназначена за обработка на огромни количества информация.

  • От избора на NoSQL-бази данни


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

    Това са функции, които са довели до популярността на NoSQL база данни като MongoDB, CouchDB, Касандра, HBase:

    1. Съхранение на големи обеми от неструктурирана информация. NoSQL база данни не налага ограничения за вида на съхраняваните данни. Освен това, ако е необходимо, в този процес, можете да добавите нови типове данни.
  • Използването на изчислителни облаци и съхранение. Cloud съхранение - идеалното решение, но те се нуждаят, че данните могат да бъдат лесно разпределени по множество сървъри, за да се осигури мащабируемост. Използването, за тестване и развитие, местното оборудване, и след това се прехвърля в системата към облака, където тя работи - това е точно това, което е създало базата данни NoSQL.
  • Бързото развитие. Ако се разработи система, с помощта на гъвкави методи-, използването на релационна база данни е в състояние да се забави. NoSQL бази данни не се нуждаят от същото количество подготвителни действия, които обикновено са необходими за релационни бази данни.

  • В следващия раздел, да обсъдим някои от разликите между SQL и NoSQL технологии. А именно, първо разгледаме един прост пример, който показва фундаменталната разлика между двата подхода към организацията на базата данни, а след това ще говорим за мащабируемост и индексиране на данните. Но в крайна сметка голяма спра на един пример CRM-система, която се нуждае от съхранение на данни с висока производителност.

    SQL и NoSQL


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

    Sql или NoSQL

    Две опции за отчитане

    Besskhemnost означава, че два документа NoSQL структура на данните не трябва да имат едно и също поле и може да съхранява данни от различни видове. Например, масив от обекти, набор от области, които не съвпадат.


    Когато релационен подход, данните трябва да се съхраняват в предварително инженерно съоръжение, от които данните могат да бъдат извлечени по-късно. Например, с помощта на JOIN оператор, когато извадка от две таблици:


    В по-напреднал Например, за да покаже, предпочитано когато SQL NoSQL, помисли за конкретно приложение бази данни NoSQL-компресия алгоритми. Проблемът е, че в някои NoSQL-бази данни (например, CouchDB и HBase) постоянно трябва да се образуват така наречените sstables - низ маса във формат ключ-стойност, сортирани по ключ. В тези таблици, които се съхраняват на диска, данните идват от таблици, съхранени в паметта, с тяхната пренаселеност и в други ситуации. С тежки употреба на произведението таблица от база данни, с течение на времето, води до факта, че устройството за съхранение на подсистемата входно-изходни данни става пречка за операции четене. В резултат на това четене в NoSQL базирани по-бавно от рекорда, който отрича един от основните предимства на не-релационни бази данни. Това е с цел да се намали този ефект, се използват NoSQL системи, във фонов режим, за компресиране на данни алгоритми, опитвайки се да комбинирате няколко маси в една. Но само по себе си, тази операция е много ресурс-интензивно, системата работи под високо натоварване.

    мащабируемост


    Една от основните разлики са разгледани технологии е, че NoSQL база данни, по-податлив на мащабиране. Например, има вградена поддръжка MongoDB репликация и sharding (хоризонтално разделение на данни), за да се осигури мащабируемост. Докато мащабиране се поддържа в SQL-база данни, тя изисква много по-човешки и хардуерни ресурси разходи.

    Вид на склад за данни

    Въпросът е поставен неправилно първоначално. В резултат на това:
    Това са признаци на проекти, които са идеални за SQL-база данни:
    DB не трябва да бъде избран за проекта, както и за изпълнение на задачите. По един или друг начин, в един проект може да се използва като релационна база данни, както и така наречените NoSQL.

    самият въпрос NoSQL стоеше на дневен ред, когато паметта става достъпно гигабайта
    Трябва нещо да се обърка ...

    как смяташ да се работи с данни, ако не знаете, че има
    вашата работа с база данни NoSQL на ниво приложение е изпращане и получаване на линия?

    "Липсата на твърда структура на данните" - няма друг начин да се обясни "предимство" NoSQL. Това е начина, по който ще работи с данни, ако не знаете какво е това?

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

    Подкрепете проекта - споделете линка, благодаря!