220 likes | 432 Views
Учебная дисциплина «Базы данных» для студентов специальности Прикладная информатика ( бакалавриат ) 080800.62 Лекция №14 СТРАТЕГИИ ОБНОВЛЕНИЯ ДАННЫХ И БЛОКИРОВКИ ЗАПИСЕЙ В БАЗАХ ДАННЫХ. Учебные вопросы Стратегии обновления данных. Стратегии блокировки записей в базах данных. Литература.
E N D
Учебная дисциплина «Базы данных»для студентов специальности Прикладная информатика (бакалавриат) 080800.62 Лекция №14СТРАТЕГИИ ОБНОВЛЕНИЯ ДАННЫХ И БЛОКИРОВКИ ЗАПИСЕЙ В БАЗАХ ДАННЫХ Учебные вопросы Стратегии обновления данных. Стратегии блокировки записей в базах данных.
Литература • Базы данных: учеб. Пособие для студ. высш. учеб. Заведений / А.В. Кузин, С.В. Левонисова. – 2-е изд. стер. – М.: Издательский центр «Академия», 2008. • Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник. –М.: Финансы и статистика, 2006. • Теория и практика построения баз данных. 8-е изд. / Д. Крёнке. –СПб: Питер, 2003.
Вопрос 1. Стратегии обновления данных MicrosoftAccess является сетевой СУБД, то есть она позволяет использовать приложение одновременно нескольким пользователям в сети. При этом все необходимые операции, связанные с защитой данных, с разрешением конфликтов при попытках нескольких пользователей обратиться к одним и тем же данным, Access выполняет автоматически — для этого разработчику не требуется писать сложных программ.
Организовать общий доступ нескольким пользователям к базе данных Access можно несколькими способами: • Предоставить совместный доступ к mdb-файлу, содержащему как таблицы, так и остальные объекты, то есть собственно приложение; • Обеспечить совместный доступ только к таблицам в базе данных; • Предоставить совместный доступ к базе данных access через интернет; • Обеспечить доступ к общим данным посредством репликации; • Создать клиент-серверное приложение, используя мощную субд, например Microsoft SQL Server.
Совместное использование базы данных Это самый простой способ обеспечить доступ нескольких пользователей ко всем объектам базы данных: таблицам, запросам, формам, отчетам, макросам, модулям. Для этого достаточно файл базы данных поместить в общую папку на файловом сервере или одной из рабочих станций. К этой папке должен быть обязательно открыт полный доступ всем пользователям приложения. Это связано с тем, что для реализации совместного доступа к файлу базы данных Access создает специальный файл — файл блокировок. Он создается в той же папке, в которой находится совместно используемая база данных Access. Недостаток: при такой организации доступа к приложению крайне высокие требования предъявляются к производительности рабочих станций пользователей и сети, так как между сетевым ресурсом и рабочими станциями будет осуществляться очень интенсивный обмен данными, что существенно увеличивает нагрузку на сеть.
Совместное использование только данных В этом случае приложение Access разделяется на несколько файлов: в отдельный файл или несколько файлов выделяются таблицы — этот файл называется файлом объектов данных (back-end), и отдельный файл содержит все остальные объекты — запросы, формы, отчеты, макросы и модули — его называют файлом объектов приложения (front-end). Копии файла объектов приложения устанавливаются на каждую рабочую станцию пользователей, а файл или файлы объектов данных помещаются на файловый сервер. Рис. 1 - Приложение с архитектурой файл-сервер
Совместное использование только данных Файл блокировок, как уже говорилось, размещается в той же папке, что и файл базы данных общего доступа. Он имеет то же название, что и файл .mdb, но другое расширение — .ldb. Он создается сразу, как только первый пользователь откроет файл .mdb в режиме общего доступа. В процессе работы приложения в файле .ldb собираются сведения обо всех заблокированных записях базы данных. Когда последний пользователь закроет базу данных, файл блокировки удаляется. Файл рабочей группы представляет собой базу данных Access, которая имеет расширение .mdw. В ней содержится информация обо всех пользователях приложения, требующаяся для организации разграничения доступа к данным различных категорий пользователей. Даже если база данных Access используется в однопользовательском режиме, все равно для ее работы требуется файл рабочей группы. Для этого применяют стандартный файл SYSTEM.MDW, который создается при установке Access. Этот файл находится в папке, соответствующей языку локализации установленной версии Access: для русскоязычной версии это папка с номером \1049, а для американской версии — \1033. Находятся они по умолчанию в папке ProgramFiles\MicrosoftOffice\Office.
Совместное использование только данных Достоинство: данный способ организации совместного доступа обеспечивает более высокую производительность приложения по сравнению с тем способом, когда приложение полностью находится на файловом сервере, так как по сети будут передаваться только данные. Недостаток: при данном способе поддержка приложения усложняется — при необходимости внесения изменений в приложение модифицированные копии базы данных объектов приложения необходимо тиражировать на все рабочие станции пользователей. Однако, отдельный пользователь может настроить формы, отчеты и другие объекты приложения в соответствии со своими индивидуальными потребностями. В общем случае возможно даже создать разные файлы объектов приложения (фронтальные приложения) для разных пользователей, работающих с общей базой данных Access.
Совместное использование базы данных Access через Интернет При использовании данного способа объекты базы данных Access могут быть предоставлены для совместного использования посредством Интернета или Интранета. Это осуществляется с помощью страниц HTML, которые можно просматривать обозревателем, таким как MicrosoftInternetExplorer. Достоинство: основное преимущество такой организации совместного доступа к данным состоит в том, что на рабочих станциях пользователей не требуется устанавливать Access, достаточно иметь только InternetExplorer версии 5 и выше, который обычно встроен в операционную систему Windows. Недостатки: Все пользователи должны иметь высокоскоростной доступ к сети Интернет. Низкая защищённость данных и возможность несанкционированного доступа к базе данных.
Совместная работа с данными посредством репликации Репликацией называется процесс поддержки на нескольких компьютерах копий файлов данных, обменивающихся между собой изменениями. При использовании данного способа копии базы данных называются репликами, а обмен данными между репликами называется синхронизацией. Синхронизация реплик может выполняться как в локальной сети, так и с помощью удаленного доступа к сети или через Интернет. Достоинство: объемы обмениваемых данных существенно сокращаются в процессе работы базы данных. Недостатки: Все пользователи должны иметь достаточно ресурса для хранения копий базы данных. Высокая подверженность сбоям всей базы данных при нарушении синхронизации реплик хотя бы с одним компьютером в сети.
Совместный доступ к данным на SQL-сервере Microsoft SQL Server может быть задействован для совместной работы с приложением Access. В этом случае таблицы с данными будут находиться не в базе данных Access, а в базе данных Microsoft SQL Server, которая является гораздо более мощной СУБД, способной поддерживать сотни пользователей. В этом случае для доступа к таблицам Microsoft SQL Server может быть использована как база данных, так и проект Access. MicrosoftAccess имеет специальную программу — Мастер преобразования в формат SQL Server, которая позволяет преобразовать существующую базу данных Access в клиент-серверное приложение, переместив таблицы с данными на Microsoft SQL Server.
Совместный доступ к данным на SQL-сервере Достоинство: существенно расширяются возможности по созданию и использованию базы данных, когда требуется обрабатывать очень большой объем данных либо нужно обеспечить доступ к этим данным очень большому числу пользователей. Недостатки: Необходимо использовать только клиент-серверное приложение. Разработка клиент-серверного приложения является более трудной задачей, чем использование только базы данных Access.
Вопрос 2. Стратегии блокировки записей в базах данных Когда один пользователь редактирует запись, Access позволяет автоматически запретить другим пользователям изменять ее, пока первый пользователь не закончит правку и не сохранит внесенные изменения в базе данных. Предоставление пользователю исключительного права доступа к записи называется блокировкой. Access позволяет выбрать одну из трех стратегий блокировки записи в сети. Эти стратегии применяются тогда, когда пользователь редактирует записи в форме или в таблице.
Вопрос 2. Стратегии блокировки записей в базах данных Access позволяет выбрать одну из трех стратегий блокировки записи в сети: • оптимистической блокировкой, • пессимистической блокировкой, • монопольной блокировкой. При выборе этой стратегии редактируемая запись не блокируется, и есть возможность обновления любой записи в любое время. В этом случае возможные компромиссы решаются следующим образом. Если два пользователя одновременно вносили изменения в запись, то тот, кто сохраняет изменения первым, сможет это сделать без проблем. Второй пользователь при попытке сохранить запись увидит диалоговое окно Конфликт записи (WriteConflict).
Сообщение о конфликте записи при оптимистической блокировке
Вторая стратегия гарантирует успешное завершение всех начатых изменений, и ее называют пессимистической блокировкой. При этом редактируемая запись блокируется, не позволяя изменять ее другим пользователям. Однако блокироваться может не только одна запись, но и вся страница данных, на которой содержится измененная запись. Поэтому заблокированными могут оказаться также записи, располагающиеся на диске рядом с редактируемой. Если другой пользователь попытается изменить заблокированную запись, он увидит в поле выделения записи значок заблокированной записи. Но у нее есть существенный недостаток. Длительность блокировки никак не ограничена, поэтому если пользователь долго держит запись заблокированной, всем остальным придется ждать.
Третья стратегия дает исключительные права пользователю на таблицу и её называется монопольной. Она позволяет Access блокировать все записи, отображаемые в форме или объекте (таблице, запросе), открытом в режиме Таблицы, на все время открытия. Эта стратегия. Используется крайне редко, например, в режиме пакетных изменений. Стратегия блокировки в сети, используемая по умолчанию, устанавливается соответствующим переключателем в группе Блокировка по умолчанию (DefaultRecordLocking) на вкладке Другие (Advanced) диалогового окна Параметры (Options) Access
Параметр формы Блокировка записей
Существует следующие способы отображения на экране обновленных данных, полученных из источника данных, совместно используемого в сети несколькими пользователями: • управление блокировками при редактировании данных в формах приложения и объектах, открытых в режиме Таблицы, • это применение процедур VBA, которые работают с объектами Recordset
Управление блокировками при редактировании данных в формах приложения и объектах, открытых в режиме Таблицы: • Использование команды Записи4Обновить (Records4Refresh) • периодическое обновление данных в режиме таблицы или формы • повторная загрузка данных из источника по требованию пользователя в режиме Таблицы или Формы • повторная загрузка данных из источника по требованию пользователя с использованием вызова методом Requery объекта Form или Control • повторная загрузка данных из источника по требованию пользователя в режиме Просмотра страницы с использованием команды Обновить (Refresh) или нажатием клавиши F5 • обновление данных в объекте, в открытом в режиме Сводной таблицы или Сводной диаграммы, нажатием кнопки Обновить (Refresh) на панели инструментов Сводные таблицы (PivotTable) или Сводная диаграмма (PivotChart)
Таблица 1 - Соответствие параметров Access и ключей реестра
Второй способ управления — это написание процедур VBA, которые работают с объектами Recordset и позволяют настраивать способы блокировки и обрабатывать возможные конфликты индивидуально для каждой ситуации. В результате получается более гибкая политика, чем при настройке параметров форм.