SQL Server Express против MS Access - PullRequest
       22

SQL Server Express против MS Access

21 голосов
/ 18 апреля 2011

Коллега, с которой я недавно работал, сказал мне, что SQL Express и MS Access - это одно и то же; это не похоже на точное утверждение. Я знаю, что вы можете конвертировать Access в SQL DB и, возможно, под прикрытием они похожи, но я бы предположил, что механизм SQL DB и то, что используется для запуска доступа, не совпадают. Не только это, но и синтаксис операторов SQL и т. Д. Я знаю, что это не одно и то же.

Я в основном пытаюсь понять, чтобы я был более информирован о версиях.

Ответы [ 4 ]

47 голосов
/ 18 апреля 2011

Хм, нет, не то же самое.

Прежде всего, мне нужно прояснить некоторую терминологию.MS Access - это инструмент быстрой разработки приложений (RAD), который позволяет быстро создавать формы и отчеты, связанные с реляционными данными.Он поставляется с файловым механизмом баз данных (Jet / ACE).

Инструмент доступа к RAD можно использовать со многими различными внутренними базами данных (Jet, SQL Server, любая база данных, поддерживающая ODBC и т. Д.).Я должен предположить, что ваш коллега специально комментировал Jet / ACE, то есть ядро ​​базы данных, которое использует MS Access.

Я думаю, что самая большая разница между Jet / ACE ядром базы данных и MS SQL Server Express заключается в том, что Jet / ACE основана на файлах и SQL Server Express использует модель клиент / сервер .Это означает, что для SQL Server Express требуется работающая служба для предоставления доступа к хранилищу данных.Это может усложнить развертывание в некоторых сценариях.

SQL Server Express на самом деле представляет собой просто устаревшую версию SQL Server: максимальный размер базы данных 4 ГБ (10 ГБ в 2008R2), используется только один физический ЦП и т. Д.существуют ограничения, запрещающие крупным организациям использовать свободно доступную версию Express вместо полноценной установки SQL Server.Результатом этого является то, что SQL Server Express предлагает действительно плавный путь обновления до SQL Server.Это также (вообще говоря) более надежная и полнофункциональная система управления базами данных, чем Jet / ACE.

Сходства

  • реляционные системы управления базами данных
  • , написанный Microsoft

Отличия

  • MS Access
    • На основе файлов
    • бесплатная распространяемая среда выполнения(2007 или более поздняя версия)
    • Инструменты RAD (дизайнер форм / отчетов)
    • использует Jet SQL
    • максимальный размер файла 2 ГБ
  • SQL Server Express
    • Модель клиент / сервер
    • бесплатно
    • без инструментов RAD
    • использует Transact-SQL
    • максимальный размер базы данных 4 ГБ (10 ГБ для SSE R2), максимум один физический процессор
2 голосов
/ 18 апреля 2011

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

0 голосов
/ 25 декабря 2014

Просто помните, что с MS-Access у вас нет ограничений по размеру, если вы правильно играете в карты.Например, нет причины не иметь много таблиц по 2–4 гигабайта, каждая из которых содержалась бы по отдельности в своей собственной базе данных.Ваши приложения ODBC могут открыть соединение с несколькими базами данных MS-Access и запросить одну таблицу в каждой.Таким образом, вы можете иметь базу данных, содержащую триллионы записей, хранящихся в нескольких файлах MDB.Одна компания, в которую я пошел работать, использовала единую базу данных MS-Access для запуска системы отслеживания ошибок в формах MS-Access.Они могли использовать его только по одному человеку из-за проблем с совместным использованием, которые могли бы заблокировать MS-Access.Я написал в базу данных собственный пользовательский интерфейс Windows32 с графическим интерфейсом Windows для Perl, который лучше справлялся с проверкой полей / записей, и мой код ODBC смог управлять соединением для одновременного доступа пользователей.Я управлял открытием, чтением, записью и закрытием базы данных для каждого пользователя через мою программу Perl.Я не оставил базу данных открытой.Я не поддерживал постоянное соединение для каждого пользователя, а только поддерживал соединение достаточно долго, чтобы получить запись для редактирования.Затем я закрыл соединение, пока не пришло время записать запись обратно в базу данных.Кроме того, я написал свою собственную программную логику блокировки записей, сохранив таблицу входа пользователя, в которой содержался идентификатор записи, которую пользователь в данный момент редактировал, а затем стер эту запись, когда больше не редактировал эту запись.Когда другой пользователь пошел редактировать ту же запись, программа проверила, открыта ли эта запись для редактирования другим пользователем.Система работала без нареканий.MS-Access никогда не блокируется через ODBC и многопользовательский доступ.Я даже встроил пароль в базу данных в моей скомпилированной программе Perl, чтобы никто не мог получить доступ к данным в базе данных Access, кроме как через мою программу Perl.

0 голосов
/ 18 апреля 2011

Ниже приведены таблицы данных для обоих продуктов, поэтому вы можете увидеть некоторые достоверные факты о разнице между двумя базами данных.

Доступ: http://office.microsoft.com/en-us/access-help/access-specifications-HP005186808.aspx

SQL (Express указан направый столбец): http://www.microsoft.com/sqlserver/2008/en/us/editions-compare.aspx

Комментарий, который я всегда читал, заключается в том, что Access отлично подходит для однопользовательского доступа к базе данных с одним пользователем, в ту же минуту, когда вы масштабируете себя за пределами одного пользователя.Хотя это может быть "немного" натянутой, Access действительно не очень хорошо в многопользовательской среде.Исходя из нашего опыта, у нас был клиент, который игнорировал и игнорировал наши запросы на перенос внутренней базы данных из Access в SQL, и было множество случаев, когда нам приходилось восстанавливать из резервных копий или переводить базу данных Access в автономный режим из-за повреждения.

Это две совершенно разные технологии с двумя разными целевыми рынками.Механизмы баз данных действительно отличаются, поскольку вы упоминаете, что T-SQL отличается от Access SQL.

Вы можете «масштабировать» базу данных Access до SQL, создав пакет служб SSIS или другой инструмент для выполнения импорта, но это берет схему и данные Access и переносит их в настоящую базу данных SQL.Это больше, чем просто присоединение базы данных Access или тому подобное.

В любое время, когда вам нужна «настоящая» база данных, я настоятельно рекомендую взглянуть на любую из версий SQL, доступных через Access.

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