В результате проектирования БД должна быть разработана информационно-логическая модель (ИЛМ) данных. Компонентами ИЛМ являются информационные объекты и структурные связи между ними.
ИО – это информационное отображение некоторого реального объекта, явления, процесса, информация о котором должна быть представлена в БД, в виде совокупности логически связанных реквизитов (информационных элементов, атрибутов). Например, информационный объект Студент имеет реквизиты: Номер зачетки*, Фамилия, Имя, Дата рождения и т.д. Информационный объект имеет множество реализаций - экземпляров, каждый из которых представлен совокупностью конкретных значений реквизитов и определяется значением первичного ключа. Информационный объект может иметь один первичный и несколько внешних ключей, которые используются для связи с другими ИО.
Все информационные объекты из некоторой предметной области связаны между собой. Различают связи трёх типов:
· один к одному (1:1);
· один ко многим (1 :∞);
· многие ко многим (∞:∞),
Связь 1:1 предполагает, что одному экземпляру первого ИО соответствует только один экземпляр второго ИО и наоборот. Такие ИО можно объединить в один, содержащий атрибуты двух объектов. Пример: связь между информационными объектами Студент и Сессия, когда каждый студент имеет определённый набор экзаменационных оценок в сессию.
Связь 1 : ∞ означает, что одному экземпляру первого ИО соответствует 0, 1 или более экземпляров второго ИО, но каждому экземпляру второго ИО обязательно соответствует один экземпляр первого ИО. Примером связи 1: ∞ служит связь между информационными объектами Факультет и Студент, когда название факультета может повторяться многократно для различных студентов, а для каждого студента обязательно должен быть факультет, на котором он учится.
Связь ∞:∞ предполагает, что одному экземпляру первого ИО соответствует 0, 1 или более экземпляров второго ИО и наоборот. Пример такой связи - связь между информационными объектами Студент и Преподаватель, когда один студент обучается у многих преподавателей, а один преподаватель обучает многих студентов.
Построенная ИЛМ должна быть отображена в логическую структуру БД, которая является составной частью конкретной СУБД. ИО должны быть представлены в виде реляционных таблиц. Связи между реляционными таблицами устанавливаются при помощи совпадающих значений полей.
При этом каждая таблица за исключением тех, которые не имеют подчиненных таблиц, должна иметь уникальный идентификатор – ключ. Если среди реальных реквизитов такого реквизита нет, то можно добавить в данные дополнительный идентификатор (код). Часто такой числовой идентификатор добавляют и для замены длинных текстовых ключевых полей.
Для связей между ИО 1:1 и 1: ∞ каждый ИО представляется соответствующей таблицей с теми же видами связей. Например, можно связать таблицу Группа, содержащую поля группа, староста, факультет, с таблицей Студент по полю группа. При этом вид связи будет 1:со, одной записи в таблице Группа будет соответствовать много записей в таблице Студент.
Связь ¥:¥ не реализуется в реляционных БД непосредственно для двух таблиц. Для организации такой связи используется промежуточная третья таблица. Все реквизиты двух ИО (и возможно некоторые дополнительные) представляются тремя таблицами с двумя связями вида 1: ∞
Для каждой связи определяется главная таблица (на стороне отношения 1) и подчиненная (на стороне отношения ∞). В главной таблице связующее поле является первичным ключом (уникальным), а в подчиненной внешним (повторяющимся). Для каждого значения внешнего ключа обязательно должно быть такое же значение первичного ключа.
Пример: Создать БД "Распределение оборудования по кафедрам", содержащую следующие данные: наименование оборудования, количество единиц оборудования, стоимость единицы оборудования, наименование кафедры, факультет.
Промежуточная таблица Распределение оборудования связывает таблицы Оборудование и Кафедры, т.к. связь между соответствующими ИО ¥:¥. Введены дополнительные числовые ключевые поля код оборудования и код кафедры.