Question

est-ce en 3FN?

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)
);
Était-ce utile?

La solution

Il semble assez bien structuré. Je ne vois pas de problèmes de normalisation. Cependant:

    tables
  • Films et administrateurs sont créés deux fois.
  • Tableau genre ne sert à rien (devrait vraisemblablement être dans les films).
  • Même avec les studios.
  • arrangement actuel ne permet qu'un seul directeur par studio. Cela devrait probablement être A) un studio par administrateur (ajouter colonne studio_id aux administrateurs) ou plus probablement B) plusieurs à plusieurs entre studio et directeur (ajouter une nouvelle table studio_directors).
  • arrangement actuel ne directeur associé avec Movie.
  • Vous pourriez envisager de combiner directeur et film-Start dans une table appelée Talent. Vous avez la duplication de données dans lequel une étoile est également administrateur. Ceci est le plus gros problème de la normalisation avec votre conception.

Autres conseils

si tout ne peut être reproduite à nouveau, puis il est inclus 3FN. assurez-vous qu'il n'y a pas de données en double à nouveau

Il a e PK, il est donc en 1NF. Il est de PK pas composite, il est donc en 2NF. Toutes les colonnes dépendent de rien, mais la clé, il est donc en 3FN. Il aucune touche autre que PK, il est en BCNF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top