Я изучаю нормализацию в классе. И я нашел это упражнение в этой здесь
Он просит нормализовать следующую таблицу до 3NF.
Вот как я это сделал.
Я хотел бы знать, правильно ли я организовал таблицы или нет.
Я изучаю нормализацию в классе. И я нашел это упражнение в этой здесь
Он просит нормализовать следующую таблицу до 3NF.
Вот как я это сделал.
Я хотел бы знать, правильно ли я организовал таблицы или нет.
Я хотел бы знать, правильно ли я организовал таблицы или нет.
Нет, это не так.
Во-первых, нормализация через BCNF основана на функциональных зависимостях. Вы не выявили никаких функциональных зависимостей.
Во-вторых, нормализация никогда не вводит новых атрибутов, которых не было в отношении, с которого вы начали. Вы ввели новые атрибуты "sFirstName", "sLastName", "dateOfBirth", "tuteId", "tutorName", "bookId" и "bookName".
Наконец, онлайн-упражнения, подобные тому, на которое вы ссылаетесь, не очень полезны. Автор явно ожидает, что вы получите все функциональные зависимости из предоставленной небольшой таблицы, но вы не сможете сделать это надежно, если данные не являются репрезентативными. Например, вы можете путем проверки определить, что Комната->Дата, но в реальном мире это не имеет особого смысла.
Нормализация основана на семантике — что данные означают? Что здесь означает «Дата»? Данные поддерживают все эти интерпретации. (И более.)
Основываясь исключительно на данных, вы можете заявить, что Оценка->Дата, но это не имеет смысла. Подобная ерунда говорит о том, что данные не являются репрезентативными и что вы можете нормализовать таблицу, только используя информацию, которую автор не предоставил.