Когда MS Access лучше, чем веб-приложение, поддерживаемое RDBMS? - PullRequest
3 голосов
/ 04 ноября 2010

Несколько лет назад я не пользовался Access со средней школы.

Какую проблему она решает хорошо или даже лучше, чем веб-приложение, поддерживаемое реальной СУБД?

Все еще активно разрабатывается?Или он уже довольно мертв для MS?

Каковы его самые большие ограничения?

Обновление:

Какой ресурс нужно использовать, чтобы научитьсяразработать решение MS Access для малого бизнеса?

Спасибо

Ответы [ 6 ]

10 голосов
/ 04 ноября 2010

Прежде всего, Access - это настоящая СУБД. То, что это не так, является клиент-сервер RDBMS.

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

Помимо прочего, Access - это также среда IDE, в которой в качестве языка используется VBA.

Это означает, что в Access вы можете создавать интерфейсные приложения, которые ссылаются на серверную часть SQL Server, серверную часть Access или серверную часть SharePoint. Так что это одно очень универсальное печенье.

Это ограничения:

  1. Безопасность: если вы используете серверную часть Access, обратите внимание, что она не имеет встроенной защиты базы данных клиент-сервер. В любом приложении безопасность зависит от стоимости и необходимой секретности данных.

  2. Количество одновременных подключений. если вы не будете осторожны, Access будет бороться с более чем 10 людьми, пытающимися обновить данные одновременно. Вы можете расширить это, но вам нужно знать, что вы делаете, чтобы гарантировать результаты. чтобы добавить к нему число, скажем, 50 одновременных подключений.

  3. Как и большинство баз данных, он подвержен повреждению.

ПРИМЕЧАНИЕ: когда вы обращаетесь к Access как к базе данных, вам действительно следует ссылаться на «движок базы данных», JET или ACE, в зависимости от версии и, для Access 2007+, диктуется используемым форматом файла. Другими словами, если вы храните данные в таблицах Access, вы используете либо JET, либо ACE. Однако если вы используете LINKED TABLES, например, в SQL Server, то, строго говоря, вы не используете безопасность JET или ACE для этих таблиц.

  1. Access SQL не позволяет вам писать хранимые процедуры (вы можете писать функции в VBA) в том смысле, что Access SQL допускает только императивные операторы в отличие от процедурных операторов (например, операторов потока управления). Вы можете ввести некоторый «процедурный код», используя функции VBA, но это сильно отличается от использования операторов SQL.

  2. Вы создаете резервную копию самого файла. Вы можете написать код, чтобы сделать это одним нажатием кнопки.

Безопасность всегда зависит от стоимости. Если у вас есть данные на сумму более 100 000 долларов США (в случае кражи прав или юридических обязательств, если они украдены и вы не проявили должной осмотрительности при их защите), то Access, вероятно, не является ответом. 100 000 - произвольная цифра. Точная цифра будет зависеть от того, являются ли данные застрахованными, а также от последствий их потери или кражи.

Т.е., если значение данных является главной задачей, то определенно не используйте Access в качестве серверной части. Используете ли вы его как интерфейс, вопрос бюджета. За 5000 долларов США я написал приложения, которые все еще работают 10 лет спустя. Теперь им нужно перенести серверную часть на SQL Server, поскольку объем конфиденциальных данных вырос.

Доступ, если он используется в рамках вышеуказанных ограничений И когда он используется профессиональным разработчиком Access (а не недовольным дураком, который считает, что ему следует использовать «более прохладные» технологии), будет создавать очень сложные, надежные и надежные приложения на десятой стоимость других систем. В таких сценариях Access абсолютно НЕ МОЗГ.

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

У меня есть приложение (первое, которое я когда-либо создавал в Access), которое без проблем работает в течение 10 лет. Мы значительно расширили его. Я перешел в ASP.NET MVC, но Access - это то, откуда я родом, и я видел, что он работает хорошо.

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

Если число одновременных пользователей невелико, а ценность / неявная ответственность данных мала, то выбор, безусловно, возможен.

Тем не менее, найдите себе хорошего разработчика.

редактирует / РАЗЪЯСНЕНИЯ:

Приведенный выше ответ, как и все ответы, был написан на скорую руку в середине рабочего дня. Некоторые утверждения были немного грубыми и общими и не были написаны с должной степенью точности ... Однако, когда комментарии, сделанные другими, разумны, автору ответа следует отредактировать сообщение и уточнить.

1 /

Доступ - это святая троица. Это IDE для написания форм, отчетов и функций для использования в ваших запросах. Он «включает» ядро ​​базы данных (JET / ACE). Он предоставляет визуальный интерфейс для механизма базы данных, который позволяет создавать запросы, устанавливать отношения между таблицами и т. Д.

Во многих своих ролях его обычно называют просто Access, но точность помогает изучить Access и извлечь из него максимум пользы.

2 /

Access не может использовать хранимые процедуры в том смысле, что Access SQL может использовать только императивные операторы, а не процедурные (например, операторы потока управления). Я всегда думал, что есть причина называть их хранимыми ПРОЦЕДУРАМИ.

* 1 072 * 3 /

Не каждое приложение Access стоит ровно 100 000. Кроме того, бюджет приложения Access не равен стоимости данных. Это очевидно. Идея, которую я пытался донести, состояла в том, что если данные стоят больше, чем сумма, которую можно разумно застраховать, то не используйте Access. Это цифра 100 000? По словам Люка Чанга и Клинта Ковингтона, бывшего менеджера программы Access, да, но не верьте им на слово. Это действительно просто означает «много денег».

Я написал приложение для медицинских благотворительных организаций, которое все еще работает 10 лет спустя, после первоначального бюджета в 5000. Они, вероятно, вложили еще 20 000 за эти годы. Такое приложение - приятное место для доступа.

4 голосов
/ 04 ноября 2010

Все зависит на самом деле, я приведу небольшой пример, который недавно произошел со мной.На работе им требовалась небольшая система для сбора некоторых записей из группы, состоящей из примерно 15 пользователей, и передачи примерно 15% этих записей другой группе, состоящей из примерно 5 человек, для выполнения дополнительных задач над этими записями.Это был единственный проект, который продлился около 4 месяцев.

Официальным ИТ-решением, конечно же, было веб-приложение с серверной частью SQL-сервера стоимостью около 60 000 фунтов стерлингов.Поскольку у них не было свободного места на сервере SQL, а бюджет был очень мал, я решил использовать базу данных с несвязанным доступом, используя JET для хранения данных.

В этом примере access / JET был правильным выбором, теперь, еслиЕсли бы это была долгосрочная система поддержки 500 пользователей, то, конечно, веб-приложение было бы хорошим решением.Его лошади для курсов в конце дня, и люди не должны позволять своим предубеждениям влиять на их деловые решения.

2 голосов
/ 04 ноября 2010

Ах. Никогда. Точка. Слишком много ограничений в целом. Резервные копии проблематичны, стабильность МОЖЕТ быть проблематичной. Особенно, если вы сравниваете доступ (daabase общего файлового ресурса) с веб-приложением, в котором вы испытываете боль в большинстве случаев.

Доступ можно использовать для небольших однобайтных файлов базы данных (загрузка данных перед их переносом на SQL Server) или для внешнего интерфейса для SQL Server (т. Е. Доступ фактически не хранит никаких данных). Последнее также в значительной степени направляет MS к доступу - технология переднего плана.

2 голосов
/ 04 ноября 2010

Ядро базы данных Jet, используемое Access, считается устаревшим Microsoft, хотя оно все еще поддерживается.Ограничения базы данных .mdb и нового типа .accdb описаны здесь.

https://blogs.msdn.com/b/access/archive/2006/06/05/access-2007-limits.aspx

Даже SQL Server Express будет лучше почти в каждом случае.

Кто-то, обладающий очень ограниченными знаниями в области СУБД / программирования, все еще может создать быстрый интерфейс в Access (в идеале - с использованием внешней базы данных), и это действительно основное применение.

1 голос
/ 04 ноября 2010

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

Я не использовал новую версию, чтобы сказать наверняка, но в последний раз я смотрел,казалось, что новые выпуски в основном обновляли внешний вид, чтобы соответствовать последней версии Office, устраняя почти очевидные проблемы и ошибки, но не намного больше, чем это.Я бы не сказал, что он мертв, но я не вижу много признаков того, что это действительно один из главных приоритетов Microsoft.

Попытка определить его самые большие ограничения трудна.Механизм хранения «JET Red», на котором он основан, не очень хорошо масштабируется, но на самом деле он никогда не предназначался для этого.Его базовый дизайн предназначен для сопоставления приложения с хранимыми данными, поэтому относительно трудно просто рассматривать как необработанные данные, которые будут использоваться для других целей.Я не знаю, так ли это до сих пор, но, по крайней мере, в одно время формат базы данных также был довольно хрупким - повреждение файла встречалось нечасто, и в большинстве случаев единственной надеждой на восстановление был файл резервной копии (которыйв лучшем случае означало потерю всего, что произошло со времени последнего резервного копирования - и некоторые формы коррупции были не сразу очевидны, поэтому иногда происходили и коррупционные резервные копии).

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

1 голос
/ 04 ноября 2010

Мои знания уже давно устарели, но они всегда были очень хорошими для отчетов - очень быстрыми, мощными и намного проще, чем, например, Crystal Reports.

...