Как понять принцип работы с БД?
=================================

 Вопрос очень глупый, прошу понять. В моем сознании укрепилось мнение, что бд - это такой файлик, по аналогии с текстовым файлом или же таблицами Excel. На деле же оказывается, что есть такие мало понятные мне сущности как подключение и сервер. Как мне работать с базой, переносить ее с локального сервера на сайт, если это не какой-то файл? Если я работаю над десктоп программой, то откуда мне брать все эти строки подключения, логин, пароль, если с файлом таблицы Excel достаточно просто знать путь к ней (а если его нет, то соответственно создать)? 

> В моем сознании укрепилось мнение, что бд - это такой файлик

  

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

  

Что касается переноса. Например, база данных на MSSQL содержится в двух файлах (сама БД и лог транзакций) или в большем количестве файлов (на усмотрение администратора); действительно, достаточно перенести эти файлы и подключить (attach) их к СУБД на новом месте. Другой вариант переноса - сделать бэкап (дамп) базы (в один файл), перенести этот бэкап и на новом месте сделать восстановление из бэкапа.  

Третий вариант, о котором говорит [Dr. Bacon](http://qna.habr.com/user/bacon) - миграция. Это делают либо в случае сложной структуры, либо в случае очень большой БД и недопустимости остановки работы. Например, крупная торговая сеть хочет перенести свою БД, но у них круглосуточная работа, и руководители разрешают остановку только на одну минуту (например), а перенос БД займёт три дня (например). 

 1. "переносить ее с локального сервера на сайт" не нужно переносить данные, нужно переносить только их структуру, для этого придумали миграции. Ну если раньше у тебя был путь до файла, то теперь вместо этого параметры подключения.  

2. Для десктопа скорее всего подойдет sqlite, там именно файл. Ну или другая встроенная СУБД