172 похожих чатов

Ребят, а вот такой вот немного странный вопрос) Какие на

ваш взгляд у nosql баз данных ключевые недостатки по сравнению с реляционными?

7 ответов

4 просмотра

https://pbs.twimg.com/media/Bv91DRKIQAEC77J?format=png&name=large

ACID

Это разные хранилища для разных задач

Нельзя сравнить. Тоже искал везде. Но ответ 1 всегда. Исходя из задачи выбирается тип.

Kamoliddin Nabijonov
Нельзя сравнить. Тоже искал везде. Но ответ 1 всег...

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

noSQL в подавляющем большинстве случаев - просто БД; SQL в подавляющем большинстве случаев - реляционные СУБД. Поэтому надо сначала смотреть, что из себя представляет noSQL: СУБД или БД. Когда noSQL - СУБД, это специализированная СУБД, заточенная под узкий круг задач. Реляционные же - универсальные СУБД общего назначения, предназначенные для очень большого круга задач.

В монге атомарная работа в пределах документа , а в постгресе ты можешь все в транзакцию завернуть, вплодь до изменения схемы. То есть уже про изоляцию состояния приходится париться больше. Реляционная модель позволяет тебе обмазаться предикатами/ключами и более-менее все будет хорошо РСУБД - возможность описать стэйт предикатами и гарантировать целостность данных на языке формальной логики - это офигенно А еще это значит что разработчики могут спокойно глобальный стэйт запихнуть без какой-либо изоляции в одно хранилище потому что хранилище защитит от дурачков Скажем с тем же jsonb это удобно но это абсолютно не значит что у jsonа этог оне будет никакой схемы. И ты можешь даже констрейны прописать: ALTER TABLE jsontable ADD CONSTRAINT uuid_must_exist CHECK (j ? 'uuid'); Иногда тебе нужны ограничения, иногда нет. Иногда тебе хочется "перестраховаться" и сделать ограничения на самом низком уровне (база) а иногда тебе важнее гибкость и ты выносишь все ограничения на уровень приложения, оставляя базу тупой и оставляя за собой гибкость выбора хранилища. Сегодня твой маленький сервис маленький а завтра тебе руководство говорит "надо срочно мультирегиональный деплоймент что бы данные волшебным образом реплицировались по всему миру с целью уменьшения лэтенси" и ты такой "о, збс, у меня стэйт разделен на агрегаты и я могу запихать все в dynamodb global table и пить смузи. Ну и как не странно монга хороша там, где с данными нужно работать как с документами, какой-нибудь ЭДО, опросили аля Гугл формы

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А чем вам питонисты не угодили?😂
.
79
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Карта сайта