2014-08-28 10 views
5

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

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

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

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

Они оба могут быть правы, но я не могу связать эти два определения в качестве соответствующих определений. Перефразировка будет подтверждена!

+1

Кардинальность - количество уникальных значений/количество записей. Я думаю, что книга упрощает проблему. Максимальная мощность равна 1. – Mihai

ответ

7

Они говорят одно и то же, и это связано с кортежами (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 

Как как StudentIDcardinality - high, потому что он уникален. В нем имеется пять (5) кортежей/строк.

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

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

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

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

4

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

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

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

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

0

Если у нас есть таблицы A и B, подумайте о мощности в качестве количества строк таблицы B, которые будут связаны с строкой из таблицы A. Если таблицы PERSON и VEHICLE, а отношение - RODE_ON, тогда мощность высока, потому что в прошлом большинство людей ездили на много разных транспортных средств, и большинство транспортных средств вели многих людей. Если отношение OWNS, то мощность мала - большинство людей владеют одним транспортным средством, некоторые из них не владеют, а транспортное средство обычно имеет одного или двух владельцев, а не больше.

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

 Смежные вопросы

  • Нет связанных вопросов^_^