Вопрос

Это в 3НФ?

create table movies( 
  id numeric primary key not null default autoincrement,
  name varchar(50) not null, 
  release-date Date, 
  price numeric, 
  rating numeric,
  length numeric,
  description varchar(1500)
);

create table movies( 
  id numeric primary key, 
  name varchar(20) 
);

create table genre(
  name varchar(20) primary key
);

create table directors(
  id numeric primary key not null default autoincrement, 
  first-name varchar(32) not null, 
  last-name varchar(32) not null, 
  gender varchar(8), 
  dob Date, 
  biography varchar(1000)
);

create table movie-Star(
  id numeric primary key not null default autoincrement, 
  first-name varchar(20) not null, 
  last-name varchar(20) not null,
  gender varchar(8), 
  dob Date, 
  hometown varchar(20)
);

create table movies-cast(
  movie-id numeric references movies(id), 
  actor-id numeric references movie-Star(id), 
  role varchar(32), 
  primary key (movie-id, actor-id)
);

Create table Studio( 
  studio-id numeric references directors(id)
  Directer-name varchar(20) not null
  name varchar(20) primary key
);

create table directors(
  id numeric primary key not null default autoincrement, 
  first-name varchar(32) not null, 
  last-name varchar(32) not null, 
  gender varchar(8), 
  dob Date, 
  biography varchar(1000)
);
Это было полезно?

Решение

Это выглядит довольно хорошо структурированным. Я не вижу никаких проблем нормализации. Однако:

  • Таблицы фильмов и директоров созданы дважды.
  • Таблица жанра не используется ни для чего (предположительно должно быть в фильмах).
  • То же самое с студиями.
  • Текущее договоренность позволяет только одному режиссеру на студию. Это, вероятно, должно быть) одна студия на одного директора (добавьте столбец statue_id к директорам) или более вероятно, b) многие отношения между студией и директором (добавьте новую таблицу studio_directors).
  • Текущее договоренность не связывает режиссера с фильмом.
  • Вы можете рассмотреть возможность объединения режиссера и начала фильма в одну таблицу под названием талант. У вас есть дублирование данных, в которых звезда также является директором. Это самая большая проблема нормализации с вашим дизайном.

Другие советы

Если все не могут быть продублированы снова, то он включен 3НФ. Убедитесь, что еще не дублируют данные

У него есть e pk, поэтому в 1НФ. Это не композит, поэтому он в 2НФ. Все столбцы зависят от ничего, кроме ключа, поэтому он в 3НФ. Там нет клавиш, кроме PK, так что это в BCNF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top