sql 3NF Normalizzazione
-
30-09-2019 - |
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)
);
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