"Проектирование реляционных баз данных." - читать интересную книгу автора (Джен Л. Харрингтон)

006 John Jones 006 006 10/8/99 25.00
007 006 11/12/99 85.00
008 006 12/29/99 109.12
РИС. 4.6. Две таблицы со взаимоотношением "первичный ключ — внешний клК>4

Глава 4 • Нормализация
65
result .table
ID number first_name last_name order_numb order_date order_total
Jonn Doe 001 10/10/99 250.65
John Doe 002 2/21/00 125.89
Jane Smith 003 11/15/99 1597.99
004 John Smith 004 11/22/99 180.92
John Smith 005 12/15/99 565.00
006 John Jones 006 10/8/99 25.00
006 John Jones 007 11/12/99 85.00
006 John Jones 008 12/29/99 109.12
РИС. 4.7. Таблица соединения
Зквисоединение можно начинать с любой из таблиц-источников (результат должен быть одинаков независимо от направления соединения). При соединении каждая строка исходной таблицы сравнивается со строками второй таблицы. Для каждой строки первой таблицы-источника, где устанавливается соответствие данным второй таблицы-источника в столбце или столбцах, по которым производится соединение, в результирующую таблицу помещается новая строка.
Если в качестве первой таблицы-источника используется таблица customers, создание результирующей таблицы (рис. 4.7) концептуально может протекать следующим образом:
1. Поиск заказов для строк с идентификационным номером 001. Поскольку среди заказов нет подходящих строк, строка
в результирующую таблицу не помещается.
2. Поиск заказов для строк с идентификационным номером 002.
Среди заказов есть две подходящие строки. В результирующей таблице создаются две новые строки; при этом информация о клиенте размещается в каждой строке заказов.
3. Поиск заказов для строк с идентификационным номером 003.
Среди заказов есть одна подходящая строка. В результирующую таблицу помещается одна строка.
4. Поиск заказов для строк с идентификационным номером 004.
Среди заказов есть две подходящие строки. В результирующую таблицу помещаются две строки.
->. Поиск заказов для строк с идентификационным номером 005.
Среди заказов подходящих строк нет, поэтому в результирующую таблицу строки не помещаются.
• Поиск заказов для строк с идентификационным номером 006.
Среди заказов есть три подходящие строки. В результирующую таблицу помещаются три строки.
ООООООООООООРРООООРООООРРООООООРРООООООО ОООООООООООООООООРООРОООООООООРООООРООРО
C_оооооооооооооооо з-з-з-з-з-з-з-з-з-з-з-зз-з-л-з-
333 = 3333 = 3333333
С. <_ С_ С- (_
№ СО Ш Со Со
3 3 3 3 3
ф ф ф ф ф
с_с.с_с_с_с_<^с_с_с_с.с_с_с_с_с_с_ сооооооооососошсосососош зз-з-з-з-згз-з-з-зззззззз фзззззэззфффффффф
с. с. с. <_ с. с с
о о о о о о о
3 3 3 3 3 3 3
ф го ф ф а ф ф
(Л <л ел <л и <л ел
С-СЛСЯСЛСЯСООСЛС/ЗСЛСЛСОСЛСЛСЛСЛСЛ
оззэзззззззээзззэ
3 Н- W- V-*- Н- Н- Н- Н- Н- Р- Н- Н- Н- Н- Н- Н- Н-
со з-З'Э-з-з-з'З-з-з-З'З-з-з-з-з-з-