Может ли таблица 6NF содержать внешний ключ?

Удовлетворяет ли таблица 6NF, если ее домен является внешним ключом? Например:

CREATE TABLE authors(
    author_id serial NOT NULL PRIMARY KEY
);

-- other author attributes

CREATE TABLE books(
    book_id serial NOT NULL PRIMARY KEY
);

CREATE TABLE books_author(
    book_id int NOT NULL PRIMARY KEY REFERENCES books (book_id),
    author_id int NOT NULL REFERENCES authors (author_id)
);

Если нет, то как модель должна обрабатывать отношение внешнего ключа?

И если отношение, где M2M, как это должно быть обработано? таблица соединения также должна быть 6NF?

1 ответ

Решение

6NF означает, что relvar не удовлетворяет нетривиальным зависимостям соединения, что означает, что у него есть ключ-кандидат и самое большее один другой атрибут. Там могут быть или не быть внешние ключи. Все нормальные формы не связаны с тем, определены ли внешние ключи.

Не уверен, что ваш вопрос о M2M. Когда и где вы используете 6NF, зависит от вашей мотивации использовать его в целом. Его основное использование для хранения данных и временных моделей данных.

Другие вопросы по тегам