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

Вопрос: Моя школьная книга Database Systems определяет кардинальность следующим образом: Мощность отношения - это число кортежей, которые оно содержит. Напротив, количество кортежей называется количеством отношений, и оно изменяется по мере добавления или удаления кортежей. Высокая кардинальность - много кортежей, низкая кардинальность - мало кортежей. В то время как статья Википедии о кардинальности (операторы SQL), определяет

Вопрос:

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

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

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

Под кардинальностью понимается уникальность значений данных, содержащихся в определенном столбце (атрибуте) таблицы базы данных. Чем меньше количество элементов, тем больше дублирующихся элементов в столбце. Существует 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) кортежей/строк.

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

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

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

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

Ответ №1

Оба определения пытаются сказать, что мощность – это “количество строк”. Разница заключается в том, является ли сравнение “в таблице” или “в конкретном столбце”.

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

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

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

Ответ №2

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

Заметим, что мощность с одной стороны отношения не равна мощности с другой стороны. Если таблицы – ЧЕЛОВЕК и ПАЛЬЦЫ, а отношение НЕПОЛАГАЕТ, тогда у человека много пальцев, но каждый палец принадлежит только одному человеку.

Ответ №3

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

  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)

Оцените статью
Добавить комментарий