Базы данных. Учебное пособие

       

Первичные ключи и индексы


В каждой таблице БД может существовать первичный ключ - поле или набор по­лей, однозначно идентифицирующий запись. Значение первичного ключа в таблице БД должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.

Первичные ключи облегчают установление связи между таблицами. В таблице «Покупатель» таким ключом является одноименное поле. Установив связь по пер­вичному ключу, мы можем выяснить, что, например, 10.02.1999 года со склада было отпу­щено 100 единиц товара «Сахар» покупателю «Геракл, ТОО», офис которого распо­ложен по адресу: 107005, Москва, 2-я Бауманская ул., 12 (телефон для связи 273-00-14).

Поскольку первичный ключ должен быть уникальным, для него могут использо­ваться не все поля таблицы. В приведенном примере название покупателя вряд ли может быть уникальным, поэтому поле «Покупатель» не может использоваться в ка­честве первичного ключа. Значительно более редким является совпадение телефонов у двух разных покупателей, поэтому поле «Телефон» в большей степени подходит на роль первичного ключа. Если в таблице нет полей, значения в которых уникальны, для создания первичного ключа в нее обычно вводят дополнительное числовое поле, зна­чениями которого СУБД может распоряжаться по своему усмотрению. Если, напри­мер, в таблицу «Покупатель» добавить поле «№№», то связанные таблицы будет выглядеть так:

Дата

 

Товар

 

Покупатель

 

Отпущено (ед.)

 



10.12.99

Сахар

1

100

10.12.99

Сахар

1

100

12.12.99

Сахар

2

2 000

12.12.99

Макароны

2

300

14.12.99

Сахар

1

200

15.12.99

Дрожжи

3

100

И таблица:

№№

Покупатель

Содержание раздела