SET search_path TO public;

CREATE TABLE studenti(
  matricola integer PRIMARY KEY,
  nome varchar(30),
  cognome varchar(30),
  sesso varchar(1)
);

CREATE TABLE corsi_di_laurea(
  nome varchar(50) PRIMARY KEY
);

CREATE TABLE iscritto_a(
  cdl varchar(50),
  stud integer,
  anno integer,
  CONSTRAINT pk_iscritto_a PRIMARY KEY (cdl, stud, anno)
);

-- add foreign keys
ALTER TABLE iscritto_a
ADD CONSTRAINT fk_iscritto_a_cdl FOREIGN KEY (cdl)
REFERENCES corsi_di_laurea (nome)
ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE iscritto_a
ADD CONSTRAINT fk_iscritto_a_stud FOREIGN KEY (stud)
REFERENCES studenti (matricola)
ON DELETE RESTRICT ON UPDATE RESTRICT;

-- populate 'corsi_di_laurea'
insert into corsi_di_laurea values('Informatica');
insert into corsi_di_laurea values('IBML');
insert into corsi_di_laurea values('Matematica');
insert into corsi_di_laurea values('Filosofia');
insert into corsi_di_laurea values('Lingue');
insert into corsi_di_laurea values('Fisica');
insert into corsi_di_laurea values('Ingegneria');
insert into corsi_di_laurea values('Architettura');
insert into corsi_di_laurea values('Scienze e salute animali');
insert into corsi_di_laurea values('Chimica');
insert into corsi_di_laurea values('Agraria');
insert into corsi_di_laurea values('Medicina');
insert into corsi_di_laurea values('Infermieristica');
