2014-11-06 2 views
0

У меня есть пример распределения Result ниже. Я знаю, как читать бинарные отношения, но эта тройная коробка, помеченная красным на изображении, меня смущает.Как читать тройственные отношения в ORM (моделирование роли объекта)?

Когда и в каком порядке мы читаем эти роли после слэшей внутри коробки: in, award?

Я полагаю, что мы можем прочитать эту диаграмму 3 способами:

  • Первая коробка Студент имеет результат класса для группы.
  • Второй ящик Grade givent для студента в блоке
  • Третье окно гранты Раздел для студенческой премии класса (? это один не имеет смысла ?)

Можно ли читать его больше способов?

enter image description here

ответ

1

Это на самом деле не является допустимым диаграмма ORM (как определено Halpin), потому что:

  1. все типы факт не имеют чтения (тип объекта имена предоставляются вместо этого),
  2. не показаны ограничения единственности (каждый тип факта должен иметь хотя бы одно ограничение единственности),
  3. ролевые предикаты показаны внутри полей ролей (а не практики ОРМ),
  4. Тернар не показан как объективированный, хотя он (и другие типы фактов) имеет имена сущностей.
  5. идентифицирующие роли должны быть обязательными, но это не показано.

Здесь Результат - это имя типа объекта. Этот тип объекта объективирует тип троичного факта, для которого не указаны имя и отсутствие чтения. Если вы хотите назвать тип факта, подходящим именем может быть «Градация» в отношении действия, в котором был назначен результат. Эта же проблема относится и к другим типам фактов; создатель этой диаграммы путается в отношении разницы между типом факта и объектом, который может объективировать этот тип факта. Например, тип факта «Идентификация ученика» является существительным, но тип факта (если он должен быть назван) следует называть «Идентификация ученика», называя действие не объектизацией. Аналогично для награды класса (класс кодирования), идентификатор единицы (Именование узла).

Однако, оставляя в стороне эти синтаксические различия, возможные предполагаемые показания для типа факта результата: «Достигнутый учеником класс для единицы», «Класс был присужден Студенту за единицу» и тому подобное.В CQL, объективация обозначаются словами: "каждых Результата где некоторый студент достиг некоторых Grade для некоторых Unit, что класса был присужден , что Student для этого Unit"

Предикатный текст внутри ролей типа факта результата не определен. Цель здесь - применить эти предикаты к взаимосвязи между объектом Result и объектом, который играет каждую соответствующую роль. Эти три бинарных типа фактов (называемые связующими фактами) не показаны, но подразумеваются объективацией. Я хотел бы предложить следующие показания для этих типов ссылки факта:

  1. Результата присуждается Student/Студент получил результат
  2. Результат имеет Grade/Grade применяется к результату
  3. Результата присуждаются за штуку/шт получила Результат

Обычно типов ссылки и связанные с показаниями не показаны, и неявное показания, обеспечиваемые инструментами «участвует в/имеет», например, «студент участвуют в Result», «Результат студента ". Вы можете понять, почему лучше использовать пользовательские показания.

Я рекомендую вам получить копию книги Терри Хэлпина «Информационное моделирование и реляционные базы данных» и учиться на этом, потому что ясно, что ваш инструктор имеет нестандартную теорию и практику.

Смежные вопросы