Как сделать связь один ко многим в access 2010?

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

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

Как сделать связь один ко многим в access 2010? Рис. 1.

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

Как сделать связь один ко многим в access 2010? Рис. 2.

Следующий шаг — это установка связей между таблицами в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы на соответствующее поле таблицы Студенты, в результате этой операции появится окно «Изменение связей».

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

Как сделать связь один ко многим в access 2010? Рис. 3.

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

Как сделать связь один ко многим в access 2010? Рис. 4.

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

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

2.4.3.3. Заполнение таблиц

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

На экране появится структура таблицы БД в режиме таблицы. Новая таблица состоит из одной пустой строки.

Как сделать связь один ко многим в access 2010? Рис. 5.

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

Для заполнения поля MEMO в таблице (колонка Место рождения) нажимаем комбинацию клавиш , предварительно установив курсор в поле MEMO. Открывается диалоговое окно Область ввода, после ввода или редактирования данных в этом окне щелкаем на кнопке ОК.

После заполнения таблица Студенты имеет следующий вид.

Как сделать связь один ко многим в access 2010? Рис. 6.

Аналогичным образом заполняются остальные таблицы: Группы Студентов, Успеваемость, Дисциплины.

Как сделать связь один ко многим в access 2010? Рис. 7. Как сделать связь один ко многим в access 2010? Рис. 8. Как сделать связь один ко многим в access 2010? Рис. 9.

В приложении Access применяются различные методы перемещения по таблице. Переходить от записи к записи можно с помощью: клавиш управления курсором; кнопки из области Запись, расположенной внизу таблицы в режиме таблицы; команды Правка — Перейти.. Для перемещения от поля к полю (слева направо) применяются клавиши Tab и Enter, а в обратном направлении Shift+Tab.

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

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

Далее …>>>Тема: 2.4.4. Формирование запросов

Источник: https://www.lessons-tva.info/edu/e-inf2/m2t4_3_2.html

Руководство по проектированию реляционных баз данных (7-9 часть из 15) [перевод]

Продолжение. Предыдущие части: 1-3, 4-6

7. Связь один-ко-многим.

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

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

(Технически лучше говорить о женщине и ее детях вместо матери и ее детях потому, что, в контексте связи один-ко-многим, мать может иметь 0, 1 или множество потомков, но мать с 0 детей не может считаться матерью.

Но давайте закроем на это глаза, хорошо?)

Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим. В реляционной модели данных связь один-ко-многим использует две таблицы.

Как сделать связь один ко многим в access 2010? Схематическое представление связи один-ко-многим. Запись в таблице А имеет 0, 1 или множество ассоциированных ей записей в таблице B.

Как опознать связь один-ко-многим?

Если у вас есть две сущности спросите себя: 1) Сколько объектов и B могут относится к объекту A? 2) Сколько объектов из A могут относиться к объекту из B?

Если на первый вопрос ответ – множество, а на второй – один (или возможно, что ни одного), то вы имеете дело со связью один-ко-многим.

Примеры

Некоторые примеры связи один-ко-многим:

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

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

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

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

8. Связь многие-ко-многим

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

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

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

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

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

Создание связи многие-ко-многим

Связь многие-ко-многим создается с помощью трех таблиц. Две таблицы – “источника” и одна соединительная таблица. Первичный ключ соединительной таблицы A_B – составной.

Она состоит из двух полей, двух внешних ключей, которые ссылаются на первичные ключи таблиц A и B. Как сделать связь один ко многим в access 2010? Все первичные ключи должны быть уникальными. Это подразумевает и то, что комбинация полей A и B должна быть уникальной в таблице A_B. Пример проект базы данных ниже демонстрирует вам таблицы, которые могли бы существовать в связи многие-ко-многим между бельгийскими брендами пива и их поставщиками в Нидерландах. Обратите внимание, что все комбинации beer_id и distributor_id уникальны в соединительной таблице.

Таблицы “о пиве”

Как сделать связь один ко многим в access 2010? Как сделать связь один ко многим в access 2010?

Таблицы выше связывают поставщиков и пиво связью многие-ко-многим, используя соединительную таблицу. Обратите внимание, что пиво 'Gentse Tripel' (157) поставляют Horeca Import NL (157, AC001) Jansen Horeca (157, AB899) и Petersen Drankenhandel (157, AC009). И vice versa, Petersen Drankenhandel является поставщиком 3 видов пива из таблицы, а именно: Gentse Tripel (157, AC009), Uilenspiegel (158, AC009) и Jupiler (163, AC009).

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

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

Другой пример связи многие-ко-многим: заказ билетов в отеле

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

9. Связь один-к-одному

В связи один-к-одному каждый блок сущности A может быть ассоциирован с 0, 1 блоком сущности B. Наемный работник, например, обычно связан с одним офисом. Или пивной бренд может иметь только одну страну происхождения.

В одной таблице

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

В отдельных таблицах

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

Такой вариант иногда необходим, чтобы преодолеть ограничения РСУБД или с целью увеличения производительности (например, иногда — это вынесение поля с типом данных blob в отдельную таблицу для ускорения поиска по родительской таблице).

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

Примеры связи один-к-одному

  • Люди и их паспорта. Каждый человек в стране имеет только один действующий паспорт и каждый паспорт принадлежит только одному человеку.
Читайте также:  Как сделать чекбокс в word?

Как сделать связь один ко многим в access 2010? Проект реляционной базы данных – это коллекция таблиц, которые перелинковываются (связываются) первичными и внешними ключами. Реляционная модель данных включает в себя ряд правил, которые помогают вам создать верные связи между таблицами. Эти правила называются “нормальными формами”. В следующих частях я покажу как нормализовать вашу базу данных.

Какой же вид связи вам нужен?

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

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

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

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

В таких случаях использование связи многие-ко-многим с использованием трех таблиц и с хранением общей информации централизованно очень удобно.

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

хранится она только в одном месте (таблице), в остальных таблицах имеются лишь ссылки на нее.

А когда у вас есть набор уникальных данных, которые имеют отношение только друг к другу, то храните все в одной таблице. Ваш выбор – связь один-к-одному. Например, у вас есть небольшая коллекция автомобилей и вы хотите хранить информацию о них (цвет, марка, год выпуска и пр.).

Источник: https://habr.com/post/193380/

Как сделать связь один ко многим в access 2010?

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

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

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

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

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

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

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

Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools).

В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48).

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

Если окно не открылось, на ленте Работа со связями | Конструктор (Relationship Tools | Design) в группе Связи (Relationships) нажмите кнопку Отобразить таблицу (Show Table).

Как сделать связь один ко многим в access 2010?

Включение таблиц в схему данных

В окне Добавление таблицы (Show Table) (рис. 3.48) отображены все таблицы и запросы, содержащиеся в базе данных.

Выберем вкладку Таблицы (Tables) и с помощью кнопки Добавить (Add) разместим в окне Схема данных (Relationships) все ранее созданные таблицы базы данных Поставка товаров, отображенные в окне Добавление таблицы (Show Table).

Затем нажмем кнопку Закрыть (Close). В результате в окне Схема данных (Relationships) таблицы базы будут представлены окнами со списками своих полей и выделенными жирным шрифтом ключами (см. рис. 3.52).

Как сделать связь один ко многим в access 2010?

Создание связей между таблицами схемы данных

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

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

Создание связей по простому ключу

Установим связь между таблицами ПОКУПАТЕЛЬ и ДОГОВОР, которые находятся в отношении «один-ко-многим». Устанавливая связи между парой таблиц, находящихся в отношении типа 1 : M, выделим в главной таблице ПОКУПАТЕЛЬ ключевое поле КОД_ПОК, по которому устанавливается связь. Далее при нажатой кнопке мыши перетащим его в соответствующее поле подчиненной таблицы ДОГОВОР.

Поскольку поле связи является уникальным ключом в главной таблице связи, а в подчиненной таблице связи не является ключевым, схема данных в Access выявляет отношение «один-ко-многим» между записями этих таблиц. Значение «один-ко-многим» (One-To-Many) отобразится в окне Изменение связей (Edit Relationships) в строке Тип отношения (Relationship Type) (рис. 3.49).

Как сделать связь один ко многим в access 2010?

ЗАМЕЧАНИЕ Если поле связи является уникальным ключом в обеих связываемых таблицах, схема данных в Access выявляет отношение «один-к-одному«. Если для связи таблиц вместо ключевого поля главной таблицы используется некоторый уникальный индекс, система также констатирует отношение таблиц как 1 : М или 1 : 1.

Определение связей по составному ключу

Определим связи между таблицами НАКЛАДНАЯ ОТГРУЗКА, которые связаны по составному ключу НОМ_НАКЛ + КОД_СК. Для этого в главной таблице НАКЛАДНАЯ выделим оба этих поля, нажав клавишу , и перетащим их в подчиненную таблицу ОТГРУЗКА.

В окне Изменение связей (Edit Relationships) (рис. 3.50) для каждого поля составного ключа главной таблицы НАКЛАДНАЯ, названной Таблица/запрос (Table/Query), выберем соответствующее поле подчиненной таблицы ОТГРУЗКА, названной Связанная таблица/запрос (Related Table/Query).

Как сделать связь один ко многим в access 2010?

Каскадное обновление и удаление связанных записей

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

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

при этих параметрах система автоматически выполнит необходимые изменения в подчиненных таблицах, обеспечив сохранение свойств целостности базы данных.

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

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

Установить в окне Изменение связей (Edit Relationships) (см. рис. 3.49) флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) можно только после задания параметра обеспечения целостности данных.

Как сделать связь один ко многим в access 2010?

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

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

Как в access

В разделе Программное обеспечение на вопрос Как в Access установить связи между таблицами, с поддержкой целостности данных заданный автором Алексей Ковалёв лучший ответ это оздание связей «один ко многим» или «один к одному»Чтобы создать связь вида «один ко многим» или «один к одному», воспользуйтесь приведенной ниже последовательностью действий:1. Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.2. В Access версий 2002 или 2003 выполните указанные ниже действия.a. Нажмите клавишу F11, чтобы перейти в окно базы данных.b. В меню Сервис выберите команду Связи.В Access 2007 нажмите кнопку Связи в группе Показать или скрыть вкладки Инструменты для баз данных.3. Если в базе данных отсутствуют связи, то автоматически появится диалоговое окно Добавление таблицы. Если окно Добавление таблицы не появилось, но при этом нужно добавить таблицы в список связываемых, выберите команду Добавить таблицу в меню Связи.4. Дважды щелкните названия таблиц, которые необходимо связать, после чего закройте диалоговое окно Добавление таблицы. Чтобы связать таблицу с самой собой, добавьте ее два раза.5. Перетащите связываемое поле из одной таблицы на связываемое поле в другой. Чтобы перетащить несколько полей, нажмите клавишу CTRL, щелкните каждое поле, а затем перетащите их.В большинстве случаев понадобится перетащить поле первичного ключа (выделенное полужирным текстом) из одной таблицы на аналогичное поле (часто с тем же самым названием) , называемое внешним ключом, другой таблицы.6. Появится окно Изменение связей. Убедитесь, что в каждом из столбцов отображаются названия нужных полей. Если нужно, их можно изменить.При необходимости задайте параметры связи. Если требуются сведения о конкретном элементе окна Изменение связей, нажмите кнопку со знаком вопроса, а затем щелкните соответствующий элемент. Эти параметры будут подробно описаны ниже.7. Чтобы установить связь, нажмите кнопку Создать.8. Повторите действия с 5 по 8 для каждой пары связываемых таблиц.При закрытии диалогового окна Изменение связей Microsoft Access спросит, нужно ли сохранить макет. Вне зависимости от ответа на этот вопрос создаваемые связи сохраняются в базе данных.Примечание. Создавать связи можно не только в таблицах, но и в запросах. При этом, однако, не обеспечивается целостность данных.Создание связей «многие ко многим»Чтобы создать связь вида «многие ко многим», выполните указанные ниже действия.1. Создайте две таблицы, которые необходимо связать отношением «многие ко многим».2. Создайте третью таблицу, называемую соединительной, и добавьте в нее поля с теми же определениями, что и поля первичных ключей в каждой из двух других таблиц. Поля первичных ключей соединительной таблицы служат внешними ключами. В соединительную таблицу, как и в любую другую, можно добавить и другие поля.3. Задайте первичный ключ этой таблицы таким образом, чтобы он включал в себя поля первичных ключей обеих основных таблиц. Например, первичный ключ соединительной таблицы «АвторыКниг» будет состоять из полей «ИД_заказа» и «ИД_продукта».Примечание. Чтобы создать первичный ключ, выполните указанные ниже действия.a. Откройте таблицу в режиме конструктора.b. Выберите одно или несколько полей, которые необходимо определить в качестве первичного ключа. Чтобы выбрать одно поле, щелкните знак выбора строки для нужного поля.Чтобы выбрать несколько полей, удерживайте нажатой клавишу CTRL и щелкните знак выбора строки для каждого из полей.c. В Access версий 2002 или 2003 нажмите кнопку Первичный ключ на панели инструментов.В Access 2007 нажмите кнопку Первичный ключ в группе Сервис вкладки Структура.

Читайте также:  Как сделать подстановку в access 2010?

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

Источник: http://word-office.ru/kak-sdelat-svyaz-odin-ko-mnogim-v-access-2010.html

Глава 3. Связи в access

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

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

Рис. 3.1.

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

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

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

!!! Поля связи могут иметь разные имена,
но они должны иметь один тип данных и
иметь однотипное содержимое.

Исключение из этого правила: поле типа
Счетчик можно связывать с числовым
полем, имеющим в свойстве Размер поля
значение «Длинное целое». Кроме того,
связываемые поля числового типа должны
иметь одинаковые значения свойства
Размер поля.

Например, для получения
информации о студентах и полученных
ими оценках следует определить связь
по полям Код Студента в таблицах Студенты
и Сессия. Главной в этой связи будет
таблица Студенты, а подчиненной —
таблица Сессия.

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

3.2. Типы связей между таблицами

1. Связь типа «один-ко-многим»

Описанная выше связь между
таблицами Студенты и Сессия — пример
связи типа «один-ко-многим».
Это наиболее распространенный тип
связи.

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

2. Связь типа «один-к-одному»

При связи типа «один-к-одному» каждой
записи в главной таблице может
соответствовать не более одной записи
в подчиненной таблице, и наоборот, каждая
запись в подчиненной таблице не может
иметь более одной соответствующей ей
записи в главной таблице (например, у
гражданина страны есть только один
паспорт, а не много).

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

Рис. 3.2. Связи между таблицами в БД Деканат

Источник: https://studfile.net/preview/1847903/page:9/

Связь между таблицами и целостность данных

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

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

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

Типы связей между таблицами. При установлении связи между таблицами возможны три типа связей.

  • 1. Отношение «один-ко-многим». Это наиболее часто используемый тип связи между таблицами. В отношении «один-ко-многим»каждой записи в таблице А могут соответствовать несколько записей в таблице В, но запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
  • 2. Отношение «многие-ко-многим». При этом типе связи одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В — несколько записей в таблице А.Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц А и В. Отношение «многие-ко-многим» по сути представляет собой два отношения «один-ко-многим» с третьей таблицей. Например, отношение «многие-ко-многим» между таблицами «Заказы» и «Товары» определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано».
  • 3. Отношение «один-к-одному». При отношении «один-к-одному» запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Отношения этого типа используются не очень часто, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.

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

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

Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

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

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

  • Целостность данных означает:
  • в связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы;
  • из главной таблицы нельзя удалить запись, у которой значение связанного поля совпадает хотя бы с одним значением того же поля в подчиненной таблице.
  • Установить целостность данных можно, если выполнены следующие условия.
  • 1. Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс. В большинстве случаев связывают первичный ключ (представленный в списке полей полужирным шрифтом) одной таблицы с соответствующим ему полем (часто имеющим то же имя) второй таблицы, которое называют полем внешнего ключа.
  • 2. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существуют два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (FieldSize).
  • 3. Обе таблицы принадлежат одной базе данных Microsoft Access. Если таблицы являются связанными, то они должны быть таблицами Microsoft Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.

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

Установив целостность данных, необходимо следовать следующим правилам:

  • 1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести значение Null в поле Код Клиента.
  • 2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику.
  • 3. Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к этому сотруднику.

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

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

Источник: https://studwood.ru/1763075/informatika/svyaz_tablitsami_tselostnost_dannyh

Поурочный план по теме «Связи. Схема данных. Создание связанных таблиц. MS Access»

  • КОЛЛЕДЖ МАБ
  • ПЛАН ЗАНЯТИЯ № 32
  • Группа Дата __________
  • Предмет: Информатика

Тема: Связи. Схема данных. Создание связанных таблиц. MS Access. Размещение и управление БД. (2ч).

  1. Цель занятия:
  2. Образовательная: сформировать теоретические знания о связях между таблицами (один к одному, один ко многим, многие ко многим), выработать специальные умения и навыки по связыванию таблиц, обеспечить во время урока повторение, закрепление полученных основных понятий.
  3. Развивающая: развитие логичности мышления, систематичности, последовательности и компактности изложения мыслей
  4. Воспитательная: связь теории с практикой, непрерывность процесса познания, воспитание сознательной учебной дисциплины, организованности, ответственности в учении.
  5. Тип занятия: Изучение и первичное запоминание новых знаний и способов деятельности
  6. Форма организации: словесные методы(рассказ, лекция, беседа), наглядные методы, практические методы, проблемно поисковые и репродуктивные методы

Программно-дидактическое оснащение: ПК. ОС Windows ХР. База данных MS Access. Раздаточный дидактический материал.

ХОД ЗАНЯТИЯ

1. Организация группы: Проверить готовность группы к занятиям. Проверить присутствующих.

2. Проверка домашнего задания Опрос по вопросам

1.Что такое БД?

Читайте также:  Как сделать пропуск в word?

2.Что такое отношение, поле, запись, ключ?

3.Рассказать о централизованных и распределенных БД.

4.Рассказать о типах данных в БД.

  • 3. Формирование новых понятий и способов действия:
  • 4. Формирование новых понятий и способов действия:
  • СУБД – система управления БД.
  • Связь — способ, которым связана информация о разных объектах
  • Типы связей между объектами

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

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

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

Связь типа “один-к-одному” (1:1)

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

Связь типа “один-ко-многим” (1:М)

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

Связь типа “много-ко-многим” (М:М)

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

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

Связь между этими тремя таблицами также осуществляется по общим полям.

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

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

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

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

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

Выбор второй опции при удалении одной из записей в ключевой таблице приведет к удалению тех записей в таблице со стороны «много», которые имеют такое же значение ключа. Например, если из таблицы Студенты удалить запись об одном из студентов, то записи о результатах сданных им экзаменов будут удалены автоматически.

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

  1. 5. Первичная проверка новых знаний и способов действия
  2. Вопросы
  3. 1.Что такое связь 1:1, 1:М, М:М
  4. 2.Как создать связь между таблицами
  5. 6. Закрепления новых знаний
  6. Выполнить Практическую работу №1, важные определения записать в тетрадь.
  7. ПРАКТИЧЕСКАЯ РАБОТА №1
  8. СУБД MSACCESS
  9. Цель работы
  10. Научить работать в СУБД: запускать БД, создавать и редактировать в ней таблицы, работать с записями и полями, устанавливать ключи к полям и создавать соединения между таблицами.
  11. Теоретическая часть
  12. База данных это совокупность нормализованных отношений.
  13. Поле этопростейший объект базы данных, предназначен для хранения значений одного параметра объекта.
  14. Запись это совокупность логических связанных полей, хранящих типичные свойства реального объекта.
  15. СУБД это комплекс программных средств, для создания БД, хранения и поиска в них необходимой информации.
  16. Типы данных

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

При работе с БД допустимы следующие типы данных.

1. Текстовый – одна строка текста (до 255 символов)

2. Поле МЕМО – текст в несколько строк (до 65 535 символов) с полосой прокрутки.

  1. Числовой – любые числа (целые, вещественные и т.д.)

  2. Дата и время

  3. Счетчики – поле, которое вводится автоматически с вводом каждой записи

  4. Денежный – поле, выраженное в денежных единицах

  5. Логический – содержит значение TRUE (истина) или FALSE (ложь)

  6. Поле объекта OLE – содержит рисунки, звуковые файлы, таблицы Excel, документы Word и т.д.

Лабораторный практикум.

Откройте программу, появиться окно, где выбрать Новую базу данных, в поле Имя файла вместо База данных1.accdb даем имя базе данных Справочник, появится окно c лентами.

  1. Лента СОЗДАНИЕ позволяет создавать:

  • Таблицу – отображает список существующих таблиц в БД
  • Форму – упрощает операции ввода, вывода, просмотра данных уже в созданных таблицах БД.
  • Запрос – это производная таблица, в которой мы собираем данные из других таблиц и производим над ними различные операции.
  • Отчет – это запрос, но оформленный так, что его можно было напечатать на бумаге и представить начальству.
  • и другие
  • Макросы – набор простых инструкций по управлению БД.
  • Модуль – это программа на Access Basic.
  • Цели работы:

Создание базы данных. Знакомство с основными объектами базы данных. Создание и заполнение таблицы в режиме конструктора. Знакомство с режимами представления таблицы, типами данных.

Алгоритм выполнения работы

  1. Запустите программу MS Access 2007/10

  2. Выберите пункт меню «Файл» — «Создать»

  3. Далее в правом поле программы откройте пункт– «Новая база данных»

  1. Введите в строке с именем файла название будущей базы данных. Например, справочник.mdb

Создание таблицы «Справочник»

  1. В окне базы данных выберите пункт «Создание таблицы в режиме конструктора»

  1. В открывшемся окне конструктора введите название полей будущей таблицы и выберите тип данных.

  1. Сделайте поле «Телефон» ключевым. Для этого щелкните по ячейке с названием «Телефон» правой кнопкой мыши и выберите пункт «Ключевое поле».

Слева от названия поля «Телефон» должна появиться метка с изображением ключа.

  1. Закройте окно конструктора. При сохранении таблицы введите название «справочник».

  2. Откройте сохраненную таблицу «справочник» двойным щелчком мыши из списка таблиц.

  1. Заполните таблицу данными своей группы.

  1. Затем закройте и сохраните таблицу.

  2. Аналогичным способом создайте вторую таблицу – «Личные_данные».

13. Введите в таблицу несколько записей. Номера телефонов должны повторяться из первой таблицы («Справочник»).

Связывание таблиц «Справочник» и «Личные_данные»

  1. Выберите пункт меню «Работа с базами данных» — «Схема данных…».

  2. Щелкните в отрывшемся окне правой кнопкой мыши и выберите пункт «Добавить таблицу». В окне «Добавление таблицы» по очереди добавьте таблицу «Справочник» и «Личные_данные».

  1. В результате должны появиться две таблицы:
  1. Захватите левой кнопкой мыши название поля «Телефон» в таблице «Справочник» и не отпуская, перетащите в поле «Телефон» таблицы «Личные_данные». Отпустите кнопку. Появится окно «Изменение связей».

  1. В окне «Изменение связей» поставьте флажок в пункте «Обеспечение целостности данных» и нажмите кнопку «ОК».

Должна появиться линия, соединяющая данные двух таблиц.

  1. Закройте окно «Схема данных». На запрос сохранения схемы ответьте «Да».

  • ПРАКТИЧЕСКАЯ РАБОТА №2
  • В MS Access можно установить постоянные связи между таблицами, которые  поддерживаются при создании форм, отчетов и запросов.
  • Таблица – отображает список существующих таблиц в БД
  • Форма – упрощает операции ввода, вывода, просмотра данных уже в созданных таблицах БД.
  • Запрос – это производная таблица, в которой мы собираем данные из других таблиц и производим над ними различные операции.
  • Отчет – это запрос, но оформленный так, что его можно было напечатать на бумаге и представить начальству.
  • Макросы – набор простых инструкций по управлению БД.

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

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

1.   Закрыть все открытые таблицы.

2.   Кнопка  на ленте Работа с базой данных Схема данных.

3. Добавить таблицы, которые хотим связать.

4. Выбрать поле в одной таблице и переместить его с помощью мыши на соответствующее поле во второй таблице.

  1. ТИПЫ СВЯЗЕЙ
  2. СВЯЗЬ «ОДИН  К  ОДНОМУ»
  3. Если одной записи первой таблицы соответствует только одна запись второй таблицы, то такая связь называется «один  к  одному»
  4. Задание 1
  5. 1.Откройте программу Access

2.Создайте базу данных «Предприятие»3.Создайте таблицу Сотрудники

  • Таблица «Сотрудники»          
  • Номер
  • ФИО
  • Должность
  • 1

Иванов В.С.

Инженер

2

Петров В.С.

Бухгалтер

3

Сидоров С.Т.

  1. Сторож
  2. Ключ установлен по полю – Номер.
  3. 4. Создайте таблицу Информация о сотрудниках
  4. Таблица «Информация о сотрудниках»
  5. Номер
  6. Год род
  7. Кол-во
  8. 1
  9. 1960
  10. 2
  11. 2
  12. 1958
  13. 3
  14. 3
  15. 1970
  16. 1
  17. Ключ установлен по полю – Номер.

5.Свяжите таблицы между собой (Лента Работа с базами данных — Схема данных).

  • СВЯЗЬ «ОДИН КО  МНОГИМ»
  • Если одной записи первой таблицы соответствует несколько записей второй таблицы, то такая связь называется «один  ко многим»
  • Задание 2
  • 1.Откройте программу Access

2.Создайте базу данных «Магазин»3.Создайте таблицу Товар

  1. Таблица «Товар»                          
  2. Наименование
  3. Единицы измерения
  4. Цена
  5. Сахар
  6. Кг
  7. 7
  8. Макароны
  9. Пачка
  10. 6
  11. Куры
  12. Кг
  13. 20
  14. Первичный ключ установлен по полю Наименование в таблице Товар.
  15. 4.Создайте таблицу Отпуск товара
  16. Таблица «Отпуск товаров»
  17. Товар
  18. Дата
  19. Кол-во
  20. Сахар

10.12.06

100

Сахар

Источник: https://infourok.ru/material.html?mid=7364

Ссылка на основную публикацию
Adblock
detector