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