Размещение объекта OLE

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

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

Ввод логически связанных записей

Введем несколько логически взаимосвязанных записей в таблицы группа и СТУДЕНТ.

Объекты ГРУППА и СТУДЕНТ связаны одно-многозначными отношениями, но, пока не создана схема данных, в которой устанавливаются связи между таблицами, система не может контролировать логическую взаимосвязь вводимых данных. Поэтому для получения целостной базы, в которой все записи подчиненной таблицы имеют логически связанную с ней главную запись, пользователю необходимо самому отслеживать логические связи записей. При вводе подчиненной записи в таблицу студент нужно проверять наличие записи в главной таблице группа с ключом, значение которого совпадает со значением поля связи (внешнего ключа) вводимой подчиненной записи. То есть при добавлении записи о студенте группы 221 необходимо, чтобы группа с этим номером уже была представлена в таблице ГРУППА.

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

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

Одним из способов ввода подчиненных записей только при наличии связанной записи в главной таблице может быть использование в подчиненной таблице поля со списком, включающим значения поля главной таблицы. Создадим в таблице студент для поля НГ (номер группы) поле со списком, построенным на основе ключа таблицы группа. Для этого откроем таблицу I студент в режиме конструктора. Установим курсор в поле НГ на столбце Тип данных, откроем список и выберем строку Мастер подстановок (см. рис. 3.5). В открывшемся окне мастера Создание подстановки установим флажок Объект "столбец подстановки" будет использовать значения из таблицы или запроса. При этом будет построен список на основе значений из таблицы.

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

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

Теперь при вводе данных в таблицу студент можно воспользоваться списком, в котором отобразятся все значения поля НГ, содержащиеся в таблице группа. Ввод значения в поле НГ осуществляется путем выбора нужного значения из списка. Наличие поля со списком не запрещает ввод в поле НГ значений, не указанных в списке. Однако если при определении параметров списка в окне конструктора, в разделе Свойства поля на вкладке Подстановка выбрать для свойства Ограничиться списком значение Да, то ввод непредусмотренных в списке значений сделается невозможным. Система отследит эту ситуацию и, в случае отклонения от значений списка, выдаст сообщение, показанное на рис.

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

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

Если установить флажок Скрыть ключевой столбец (рекомендуется), то для первого столбца списка устанавливается ширина, равная нулю. При этом свойство Ограничиться списком может принимать только одно значение — Да.

Определение поля со списком с такими параметрами приводит к отображению в поле таблицы КП вместо значений ключевого поля значений второго поля списка — поля НП (наименование предмета). На рис. 3.30 показано, как в таблице ИЗУЧЕНИЕ отображаются поля со списком Код предмета и Табельный преподавателя при нулевой ширине присоединенного столбца.

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

Внимание!

При создании полей со списком мастер подстановки автоматически создает связь между таблицей, в которой создается поле со списком, и таблицей-источником значений списка. Эту связь можно увидеть в окне Схема данных, щелкнув на кнопке панели инструментов Отобразить все связи.

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

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

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

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

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

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

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

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

Одно-многозначные (1 :М) или одно-однозначные (1:1) связи

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

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

Замечание

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

Связи-объединения

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

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

Для установления связи может быть выбран любой из перечисленных способов объединения, вне зависимости от того, в каких отношениях находятся связываемые таблицы: 1:1, 1:М или тип отношения не может быть определен системой. Например, при выборе в главной таблице в качестве поля связи не ключевого поля или поля, входящего в составной ключ, Access сообщает, что тип отношения не может быть определен. Но в этом случае между таблицами также возможно установление связи-объединения любого типа. Когда в схеме данных определяется связь между двумя таблицами, то между этими таблицами по умолчанию устанавливается связь объединения первого типа, вне зависимости от типа отношений.

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

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

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

  • в подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи;
  • в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
  • нельзя изменить значения ключа связи в записи главной таблицы, если в подчиненной таблице имеются связанные с ней записи.

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