База данных для распространения на CD - PullRequest
0 голосов
/ 28 мая 2009

Какой хороший способ распространения небольшой базы данных на CD-ROM?

База данных должна быть зашифрована. Он должен работать на WinXP и Vista. Приложение написано на C #, а также распространяется на CD. Записи только читаются, но не пишутся.

Можно запустить установщик, но мы предпочитаем этого не делать.

База данных имеет 100000 записей, и производительность не является основной целью.

EDIT: Да, пользователь должен будет ввести пароль для расшифровки базы данных.

Ответы [ 8 ]

7 голосов
/ 28 мая 2009

Я бы использовал для этого SQLite .

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

Если есть вероятность, что вам понадобится добавить / обновить этот источник данных по мере развития вашего приложения, используйте SQLite.

3 голосов
/ 28 мая 2009

Честно говоря ... Если бы вы могли это сделать, я бы использовал зашифрованные файлы XML. Не требует установки, запускается в любом месте (текстовые файлы не имеют зависимостей), быстро и, так как обновления не нужны, это сделает это еще проще.

2 голосов
/ 28 мая 2009

База данных должна быть зашифрована

Быстрый вопрос: как вы расшифровываете это? Правильно, если пользователь введет пароль дешифрования или неправильно введет ключ дешифрования в ваше приложение, что означает, что его можно легко извлечь?

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

Я также искал встроенную базу данных, и на основе полученных ответов Я пошел с SQLite, который прост в реализации .

2 голосов
/ 28 мая 2009

Если вы работаете в правительственном агентстве Великобритании, постарайтесь не оставлять компакт-диск в поезде или отправлять его по почте ...:)

2 голосов
/ 28 мая 2009

SQL Server CE - это урезанная версия SqlServer (CE означает Compact Edition), которая поддерживает шифрование. БД состоит из одного файла.

Программное обеспечение состоит из набора DLL, который вы копируете рядом с вашим exe-файлом.

(Не обманывайте себя CE: в дополнение к версии для Windows Mobile существует версия Windows для настольных компьютеров.)

2 голосов
/ 28 мая 2009

MS-SQL (Express) имеет явную настройку для баз данных только для чтения. Я не уверен насчет шифрования.

Я вполне уверен, что Sql Server Compact (SSCE) также разрешит только чтение и поддерживает шифрование. Но вам придется где-то хранить пароль ...

SSCE, вероятно, позволит вам запустить без установки.

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

0 голосов
/ 05 января 2011

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

0 голосов
/ 28 мая 2009

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

Что касается шифрования, SQLite имеет как минимум одно расширение , поддерживающее шифрование

Вы также можете выбрать любую доступную только для чтения базу данных и сохранить pk's и fk's, но зашифровать поля содержимого вручную (т.е. по коду)

...