В чем разница между Max Cardinality и Min Cardinality?

Мне трудно понять, в чем разница между мощностями Max и Min при попытке создать базу данных.


person Steffan Harris    schedule 24.02.2011    source источник


Ответы (6)


Помните, что кардинальность — это всегда отношение к другой вещи.

Максимальное количество элементов(Cardinality) Всегда 1 или несколько. Класс A имеет отношение к пакету B с кардинальностью, равной единице, что означает, что в пакете может быть не более одного экземпляра этого класса. Наоборот, пакет может иметь максимальное количество элементов N, что означает, что может быть N классов.

Минимальное количество элементов (необязательно) Просто означает обязательное. Это всегда 0 или 1. 0 будет означать 0 или более, 1 или более

Существует множество хороших статей, которые объясняют это, в том числе некоторые, которые объясняют, как даже свойства диаграммы. Еще одна вещь, которую вы можете найти, это Кардинальность / Необязательность (термины OMG), которая объясняет то же самое: Необязательность - это Минимум, Кардинальность - это Макс,


Из http://www.databasecentral.info/FAQ.htm

В: Я вижу, как максимальное количество элементов используется при создании связей между таблицами данных. Однако я не понимаю, как минимальная кардинальность применима к дизайну базы данных. Что мне не хватает?

A: Вы правы, замечая, что максимальная кардинальность является более важной характеристикой отношения, чем минимальная кардинальность. Все минимальное количество элементов говорит вам, что это минимально допустимое количество строк, которое должна иметь таблица, чтобы отношение было значимым. Например, в баскетбольной КОМАНДЕ должно быть не менее пяти ИГРОКОВ, иначе это не баскетбольная команда. Таким образом, минимальная мощность на стороне PLAYER равна пяти, а минимальная мощность на стороне TEAM равна единице.

Можно возразить, что человек не может быть игроком, если он не состоит в команде, и поэтому минимальная кардинальность КОМАНДЫ обязательна. Точно так же организация не может быть баскетбольной командой, если в ней не менее пяти игроков. Минимальная мощность PLAYERS также обязательна. Можно было бы возразить и в обратную сторону. Когда игрок покидает команду, перестает ли она быть командой до тех пор, пока не будет набрана замена? Он не может участвовать ни в каких играх, но перестает ли он быть командой? Это пример того, что каждую отдельную ситуацию нужно оценивать по-своему. Что есть истина в ЭТОМ конкретном случае? В следующий раз, когда возникнет подобная ситуация, решение может быть другим из-за других обстоятельств.

person Nix    schedule 24.02.2011

Согласитесь с другими ответами, здесь немного другой взгляд. Думайте с точки зрения необязательности и множественности. Возьмем пример: Person есть Address.

Факультативность спрашивает: должен ли каждый Person иметь Address? Если это так, отношение является безусловным, что означает, что минимальная мощность равна 1. Если нет, то минимальная мощность равна 0.

Множественность спрашивает: может ли любое заданное Person иметь более одного Address? Если нет, максимальная мощность равна 1. Если да, максимальная мощность равна >1. В большинстве случаев он не ограничен, обычно обозначается N или *.

Оба важны. Необязательные ассоциации упрощают код, поскольку нет необходимости проверять его существование перед разыменованием: например.

a=person.address()

вместо

if (person.address !=null) {
  a=person.address()
}

Адреса — хороший пример того, почему множественность важна. Слишком много бизнес-приложений предполагают, что у каждого человека есть только один адрес, и поэтому они не справляются, когда у людей есть, например. дома отдыха.

Можно дополнительно ограничить кардинальность, например. автомобильный двигатель имеет от 2 до 12 цилиндров. Однако эти ограничения часто не очень стабильны (теперь Bugatti предлагает 16-цилиндровый двигатель). Таким образом, важными вопросами являются необязательность и множественность.

чт.

person sfinnie    schedule 24.02.2011
comment
Аккуратные и простые, такие примеры легко превзойдут теории и длинные статьи в получении фундаментального понимания. - person Onewildgamer; 20.07.2016

Давайте работать с примером -

Students берет Class. Здесь и Students, и Class являются сущностями. В школе могут быть или не быть студенты, зачисленные на определенный семестр. Подумайте о школе, предлагающей курсы в летнем семестре, но ни один студент не заинтересован в них. Таким образом, мощность студента может быть (0,N). Но если Class продолжается, значит, в нем должен быть зарегистрирован хотя бы 1 студент. Таким образом, его мощность должна быть (1,N). Таким образом, вы должны проверить, является ли объект, участвующий в отношении, частичным или полным, что определяет его кардинальность в отношении.

Надеюсь, поможет.

person Mahesh    schedule 24.02.2011

Максимальное количество элементов:
1 к 1, 1 ко многим, многие ко многим, многие к 1

Минимальная кардинальность:
от необязательного к обязательному, от необязательного к необязательному, от обязательного к необязательному, от обязательного к обязательному

person MIS Graduate    schedule 13.07.2012

На ваш вопрос «какая польза от необязательности в дизайне базы данных?»: она становится очень полезной в следующих сценариях.

Когда вы создаете 2 таблицы с отношением 1-к-1, вы будете сбиты с толку, пытаясь решить, где (в какой таблице) иметь внешний ключ. Это очень легко решить, если у вас есть опция 1 для одной таблицы и 0 для другой таблицы. Внешний ключ должен присутствовать в первом. Есть много других применений для него.

Надеюсь, поможет.

person Tony Puthenveettil    schedule 31.10.2013

Максимальная кардинальность: один-один, один-много, много-много

Минимальная кардинальность: - ноль или один

Эта ссылка описывает мой ответ, почему это так, каково представление и что Это.

person akshat sinha    schedule 16.10.2015