Каково определение мощности в SQL

Моя школьная книга Database Systems определяет кардинальность следующим образом:

Мощность отношения - это число кортежей, которые оно содержит. Количество кортежей, напротив, называется количеством отношений, и оно изменяется по мере добавления или удаления кортежей. Высокая мощность - много кортежей, низкая мощность - мало кортежей.

В то время как статья Википедии о кардинальности (операторы SQL) определяет ее следующим образом:

Под кардинальностью понимается уникальность значений данных, содержащихся в определенном столбце (атрибуте) таблицы базы данных. Чем меньше количество элементов, тем больше дублирующихся элементов в столбце. Существует 3 типа кардинальности: высокая мощность, нормальная мощность и низкая мощность.

Они оба могут быть правы, но я не могу связать два определения как связанные определения. Перефразировка будет оценена!

3 ответа

Решение

Они говорят то же самое, и это связано с кортежами (relational algebra) или строки (термин непрофессионала).

Когда в нем указано старшее число элементов, возможны значения конкретного атрибута (или поля), которые являются уникальными и, следовательно, число строк или кортежей больше:

Пример:

 StudentID   Lastname Firstname  Gender
 101         Smith    John       M
 102         Jones    James      M
 103         Mayo     Ann        F
 104         Jones    George     M
 105         Smith    Suse       F

Насколько StudentID cardinality является high потому что это уникально. В этом у этого есть пять (5) кортежей / рядов.

С другой стороны, Фамилия имеет нормальное количество элементов, в частности, есть только три (3) уникальных кортежа / строки. Таким образом, он имеет normal cardinality,

И, наконец, у Пола есть только два возможных уникальных кортежа. Low Cardinality,

Вы наверное путаете Cardinality здесь с Degree отношения, которое имеет отношение к числу attributes/fields в отношении (или таблицы).

С другой стороны, учебник для Database говоря о Cardinality обычно имеет отношение к сущности по отношению к другой сущности, то есть к числу возможных случаев возникновения отношений для сущности, участвующей в данном типе отношений. Таким образом, например, для binary relationshipcardinality может быть либо one-to-one, one-to-many или же many-to-many,

Оба определения пытаются сказать, что количество элементов - это "количество строк". Разница в том, находится ли сравнение "в таблице" или "в определенном столбце".

Версия в учебнике вашей базы данных посвящена реляционной алгебре и структуре таблиц ("отношения" в этом жаргоне).

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

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

Есть две концепции

  1. Индекс мощности
  2. мощность

Я полагаю, что это относится к количеству элементов индекса, которое ОЧЕНЬ отличается. https://www.ibm.com/developerworks/data/library/techarticle/dm-1309cardinal/

  • Индекс мощности считается количеством уникальных значений в индексе.
  • Термин используется для обсуждения создания индексов, сканирования таблиц, доступа к индексам и доступа к таблицам, как это влияет на вставки, обновления, удаления, пространство хранения.

Вот еще один пример: https://en.wikipedia.org/wiki/Cardinality_(SQL_statements)

  • В SQL (язык структурированных запросов) термин "мощность" относится к уникальности значений данных, содержащихся в определенном столбце (атрибуте) таблицы базы данных.
  • Чем меньше количество элементов, тем больше дублирующихся элементов в столбце. Таким образом, столбец с минимально возможным количеством элементов будет иметь одинаковое значение для каждой строки. Базы данных SQL используют количество элементов, чтобы помочь определить оптимальный план запроса для данного запроса.

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

Документация IBM (если вы ищете слово уникальное, оно не упоминается) https://www.ibm.com/support/knowledgecenter/en/SSEP7J_10.2.2/com.ibm.swg.ba.cognos.ug_cog_rlp.10.2.2.doc/c_cog_rlp_rel_cardinality.html Когда вы интерпретируете количество элементов, вы должны учитывать нотацию, которая отображается на обоих концах отношения. Возможные метки конца показаны в следующем списке:

  • 0..1 (ноль или одно совпадение)
  • 1..1 (ровно одно совпадение)
  • 0..n (ноль или более совпадений)
  • 1..n (один или несколько совпадений)

В математике мощность множества является мерой "количества элементов множества". (без упоминания уникального btw) https://en.wikipedia.org/wiki/Cardinality

В проектировании базы данных кардинальность или фундаментальный принцип одного аспекта данных по отношению к другому является критической характеристикой. Отношения одного к другому должны быть точными и точными между собой, чтобы объяснить, как каждый аспект связывает воедино. В реляционной модели таблицы могут быть связаны как "один-ко-многим", "многие-ко-многим", "один-к-ну-или-одному" и т. Д. Это называется кардинальностью данная таблица по отношению к другой. https://en.wikipedia.org/wiki/Cardinality_(data_modeling)

Если у нас есть таблицы A и B, представьте количество элементов таблицы B, которое будет связано со строкой из таблицы A. Если таблицы PERSON и VEHICLE, а отношение равно RODE_ON, то количество элементов велико, поскольку большинство в прошлом люди ездили на множестве различных транспортных средств, и большинство транспортных средств управляло многими людьми. Если отношение является СОБСТВЕННЫМ, тогда количество элементов является низким - большинство людей владеют одним транспортным средством, а некоторые - ни одним, а транспортное средство обычно имеет одного или двух владельцев, не более.

Обратите внимание, что количество элементов с одной стороны отношения не равно количеству элементов с другой стороны. Если в таблицах PERSON и FINGER и отношение BELONG TO, то у человека много пальцев, но каждый палец принадлежит только одному человеку.

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