Форум программистов, компьютерный форум, киберфорум
Наши страницы
Meridian21
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Tutorial №1 - "Типы связей в реляционной Базе Данных"

Запись от Meridian21 размещена 18.05.2017 в 12:41
Обновил(-а) Meridian21 18.05.2017 в 12:45

В этой заметке речь пойдет об одном из базовых понятий теории реляционных БД - "Типы связей".
Если записи одной таблицы связаны с записями другой таблицы, то между таблицами установлена связь.
Связи в БД устанавливаются между двумя таблицами, тип связи, для каждой пары таблиц, выбирается на стадии проектирования. Неправильно выбранный тип связи, может привести к необходимости перерабатывать схему, внося коррективы, что крайне негативно, особенно на более поздних этапах разработки. Также неправильный тип связи, может некорректно отображать, описываемый в БД, реальный процесс. Может возникнуть ситуация, когда у человека может быть только один номер телефона или несколько паспортов одновременно. И всему виной - неверно выбранный тип связи.
Всего существует 3 типа связей:
1 - "один-к-одному";
2 - "один-к-многим";
3 - "многие-к-многим".
---
Тип связи "Один-к-одному".
Такой вид связи используется тогда, когда одна запись в таблице А, связана только с одной записью таблицы Б, а одна запись таблицы Б связана только с одной записью таблицы А. В таком типе связи, одна таблица первичная, другая вторичная. Связь реализуется так: берется первичный ключ (primary key) из первичной таблицы и вставляется во вторичную таблицу, где он становится внешним ключом (foreign key).
Это не самый частый вид связи. Пример - сотрудник - пропуск. У каждого сотрудника есть персональный пропуск, а пропуск может принадлежать только одному сотруднику.
---
Тип связи "Один-к-многим".
Такой вид связи используется тогда, когда одна запись в таблице А, может быть связана с несколькими записями в таблице Б, но одна запись в таблице Б, может быть связана только с одной записью в таблице А. Связь реализуется аналогично связи "один-к-одному" (берется PK из первичной таблицы и вставляется в вторичную, где он уже FK). Отличие в том, что в случае со связью "один-к-одному", первичный ключ помещенный во вторичную таблицу, одновременно, является и первичным ключом для вторичной таблицы. В данном же случае, у каждой таблице есть твой PK. Пример: посетители библиотеки и книги. Посетитель может взять 1,2,3,n книг, но любую книгу, может взять только один посетитель.
---
Тип связи "Многие-к-многим".
Такой вид связи используется тогда, когда одна запись в таблице А, может быть связана с несколькими записями из таблицы Б и одна запись в таблице Б, может быть связана с несколькими записями в таблице А. Такая связь реализуется при помощи 3-й таблицы (связывающая таблица). Связывающая таблица позволит составить любые возможные комбинации связанных записей. В связывающую таблицу вносятся первичные ключи обоих таблиц. И по этим ключам можно установить связь записей в таблицах. Пример: Книги и Авторы. У книги может быть несколько авторов, а у каждого автора может быть несколько книг.
---
Рекомендую к ознакомлению книгу: Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design.
Размещено в БД и СУБД
Просмотров 607 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.