Каково определение мощности в 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 relationship
cardinality
может быть либо one-to-one
, one-to-many
или же many-to-many
,
Оба определения пытаются сказать, что количество элементов - это "количество строк". Разница в том, находится ли сравнение "в таблице" или "в определенном столбце".
Версия в учебнике вашей базы данных посвящена реляционной алгебре и структуре таблиц ("отношения" в этом жаргоне).
Запись в Википедии более практична. Он охватывает определение учебника, предполагая, что таблица имеет первичный ключ (количество элементов первичного ключа такое же, как у таблицы). Однако, это может быть применено, скажем, и к столбцу флага. Если флаг принимает только два значения (0
против 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, то у человека много пальцев, но каждый палец принадлежит только одному человеку.