Где хранить БД и что для этого делать?

Здравствуйте, уважаемые подписчики itist.ru
Время от времени, читатели блога задают разные вопросы, и когда однотипных вопросов на какую то тему становится достаточно много, я пишу в блог, дабы осветить все моменты, которые могут быть интересны, и чтобы не возникало вопросов…
Речь в этой статье, пойдет про хранение данных в Базах Данных.
Есть несколько ситуаций, рассмотрю наиболее распространенные.
Случай первый.
У нас есть приложение, и доступ будет осуществляться в однопользовательском режиме.
Тут не нужно мудрить, лучше всего хранить файл БД в каталоге с программой. Для примера прекрасно подойдет Access, со своими базами данных, если потребуется, отдельно напишу о достоинствах и недостатках всех известных мне СУБД, и методах работы с ними.
И так у нас есть БД. К ней будет обращаться только один пользователь, значит храить базу лучше в каталоге с программой, но тут есть одно НО. В windows 7, если база будет находиться в Programm Files, и наше приложение будет запущено без прав администратора, мы получим ошибку, из — за нехватки прав доступа. В этом случае, я рекомендую копировать программу в AppData пользователя, и работать уже с этой копией базы, при запуске программы, необходимо добавить соответствующие проверки.
Случай 2.
С БД будет работать много человек. В этом случае, необходимо использовать отдельную машину для хранения базы. Пути на клиентах прописываются вручную, или генерируется конфигурационный файл на серверной машине, чтобы клиентские приложения знали куда отправлять запросы. Сюда же относятся и хайлоад приложения, но в случай с высоконагруженными БД, они могут быть распределены на несколько серверов, но это тяжелее в настройке, и если с БД работает не более 1000 человек одновременно, то не стоит об этом задумываться. Если же работает пользователей 50 и программа не выполняет своих функций достаточно быстро, следует задуматься об оптимизации. Тут есть распространенная ошибка: когда программист в начале разработки ориентируется на небольшую нагрузку, и вместо перечисления полей необходимых для получения данных из таблицы, использует * (select * from table1 вместо select name, adress, phone from tsble1) в следствии чего сервер каждый раз, каждому пользователю будет отдавать несколько лишних полей, чем больше запросов, тем больше нагрузка, учитесь сразу писать правильно.
Частный случай 3.
Основные моменты рассмотрены выше, но бывают случаи, когда доступ к БД должен осуществляться одним человеком, но БД должна быть доступна нескольким людям. В этом случае, можно использовать сетевые хранилища. Например DropBox. Главное не забываем при такой работе блокировать БД, и разблокировать ее в случае некорректной работы программы. Дропбокс любит при таком подходе создавать «Конфликтующие копии», в результате чего данные отредактированные одним из пользователей могут не сохраниться, но тут главное правильно ограничивать доступ. Если остались вопросы, или появились после прочтения, пишите на почту, или задавайте их в комментариях.


Присоединяйтесь к моему телеграмм каналу

Читайте еще один блог о путешествиях

Подписывайтесь на мой YouTube канал

Добавить комментарий

Войти с помощью: 

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.