0

У меня есть таблица для отслеживания операций в больнице под названием Surgery_Record, как показано ниже.Нормализация таблицы базы данных здравоохранения, которая отслеживает сделанные операции

surgery_Record_ID patient_ID surgery_ID  theatre_ID  Surgery_Date 
     1    1    20    0   2000-05-10 
     2    85   20    0   2000-01-15 
     3    10   20    0   2000-01-29 
     4    13   16    0   2000-11-19 
     5    15   1    0   2000-05-28 

Мои предположения таковы:

  1. Нет Пересмотр пациентов
  2. Каждый пациент имеет только одну операцию сделали
  3. Особым театр операция используется только один раз в день

Я выяснил следующие функциональные зависимости:

  1. Patient_ID, Theatre_ID ---> Surgery_Date
  2. Surgery_Record_ID ---> Patient_ID
  3. Patient_ID ---> Surgery_ID, Surgery_Record_ID, Theatre_ID
  4. Patient_ID, Surgery_ID ---> Theatre_ID
  5. Surgery_Record_ID , Patient_ID, Surgery_ID, Theatre_ID ---> Surgery_Date

Из приведенных выше зависимостей, я обнаружил, что ключи-кандидаты {Patient_ID, Theatre_ID} {Patient_ID, Surgery_ID} и {Surgery_Record_ID, Patient_ID, Surgery_ID, Theatre_ID}

Так ли моя таблица нарушает вторую нормальную форму? Пожалуйста, помогите проверить, соответствуют ли мои FD, потому что я очень новичок в этом. Большое спасибо заранее

+0

Ни один из этих трех предположений, вероятно, чтобы быть правдой в реальном мире. Это имеет значение? –

+0

hmm Я думал, что эти предположения являются основой для моего FD, потому что без них мои FDs могут не иметь смысла, поэтому я думал о их добавлении. – Gayu

+1

Эти предположения действительно могут быть основой для ваших ФД, но в реальном мире пациенты снова обращаются; они иногда имеют более чем одну операцию за раз, иногда используя более одного хирургического театра; и хирургические театры доступны так быстро, как можно стерилизовать. Если это академическое упражнение, это, вероятно, не имеет значения. Если это для реальной больницы, это имеет значение больше. –

ответ

1

Ваш FDs жирный шрифт.


  • Patient_ID, Theatre_ID ---> Surgery_Date

на основе выборочных данных, я должен сказать, что это один неправильно. Следующие FD-адреса кажутся правильными для этих трех атрибутов. Они получены в основном из ваших предположений, о которых я отметил в комментариях, вероятно, не имеют места в реальном мире.

  • Patient_ID -> {Theatre_ID, Surgery_Date}
  • Surgery_Date -> Theatre_ID

  • Surgery_Record_ID ---> Patient_ID

Каждая строка получает различное значение для Surgery_Record_ID, поэтому Surge ry_Record_ID определяет каждый атрибут.

  • surgery_Record_ID -> {patient_ID, surgery_ID, theatre_ID, Surgery_Date}

  • Patient_ID ---> Surgery_ID, Surgery_Record_ID, Theatre_ID

Так как пациенты могут «Повторите попытку, и поскольку у пациентов может быть только одна операция, Patient_ID будет глобально уникальной, просто li ke Surgery_Record_ID. Patient_ID определит каждый атрибут.

  • patient_ID -> {surgery_Record_ID, surgery_ID, theatre_ID, Surgery_Date}

  • Patient_ID, Surgery_ID ---> Theatre_ID

Я покрыл Patient_ID выше. Surgery_ID ничего не определяет.


  • Surgery_Record_ID, Patient_ID, Surgery_ID, Theatre_ID ---> Surgery_Date

  • Surgery_Record_ID -> {Patient_ID, Surgery_Date}

  • Patient_ID -> {Surgery_Record_ID, Surgery_Date}
  • Surgery_Date -> {Surgery_Record_ID, Patient_ID}

Ваши предположения требуют, чтобы Surgery_Date была уникальной. Итак, Surgery_Date определяет каждый атрибут.

  • Surgery_Date -> {patient_ID, surgery_ID, theatre_ID, surgery_Record_ID}
+0

Большое спасибо за потраченное время и усилия, чтобы проанализировать мои FD. – Gayu