Схема данных в Access: создание, редактирование, обновление

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

Связи в базах данных

В качестве примера рассмотрим связи в БД туристического агентства. В ее состав входит таблица гостиниц Таиланда – страны, в которую турагентство отправляет гостей. Отели расположены в различных регионах Королевства.

Таблица отелей

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


Выбор региона из списка

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

Таблицы связаны по типу один-ко-многим. Это означает, что одна запись из таблицы «Регионы» встречается много раз в таблице «Отели». Кроме этого, существуют виды «многие-ко-многим» и «один-к-одному». Но последняя крайне редко применяется на практике. Ниже мы ознакомимся, как эти типы обозначаются на схемах данных в Access.

Схема данных БД

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


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

Схема данных Access

Прямоугольниками обозначены таблицы со списком полей, линии между ними – связи. На линии связи в местах примыкания к прямоугольникам таблиц сделаны обозначения: «1» и «∞». Они показывают, какой тип связи применен в этом отношении. Значок «1» у таблицы-источника со значком «∞» у приемника обозначают вид «один-ко-многим». Обе связи в нашей БД – такого типа.

Соответственно, две единицы у двух концов линии говорят о виде «один-к-одному», а два знака бесконечности – «многие-ко-многим».

Создание схемы данных

Для создания схемы данных в Access добавлен инструмент на панели «Работа с базами данных». СУБД автоматически создает схему по тем таблицам и связям, что существуют в базе. Приведенная выше схема создана системой самостоятельно. Пользователь может внести изменения в макет. Некоторые из них не отразятся на структуре БД, только на отображении информации. А некоторые приведут к изменениям в структуре.


В режиме "Конструктора" доступна операция «Очистить макет». При ее выполнении экран схемы данных в Access очищается, а таблицы и отношения скрываются. Это не значит, что они пропадают из базы - просто не отражаются в макете схемы.

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

Создание отношений между таблицами

В нашем примере отношения между таблицами уже были определены во время создания. Остановимся более подробно на том, как это сделать. Как мы уже знаем, «Отели» содержит поле «Регион», данные для которого берутся из одноименной таблицы. При добавлении столбца «Регион» указывается тип поля «Подстановка и отношение».

Мастер создания подстановки

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

На последнем шаге даем имя новому полю и указываем параметр целостности. Подробнее на нем мы остановимся ниже. После нажатия на кнопку «Готово» в таблицу отелей добавлен столбец «Регион», значения для него берутся из указанного объекта.

Включение целостности данных

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

Изменение отношений

Если отношение не добавлено при добавлении столбца в объект, это делается непосредственно в макете схемы данных в Access. Как создать новую связь, покажем на примере. Нажмите кнопку «Изменить связи». В редактировании отношений для создания новой связи нажмите «Новое». В форме «Создание» выбираем таблицы для связи и поля, которые будут соответствовать друг другу.

Изменение связи

Для уже созданной связи есть возможность изменять параметры объединения записей в запросах. Для этого вызываем диалоговое окно схемы данных MS Access «Изменение связей» и нажимаем кнопку «Объединение». В форме редактирования параметров предложены варианты объединений:

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

Мы оставляем автоматический выбор системы – первый вариант.

Параметры объединения таблиц в запросах

Целостность данных БД

Связи между объектами БД на схеме данных в Access подводят нас к понятию целостности данных. Как было показано выше, при создании связей между полями объектов базы указывается параметр целостности. Если он включен, связи между объектами поддерживаются и охраняются системой.

Покажем это наглядно на примере базы туристической компании. В «Отелях» гостиница с наименованием Anantara Lawana Koh Samui Resort относится к региону Самуи. Предположим, мы удалили этот район из «Регионов». Теперь поле ссылается на запись, которой не существует. Это и есть нарушение целостности.

Аналогично при установленном требовании соблюдения целостности мы не сможем выбрать в этом поле район «Чианг Май», потому что его не существует в таблице регионов.

Отчет по схеме данных

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

Цветовая инверсия в Adobe Photoshop
Программа Adobe Photoshop позиционирует себя лидером в сфере графических редакторов. Это благодаря тому, что в приложении имеются почти все преобразования с изображением и фотографией. Еще одним достоинством можно считать тот факт, что здесь ...
далее
Узнаем что это – экспорт данных?
Ежедневно мы слышим слово "экспорт". Это понятие используется в жизни и в работе. Мы слышим это слово в телевизионных программах и читаем в новостях. При этом мы представляем товары, которые государство вывозит и продает за границей. В ...
далее
Четыре способа разделения ячейки на две в Excel
При работе в табличном процессоре Excel у пользователя возникают различные задачи, однако даже простое на первый взгляд действие в нем выполнить не так просто, как кажется. Так, многие испытывают проблемы при попытке разделить ячейку в Excel на две. ...
далее
Ошибка печати: Принтеру не удалось напечатать этот документ. Узнаем ...
Принтеры, как и любое другое оборудование, устанавливаемое в компьютерной системе, не всегда могут работать корректно, при этом принтер выдает ошибку печати, сообщение о которой не всегда может быть понятно рядовому пользователю (например, если в ...
далее
Язык Add Constraint SQL
SQL — это полнофункциональный язык, который позволяет создавать БД, таблицы, вводить и корректировать данные, оформлять представления, индексы и отчеты . Если у вас есть несколько минут, просмотрите информацию про Tutorial SQL, которая даст начало перехода в SQL и разработку базы данных.
далее
Язык Add Constraint SQL
Модальное окно CSS: просто, быстро и удобно
Организация эффективного диалога с посетителем веб-ресурса предполагает использование элементов HTML. Формы, поля ввода, кнопки и меню - привычный арсенал разработчика. HTML5/CSS3 дополняет этот арсенал возможностью создания оконного диалога. Можно не использовать JavaScript, но получить удобное диалоговое окно без программирования.
далее
Модальное окно CSS: просто, быстро и удобно
Узнаем как изменить цвет текста в HTML?
Яркое оформление вашего сайта - залог привлечения постоянного внимания гостей страницы и увеличения конверсии. Правильно подобранная гамма цветов повлияет, в том числе, и на восприятие информации читателем. Речь идет не только о цветах фона или отдельных элементах интернет-страницы, но и в большей степени цвете самого текста, размещенного на сайте.
далее
Узнаем как изменить цвет текста в HTML?
Программист Ричард Столлман: краткая биография борца за свободное ПО
Имя известного американского программиста Ричарда Столлмана навечно вписано в историю развития информационных технологий. Причем широкую славу он приобрел не только разработками многочисленных различных приложений, но и ярко выраженной позицией в вопросе защиты программного обеспечения. О жизни и карьере виновника горячих споров можно прочитать в этой статье.
далее
Программист Ричард Столлман: краткая биография борца за свободное ПО
Использование функции си fseek
В статье описано, для чего нужна функция fseek. Приведена ее подробная характеристика. Разъяснено назначение всех передаваемых параметров и возвращаемого значения. Описано, какие значения могут принимать передаваемые в функцию аргументы и что означают возвращаемые параметры. Пример использования с подробным описанием.
далее
Использование функции си fseek