Сколько слишком много данных для и XML-файл, и каковы некоторые основанные на файле альтернативы базы данных?

Я пишу приложение, которые отслеживают библиотеку музыки, и мне нужен способ сохранить список дорожек, альбомов и других данных. Обычно для чего-то вроде этого я использовал бы XML-файл для сохранения данных. И затем я использовал бы ADO.NET DataTable для управления данными. Но эта программа могла потенциально сохранять большое количество элементов данных. Также я собираюсь хотеть смочь быстро искать, отсортировать, и отфильтровать таблицу песен.

Таким образом, моим первым вопросом является там предел лучших практик на то, сколько данных должно храниться в единственном XML-файле, прежде чем это будет лучшая идея использовать реляционную базу данных? Второй, каковы некоторые альтернативные опции для того, как я храню эти данные в единственном файле. Следует иметь в виду, что я не хочу, чтобы программа полагалась на то, чтобы там быть сервером (MS SQL, MySQL и т.д.) работающий где-нибудь, что это может соединиться с. Я хочу данные, хранившие в единственном файле. Также я не огромный поклонник Доступа MS. Таким образом, в то время как существуют пути к ADO.NET для доступа к файлу MDB, я ищу другие опции.

Другая возможность, которую я рассматриваю, придерживается сериализации/сериализации моего набора объектов "Track" к/от XMl. Все же выполнение любого типа БД наполняет как поиск, сортировка, фильтруя использование Linq на наборе. Я еще не использовал Linq, таким образом, я не уверен в специфических особенностях для того, как это было бы сделано, или если это будет наилучший вариант.

6
задан Brian Tompsett - 汤莱恩 19 December 2015 в 12:57
поделиться

7 ответов

Хотя я не могу ответить на ваши вопросы относительно XML, я считаю, что решение ваших проблем - SQLite . Это чрезвычайно быстрая и легкая база данных SQL на основе файлов, не требующая сервера. Вы также можете использовать что-то вроде System.Data.SQLite для взаимодействия с ним изнутри .NET.

8
ответ дан 8 December 2019 в 17:22
поделиться

Проверьте это: http://www.sqlite.org/ . Думаю, если для вас важны сортировка и фильтрация, вам понадобится реляционная база данных поверх XML.

2
ответ дан 8 December 2019 в 17:22
поделиться

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

0
ответ дан 8 December 2019 в 17:22
поделиться

It seems that lots of people know about SQLite but for the first part of your question --

There's too much data in the XML file when you can't manipulate it quickly enough for your needs.

Oh ... and other flat-file databases : Berkeley DB and Berkeley DB XML

If you're used to working with XQuery, BDB-XML might be easier to convert to than SQL.

1
ответ дан 8 December 2019 в 17:22
поделиться

Другой удобный вариант, хотя и не бесплатный, - это VistaDB .
Имеет хорошую совместимость с T-SQL (если SQL-сервер может стать проблемой для вас в будущем) и написан в полностью управляемом коде .net, поэтому не требует полного доверия, как sqlite.

0
ответ дан 8 December 2019 в 17:22
поделиться

SQL Server Express является бесплатным.

Кроме того, XML не является технологией баз данных. Например, что произойдет, если система выйдет из строя во время написания обновления? Вы получите поврежденный файл, который невозможно восстановить.

2
ответ дан 8 December 2019 в 17:22
поделиться

Возможно, вас заинтересует решение в области .NET. Есть несколько решений:

*. или SQL Lite

*. Хранилище объектов

В то время как реляционные данные хороши для огромного количества данных, и нам нужно выполнять много численных вычислений (таких как агрегирование и т. Д.), Структуры таблиц и запросы становятся слишком сложными с точки зрения сложных объектов. Вы можете оценить некоторые из очень известных решений Object Store с открытым исходным кодом, которые достаточно производительны и безопасны. Одно из решений - Db4O . У них есть собственный .Net-клиент, и производительность считается очень хорошей.

*. Хранилище данных XML

Хотя я не очень разбираюсь в этом, и было бы неплохо узнать несколько хороших решений на основе .NET. Предполагается, что Berkeley DB находится на Java от Oracle

1
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

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