Domanda

È questa in 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)
);
È stato utile?

Soluzione

sembra piuttosto ben strutturato. Non vedo alcun problema di normalizzazione. Tuttavia:

  • Film e Amministratori tabelle vengono create due volte.
  • tabella
  • genere non viene utilizzato per qualsiasi cosa (presumibilmente dovrebbe essere nel film).
  • Lo stesso con Studios.
  • disposizione attuale consente solo un amministratore per ogni studio. Questo probabilmente dovrebbe essere A) uno studio di ogni regista (aggiungi colonna studio_id agli amministratori) o più probabilmente B) molti-a-molti tra lo studio e il regista (aggiungi nuova tabella studio_directors).
  • disposizione attuale non Direttore associato con film.
  • Si potrebbe prendere in considerazione che unisce direttore e film-Start in una tabella denominata Talent. Avete la duplicazione dei dati in cui una stella è anche regista. Questo è il più grande problema di normalizzazione con il vostro disegno.

Altri suggerimenti

se tutto non può essere duplicato di nuovo allora è incluso 3NF. assicurarsi che non ci sono dati duplicati di nuovo

E 'e PK, quindi è in 1NF. E 'PK non è composito, quindi è in 2NF. Tutte le colonne sono dipendenti su nient'altro che la chiave, quindi è in 3NF. Non ci nessun tasto diverse PK, quindi è in BCNF.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top