Управл_данными / 03-Реляционная
.pdf
Соответствие между строками таблиц устанавливается с помощью связей, которые схематично можно представить так:
Руководствуясь этими связями можно установить, что сообщение N1 отправил пользователь Кирилл:
11
Аналогично определяется, на какую тему было это сообщение:
В итоге мы установили, что: сообщение
“Думаю надо сделать так”
отправил Кирилл, и речь идёт о рыбалке
12
Внешний ключ
Приведенный выше пример показывает, как используются связи в реляционной базе данных.
Видно, что установить связь между таблицами помогают первичные ключи. Они располагаются с одной стороны связи.
Со второй стороны должно быть поле – указатель, которое ссылается на нужную строчку связанной таблицы.
Такое поле называется внешним ключом (сокращенно FK - foreign key).
13
Связи между таблицами
В реляционных базах данных в связи может участвовать только пара таблиц.
Одна таблица может быть связана с одной, двумя и более таблицами.
Связи осуществляются с помощью первичных и внешних ключей.
Так как с одной стороны связи всегда первичный ключ (а он уникален), то не возможно осуществить связь типа Многие-ко-Многим.
Т.е. нескольким строкам одной таблицы не может быть привязано несколько строк другой таблицы.
14
Связь между таблицами «Пользователи» и «Сообщения» - Один-ко-Многим
С другой стороны связь между таблицами «Сообщения» и «Пользователи»
-Многие-к-Одному
15
Виды связей
В реляционных базах данных, в отличие от сетевых, возможны только три вида связи:
1) |
«один к одному» |
(1:1) |
2) |
«один ко многим» |
(1:M) |
3) |
«многие ко многим» (M:1) |
|
16
Связь типа 1:1 возникает в тех случаях, когда с обеих сторон участвуют первичные ключи.
То есть роль внешнего ключа в одной из таблиц играет первичный ключ.
Связь типа 1:M образуется, если первичный ключ слева.
Связь типа M:1 образуется, если первичный ключ справа.
17
Однако, на практике, по смыслу конкретной задачи, очень часто возникает необходимость организовать связь типа Многие-ко- Многим (M:M).
Реляционная модель позволяет решить эту проблему с помощью особого приёма – введения вспомогательной таблицы.
18
Рассмотрим пример для сетевой модели
Каталог книг
Новинки |
|
Исторический |
|
Фантастика |
|
Научная |
|
роман |
|
|
литература |
||
|
|
|
|
|
||
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
k |
k |
k |
k |
Каким образом можно реализовать данную базу в реляционной модели?
19
Реляционная БД для того же примера
ДопТаблица
имеет составной PK
Категория : ДопТаблица |
ДопТаблица : Книга |
1 : M |
M : 1 |
20
