Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

.pdf
Скачиваний:
5339
Добавлен:
14.05.2016
Размер:
14.64 Mб
Скачать

10. СУБД Access 2002

343

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

Синхронизацией называют процесс обновления двух компонентов в наборе реплик, при котором производится обмен обновленными записями и объектами из каждого компонента. Access одной командой позволяет выполнить синхронизацию между двумя репликами одного набора. При этом можно синхронизировать между собой две дополнительные реплики. Схема синхронизации реплик показана на рис. 10.36.

Рис. 10.36. Синхронизация реплик

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

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

Синхронизацию структур набора реплик также целесообразно выполнять через основную реплику. Другими словами, управлять набором реплицируе-

3 4 4 Часть 3. Современные СУБД и их применение

мых объектов (включать и исключать их из числа реплицируемых) и их структурой (изменять реплицируемые объекты) нужно из основной реплики. Во всех репликах, в том числе основной, кроме того, допускается создание и изменение локальных объектов.

Для защиты реплицированной БД можно использовать защиту на уровне пользователя, которая позволяет определить права пользователей на ее объекты. Такие права не мешают синхронизации базы данных. Защита реплицированной базы данных, точнее, любой из ее реплик, с помощью пароля БД не допускается. Базу данных, защищенную паролем, нельзя реплицировать.

Создание и удаление реплик

Репликацию базы данных Access можно выполнять следующим образом:

• по команде С е р в и с | Р е п л и к а ц и я ( T o o l s | R e p l i c a t i o n ) м е н ю A c c e s s ;

• с помощью программы П р о в о д н и к ;

• путем вызова Диспетчера репликации пакета Microsoft Office ХР для разработчиков;

•используя специальные объекты. Это могут быть объекты J R O (Jet and Replication Objects) — для работы с базами данных Access, либо объекты доступа к данным DAO (Data Access Objects) — для работы с базами MS Access версии 97 и более ранних.

В первом случае перед созданием основной реплики рекомендуется создать резервную копию исходной БД, так как последняя при репликации будет преобразована. Для создания реплики нужно открыть исходную БД и выдать команду С е р в и с | Р е п л и к а ц и я | С о з д а т ь д о п о л н и т е л ь н у ю р е п л и к у ( T o o l s

| R e p l i c a t i o n | C r e a t e R e p l i c a ) .

Система Access выдаст предупреждающее сообщение о закрытии БД. В очередном окне предлагается выбрать вариант дальнейших действий по репликации БД: создавать (Да (Yes)) или не создавать (Нет (No)) резервную копию исходной базы данных, отменить репликацию ( О т м е н а ( C a n c e l ) ) или вызвать справку ( С п р а в к а ( H e l p ) ) . Если копия уже создана, следует нажать кнопку Нет (No). Автоматически создаваемая резервная копия исходной БД, если пользователь не изменит ее имя, хранится в той же папке, где и основная БД. Имя файла резервной копии, если пользователь его не изменит, совпадает с именем файла исходной БД, а имя файла имеет расширение bak.

В очередном окне остается определить имя и местоположение основной реплики.

Для создания дополнительной реплики достаточно открыть основную или

дополнительную реплику и выдать команду С е р в

и с | Р е п л и к а ц и я

| С о з д а т ь

д о п о л н и т е л ь н у ю р е п л и к у ( T o o l s | R e p l i c a t i o n |

C r e a t e R e p l i c a ) .

В открыв-

шемся окне указывается имя и местоположение дополнительной

реплики.

Таким местом может быть и П о р т ф е л ь ( M y B r i e f c a s e ) .

 

П о р т ф е л ь

10. СУБД Access 2002

3 45

Во втором случае репликация БД выполняется из приложения

П р о в о д н и к

( E x p l o r e r ) . Вызов процедуры репликации происходит при перетаскивании мышью значка исходной БД из папки в П о р т ф е л ь ( M y B r i e f c a s e ) . Дальнейшие действия пользователя от описанных действий сильно не отличаются.

В отличие от предыдущего случая, здесь одна из реплик остается в исходной папке, а другая — в папке П о р т ф е л ь ( M y B r i e f c a s e ) . Пользователю предлагается сделать выбор какую из реплик сделать основной, а какую дополнительной. Для этого в последнем предлагаемом пользователю окне, называемом П о р т ф е л ь ( M y B r i e f c a s e ) , необходимо отметить один из переключателей: «исходная копия» (основной репликой считать реплику в исходной папке) либо «копия в портфель» (основной репликой считать реплику в папке

( M y B r i e f c a s e ) ) .

При установленном пакете Microsoft Office ХР для разработчиков диспетчер реплик позволяет выполнять следующее: управлять большим набором реплик; поддерживать пользователей портативных компьютеров, которые не всегда подсоединены к сети; создавать реплики нескольких баз данных; устанавливать расписания синхронизации компонентов набора реплик; устранять ошибки и др.

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

Синхронизация реплик

Синхронизацию реплик можно выполнять при работе в Access или в среде Windows.

В первом случае нужно при открытой БД выполнить команду меню Сер-

в и с | Р е п л и к а ц и я | С и н х р о н и з а ц и я ( T o o l s | R e p l i c a t i o n | S y n c h r o n i z e N o w ) .

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

ВWindows синхронизация выполняется с помощью системной папки Пор-

тф е л ь ( M y B r i e f c a s e ) . Открытие окна портфеля происходит двойным нажа-

тием левой кнопки мыши на соответствующем ярлыке рабочего стола. Окно П о р т ф е л ь ( M y B r i e f c a s e ) имеет строку меню, а в основной части

содержит список файлов в одноименной папке. Для синхронизации отдельных файлов БД их следует отметить мышью с помощью клавиши <Ctrl> и

в ы д а ть команду Портфель | Обновить (My Briefcase | Update). Н а х о д я щ и -

346 Часть 3. Современные СУБД и их применение

еся в папке П о р т ф е л ь ( M y B r i e f c a s e ) файлы БД, как отмечалось, могут быть основными и дополнительными репликами. Появится окно, подобное приведенному на рис. 10.37.

Обновление Портфель

 

 

g u l l ]

Перечисленные Файлы необходимо обновить. Если нужно изменить

Са*Сэ

операцию обновления для Файла, щелкните правой кнопкой мыши на

 

этом Файле и выберите нужную операцию.

 

 

 

В Портфеле

 

В E:\Documents and.

 

 

Не изменен

 

Изменен

IReplica of:

14.12.2003 1:42

Заменить

14.12.2003 1:52

 

 

 

!dbl.mdb I

Обновить I

Отмена

Рис. 10.37. Окно Обновление Портфель

 

В зависимости от изменений в каждой паре реплик система предлагает одну из операций синхронизации, основными из которых являются: замена (перенос изменений из одной изменившейся реплики в другую, не подвергшуюся изменениям), объединение (взаимное согласование изменений в репликах), создание (создание реплики в случае, если в папке П о р т ф е л ь ( M y Briefcase) оказалась обычная БД), пропуск (в списке реплик окна не обрабатывать текущую реплику). При желании с помощью мыши легко можно изменить предложенную операцию обработки любой из реплик.

Чтобы обновить реплики, хранящиеся в папке П о р т ф е л ь ( M y

Briefcase),

нужно выполнить команду в папке П о р т ф е л ь | О б н о в и т ь все ( M y

Briefcase

| U p d a t e all). Появится окно, аналогичное рассмотренному ранее.

 

Чтобы разорвать связь одной реплики из папки П о р т ф е л ь ( M y

Briefcase)

с другой, нужно выделить в окне П о р т ф е л ь ( M y Briefcase) эту реплику БД и выдать команду П о р т ф е л ь | О т д е л и т ь от о р и г и н а л а ( M y Briefcase | Split F r o m Original). После этого команды обновления для этой реплики стаиовят-

10. СУБД Access 2002

3 47

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

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

Если в процессе синхронизации система находит ошибки, пользователю об этом сообщается, а устраняет ошибки пользователь. Вызвать функцию контроля реплик на наличие конфликтов можно явно, задав команду меню С е р в и с

| Р е п л и к а ц и я | У с т р а н и т ь к о н ф л и к т ы ( T o o l s | R e p l i c a t i o n | R e s o l v e C o n f l i c t s ) .

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

Существенную роль при разрешении конфликтов в процессе синхронизации имеют приоритеты реплик, которые устанавливаются в момент создания реплик (кнопка П р и о р и т е т (Priority) в окне создания реплики). Приоритеты находятся в диапазоне 0-100, причем большему значению соответствует более высокий приоритет при разрешении конфликтов. В случае с одинаковыми значениями приоритетов преимущество отдается реплике с наименьшим значением свойства ReplicalD (оно доступно только для чтения и находится в системной таблице БД MSysReplicas). Если не задавать приоритет во время создания реплики, то по умолчанию создаваемая реплика будет иметь значение приоритета с коэффициентом 0.8 от значения приоритета исходной базы данных (или реплики).

10.11. Работа с мультимедиа-данными

Проблема создания и взаимодействия с мультимедиа-данными в Access скорее психологическая, нежели техническая. Для пользователей, имеющих опыт работы с СУБД предыдущих поколений (к числу которых относятся и авторы), когда не было мультимедиа, непривычно работать с мультимедиаинформацией. Психологический барьер и некоторая неуверенность в действиях — вот одна из основных причин того, что мультимедиа в базах данных не получило широкого распространения. Возможно, еще одной из причин является то, что использование мультимедиа-данных пока не стало осознанной необходимостью для пользователей. Не зная всех достоинств мультимедиа, пользователь, естественно, и не пытается их использовать.

Для знакомства с мультимедиа в СУБД Access воспользуемся одной из готовых демонстрационных БД — «Борей», поставляемой с системами Access разных версий (аналогичные возможности представляет также учебная база данных Northwind.mdb).

3 4 8 Часть 3. Современные СУБД и их применение

Мультимедиа-информация в базе данных «Борей»

В базе «Борей» мультимедиа-данные содержатся в двух таблицах: С о т р у д - н и к и (поле Ф о т о г р а ф и я ) и Т и п ы (поле И з о б р а ж е н и е ) . Поля Фотография и Изображение имеют тип п о л е о б ъ е к т а O L E ( O L E O b j e c t ) . Основными операциями над значениями этих полей являются следующие операции: просмотр, модификация, создание и удаление.

1. Просмотр содержимого полей. Просмотреть содержимое полей Фотография и Изображение можно в режиме таблицы или формы. Для просмотра содержимого мультимедиа-полей в режиме таблицы достаточно выбрать в окне базы данных нужную таблицу, сделать соответствующее поле текущим (в области поля будет некоторый текст, свидетельствующий о том, что это п о л е о б ъ е к т а O L E , например, такой: Т о ч е ч н ы й р и с у - н о к B M P ( B i t m a p I m a g e ) ) и дважды щелкнуть левой кнопкой мыши.

Для просмотра содержимого в режиме формы нужно открыть соответствующие экранные формы. По каждой из таблиц Сотрудники и Типы существуют формы с такими же именами. Открывая экранные формы, можно увидеть содержимое этих же полей. В общем случае это не так, поскольку мультимедиа-данные могут быть представлены в форме в виде значков, а также могут быть заданы некоторые свойства, ограничивающие или запрещающие вывод изображения на экран (такими свойствами являются задаваемые в режиме конструктора свойства «Вывод на экран» (Visible) и «Режим вывода» (Display When)). В базе данных «Борей» просмотреть поле И з о б р а ж е н и е формы Т и п ы можно проще — с помощью Главной кнопочной формы. Для этого достаточно после вызова ее щелкнуть мышью на кнопке Т и п ы представления этой формы. Если вы следуете приводимым советам, то перейдите к третьей записи формы Т и п ы . В категории напитков выберите себе приз (чай, кофе или что-нибудь еще), который считайте наградой за изучение излагаемого здесь материала.

2. Модификация содержимого мультимедиа-полей. Для модификации изображений, хранящихся в полях ф о т о г р а ф и я и И з о б р а ж е н и е , независимо от режима (таблица, форма), достаточно выбрать нужное поле и дважды щелкнуть по нему кнопкой мыши. В результате будет вызван подходящий графический редактор (Paintbrush, Paint) для редактирования изображения.

3.Создание значений мультимедиа-полей. Создать содержимое мультиме- диа-поля, как и другого типа, можно несколькими способами. Удобно это сделать следующим образом. Сделать это поле текущим, затем из меню

Access выполнить команду Вставка | Объект (Insert | Object). Появля -

ется диалоговое окно вставки объектов (рис. 10.38).

В нем предлагается выбрать тип объекта, а также способ его определения: создать объект с помощью соответствующей программы (Audio Recorder, Comic Chat Room, Microsoft Graph 5.0 и т. д.) или вставить его готовым из файла.

10. СУБД Access 2002

349

Рис. 10.38. Диалоговое окно вставки OLE-объектов

Независимо от способа определения объекта, существуют два варианта включения объекта в поле записи базы (задается с помощью флажка

С в я з ь ( L i n k ) ) :

•путем внедрения исходного объекта в базу данных;

•путем связывания (флажок С в я з ь ( L i n k ) включают), когда устанавливается связь между отдельно хранящимся файлом объекта и записью базы данных.

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

4. Удаление значений мультимедиа-полей. Операция удаления значений мультимедиа-полей практически не отличается от удаления значений обычных полей. Чтобы удалить мультимедиа-поле, нужно сделать его текущим (клавишами управления курсором, клавишей <ТаЬ>, щелчком левой кнопки мыши) и выполнить команду меню П р а в к а | { В ы р е з а т ь ,

У д а л и т ь } ( E d i t | { C u t , D e l e t e } ) .

 

Работа с мультимедиа-данными

в БД Access

После знакомства с готовой БД, где хранится

мультимедиа-информация,

сделаем некоторые обобщения.

 

Во-первых, для хранения мультимедиа-данных в базе необходимо в структуре таблиц БД иметь поля типа П о л е о б ъ е к т а O L E ( O L E O b j e c t ) . Вид объекта при этом не уточняется, это значит, что в каждой записи базы данных в

3 50 Часть 3. Современные СУБД и их применение

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

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

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

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

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

• Т и п в ы в о д а ( D i s p l a y Т у р е ) принимает значения С о д е р ж и м о е ( O L E ) или

З н а ч о к ( I c o n ) ;

 

• Д о п у с т и м ы й

т и п O L E ( O L E T y p e A l l o w e d )

принимает значения С в я з а н -

н ы й ( L i n k e d ) ,

В н е д р е н н ы й ( E m b e d d e d )

и В с е ( E i t h e r ) — допускается

связывание и внедрение;

• Д о с т у п ( E n a b l e d ) определяет возможность модификации данных ( Д а

(Yes), Н е т ( N o ) ) .

Напомним, что определение свойств полей происходит в режиме разработки экранных форм. Простейший способ вызова окна свойств — выбор поля в области формы, нажатие правой кнопки мыши и выбор пункта С в о й с т в а ( P r o p e r t i e s ) в контекстном меню. Перечисленные свойства находятся на вкладке Д а н н ы е ( D a t a ) окна свойств.

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

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

10. СУБД Access 2002

351

тивизация (просмотр — для рисунков, диаграмм, документов; проигрыш — для звуковых, анимационных, видео- и других файлов).

На примере БД «Борей» мы рассмотрели, как выполняются основные опе-

рации над данными типа Т о ч е ч н ы й р и с у н о к B M P ( B i t m a p I m a g e ) . Более

удобный и унифицированный способ выполнения операции над OLE-объек- том как мультимедиа-данным, на наш взгляд, состоит в следующем:

•сделать поле текущим (таблица, форма — безразлично);

выбрать объект щелчком левой кнопкой мыши;

вызвать контекстное меню;

•выполнить нужную операцию: вставить новый объект, вырезать, копировать, вставить содержимое из буфера обмена или через подпункт меню вида «Объект <тип объекта>» определить одну из таких операций, как: изменить, открыть или преобразовать объект.

10.12. Создание файлов приложений

Наряду с созданием обычных mdb-файлов приложений в Access 2002 имеется возможность создавать mde-файлы приложений, в которых хранятся БД, предназначенные «только для исполнения». Отличительной чертой этих файлов является то, что соответствующие приложения имеют ограничения по модификации их объектов, а также откомпилированы все модули и удалены исходные тексты VBA-программ. Это позволило защитить приложение от исправления и исследования, а также уменьшить размер файла БД.

Степень уменьшения размера исходной базы данных зависит, главным образом от ее состава и состояния (размеров неиспользуемых областей в файле). Так, например, размер mde-файла базы данных Northwind.mdb в формате Access 2002 меньше исходного mdb-файла на 4%.

Чтобы создать копию приложения с БД, предназначенную только для ис-

полнения, нужно выполнить команду С е р в и с

|

С л у ж е б н ы е

п р о г р а м м ы |

С о з д а т ь M D E - ф а й л ( T o o l s [ D a t a b a s e Utilities

|

M a k e M D E

File). Появится

диалоговое окно, в котором вводится имя исходной базы данных и нажимает-

ся кнопка С о з д а т ь M D E ( M a k e M D E ) .

В очередном диалоговом окне указывается имя новой БД и папка ее размещения. После нажатия кнопки С о х р а н и т ь ( S a v e ) в окне Access откомпилирует исходную базу и сохранит ее в новом файле с расширением mde, после чего удалит из этого файла все исходные тексты VBA-программ и выполнит сжатие файла.

Если открыть mde-файл некоторой БД, то обнаружатся, что в окне базы

данных на вкладках Ф о р м ы ( F o r m s ) и О т ч е т ы ( R e p o r t s )

станут недоступны-

ми (изменят свой цвет на серый) кнопки К о н с т р у к т о р

( D e s i g n ) и С о з д а т ь

( N e w ) , а н а в к л а д к е М о д у л и ( M o d u l e s ) — в с е т р и к н о п к и З а п у с к ( R u n ) , К о н -

структор (Design) и Создать (New). Это означает, что нельзя просматривать,

352

Часть 3. Современные СУБД и их применение

изменять или создавать формы, отчеты и модули, добавлять, удалять или изменять ссылки на используемые библиотеки или базы данных, изменять исполняемый код, а также импортировать или экспортировать формы, отчеты и модули. Запустить программу модуля можно только через интерфейс приложения БД. Вместе с тем, по-прежнему остаются доступными все средства просмотра, создания и модификации таблиц, запросов и макросов.

10.13. Страницы доступа к данным

Страница доступа к данным (СДД) является специфическим видом Webстраницы, предназначенной для работы с данными, размещенными в Интернете или интранете. Используемые данные могут храниться в базах данных Access или SQL Server, а также в файлах других источников информации, например, в электронных таблицах Excel.

Характеристика

страниц доступа к данным

Разработка СДД напоминает разработку форм и отчетов. В процессе разработки можно использовать список полей таблиц базы данных, окно инструментов, элементы управления, диалоговые окна сортировки и группировки и т. д. Однако имеются существенные отличия в способах разработки и непосредственной работы с данными (табл. 10.2).

Таблица 10.2.

Краткая характеристика отличий СДД от форм и отчетов

Задача

Форма

Отчет

Динами-

Страница

 

 

 

ческий

доступа

 

 

 

отчет

к данным

Ввод, редактирование и интерак-

Да

Нет

Нет

Да

тивное взаимодействие с данными

 

 

 

 

в базе данных или проекте

 

 

 

 

Ввод, редактирование и интерак-

Нет

Нет

Нет

Да

тивное взаимодействие с реаль-

 

 

 

 

ными данными (live data) в Интер-

 

 

 

 

нете или интранете за рамками

 

 

 

 

базы данных или проекта

 

 

 

 

Печать данных

Возможно

Да

Да

Возможно

для распространения

 

 

 

 

Передача данных по электронной

Нет

Нет

Да

Да

почте

 

 

(статичес-

(реальные

 

 

 

кие

данные)

 

 

 

данные)