В чем разница между Макс кардинальности и Мин кардинальности? - PullRequest
6 голосов
/ 24 февраля 2011

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

Ответы [ 6 ]

7 голосов
/ 24 февраля 2011

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

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

Минимальная мощность (необязательно) Просто означает «требуется». Его всегда 0 или 1. 0 будет означать 0 или более, 1 или более

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


С http://www.databasecentral.info/FAQ.htm

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

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

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

3 голосов
/ 24 февраля 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-цилиндровый двигатель). Поэтому важными вопросами являются необязательность и множественность.

НТН.

0 голосов
/ 16 октября 2015

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

Минимальная мощность: - ноль или единица

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

0 голосов
/ 01 ноября 2013

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

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

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

0 голосов
/ 13 июля 2012

Максимальная мощность:
1 к 1, 1 ко многим, многие ко многим, многие к 1

Минимальная мощность:
Опционально дляОбязательный, Необязательный к необязательному, Обязательный к необязательному, Обязательный к обязательному

0 голосов
/ 24 февраля 2011

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

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

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

...