Подтвердить что ты не робот

В чем разница между локальной базой данных в С# и созданной базой данных SQL Server Management Studio?

Я создаю приложение с MS Visual С# 2010 Express, которое требует базы данных.

Я узнал, что существует два способа создания/использования базы данных SQL с этим приложением.

Первое кажется, что изнутри С# я могу создать "локальную базу данных", щелкнув правой кнопкой мыши мое приложение в обозревателе решений и нажав "Добавить" → "Новый элемент" → "Локальная база данных". Затем он отображается в Проводнике базы данных, и я могу его использовать.

Другим способом является создание базы данных с помощью SQL Server Management Studio, а затем из кода С#, я открываю соединение с ним (SQLConnection... yada yada yada) и использую его.

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

Может кто-нибудь описать различия и какие критерии будут использоваться для выбора одного из способов против другого? (или указать ссылку на сайт...)

Спасибо!

Adeena

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

  • Я единственный разработчик и работаю на одной машине.
  • Приложение предназначено для тех, которые работают автономно - не в браузером или через Интернет в любом случае. Я знаю, что это не направление Вселенная движется, но, как упоминалось выше, это хобби проект, который мне нужно выполнить, чтобы выработать несколько других проблем.
  • Я не считаю, что у меня есть необходимость или намерение использовать несколько приложений для работать с этой базой данных.
4b9b3361

Ответ 1

На самом деле у вас есть три варианта. Опция, которую вы не описали, - это та, где вы создаете базу данных с SSMS, а затем настраиваете соединение с файлом и выбираете файл MDB, который был создан SSMS (вам, вероятно, потребуется сначала демонтировать базу данных с помощью SSMS, чтобы получить SQL Express для выпуска своих файловых замков). Когда вы создадите это соединение с файлом, вам будет предложено указать, хотите ли вы подключиться к нему, где он находится, или добавить его в свой проект.

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

Клиент-сервер, SQL Express

Если вы настроили базу данных с SSMS и подключились к ней через SQL Express, то у вас нет локальной базы данных, входящей в ваш проект, у вас есть база данных, для которой сервер оказывается локальным для вашей рабочей станции.

Локальная база данных, SQL Express

Если вы настроили базу данных с SSMS, отключите базу данных и добавьте файл в свой проект, тогда у вас есть локальная база данных, которая использует закрытый экземпляр SQL Express.

Локальная база данных, компактная версия

Если вы создаете новую базу данных с помощью меню Visual Studio, у вас есть локальная база данных Compact Edition.

SQL Express

Когда Visual Studio запускает отладку, запускается закрытый именованный экземпляр SQL Server Express, и приложение связывается с ним с использованием общей памяти, а не сетевого протокола.

Однако абсолютно ничего не мешает вам установить экземпляр SQL Express, который работает как служба. Вы можете подключить тот же файл базы данных (или его копию) и сделать его доступным для сети. Вы даже можете подключить его к экземпляру SQL Standard или даже SQL Enterprise.

Зачем же вам гадать с локальным экземпляром? Он имеет преимущества для групп разработчиков, поскольку разработчики могут изменять свою схему, не нарушая других. Это позволяет разрабатывать программное обеспечение для настольных компьютеров (в отличие от сети), хотя в наши дни спрос на эту способность снижается.

В зависимости от того, сколько оборудования у вас есть в вашей среде разработки, лично я бы не использовал локальную базу данных. SQL Server - это свинья в памяти, и я бы предпочел, чтобы он работал на совершенно отдельной коробке.

Некоторые примечания

  • TSQL абсолютно идентичен для всех выпусков MSSQL, за исключением Compact и Micro.
  • В среднесрочной перспективе SQL Express ограничивает размер базы данных до 4G, хотя я считаю, что это увеличилось до 8G для R2. Это вряд ли будет значительным для развития, но может повлиять на тестеров.
  • Некоторые функции служб Reporting Services SQL Server недоступны в более дешевых версиях.

SQL Server Compact Edition

Информация об этом довольно тонкая. Сравнение версий Microsoft не рассматривает компактные или микровыборы. Некоторые рекламные ролики на веб-странице компактного издания требуют полной совместимости с TSQL. SDF является файлом "все-в-одном"; нет отдельного файла журнала. Путь от SDF к клиент-серверу, конечно, менее прямой, чем для SQL Express, но он, похоже, поддерживается как опция, поскольку в этой теме есть статьи в msdn.

Инструменты тиражирования доступны для компактной версии, поэтому ее можно использовать в качестве кэша локальной базы данных в случайно подключенной системе (например, в портфельной модели). Модель портфеля требует более тщательного общего проектирования системы, но в ней много всего для этого: вся производительность и простота автономной системы с одним пользователем с большинством преимуществ системы клиент-сервер.

Заключение

Для ваших целей я бы выбрал вариант Compact Edition. Накладные расходы и сложность других решений решаются при решении проблем, которых у вас нет, и их не будет. Они предназначены для решения проблем развития команды в сетевой, крупномасштабной среде с формальным циклом выпуска.

Вы находитесь в удачном положении, что можете сохранить его простым. Инструменты в Visual Studio все равно приятны.

Ответ 2

Локальная база данных использует уменьшенную версию SQL Server - компактную версию Express (CE). Существует ряд технических ограничений, но наиболее важным является то, что локальная база данных доступна только для экземпляра, в котором работает приложение. С другой стороны, сервер базы данных может быть доступен другим приложениям или другим экземплярам одного и того же приложения. По сути, он используется несколькими пользователями, которые все видят одни и те же данные.

Ответ 3

Чтобы получить более подробное представление о том, что происходит: посмотрите настройки и другие функции CREATE DATABASE. Я точно не знаю, но одно приложение может использовать разные настройки по умолчанию. Читайте далее в статье, как эта база данных "model" играет в этом.