Каждый столбец имеет один тип и одно значение на строку
Каждый столбец имеет один тип и одно значение на строку
Реляция имеет заголовок, определяющий названия и типы данных столбцов. Каждая строка должна иметь те же столбцы, что указаны в заголовке, а указанный столбец должен иметь одно значение во всех строках. Если вы ищете работу или недвижимость то посетите сайты объявлений в Донецке тут.
Мы видим, что антипаттерн нарушает это правило двумя способами в главе 6.
Во-первых, EAV-таблица моделирует сущность, которая может иметь поль-зовательский набор атрибутов для каждого экземпляра класса, поэтому сущность не будет связана с заголовком, определяющим ее атрибуты.
Во-вторых, EAV-столбец attr_value содержит все атрибуты сущности, та¬кие, как статус ошибок, учетная запись, с которой было произведено при¬своение значения ошибке и т.д. Данное значение, например 1234, в этом столбце может быть корректным для двух различных атрибутов, но иметь совершенно другой смысл.
Антипаттерн в главе 7 также нарушает это правило, так как данное значе¬ние (1234) ссылается на первичный ключ какой-либо из родительских та¬блиц. Нельзя сказать, что 1234 в одной строке означает то же самое, что 1234 в другой строке.
Дублирование строк запрещено
Как только вам становится известен факт, его повторная констатация не сделает его более истинным. Известно название бейсбольной команды, СУБД находит название соответствующего города. Это означает, что город зависит от названия команды.
Для предотвращения дублирования необходимо отличать одну строку от другой и обращаться к определенным строкам. Чтобы гарантировать это в SQL, мы задаем ограничение первичного ключа для столбца или набора столбцов, вне зависимости от того, что необходимо, чтобы однозначно определить строки.
Мы могли бы получить дублирование в столбцах, не имеющих ключей, — в Бостоне две бейсбольные команды, — однако строка в целом по-прежнему уникальна, поскольку названия команд различны.
Опубликовал vovan666
October 27 2013 17:24:07 ·
0 Комментариев ·
3814 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.