Связи в реляционной базе данных


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

· «один к одному»

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

Персональные сведения

Код_пс № паспорта Фамилия Имя
AB 2358955 Сидоров Сергей
DB 2456886 Петров Петр
MA 8654212 Иванов Иван

Служебные сведения

Код_сс Место работы Должность Разряд
Бухгалтерия Бухгалтер
Цех 2 Токарь
Лабаратория 3 Начальник отдела  

Между таблицами «Персональные сведения» и «Служебные сведения» существует отношение «один к одному», поскольку для одного человека, работающего в определенной фирме, может существовать только одна запись о его служебном положении. Табельные номера «Код_пс» и «Код_сс» были добавлены для однозначной идентификации записей. Эти же поля и приняты в качестве первичных ключей. Связь между этими таблицами поддерживается при помощи совпадающих значений полей «Код_пс» и «Код_сс». Легко убедиться, что между двумя ключевыми полями может существовать только связь «один к одному», поскольку любые дублирования одного и того же табельного номера исключены с обеих сторон.

· «один ко многим» и «много к одному»

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

Клиенты

Код_клиента № паспорта Фамилия Имя
AB 2358955 Сидоров Сергей
DB 2456886 Петров Петр
MA 8654212 Иванов Иван

Заказы

Код_заказа Код_клиента Дата заказа Наименование
05.03.06 Пылесос Вихрь
15.04.06 Холодильник Минск
21.04.06 Телевизор Горизонт
02.10.06 Стол компьютерный
12.12.06 Кресло «Президент»

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

· «много ко многим»

Отношение «много ко многим» возникает между двумя таблицами в тех случаях, когда:

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

- одной записи из второй таблицы может соответствовать одна либо много записей из первой таблицы.

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

Клиенты

Код_клиента № паспорта Фамилия Имя
AB 2358955 Сидоров Сергей
DB 2456886 Петров Петр
MA 8654212 Иванов Иван

Товары

Код_товара Наименование Цена
Пылесос Вихрь
Холодильник Минск
Телевизор Горизонт

Заказы

Код_заказа Код_клиента Код_товара Дата заказа
05.03.2006
15.04.2006
21.04.2006
02.10.2006
12.12.2006
30.12.2006
31.12.2006

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

Таблица 1 Таблица 2

Работает Станок
Иванов А. В. станок 1
Иванов А.В. станок 2
Петров Н.Г. станок 1
Петров Н.Г. станок З
Сидоров В. К. станок 2

 

Обслуживает Станок
Голубев Б. С. станок 1
Голубев Б. С. станок 2
Зыков А.Ф. станок 2
Зыков А.Ф. станок З

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

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

Заказы

Фамилия Имя Наименование Цена Дата заказа
Сидоров Сергей Пылесос Вихрь 05.03.2000
Петров Петр Холодильник Минск 15.04.2000
Петров Петр Телевизор Горизонт 21.04.2000
Сидоров Сергей Электрочайник BOSCH 02.10.2000
Иванов Иван Пылесос Вихрь 12.12.2000
Иванов Иван Телевизор Горизонт ТЦ 30.12.2000
Сидоров Сергей Холодильник Минск 31.12.2000


Дата добавления: 2016-10-26; просмотров: 3903;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.