Наборы данных и XML вместо правильной базы данных: не очень хорошая идея? - PullRequest
2 голосов
/ 08 апреля 2009

В продолжение: Хранение DataRelation в xml?

Спасибо всем за ответы на мою предыдущую ветку. Однако могу ли я спросить причину, по которой все не поддерживают этот подход на основе XML? Какие именно будут проблемы? Я могу применить ограничения к набору данных и, я думаю, я также могу использовать транзакции.

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

Согласно FAQ, обсуждения не очень поощряются, но я думаю, что это довольно специфично. Надеюсь, меня за это не уволят ...:)

Спасибо за чтение, Саурабй.

Ответы [ 3 ]

3 голосов
/ 08 апреля 2009

Системы управления базами данных специально предназначены для хранения данных и их быстрого извлечения, для сохранения целостности данных и использования одновременного доступа к данным.

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

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

Когда вы сталкиваетесь с двумя инструментами, один из которых предназначен для выполнения именно того, что вам нужно делать (в данном случае СУБД), а другой - для выполнения чего-то другого, но был создан для выполнения того, что вы хотите, Сорта (в данном случае XML), вам, вероятно, следует выбрать первый вариант.

3 голосов
/ 08 апреля 2009

Параллельность будет основной проблемой, когда несколько пользователей хотят получить доступ к одному и тому же файлу «базы данных». Производительность другая, потому что весь файл должен быть загружен в память. Если размер файла увеличивается, он станет неуправляемым. Кроме того, снижается производительность запросов, поскольку она не будет столь же эффективной, как получение чего-то настроенного и отточенного, как СУБД, чтобы сделать это за вас.

0 голосов
/ 08 апреля 2009

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

Если существует вероятность того, что другое приложение, построенное на другой платформе (не ADO.NET), может понадобиться для доступа к вашим данным в будущем, работа с гигантским файлом XML, скорее всего, усложнит жизнь. Реляционная БД является стандартным подходом к решению подобных проблем.

...