Объединить базу данных в API - PullRequest
1 голос
/ 06 марта 2011

В настоящее время я работаю над проектом, в котором мне нужно упаковать базу данных вместе с JAVA API. База данных должна быть защищена в некотором смысле, никто не должен иметь доступ к ней, кроме API. Дело в том, что данные в базе данных являются интеллектуальной собственностью и не должны подвергаться разоблачению. Здесь есть подвох. База данных содержит около 5 миллионов записей (только 4-5 столбцов). Мне нужно сделать запрос на основе индексированных полей с агрегатными функциями. Я хорошо знаю, что есть встроенные базы данных Java, такие как derby, hsql и им подобные. Но я серьезно сомневаюсь в их эффективности. Я знаю, что требование звучит странно. Но, по крайней мере, это начало.

API предназначен для одновременного доступа и должен извлекать значения поиска из этой базы данных. Это действительно хороший дизайн или что-то не так с подходом. Любые архитектурные предложения приветствуются

NewInfo: Если встраиваемая база данных не кажется многообещающей, как насчет внедренного файла, который нужно поместить вместе с API. Это будет возможно?

Ответы [ 3 ]

2 голосов
/ 06 марта 2011

Если вы распространяете базу данных, вы не собираетесь препятствовать доступу людей напрямую.Это просто DRM, и, как мы знаем из многолетнего опыта, DRM не работает .

Самый простой способ сохранить конфиденциальность данных - это сохранить их на сервере, которым вы управляете, исетевой API.Это также позволяет вам использовать базу данных по вашему выбору.

Если вы сохраните ее на клиенте, я думаю, вы обнаружите, что встроенные базы данных работают лучше, чем вы ожидаете.Другим хорошим вариантом является SQLite.

Я не уверен, какой именно параллелизм вам нужен.Предвидите ли вы, чтобы несколько программ на одном клиенте одновременно обращались к базе данных?

1 голос
/ 06 марта 2011

Я бы использовал базу данных H2 с чистым API JDBC.H2 является ультрабыстрым и поддерживает шифрование .По соображениям безопасности вы можете хранить ключ к своей зашифрованной базе данных где-то еще (на каком-нибудь сервере аутентификации?).И вы, вероятно, не сможете найти что-то быстрее, чем чистый JDBC.

0 голосов
/ 06 марта 2011

Я согласен с Мэтью, что вы просто не можете помешать пользователю получить к нему доступ.Вы также можете сделать это довольно легко, если используете стандартный движок БД.Вы будете в значительной степени ограничены шифрованием данных, а затем расшифровыванием их в памяти, чтобы можно было запрашивать их.

SQLite - хорошая встроенная база данных, но плохо работает с параллелизмом.HSQL, Derby или что-то еще должно работать очень хорошо, если вы можете сохранить его в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...