Чтобы понять, что такое вторая нормальная форма, я читал некоторые статьи, и есть некоторые вещи, которые я не понимаю.
В статье здесь в таблице customer написано, что он не во 2NF, потому что there are several attributes which don’t completely rely on the entire Customer table primary key
. Здесь первичный ключ, я думаю, означает {customerId,EmployeeId}
Если мы выберем {customerId,employeeId} в качестве ключа-кандидата, то верно, что Customername,customerCity,PostalCode только частично зависит от ключа-кандидата и, следовательно, не во 2NF. Но если мы считаем, что потенциальным ключом является только идентификатор клиента, тогда все столбцы в таблице клиентов полностью зависят от идентификатора клиента, верно? (Поскольку идентификатор сотрудника зависит от идентификатора клиента). ключ-кандидат, мы можем иметь {CustomerId,EmployeeId} в качестве ключа-кандидата, потому что ключ-кандидат не может содержать другой ключ-кандидат как его часть.
Поэтому, если мы возьмем только идентификатор клиента в качестве ключа-кандидата, не является ли эта таблица формой 2NF?
но затем в статье говорится, что таблица a в форме 2NF должна служить одной цели, а здесь эта таблица клиентов служит двум целям.< br> To indicate which customers are called upon by each employee
To identify customers and their locations.
Тогда я чувствую, что эта таблица не находится во 2NF.
Итак, какой ключ-кандидат в этой таблице?
Мой второй вопрос содержится в этой статье.
эти таблицы находятся в 3NF. В таблице TABLE_BOOK ключевым ключом-кандидатом является bookId, верно? Мы не можем выбрать {bookId,genereId} в качестве ключа-кандидата, верно? Если выбрано, это не будет во 2NF, поскольку цена не зависит от жанраId.
Может кто-нибудь, пожалуйста, помогите мне лучше понять эту теорию нормализации