Skip to main content

Что такое отношение базы данных?

Какие типы связей между таблицами существуют в БД Access (Июнь 2025)

Какие типы связей между таблицами существуют в БД Access (Июнь 2025)
Anonim

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

Как работает внешний ключ для установления отношений

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

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

Например, рассмотрите эти две таблицы, которые определяют, какой учитель учит, какой курс.

Здесь основным ключом таблицы курсов является Course_ID. Его внешним ключом является Teacher_ID:

Курсы
Course_IDНазвание курсаTeacher_ID
Course_001БиологияTeacher_001
Course_002математическийTeacher_001
Course_003английскийTeacher_003

Вы можете видеть, что внешний ключ в курсах соответствует первичному ключу Учителей:

Учителя
Teacher_IDИмя учителя
Teacher_001Кармен
Teacher_002вероника
Teacher_003Jorge

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

Типы отношений с базами данных

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

Один к одному: Этот тип отношений позволяет только одну запись по каждой стороне отношения.

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

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

Рассмотрим бизнес с базой данных, имеющей таблицы Customers и Orders.

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

Многие-ко-многим: Это сложная взаимосвязь, в которой многие записи в таблице могут ссылаться на многие записи в другой таблице. Например, нашему бизнесу, вероятно, нужны не только таблицы Customers и Orders, но, вероятно, также нужна таблица Products.

Опять же, отношения между таблицами Customers и Orders являются «один ко многим», но учитывают взаимосвязь между таблицей «Заказы и продукты». Заказ может содержать несколько продуктов, и продукт может быть связан с несколькими заказами: несколько клиентов могут отправить заказ, содержащий одни и те же продукты. Для такого рода отношений требуется минимум три таблицы.

Что такое отношения базы данных?

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

Учителя и курсы
Teacher_IDИмя учителяКурс
Teacher_001КарменБиология, математика
Teacher_002вероникаматематический
Teacher_003Jorgeанглийский

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

Или, возможно, мы решили просто добавить второй рекорд для Carmen, чтобы обеспечить 1NF:

Учителя и курсы
Teacher_IDИмя учителяКурс
Teacher_001КарменБиология
Teacher_001Карменматематический
Teacher_002вероникаматематический
Teacher_003Jorgeанглийский

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

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

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