Microsoft Access — это система управления базами данных (СУБД) от Microsoft , которая объединяет реляционный Access Database Engine (ACE) с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения. Она входит в набор приложений Microsoft 365 , включенный в Professional и более поздние версии или продаваемый отдельно.
Microsoft Access хранит данные в собственном формате на основе Access Database Engine (ранее Jet Database Engine). Он также может импортировать или напрямую ссылаться на данные, хранящиеся в других приложениях и базах данных. [6]
Разработчики программного обеспечения , архитекторы данных и опытные пользователи могут использовать Microsoft Access для разработки прикладного программного обеспечения . Как и другие приложения Microsoft Office, Access поддерживается Visual Basic for Applications (VBA), объектно-ориентированным языком программирования, который может ссылаться на различные объекты, включая устаревшие DAO (Data Access Objects), объекты данных ActiveX и многие другие компоненты ActiveX. Визуальные объекты, используемые в формах и отчетах, раскрывают свои методы и свойства в среде программирования VBA, а модули кода VBA могут объявлять и вызывать операции операционной системы Windows .
До появления Access на рынке настольных баз данных доминировали компании Borland (с Paradox ), Ashton-Tate (с dBase , приобретенным Borland в 1991 году) и Fox (с FoxPro ). Microsoft Access была первой программой для работы с базами данных для Windows, предназначенной для массового рынка. С покупкой FoxPro компанией Microsoft в 1992 году и включением процедур оптимизации запросов Fox Rushmore в Access, Microsoft Access быстро стала доминирующей базой данных для Windows, эффективно устранив конкурентов, которые не смогли перейти из мира MS-DOS . [7] В 1980-х годах Microsoft Access называли несвязанной телекоммуникационной программой, которая обеспечивала эмуляцию терминала и интерфейсы для простоты использования при доступе к онлайн-сервисам, таким как Dow Jones , Compuserve и электронный почтовый ящик. [8] [9]
Первая попытка Microsoft продать реляционную базу данных была предпринята в середине 1980-х годов, когда Microsoft получила лицензию на продажу R:Base . [10] В конце 1980-х годов Microsoft разработала собственное решение под кодовым названием Omega. [11] В 1988 году было подтверждено, что база данных для Windows и OS/2 находится в разработке. [12] [13] Она должна была включать язык Embedded Basic "EB", [11] который должен был стать языком для написания макросов во всех приложениях Microsoft, [14] но унификация макроязыков не произошла до появления Visual Basic for Applications (VBA). Omega также должна была предоставить интерфейс для Microsoft SQL Server . [15] Приложение было очень ресурсоемким, и были сообщения о том, что оно работало медленно на 386 процессорах, которые были доступны в то время. [16] Его планировалось выпустить в первом квартале 1990 года, [17] но в 1989 году разработка продукта была сброшена [10] [18] и его выпуск был перенесен на январь 1991 года. [19] Части проекта позже использовались для других проектов Microsoft: Cirrus (кодовое название Access) и Thunder (кодовое название Visual Basic , где использовался движок Embedded Basic). [10] [11] После премьеры Access, проект Omega был продемонстрирован в 1992 году нескольким журналистам и включал функции, которые не были доступны в Access. [20]
После того, как проект Omega был закрыт, некоторые из его разработчиков были назначены на проект Cirrus (большинство было назначено в команду, которая создала Visual Basic). [10] Его целью было создание конкурента для таких приложений, как Paradox или dBase, который работал бы в Windows. [21] После того, как Microsoft приобрела FoxPro , ходили слухи, что проект Microsoft может быть заменен им, [22] но компания решила разрабатывать их параллельно. Предполагалось, что проект будет использовать Extensible Storage Engine (Jet Blue) [23] но, в конечном итоге, была предоставлена только поддержка Jet Database Engine (Jet Red). Проект использовал часть кода как из проекта Omega, так и из предварительной версии Visual Basic. [11] В июле 1992 года бета-версии Cirrus были отправлены разработчикам [24] , и название Access стало официальным названием продукта. [25] «Access» изначально использовалось для старой программы эмуляции терминала от Microsoft. Спустя годы после того, как программа была закрыта, они решили повторно использовать это название здесь. [26]
Microsoft выпустила версию Access 1.0 13 ноября 1992 года и версию Access 1.1 в мае 1993 года для улучшения совместимости с другими продуктами Microsoft и включения языка программирования Access Basic.
В Access v2.0 Microsoft указала минимальные требования к оборудованию: Microsoft Windows v3.1 с 4 МБ ОЗУ ( требуется, 6 МБ ОЗУ рекомендуется); 8 МБ свободного места на жестком диске (требуется, 14 МБ места на жестком диске рекомендуется). Продукт поставлялся на семи дискетах по 1,44 МБ. В руководстве указана дата авторских прав 1994 год.
Как часть Microsoft Office 4.3 Professional с Book Shelf, Microsoft Access 2.0 был включен в первые образцы баз данных "NorthWind Trader", которые охватывали все возможные аспекты программирования вашей собственной базы данных. Образец Northwind Traders впервые представил функции Main Switchboard, новые для Access 2.0 в 1994 году. Фотография Эндрю Фуллера, запись № 2 этого образца базы данных, была человеком, который представил и работал с Microsoft, чтобы предоставить такой выдающийся образец базы данных.
С Office 95 Microsoft Access 7.0 (он же «Access 95») стал частью Microsoft Office Professional Suite, присоединившись к Microsoft Excel, Word и PowerPoint и перейдя с Access Basic на VBA. С тех пор Microsoft выпускала новые версии Microsoft Access с каждым выпуском Microsoft Office. Сюда входят Access 97 (версия 8.0), Access 2000 (версия 9.0), Access 2002 (версия 10.0), Access 2003 (версия 11.5), Access 2007 (версия 12.0), Access 2010 (версия 14.0), Access 2013 (версия 15.0) и Access 2016 (версия 16.0). [27]
Версии 3.0 и 3.5 Jet Database Engine (используемые Access 7.0 и более поздним выпуском Access 97 соответственно) имели критическую проблему, из-за которой эти версии Access нельзя было использовать на компьютере с объемом памяти более 1 ГБ. [28] Хотя Microsoft исправила эту проблему для Jet 3.5/Access 97 после выпуска, она так и не исправила проблему с Jet 3.0/Access 95.
Собственный формат базы данных Access (база данных Jet MDB) также развивался на протяжении многих лет. Форматы включают Access 1.0, 1.1, 2.0, 7.0, 97, 2000, 2002 и 2007. Наиболее существенным переходом был переход от Access 97 к формату Access 2000; который не имеет обратной совместимости с более ранними версиями Access. По состоянию на 2011 год [обновлять]все новые версии Access поддерживают формат Access 2000. В формат Access 2002 были добавлены новые функции, которые могут использоваться Access 2002, 2003, 2007 и 2010.
В Microsoft Access 2000 максимальный размер базы данных был увеличен с 1 ГБ в Access 97 до 2 ГБ.
Microsoft Access 2007 представил новый формат базы данных: ACCDB. Он поддерживает ссылки на списки SharePoint и сложные типы данных , такие как поля с несколькими значениями и вложениями. Эти новые типы полей по сути являются наборами записей в полях и позволяют хранить несколько значений или файлов в одном поле. Microsoft Access 2007 также представил поле File Attachment, которое хранило данные более эффективно, чем поле OLE (Object Linking and Embedding) .
Microsoft Access 2010 представил новую версию формата ACCDB, поддерживающую хостинг веб-служб Access на сервере SharePoint 2010. Впервые это позволило запускать приложения Access без необходимости установки Access на ПК пользователя и стало первой поддержкой для пользователей Mac. Любой пользователь на сайте SharePoint с достаточными правами мог использовать веб-службу Access. Для создания веб-службы Access разработчику по-прежнему требовалась копия Access, а настольная версия Access оставалась частью Access 2010. Веб-службы Access не были такими же, как настольные приложения. Автоматизация осуществлялась только с помощью макроязыка (не VBA), который Access автоматически преобразовывал в JavaScript. Данные больше не находились в базе данных Access, а в списках SharePoint. Настольная база данных Access могла связываться с данными SharePoint, поэтому были возможны гибридные приложения, так что пользователи SharePoint, которым требовались базовые представления и изменения, могли поддерживаться, в то время как более сложные традиционные приложения могли оставаться в настольной базе данных Access.
Microsoft Access 2013 предлагает традиционные настольные приложения Access, а также значительно обновленную веб-службу SharePoint 2013. [29] Веб-модель Access в Access 2010 была заменена новой архитектурой, которая хранит свои данные в реальных базах данных SQL Server. В отличие от списков SharePoint, это предлагает настоящую реляционную структуру базы данных со ссылочной целостностью, масштабируемостью, расширяемостью и производительностью, которые можно ожидать от SQL Server. [30] Решения для баз данных, которые можно создать в SharePoint 2013, предлагают современный пользовательский интерфейс, предназначенный для отображения нескольких уровней отношений, которые можно просматривать и редактировать, а также изменение размера для разных устройств и поддержку сенсорного ввода. Настольная версия Access 2013 похожа на Access 2010, но несколько функций были прекращены, включая поддержку проектов данных Access (ADP), [ необходимо разъяснение ] сводных таблиц, сводных диаграмм, коллекций данных Access, управления исходным кодом, репликации и других устаревших функций. [31] Максимальный размер базы данных Access для настольных компьютеров остался 2 ГБ (как и с версии 2000 года).
Microsoft Access больше не входит в одноразовую версию Microsoft Office 2021 , но остается в составе аналога Microsoft 365 в качестве приложений для бизнеса и Business Standard. Новые функции Access 2021 включают тип данных даты/времени с расширенной точностью [32] и поддержку темной темы. [33]
Помимо использования собственного файла хранилища базы данных, Microsoft Access также может использоваться в качестве «внешнего интерфейса» программы, в то время как другие продукты действуют как «внутренние» таблицы, такие как Microsoft SQL Server и не-Microsoft продукты, такие как Oracle и Sybase . Несколько внутренних источников могут использоваться базой данных Microsoft Access Jet (форматы ACCDB и MDB). Аналогично, некоторые приложения, такие как Visual Basic , ASP.NET или Visual Studio .NET, будут использовать формат базы данных Microsoft Access для своих таблиц и запросов. Microsoft Access также может быть частью более сложного решения, где он может быть интегрирован с другими технологиями, такими как Microsoft Excel , Microsoft Outlook , Microsoft Word , Microsoft PowerPoint и элементами управления ActiveX .
Таблицы Access поддерживают множество стандартных типов полей, индексов и ссылочной целостности, включая каскадные обновления и удаления . Access также включает интерфейс запросов , формы для отображения и ввода данных и отчеты для печати. Базовая база данных Access , которая содержит эти объекты, является многопользовательской и обрабатывает блокировку записей .
Повторяющиеся задачи можно автоматизировать с помощью макросов с опциями point-and-click . Также легко разместить базу данных в сети и позволить нескольким пользователям обмениваться данными и обновлять их, не перезаписывая работу друг друга. Данные блокируются на уровне записей , что существенно отличается от Excel, который блокирует всю электронную таблицу.
В программе есть шаблоны баз данных, которые можно загрузить с веб-сайта Microsoft. Эти параметры доступны при запуске Access и позволяют пользователям улучшать базу данных с помощью предопределенных таблиц, запросов , форм, отчетов и макросов. Шаблоны баз данных поддерживают код VBA , но шаблоны Microsoft не включают код VBA.
Программисты могут создавать решения с помощью VBA, который похож на Visual Basic 6.0 (VB6) и используется во всех программах Microsoft Office, таких как Excel , Word , Outlook и PowerPoint . Большую часть кода VB6, включая использование вызовов Windows API , можно использовать в VBA. Опытные пользователи и разработчики могут расширить базовые решения для конечных пользователей до профессионального решения с расширенной автоматизацией, проверкой данных , отслеживанием ошибок и многопользовательской поддержкой.
Количество одновременных пользователей, которых можно поддерживать, зависит от объема данных, выполняемых задач , уровня использования и дизайна приложения . Общепринятыми ограничениями являются решения с 1 ГБ или менее данных (Access поддерживает до 2 ГБ), и он достаточно хорошо работает при 100 или менее одновременных подключениях (поддерживается 255 одновременных пользователей). [34] Эта возможность часто хорошо подходит для решений для отделов. Если используется решение базы данных Access в многопользовательском сценарии, приложение должно быть «разделено». Это означает, что таблицы находятся в одном файле, называемом back end (обычно хранится в общей сетевой папке), а компоненты приложения (формы, отчеты, запросы, код, макросы, связанные таблицы) находятся в другом файле, называемом front end . Связанные таблицы во front end указывают на back end файл. Каждый пользователь приложения Access затем получит свою собственную копию front end файла.
Приложения, которые выполняют сложные запросы или анализ в больших наборах данных, естественно, требуют большей пропускной способности и памяти . Microsoft Access разработан для масштабирования для поддержки большего количества данных и пользователей путем присоединения к нескольким базам данных Access или использования внутренней базы данных , такой как Microsoft SQL Server. С последним дизайном объем данных и пользователей может масштабироваться до решений корпоративного уровня.
Роль Microsoft Access в веб-разработке до версии 2010 ограничена. Функции пользовательского интерфейса Access, такие как формы и отчеты, работают только в Windows . В версиях с 2000 по 2003 тип объекта Access, называемый Data Access Pages, создавал публикуемые веб-страницы. Data Access Pages больше не поддерживается. К Jet Database Engine , ядру Access, можно получить доступ с помощью таких технологий, как ODBC или OLE DB . К данным (т. е. таблицам и запросам) могут обращаться веб-приложения, разработанные в ASP.NET , PHP или Java . С использованием служб терминалов Microsoft и приложения удаленного рабочего стола в Windows Server 2008 R2 организации могут размещать приложения Access, чтобы их можно было запускать через Интернет. [35] Этот метод не масштабируется так, как веб-приложение, но подходит для ограниченного числа пользователей в зависимости от конфигурации хоста.
Access 2010 позволяет публиковать базы данных на веб-сайтах SharePoint 2010, работающих под управлением служб Access. Эти веб-формы и отчеты работают в любом современном веб-браузере. Полученные веб-формы и отчеты при доступе через веб-браузер не требуют никаких надстроек или расширений (например, ActiveX и Silverlight ).
Access 2013 может создавать веб-приложения непосредственно на сайтах SharePoint 2013, работающих под управлением служб Access. Веб-решения Access 2013 хранят свои данные в базовой базе данных SQL Server, которая гораздо более масштабируема и надежна, чем версия Access 2010, которая использовала списки SharePoint для хранения своих данных.
Службы Access в SharePoint с тех пор были упразднены. [36]
Скомпилированная версия базы данных Access (расширения файлов .MDE /ACCDE или .ADE; ACCDE работает только с Access 2007 или более поздней версией) может быть создана для предотвращения доступа пользователей к поверхностям проектирования для изменения кода модуля, форм и отчетов. Файл MDE или ADE представляет собой файл базы данных Microsoft Access, в котором все модули скомпилированы, а весь редактируемый исходный код удален. Обе версии базы данных Access .MDE и .ADE используются, когда не допускаются изменения конечным пользователем или когда исходный код приложения должен оставаться конфиденциальным.
Microsoft также предлагает разработчикам расширения для загрузки, которые помогут распространять приложения Access 2007, создавать шаблоны баз данных и интегрировать управление исходным кодом с Microsoft Visual SourceSafe .
Пользователи могут создавать таблицы, запросы, формы и отчеты, а также связывать их вместе с помощью макросов . Продвинутые пользователи могут использовать VBA для написания сложных решений с расширенной обработкой данных и контролем пользователя. Access также имеет функции создания отчетов, которые могут работать с любым источником данных, к которому Access может получить доступ.
Первоначальная концепция Access заключалась в том, чтобы конечные пользователи могли получать доступ к данным из любого источника. Другие функции включают: импорт и экспорт данных во многие форматы, включая Excel , Outlook , ASCII , dBase , Paradox , FoxPro , SQL Server и Oracle . Он также имеет возможность связываться с данными в их существующем местоположении и использовать их для просмотра, запроса, редактирования и составления отчетов. Это позволяет изменять существующие данные, гарантируя, что Access использует самые последние данные. Он может выполнять гетерогенные соединения между наборами данных, хранящимися на разных платформах. Access часто используется людьми, загружающими данные из баз данных корпоративного уровня для локальной обработки, анализа и составления отчетов.
Также существует формат Access Database (ACE и ранее Jet) (MDB или ACCDB в Access 2007), который может содержать приложение и данные в одном файле. Это делает очень удобным распространение всего приложения другому пользователю, который может запустить его в отключенных средах.
Одним из преимуществ Access с точки зрения программиста является его относительная совместимость с SQL ( язык структурированных запросов ) — запросы можно просматривать графически или редактировать как операторы SQL, а операторы SQL можно использовать непосредственно в макросах и модулях VBA для управления таблицами Access. Пользователи могут смешивать и использовать как VBA, так и «макросы» для программирования форм и логики и предлагают объектно-ориентированные возможности. VBA также можно включать в запросы.
Microsoft Access предлагает параметризованные запросы . На эти запросы и таблицы Access можно ссылаться из других программ, таких как VB6 и .NET, через DAO или ADO . Из Microsoft Access VBA может ссылаться на параметризованные хранимые процедуры через ADO.
Настольные версии Microsoft SQL Server могут использоваться с Access в качестве альтернативы Jet Database Engine . Эта поддержка началась с MSDE (Microsoft SQL Server Desktop Engine), уменьшенной версии Microsoft SQL Server 2000, и продолжается с версиями SQL Server Express SQL Server 2005 и 2008.
Microsoft Access — это база данных на основе файлового сервера . В отличие от клиент-серверных систем управления реляционными базами данных (RDBMS), Microsoft Access не реализует триггеры базы данных , хранимые процедуры или ведение журнала транзакций . Access 2010 включает триггеры уровня таблиц и хранимые процедуры, встроенные в механизм обработки данных ACE. Таким образом, система клиент-серверной базы данных не является обязательным требованием для использования хранимых процедур или триггеров таблиц с Access 2010. Таблицы, запросы, формы, отчеты и макросы теперь можно разрабатывать специально для веб-приложений в Access 2010. Интеграция с Microsoft SharePoint 2010 также значительно улучшена.
В издании Microsoft Access 2013 года был представлен в основном плоский дизайн и возможность установки приложений из Магазина Office, но не было представлено новых функций. Тема была частично обновлена снова в 2016 году, но темная тема для Access не была создана.
Веб-формы ASP.NET могут запрашивать базу данных Microsoft Access, извлекать записи и отображать их в браузере. [37]
SharePoint Server 2010 через Access Services позволяет публиковать базы данных Access 2010 в SharePoint, тем самым позволяя нескольким пользователям взаимодействовать с приложением базы данных из любого соответствующего стандартам веб-браузера. Веб-базы данных Access, опубликованные в SharePoint Server, могут использовать стандартные объекты, такие как таблицы, запросы, формы, макросы и отчеты. Access Services хранит эти объекты в SharePoint. [38]
Access 2013 предлагает возможность публиковать веб-решения Access на SharePoint 2013. Вместо того чтобы использовать списки SharePoint в качестве источника данных, Access 2013 использует фактическую базу данных SQL Server, размещенную на SharePoint или SQL Azure. [39] Это предлагает настоящую реляционную базу данных со ссылочной целостностью, масштабируемостью, удобством обслуживания и расширяемостью по сравнению с представлениями SharePoint, используемыми Access 2010. Макроязык улучшен для поддержки более сложной логики программирования и автоматизации на уровне базы данных. [30]
Microsoft Access также может импортировать или напрямую ссылаться на данные, хранящиеся в других приложениях и базах данных. [6] Microsoft Office Access 2007 и более поздние версии могут импортировать или ссылаться на:
Microsoft предлагает бесплатные версии Microsoft Access, которые позволяют пользователям запускать настольное приложение Access без необходимости приобретать или устанавливать розничную версию Microsoft Access. Это фактически позволяет разработчикам Access создавать базы данных, которые могут свободно распространяться среди неограниченного числа конечных пользователей. Эти версии Access 2007 и более поздних версий можно бесплатно загрузить с сайта Microsoft. [42] Версии Access 2003 и более ранних версий были частью Office Developer Extensions/Toolkit и требовали отдельной покупки.
Версия времени выполнения позволяет пользователям просматривать, редактировать и удалять данные, а также выполнять запросы, формы, отчеты, макросы и код модуля VBA. Версия времени выполнения не позволяет пользователям изменять дизайн таблиц, запросов, форм, отчетов, макросов или кода модуля Microsoft Access. Версии времени выполнения аналогичны соответствующим им полным версиям Access и обычно совместимы с более ранними версиями; например, Access Runtime 2010 позволяет пользователю запускать приложение Access, созданное с помощью версии 2010, а также с 2007 по 2000. Из-за устаревших функций в Access 2013 его версия времени выполнения также не может поддерживать эти старые функции. Во время разработки можно имитировать среду выполнения из полностью функциональной версии, используя /runtime
параметр командной строки . [43]
Access хранит все таблицы базы данных, запросы, формы, отчеты, макросы и модули в базе данных Access Jet в виде одного файла.
Для разработки запросов Access предлагает «Конструктор запросов» — графический пользовательский интерфейс, позволяющий пользователям создавать запросы без знания языка структурированных запросов. В конструкторе запросов пользователи могут «показать» источники данных запроса (которые могут быть таблицами или запросами) и выбрать поля, которые они хотят вернуть, щелкнув и перетащив их в сетку. Можно настроить объединения, щелкнув и перетащив поля в таблицах в поля в других таблицах. Access позволяет пользователям просматривать и изменять код SQL, если это необходимо. Любая таблица Access, включая связанные таблицы из разных источников данных, может быть использована в запросе.
Access также поддерживает создание «сквозных запросов». Эти фрагменты кода SQL могут обращаться к внешним источникам данных с помощью соединений ODBC на локальной машине. Это позволяет пользователям взаимодействовать с данными, хранящимися вне программы Access, без использования связанных таблиц или Jet. [44] Пользователи создают сквозные запросы, используя синтаксис SQL, поддерживаемый внешним источником данных.
При разработке отчетов (в "Design View") добавления или изменения в элементах управления приводят к выполнению любых связанных запросов в фоновом режиме, и дизайнер вынужден ждать возврата записей, прежде чем сможет внести еще одно изменение. Эту функцию нельзя отключить.
Непрограммисты могут использовать функцию макросов для автоматизации простых задач с помощью ряда раскрывающихся списков. Макросы позволяют пользователям легко объединять команды, такие как выполнение запросов, импорт или экспорт данных, открытие и закрытие форм, предварительный просмотр и печать отчетов и т. д. Макросы поддерживают базовую логику (условия IF) и возможность вызывать другие макросы. Макросы также могут содержать подмакросы, которые похожи на подпрограммы. В Access 2007 улучшенные макросы включали обработку ошибок и поддержку временных переменных . Access 2007 также представил встроенные макросы, которые по сути являются свойствами события объекта. Это устранило необходимость хранить макросы как отдельные объекты. Однако макросы были ограничены в своей функциональности отсутствием циклов программирования и расширенной логики кодирования до Access 2013. Благодаря значительным дальнейшим улучшениям, введенным в Access 2013, возможности макросов стали полностью сопоставимы с VBA. Они сделали многофункциональные развертывания веб-приложений практичными с помощью значительно улучшенного интерфейса и инструментов Microsoft SharePoint, а также на традиционных рабочих столах Windows.
Как и в других продуктах пакета Microsoft Office, в Access используется другой язык программирования — Microsoft VBA. Он похож на Visual Basic 6.0 (VB6), а код может храниться в модулях, классах и коде позади форм и отчетов. Чтобы создать более богатый, более эффективный и поддерживаемый готовый продукт с хорошей обработкой ошибок, большинство профессиональных приложений Access разрабатываются с использованием языка программирования VBA, а не макросов, за исключением случаев, когда веб-развертывание является бизнес-требованием.
Для управления данными в таблицах и запросах в VBA или макросах Microsoft предоставляет две библиотеки доступа к базам данных компонентов COM :
Помимо DAO и ADO, разработчики могут также использовать OLE DB и ODBC для разработки собственных программ C/C++ для Access. [45] Для ADP и прямой обработки данных SQL Server требуется ADO. DAO лучше всего подходит для управления данными в базах данных Access/Jet и является единственным способом манипулировать сложными типами полей в таблицах ACCDB.
В контейнере базы данных или навигационной панели Access 2007 и более поздних версий система автоматически классифицирует каждый объект по типу (например, таблица, запрос, макрос). Многие разработчики Access используют соглашение об именовании Лешинского , хотя оно не универсально; это соглашение программирования, а не правило, навязанное СУБД. [46] [47] Это особенно полезно в VBA, где ссылки на имена объектов могут не указывать на его тип данных (например, tbl для таблиц, qry для запросов).
Разработчики чаще всего используют Microsoft Access для индивидуальных и групповых проектов (характеристика скорости Access 97 была сделана для 32 пользователей). [48] Начиная с Access 97, а также с Access 2003 и 2007, Microsoft Access и оборудование значительно эволюционировали. Базы данных размером менее 1 ГБ (которые теперь могут полностью помещаться в ОЗУ) и 200 одновременных пользователей вполне соответствуют возможностям Microsoft Access. [49] Конечно, производительность зависит от структуры базы данных и задач. Работа с интенсивным использованием диска, такая как сложный поиск и запросы, занимает больше всего времени.
Поскольку данные из базы данных Microsoft Access могут кэшироваться в оперативной памяти, скорость обработки может существенно повыситься, когда есть только один пользователь или если данные не изменяются. В прошлом влияние задержки пакетов на систему блокировки записей приводило к тому, что базы данных Access работали медленно в виртуальной частной сети (VPN) или глобальной сети (WAN) по сравнению с базой данных Jet. С 2010 года [обновлять]широкополосные соединения смягчили эту проблему. Производительность также может быть повышена, если поддерживать постоянное соединение с внутренней базой данных в течение всего сеанса, а не открывать и закрывать его для каждого доступа к таблице. [ необходима цитата ]
В июле 2011 года Microsoft признала наличие периодической проблемы с производительностью запросов во всех версиях Access, Windows 7 и Windows Server 2008 R2 из-за того, что характер управления ресурсами в новых операционных системах существенно отличается. [50] Эта проблема серьезно влияет на производительность запросов как в Access 2003 и более ранних версиях с кодом Jet Database Engine , так и в Access 2007 и более поздних версиях с Access Database Engine (ACE). [50] Microsoft выпустила исправления KB2553029 для Access 2007 и KB2553116 для Access 2010, но не будет устранять проблему с Jet 4.0, поскольку он вышел из основной поддержки. [50]
В более ранних версиях Microsoft Access для распространения приложений требовалось приобретение Developer Toolkit; в Access 2007, 2010 и Access 2013 версия «Runtime Only» предлагается для бесплатной загрузки, [51] что делает возможным распространение бесплатных приложений на Windows XP, Vista, 7 и Windows 8.x. [52]
Приложения Microsoft Access могут использовать архитектуру разделенной базы данных. Единая база данных может быть разделена на отдельный файл «back-end», содержащий таблицы данных (общий на файловом сервере), и «front-end» (содержащий объекты приложения, такие как запросы, формы, отчеты, макросы и модули). Приложение «front-end» Access распространяется на рабочий стол каждого пользователя и связано с общей базой данных. При использовании этого подхода у каждого пользователя на компьютере установлена копия Microsoft Access (или версия среды выполнения) вместе с базой данных приложения. Это снижает сетевой трафик, поскольку приложение не извлекается для каждого использования. База данных «front-end» по-прежнему может содержать локальные таблицы для хранения настроек пользователя или временных данных. Такая конструкция разделенной базы данных также позволяет разрабатывать приложение независимо от данных. Одним из недостатков является то, что пользователи могут вносить различные изменения в свою собственную локальную копию приложения, и это затрудняет управление версиями. Когда новая версия готова, база данных front-end заменяется, не влияя на базу данных данных. В Microsoft Access есть две встроенные утилиты: Database Splitter [53] и Linked Table Manager, облегчающие реализацию этой архитектуры.
Связанные таблицы в Access используют абсолютные пути, а не относительные, поэтому среда разработки должна либо иметь тот же путь, что и производственная среда, либо можно написать процедуру «динамического компоновщика» на VBA .
Для очень больших баз данных Access это может иметь проблемы с производительностью, и в таких обстоятельствах следует рассмотреть SQL-бэкэнд. Это не такая уж проблема, если вся база данных может поместиться в ОЗУ ПК, поскольку Access кэширует данные и индексы.
Для масштабирования приложений Access до корпоративных или веб-решений одним из возможных методов является миграция на Microsoft SQL Server или эквивалентную серверную базу данных. Клиент-серверная архитектура значительно сокращает обслуживание и повышает безопасность, доступность, стабильность и регистрацию транзакций.
Access 2000 — Access 2010 включали функцию, называемую Upsizing Wizard , которая позволяла пользователям обновлять свои базы данных до Microsoft SQL Server, клиент-серверной базы данных ODBC. Эта функция была удалена из Access 2013. Дополнительное решение, SQL Server Migration Assistant for Access (SSMA), по-прежнему доступно для бесплатной загрузки с сайта Microsoft. [54]
Доступны различные варианты обновления. [55] После переноса данных и запросов на SQL Server базу данных Access можно связать с базой данных SQL, при условии соблюдения ограничений преобразования типов данных:
Несмотря на это, SQL Server по-прежнему является самой простой миграцией. Извлечение данных из связанных таблиц оптимизировано только для необходимых записей, но этот сценарий может работать менее эффективно, чем тот, который был бы оптимальным для SQL Server. Например, в случаях, когда многотабличные соединения по-прежнему требуют копирования всей таблицы по сети.
В предыдущих версиях Access, включая Access 2010, базы данных также можно было преобразовать в проекты данных Access (ADP), которые напрямую привязаны к одной базе данных SQL Server. Эта функция была удалена из Access 2013. ADP поддерживают возможность прямого создания и изменения объектов SQL Server, таких как таблицы, представления, хранимые процедуры и ограничения SQL Server. Представления и хранимые процедуры могут значительно сократить сетевой трафик для многотабличных соединений. SQL Server поддерживает временные таблицы и ссылки на другие источники данных за пределами одной базы данных SQL Server.
Наконец, некоторые базы данных Access полностью заменяются другой технологией, такой как ASP.NET или Java, после преобразования данных. Однако любая миграция может потребовать значительных усилий, поскольку язык Access SQL является более мощным надмножеством стандартного SQL. Кроме того, процедуры приложений Access, будь то VBA или макросы, написаны на относительно более высоком уровне по сравнению с имеющимися в настоящее время альтернативами, которые являются как надежными, так и всеобъемлющими. Макроязык Access, допускающий еще более высокий уровень абстракции, чем VBA, был значительно улучшен в Access 2010 и снова в Access 2013.
Во многих случаях разработчики создают прямые интерфейсы «веб-данные» с помощью ASP.NET, сохраняя при этом основные процессы автоматизации бизнеса, административные и отчетные функции, которые не нужно распространять среди всех пользователей Access, чтобы их могли поддерживать информационные работники.
Хотя все данные Access могут быть напрямую перенесены на SQL Server, некоторые запросы не могут быть успешно перенесены. В некоторых ситуациях вам может потребоваться перевести функции VBA и пользовательские функции в функции/процедуры T–SQL или .NET. Запросы Crosstab можно перенести на SQL Server с помощью команды PIVOT.
Безопасность приложений Microsoft Access можно обеспечить различными методами, самым простым из которых является контроль доступа с помощью пароля; это относительно слабая форма защиты.
Более высокий уровень защиты — это использование безопасности рабочей группы, требующей имени пользователя и пароля . Пользователи и группы могут быть указаны вместе с их правами на уровне типа объекта или отдельного объекта. Это может использоваться для указания людей с правами только на чтение или ввод данных, но это может быть сложно указать. Отдельный файл безопасности рабочей группы содержит настройки, которые могут использоваться для управления несколькими базами данных. Безопасность рабочей группы не поддерживается в формате базы данных ACCDB Access 2007 и Access 2010, хотя Access 2007 и Access 2010 по-прежнему поддерживают ее для баз данных MDB.
Базы данных также могут быть зашифрованы. Формат ACCDB предлагает значительно улучшенное шифрование по сравнению с предыдущими версиями. [56]
Кроме того, если необходимо защитить структуру базы данных, чтобы предотвратить изменения, базы данных Access можно заблокировать/защитить (и скомпилировать исходный код ) путем преобразования базы данных в файл .MDE. Все изменения в проекте VBA (модули, формы или отчеты) необходимо вносить в исходный MDB, а затем повторно преобразовывать в MDE. В Access 2007 и Access 2010 база данных ACCDB преобразуется в файл ACCDE. Некоторые инструменты доступны для разблокировки и « декомпиляции », хотя некоторые элементы, включая исходные комментарии и форматирование VBA, обычно не подлежат восстановлению.
Microsoft Access сохраняет информацию в следующих форматах файлов :
Версий Access между 2.0 и 7.0 нет, поскольку версия Office 95 была выпущена вместе с Word 7. Все продукты Office 95 имеют возможности OLE 2, а Access 7 показывает, что он совместим с Word 7.
Версия номер 13 была пропущена.
Cirrus (...) будет конкурировать с программой Metaphor компании Paradox и Metaphor Computer Systems.
(...) слух (...) о том, что FoxPro может заменить давно отложенную базу данных Редмонда, которая теперь носит кодовое название Cirrus.
Поддержка Open ISAM будет в будущей СУБД Cirrus от Microsoft для Windows.
Сквозные запросы SQL — это запросы, в которых можно ввести оператор, который передается непосредственно драйверу ODBC без его проверки или анализа со стороны Jet.