В ситуации, когда в таблице нет поля с уникальными значениями данных, первичный ключ может быть определен по нескольким полям. Например, в таблице Поставки товаров, в которой ведется учет партий товаров, поступивших в магазин, первичным ключом является совокупность полей Артикул и Дата поставки (табл. 1.2):
Таблица 1.2
Поставки товаров
|
Название товара |
Артикул |
Количество |
Дата поставки |
Шифр поставщика |
|
Костюм |
500 |
100 |
10.12.05 |
345 |
|
Сапоги |
200 |
75 |
10.12.05 |
123 |
|
Туфли |
100 |
120 |
11.12.05 |
123 |
|
Костюм |
500 |
100 |
11.12.05 |
345 |
|
Костюм |
300 |
50 |
12.12.05 |
345 |
|
Костюм |
400 |
50 |
12.12.05 |
215 |
|
Туфли |
100 |
100 |
12.12.05 |
215 |
Первичный ключ, определенный по нескольким полям, называется составным. В общем случае в таблице может быть несколько вероятных ключей, из которых один выбирается как первичный.
С помощью одной таблицы обычно не удается описать сложные структуры данных из предметной области. Поэтому реляционная модель данных предполагает создание нескольких таблиц, которые при необходимости связываются между собой по ключевым полям. Такая стратегия очень удобна, так как позволяет хранить постоянно и редко используемые данные в разных таблицах.
Предположим, в таблице Дополнительные сведения хранится подробная информация об организациях, поставляющих товары (табл. 1.3):
предыдущаяследующая