Pregunta

Es esto en 3NF?

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)
);
¿Fue útil?

Solución

Se ve bastante bien estructurado. No veo ningún problema de normalización. Sin embargo:

  • Películas y Directores tablas se crean dos veces.
  • tabla
  • Género no se utiliza para nada (presumiblemente debería estar en las películas).
  • Lo mismo pasa con los estudios.
  • disposición actual permite que sólo un director por estudio. Esto probablemente debería ser a) un estudio por el director (a agregar la columna studio_id directores) o más probablemente B) muchos-a-muchos relación entre estudio y director (añadir nueva tabla studio_directors).
  • arreglo actual no le asocia director con la película.
  • Usted podría considerar la combinación de Director y Película-Start en una tabla llamada Talento. Usted tiene la duplicación de datos en la que una estrella es también director. Este es el mayor problema normalización con su diseño.

Otros consejos

si todo no se puede duplicar de nuevo a continuación, se incluye 3NF. asegúrese de que no se dispone de datos duplicados de nuevo

Tiene correo PK, así que está en 1NF. Es PK no es compuesto, por lo que es en 2NF. Todas las columnas dependen de nada, pero la clave, así que está en 3NF. No hay claves distintas de PK, por lo que es en BCNF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top