Для небольшого проекта мне нужно использовать простую базу данных с очень легкими требованиями: несколько таблиц, не более нескольких тысяч записей в общей сложности, 2 или 3 пользователя. Я работаю в среде .NET.
Поскольку сервер базы данных (даже те, что Express Edition) кажется огромным излишеством, в этом случае очень простая база данных MDB может выполнять большинство требований. Однако меня беспокоит concurrency. Моя идея - разместить файл .mdb на сетевом ресурсе и позволить пользователям получать доступ к этому файлу со своих клиентов на базе .NET. Db в основном нацелен на операции только для чтения, но пользователям иногда нужно обновлять/удалять записи. Если это невозможно в тот момент (из-за блокировки db или чего-то еще), я могу сохранить обновления на клиенте и обработать их позже.
Сам вопрос идет по этим точкам:
- Как параллельные чтения обрабатываются в MDB?
- Как параллельные обновления/удаления обрабатываются в MDB?
- Есть ли концепция блокировок и как я могу использовать ее в .NET-приложении?
- Помещает ли файл MDB в сетевой ресурс хорошей или ужасной идеей?
Поскольку я работаю в .NET, мне также будет интересно узнать, как я могу обнаружить любые проблемы concurrency и предпринять соответствующие действия. I.e., какое исключение я должен уловить и какие действия вы бы рекомендовали принять?
РЕДАКТИРОВАТЬ. Это может быть мое плохое описание проблемы, но большинство ответов, похоже, советуют отправиться на полномасштабный сервер БД. Я понимаю различия и преимущества установки сервера и фактически реализовал большое количество проектов на MSSQL и Oracle. В этом вопросе, однако, меня беспокоит только Access и его проблемы concurrency, поэтому, пожалуйста, не предлагайте сервер db.
Спасибо за вашу помощь.