create table partido(
cod_partido int,
nome_partido varchar (30),
constraint pk_partido
primary key (cod_partido)
);

create table cargo(
cod_cargo int,
nome_cargo varchar (30),
constraint pk_cargo
primary key (cod_cargo)
);

create table zona_secao(
num_zona int,
num_secao int,
nome_zona_secao varchar (30),
qtd_eleitores int,
constraint pk_zona_secao
primary key (num_zona, num_secao)
);

create table candidato(
num_candidato int,
cod_cargo int,
cod_partido int,
nome_candidato varchar (30),
constraint pk_candidato
primary key (num_candidato),
constraint fk_candidato_cargo
foreign key (cod_cargo)
references cargo (cod_cargo),
constraint fk_candidato_partido
foreign key (cod_partido)
references partido (cod_partido)
);

create table votacao(
num_zona int,
num_secao int,
num_candidato int,
qtd_votos int,
constraint pk_votacao
primary key (num_zona, num_secao, num_candidato),
constraint fk_votacao_zona_secao
foreign key (num_zona, num_secao)
references zona_secao (num_zona, num_secao),
constraint fk_votacao_candidato
foreign key (num_candidato)
references candidato (num_candidato)
);