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