Диаграмма реляционной схемы к ER

Я разработал реляционную модель для университетской базы данных, которая приведена ниже. теперь меня просят составить ER-диаграмму из этой базы данных. Я просто хочу знать, есть ли какой-либо инструмент, с помощью которого я могу генерировать диаграмму ER из реляционной схемы. если нет, каковы шаги для создания диаграммы ER из реляционной модели?

1 ответ

Я не знаю каких-либо инструментов, которые могут генерировать правильную диаграмму ER из реляционной модели. Одна трудность для таких инструментов состоит в том, что не все реляционные модели могут быть интерпретированы как модели ER. Хотя реляционная модель может выражать любой конечный набор фактов (поскольку она эквивалентна логике первого порядка), модель сущности-отношения более ограничена.

Чтобы преобразовать реляционную модель в диаграмму ER, я бы предложил следующие шаги:

  1. Хорошее понимание модели ER будет полезным. Изучите статью Чена The Entity-Relationship Model - Toward a Unified View of Data,

  2. Для каждого столбца определите, представляет ли он набор сущностей или набор значений. Ключами сущностей обычно являются первичные ключи в одной таблице и внешние ключи в других. Наборы значений обычно представляют метки и измерения и находятся в зависимых столбцах.

    • Например, в teacher, T_ID а также dept_name являются ключами сущности, в то время как name а также password представляют наборы значений.
  3. Определить отношения. Отношения представлены двумя или более ключами сущностей в одной и той же таблице, по крайней мере, один из которых является частью первичного ключа.

    • Например, в teacher, пара (T_ID, dept_name) представляет отношения между наборами сущностей, определенных T_ID а также dept_name, Мы можем назвать эти наборы сущностей teacher а также department, но не путайте их с таблицами с одинаковыми именами. Другой пример advisor (T_ID, S_ID),
  4. Определите атрибуты. Атрибуты представляют собой сопоставления наборов сущностей или отношений с наборами значений. Первичный ключ таблицы будет определять сущность или набор отношений (атомарный или составной PK), с которым связаны зависимые столбцы (наборы значений), образуя атрибуты.

    • Например, в teacher, T_ID -> name является атрибутом, и T_ID -> password Другой.
  5. Сделайте диаграмму. Представьте каждую сущность, заданную прямоугольником, а каждую взаимосвязь - ромбом. Соедините отношения со связанными наборами сущностей. Нарисуйте ключи и атрибуты в виде овалов, прикрепленных к определяющему объекту или набору отношений. Мы не рисуем ключи для отношений - они определяются ключами связанных наборов сущностей.

Это просто базовая отправная точка - процесс на самом деле более сложный, так как нам нужно искать слабые ключи, наборы слабых объектов, идентификацию отношений, наборы ассоциативных объектов, полное или частичное участие и кардинальность отношений.

Опять же, я настоятельно советую вам изучить статью Чена для всех деталей.

PS. Я считаю, что ваш первичный ключ для section (и соответствующие внешние ключи в teaches а также takes) это неверно. Я подозреваю, что первичный ключ должен быть только sec_id, но так как я не знаю точно, что на самом деле представляет ваша модель (помимо моей собственной интерпретации имен таблиц и столбцов), я не могу сказать наверняка.

Другие вопросы по тегам