Top.Mail.Ru
Ответы

Нормализация отношений в реляционной базе данных

- провести нормализацию,
- сформировать отношения,
- построить схему связей

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

По дате
По Рейтингу
Аватар пользователя
Высший разум
2мес

В каждой таблице должен быть первичный ключ. Выделяем сущность - делаем ей колонку "id". В целях производительности её тип обычно - целое число, назначаемое из последовательности.

Я бы ещё выделил "образование" в отдельный справочник и ссылался бы на него.

А вот выделения учебных часов в сущность не понял. Зачем это делать? Нужно выделять группу и дисциплину, а отдельное отношение группа-дисциплина-препод может иметь свойство "количество часов". Как-то так:

12345678910111213141516
 Модель:


      +--------Расписание (sid, tid, did, gid, hours)
      |                 |                |
      |                 |                |
      v                 |                v
Препод (tid, фио)       |       Дисциплина (did, code, name)
      ^        ^        |
      |        |        +-------------------->Группа (gid, name)
      |        |
      |        +----------------------+
      |                               |
Квалификация (qid, tid, grade, cost)  |
                                      |
                            Образование (eid, tid, name) 

Здесь "расписание" - то самое тройственное отношение многие ко многим, у него свой id и свойство "часы". Преподаватель, группа и дисциплина - независимые сущности.

А у нормализации, кстати, есть шесть форм , каждая включает свойства предыдущей, и в 6-й НФ ты вообще не узнаешь свою БД.