Я должен написать SQL запрос из данной схемы:SQL-запрос из схемы базы данных с функциональными зависимостями. Нормализация
BookAuthors
(ISBN, AUTHORNAME, пол, название, yearPublished, PubID, pubName, телефон)FD
= {ISBN -> в заголовке , pubId, yearPublished; authorName -> gender; PubID -> pubName, телефон}
Вот что я написал:
CREATE TABLE Authors
(
authorName VARCHAR(64) PRIMARY KEY,
gender CHAR(1)
);
CREATE TABLE Publishers
(
pubId VARCHAR(32) PRIMARY KEY,
pubName VARCHAR(64),
phone NUMERIC(10)
);
GO
CREATE TABLE Books
(
ISBN VARCHAR(32) PRIMARY KEY NOT NULL,
title VARCHAR(32),
pubId VARCHAR(32) FOREIGN KEY REFERENCES Publishers(pubId) NOT NULL,
yearPublished NUMERIC(4)
);
Является ли это правильный ответ? Меня беспокоит отсутствие связи между автором и книгой.
'AuthorName' - очень плохая идея для первичного ключа - в первую очередь, есть абсолютно возможность иметь двух авторов ** с тем же именем, а во-вторых, такой большой столбец переменной длины является * * ужасный выбор ** для первичного ключа в SQL Server и будет иметь крайне низкую производительность –
Так как насчет authorName в книгах? А как насчет нескольких Терри Митчел - как мужчин, так и женщин? – Paparazzi
Могу ли я добавить свои собственные столбцы, например authId или FD, когда задание дает мне схему? – Veasst