Правила генерации таблиц по ER-диаграмме
Связь ОДИН-К-ОДНОМУ:
Правило 1: Если класс принадлежности обеих сущностей является обязательным, то требуется только одна таблица. Первичным ключом этой таблицы может быть ключ любой из двух сущностей.
Пусть в нашем примере между сущностями АВТОР и КНИГА выявлена такая связь:
Тогда в базе данных будет только одна таблица, отображающая свойства этих сущностей:
План издательства
Номер | Название | Кол-во стр. | Тираж | Дата | Фамилия | Адрес | Телефон | №счета |
«Городок» | 15.03.02 | Орлов А.С. | Москва | 345-67-89 | ||||
«Ранним утром» | 10.09.03 | Станов О.Т. | Курск | 34-23-78 | ||||
… | … | … | … | … | … | … | … | … |
Правило 2: Если класс принадлежности одной сущности является обязательным, а другой – необязательным, то необходимо построение двух таблиц. Под каждую сущность необходимо выделить по таблице. При этом первичные ключи каждой из сущностей должны быть ключами соответствующих таблиц. Кроме того, ключ сущности, для которой класс принадлежности является необязательным, добавляется в качестве атрибута в таблицу, созданную для сущности с обязательным классом принадлежности.
Пусть в нашем примере между сущностями АВТОР и КНИГА выявлена такая связь:
В этом случае в базу данных будет включено две таблицы - по одной для каждой сущности. Поскольку класс принадлежности сущности АВТОР является необязательным, в таблицу КНИГА добавляется еще один атрибут – Автор, значениями которого будут значения ключевого атрибута таблицы АВТОР. Такой атрибут, предназначенный для фиксации связей между экземплярами двух сущностей, называется вторичным ключом.
Автор
Номер автора | Фамилия И.О. | Адрес | Телефон | №счета |
Орлов А.С. | Москва, Лесная 34-1-75 | 263-67-89 | ||
Станов О.Т. | Курск, Новая 23-56 | 23-45-12 | ||
Рыбаков И.И. | Казань, Рыбная 2-34 | 34-54-12 | ||
Туманов П.Р. | Москва, Стасовой 6-2-56 | 943-45-89 | ||
… | ... | … | … | … |
Книга
Номер книги | Название | Кол-во страниц | Тираж | Дата выхода | Автор |
«Городок» | 15.03.2002 | ||||
«Ранним утром» | 10.09.2003 | ||||
«Рыжий» | 25.05.2002 | ||||
… | … | … | … | … | … |
Правило 3: Если класс принадлежности ни одной из сущностей не является обязательным, то необходимо использовать три таблицы: по одной для каждой сущности, ключи которых служат в качестве первичных ключей соответствующих таблиц, и одну таблицу для связи. Таблица, создаваемая для связи, должна иметь по одному ключу от каждой сущности.
Автор
Номер автора | Фамилия И.О. | Адрес | Телефон | №счета |
Орлов А.С. | Москва, Лесная 34-1-75 | 263-67-89 | ||
Станов О.Т. | Курск, Новая 23-56 | 23-45-12 | ||
Рыбаков И.И. | Казань, Рыбная 2-34 | 34-54-12 | ||
… | … | … | … | … |
Книга
Номер книги | Название | Кол-во страниц | Тираж | Дата выхода |
«Городок» | 15.03.2002 | |||
«Ранним утром» | 10.09.2003 | |||
«Рыжий» | 25.05.2002 | |||
… | … | … | … | … |
План издательства
Номер книги | Номер автора | Верстка |
да | ||
нет | ||
нет |
Связь ОДИН-КО-МНОГИМ:
Замечание: в этом случае определяющим фактором является класс принадлежности n-связной сущности; класс принадлежности 1-связной сущности на конечный результат не влияет.
Правило 1: Если класс принадлежности n-связной сущности является обязательным, то достаточно использовать две таблицы (по одной для каждой сущности); ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы. Кроме того, ключ 1-связной сущности должен быть добавлен как атрибут в таблицу, представляющую n-связную сущность.
Пусть в нашем примере между сущностями АВТОР и КНИГА выявлена такая связь:
либо такая:
Поскольку определяющим фактором является класс принадлежности n-связной сущности, а класс принадлежности 1-связной сущности на конечный результат не влияет, то в обоих случаях количество таблиц и связи между ними будут одинаковыми:
Автор
Номер автора | Фамилия И.О. | Адрес | Телефон | №счета |
Орлов А.С. | Москва, Лесная 34-1-75 | 263-67-89 | ||
Станов О.Т. | Курск, Новая 23-56 | 23-45-12 | ||
Рыбаков И.И. | Казань, Рыбная 2-34 | 34-54-12 | ||
Туманов П.Р. | Москва, Стасовой 6-2-56 | 943-45-89 | ||
… | ... | … | … | … |
Книга
Номер книги | Название | Кол-во страниц | Тираж | Дата выхода | Автор |
«Городок» | 15.03.2002 | ||||
«Ранним утром» | 10.09.2003 | ||||
«Рыжий» | 25.05.2002 | ||||
… | … | … | … | … | … |
Правило 2: Если класс принадлежности n-связной сущности не является обязательным, то необходимо формирование трех таблиц – по одной для каждой сущности (ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы), а также таблицы для связи. Таблица, создаваемая для связи, должна иметь по одному ключу от каждой сущности.
Таким образом, для ситуаций
и
необходимо три таблицы: по одной для каждой сущности и таблица-связка:
Автор
Номер автора | Фамилия И.О. | Адрес | Телефон | №счета |
Орлов А.С. | Москва, Лесная 34-1-75 | 263-67-89 | ||
Станов О.Т. | Курск, Новая 23-56 | 23-45-12 | ||
Рыбаков И.И. | Казань, Рыбная 2-34 | 34-54-12 | ||
… | … | … | … | … |
Книга
Номер книги | Название | Кол-во страниц | Тираж | Дата выхода |
«Городок» | 15.03.2002 | |||
«Ранним утром» | 10.09.2003 | |||
«Рыжий» | 25.05.2002 | |||
… | … | … | … | … |
План издательства
Номер книги | Номер автора | Верстка |
да | ||
нет | ||
нет |
Связь МНОГИЕ-КО-МНОГИМ:
Правило 1: В этом случае вне зависимости от класса принадлежности каждой сущности потребуется три таблицы: по одной для каждой сущности (ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы), а также таблицы для связи. Таблица, создаваемая для связи, должна иметь по одному ключу от каждой сущности.
Автор
Номер автора | Фамилия И.О. | Адрес | Телефон | №счета |
Орлов А.С. | Москва, Лесная 34-1-75 | 263-67-89 | ||
Станов О.Т. | Курск, Новая 23-56 | 23-45-12 | ||
Рыбаков И.И. | Казань, Рыбная 2-34 | 34-54-12 | ||
… | … | … | … | … |
Книга
Номер книги | Название | Кол-во страниц | Тираж | Дата выхода |
«Городок» | 15.03.2002 | |||
«Ранним утром» | 10.09.2003 | |||
«Рыжий» | 25.05.2002 | |||
… | … | … | … | … |
План издательства
Номер книги | Номер автора | Верстка |
да | ||
нет | ||
нет |