Каковы недостатки в файле хранения данных с сервером JSON?

StackOverflow https://stackoverflow.com//questions/23038858

Вопрос

Я ищу альтернативные методы хранения данных для SQL (, чтобы сказать, я делаю не хочу использовать sql, даже для запросов ) и наткнулся намало на основе JSON.Общение с друзьями, которые работают в базе данных, они сказали, что я не должен рассматривать их, но не сложил бы. Каковы потенциальные (и практичны) недостатки для использования JSON в качестве формата файла хранения данных?


Я понял, что JSON будет лучше , чем SQL по этим причинам:

  1. json строго определен и не имеет вкусов (Oracle, Microsoft, MySQL и т. Д.)
  2. Поскольку Google начал делать Chrome, интерпретаторы JS сделали чтение, анализ и вывод JS (и, таким образом, JSON) A очень очень FAST и EASY процесс.
  3. база данных вывод может быть чистым json , стирающий необходимость переводчика среднего мужчины для браузеров и т. Д.
  4. среди других ...

Это было полезно?

Решение

Я думаю, что вы можете взглянуть на базы данных No-SQL: https://en.wikipedia.org/wiki/noSQL

Если вам нравится использовать JSON-подобные данные, то один, который я лично использовал, это Mongodb.

Я не использовал его в качестве основного / единого источника моих данных приложения, но только для вторичных целей. Но, я думаю, вы можете попробовать использовать его в качестве основных хранилищ данных (я думаю, что многие люди делают).

Что я пробовал, и был довольно удовлетворительным, был MongoDB с C # и используя Mongovue в качестве приложения GUI для выполнения запросов и взаимодействия с БД. Я не очень доволен Монговью, но кажется, что это был лучший вариант в то время.

Однако SQL DBS очень хороши при определении отношений в ваших данных. Например. Ссылаясь на запись на таблице А из записи на таблице B, а такого рода. Используя эти отношения, вы можете присоединиться к столам и делать много интересных вещей. Я думаю, вам хорошо, чтобы вы также получили опыт на этой области.

Mongodb не строит для определения отношений (насколько я понимаю). Он имеет концепцию «документов», где вы храните информацию в формате JSON вроде (с вложенным ключом / значениями). Вы можете запросить документы, но присоединение кажется, похоже на взлом вокруг своего нормального использования: Как я могу выполнить эквивалент SQL в MongoDB? Кроме того, обеспечивая консистенцию данных (в действительно надежном порядке) при использовании отношений в MongoDB кажется довольно невозможным для меня. Но даже если я ошибаюсь, и это возможно, это будет 10 раз сложнее, чтобы достичь его, чем с SQL DBS.

Но вы можете взглянуть на список в Википедии, и для вас может быть лучшая альтернатива, чем MongoDB.

Но вы также можете использовать чистые JSON без систем БД.

Итак, в резюме JSON - как хранение имеет (по крайней мере) эти проблемы:

    .
  • не хорошо в определении и использование отношений
  • При использовании отношений целостность данных (или более вероятность, справочная целостность) сложно.
  • Если вы не используете хорошую систему БД, но вы просто сдавите JSON в файл, когда этот файл становится слишком большим, у вас будут проблемы с производительностью. Представьте себе запрос на 1 ГБ JSON закодированного массива объектов, чтобы получить те, которые вы хотите. Вам придется загрузить весь массив на память, пройти через все это (так как у вас не будет никаких индексов), а затем (если у вас нет памяти, и ваше соединение - когда используя сеть - не срок действия) получит результат. Большинство No-SQL DB, такие как Mongodb, и большинство SQL DB не имеют таких проблем (по крайней мере, в разумных количествах данных). Они в порядке, они поддерживают индексацию, ссылки, разрешения, роли, и вы также можете определить выполнение кода на уровне БД (например, триггеры и хранимые процедуры). Конечно, они сложнее, но эта сложность может потребоваться большую часть времени для достижения конечного результата.

Другие советы

JSON или JavaScript Object - это открытый стандартный формат, который использует читаемый человеком текст для передачи объектов данных, состоящих из пар атрибутов.Он используется в основном для передачи данных между сервером и веб-приложением, в качестве альтернативы XML.

Вы больше смотрите на сравнение между База данных VS Flat-файловой хранилище / P >.

Даже при использовании реляционной БД, целостность данных (или референтность) все еще тяжело, потому что строки, как правило, временные.Нередко зарубежные ключи не исполняются из-за этого.Когда возникает обновление строки, у вас есть 2 варианта.Во-первых, «забудь» предыдущая версия.Во-вторых, обновите оригинальную строку и скопируйте предыдущую версию в таблицу истории «Неосвязанные» истории времени «Неосвязанные», где иностранные ключи бесполезны.Большинство деловых данных требуют обновлений.Особенности поддержания ссылочной целостности в реляционных базах данных бесполезны для этого типа деловых данных (которые представляют большинство данных корпоративных данных). Требуется временная база данных или уровень абстракции, который представляет пользователь с соответствующей версией ряд на основе контекста времени.В идеале в 2 измерениях I.e. Время транзакции и времени бизнес (AKA Действующее время).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top