Нормализация базы данных 2NF
Хорошего дня-
Я работаю над задачей, в которой мне нужно создать модель данных на основе следующей информации.
Ваша задача - создать модель для хранения следующей информации: список альбомов и обложек альбомов для каждого (файлы изображений), дорожки для одного альбома, лейбл или лейблы группы, их жанр и участники группы.
На данный момент я создал пять таблиц. И я должен охватить часть нормализации, но я запутался с этим. Одна из таблиц, которые я создал, содержит следующие столбцы и данные.
участник группы
- bandMemberId - автоинкремент
- bandladelId - FK
- настоящее имя
- прозвище
- memberphoneNo
- memberRole
- memberActive
- memberdob
- memberAge
и эта таблица имеет следующие данные.
для решения этой проблемы я удалил значения, разделенные запятыми, и добавил каждую строку для данных. Теперь это выглядит так.
Может кто-нибудь, пожалуйста, подскажите мне, как я могу разбить эту таблицу и устранить эту проблему (если существует нормализация)? Потому что я также запутался с первичным ключом здесь. Примеры, на которые ссылаются в Интернете, основаны на столбце Возраст. Но я не получаю эти примеры. Заранее спасибо.
1 ответ
Ваш шаг по разбиению строки с многозначным атрибутом на несколько строк выглядит почти как шаг по разрешению повторяющихся групп для достижения 1NF. Однако в этом преобразовании каждая новая строка получает копию соответствующих значений в оригинале. Ваш столбец автоинкремента увеличен для новой строки, и, следовательно, ваша вторая таблица представляет собой другую проблему, а не версию 1NF первой.
Первая таблица, преобразованная в 1NF, будет иметь 2 строки, обе с bandMemberId
значения 1 и использование (bandMemberId, memberRole)
в качестве ключа-кандидата. Поскольку все непростые атрибуты зависят только от bandMemberId
это частичная зависимость. копирование (bandMemberId, memberRole)
на отдельный стол и удаление memberRole
от bandMember
таблица даст нам схему 2NF. Вы не даете никаких функциональных зависимостей, поэтому я не уверен, что схема тоже в 3NF.