2015-11-05 4 views
2

According to WikipediaОпределение Супер ключ

Сегодня суд Бронирование

enter image description here

  • Каждая строка в таблице представляет суд номер в теннисном клубе, который имеет один жесткий суд (1) и один суд на траве (суд 2)
  • Бронирование определяется его Судом и период, за который зарезервирован Суд
  • Кроме того, каждое бронирование имеет связанный с ним тип тарифа. Есть четыре различных типа ставок:
    • SAVER, для суда 1 заказы, сделанные членами
    • STANDARD, для суда 1 заказы, сделанные лицами, не являющимися членами
    • PREMIUM-A, для суда 2 заказов, сделанных членами
    • PREMIUM-B, для суда 2 заказы, сделанные лицами, не являющимися членами

superkeys в таблице являются:

  • S1 = {суд, Start Time}
  • S2 = {Суд, End Time}
  • S3 = {Rate Type, Start Time}
  • S4 = {Rate Type, End Time}
  • S5 = {Суд, Start Time, End Time}
  • S6 = {Rate Type, Start Time, End Time}
  • S7 = {Суд, Тип тарифа, Start Time}
  • S8 = {Суд, Тип тарифа , Время окончания}
  • ST = {суд, Тип тарифа, время начала, время окончания}, тривиальное суперключ

Обратите внимание, что даже если в таблице выше Start Time и End Time атрибуты не имеют повторяющиеся значения для каждого из них, мы по-прежнему должны признать, что в некоторые другие дни два разных заказа на суд 1 и суд 2 мог начаться одновременно или в одно и то же время. Это причина, по которой {Start Time} и {End Time} не могут считаться суперкнопками таблицы .

Как S1 = {Суд, время начала}, супер ключ?

Скажите в день 1, член книги суда 1 с 11:00 до 12:00, а на 2-й день - суд, не являющийся членом книги 1, с 11:00 до 12:00.

записи в таблице будет {1,11: 00,12: 00, SAVER} и {1,11: 00,12: 00, STANDARD}

Очевидно S1 = {Суд, Start Время}, не является суперкой. Или я ошибаюсь?

ответ

2

Этот пример является плохим выбором, потому что для понимания того, что должна придерживаться таблица, требуется неустановленный, хотя здравый смысл, предположения. Он ожидает, что вы увидите, что таблица только на один день - «Сегодня» - и выведите, что в любой день не будет дублирования заказов. То есть, не начальный период времени для суда не совпадает с другим для одного и того же суда. (В тексте упоминаются разные дни, когда они означают различные табличные значения, но это не имеет значения, к примеру, могут ли различные значения должны быть в разные дни.)

Это также плохой выбор для 3NF против НФБК в конкретный. Конечно, это зависит от определенных FD (функциональных зависимостей) и связанных с ними JD (зависимостей присоединения), относящихся к 3NF против BCNF. Но не перекрытие заказов является отдельным ограничением, не имеющим отношения к 3NF против BCNF.

Скажите в день 1, член книги суда 1 с 11:00 до 12:00, а на второй день - суды с односторонними книгами 1 с 11:00 до 12:00.

Когда мы говорим, что таблица значение «удовлетворяет» ограничение (например, FD) или «подлежит» ограничение или «есть» ограничение или что ограничение «держит в» таблице Значение означает, что значение делает ограничение true. Когда мы говорим об этой таблице , переменная (базовая таблица) означает, что она соответствует значению переменной в каждом состоянии базы данных. В этой таблице, описывающей текущую ситуацию с резервированием для «Сегодня», любая конкретная ситуация с бронированием будет около одного дня - сегодня. Таким образом, тип перекрытия, связанный с разными днями в вашей цитате, не имеет отношения к ограничениям. Точно так же каждое значение таблицы из разных времен в тот же день будет удовлетворять самим ограничениям независимо от того, как изменились заказы.

В этих условиях, для любого состояния таблицы четыре указанных наборов столбцов являются CKS (ключи-кандидатов):

  • S1 = {суд, Start Time}
  • S2 = {Суд , End Time}
  • S3 = {Rate Type, Start Time}
  • S4 = {Rate Type, End Time}

Поскольку заказы не перекрываются, значение подземелья для каждого из этих наборов столбцов уникально под этими столбцами. Так что они суперключи. Так как это верно для меньших подмножеств каждого из них, это CK. Поскольку это верно для других наборов колонок, нет других CK. Поскольку каждый суперкласс суперкласса является суперклеером, другие перечисленные наборы - это другие (не-CK) суперклюбы.

PS На этой странице представлено несколько разделов, посвященных теме теннис/бронирования и недоразумениям на этой странице: talk page. На странице есть другие плохие примеры. Например, он реструктурирует дизайн не-BCNF 3NF до дизайна BCNF, но не стандартным декомпозицией без потерь к проекциям оригинала (которые присоединяются к нему). (Он вводит новый столбец.) Например, он также говорит о сохранении зависимостей, но это имеет смысл только при разложении на проекции оригинала.