create table Progetto ( Nome varchar2(30) primary key, Budget number(11,2) default 0, Consegna date not null) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0); insert into Progetto values ('Dante' , 200.0, '1-MAR-00'); insert into Progetto values ('B24' , 500 , '1-JUN-01'); insert into Progetto values ('S3E' , 250 , '1-DEC-05'); insert into Progetto values ('PostKantor', 500 , '1-MAY-00'); insert into Progetto values ('Mirror' , 400 , '1-NOV-01'); create table Sede ( CAP char(5) primary key , Numero varchar2(10) , Via varchar2(30)) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0); insert into Sede values ('10015', 77 , 'Jervis' ); insert into Sede values ('20025', 100, 'Gluk' ); insert into Sede values ('80030', 34 , 'Campi Flegrei'); REM Il campo Sede identifica Dipartimento REM tramite la relazione Composizione. Il campo REM Impiegato realizza la relazione Direzione. REM Il campo multivalore Telefono sfruttera` una tabella a parte. create table Dipartimento ( Nome varchar2(50) not null, Sede char(5) not null, Impiegato varchar2(6) not null unique, primary key(Nome, Sede) ) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0); insert into Dipartimento values ('Amministr', '20025', '375'); insert into Dipartimento values ('Progetto' , '10015', '010'); insert into Dipartimento values ('Progetto' , '80030', '301'); insert into Dipartimento values ('CQ' , '10015', '020'); insert into Dipartimento values ('CQ' , '80030', '231'); insert into Dipartimento values ('Produzion', '80030', '210'); insert into Dipartimento values ('Ricerca' , '10015', '030'); REM I campi DipNome, DipSede e Data realizzano la relazione Afferenza. */ create table Impiegato ( Matricola varchar2(6) primary key, Nome varchar2(20) not null, Cognome varchar2(20) not null, Stipendio number(9,2) default 0, Eta number(2) default 18, Data date, DipNome varchar2(50) not null, DipSede char(5) not null, check(eta >= 18)) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0); insert into Impiegato values ('101', 'Mario', 'Rossi', 34, 40, '15-JAN-00' , 'Produzion', '80030'); insert into Impiegato values ('103', 'Mario', 'Bianchi', 50, 35, '15-JAN-80' , 'Produzion', '80030'); insert into Impiegato values ('104', 'Luigi', 'Neri', 38, 61, '20-FEB-80' , 'Produzion', '80030'); insert into Impiegato values ('105', 'Nico', 'Bini', 44, 38, '20-FEB-80' , 'CQ' , '80030'); insert into Impiegato values ('210', 'Marco', 'Celli', 49, 60, '20-FEB-80' , 'Progetto' , '80030'); insert into Impiegato values ('231', 'Siro', 'Bisi', 50, 60, '20-FEB-80' , 'Progetto' , '80030'); insert into Impiegato values ('252', 'Nico', 'Bini', 44, 70, '05-JAN-79' , 'Amministr', '20025'); insert into Impiegato values ('301', 'Sergio', 'Rossi', 34, 70, '05-MAY-79' , 'Amministr', '20025'); insert into Impiegato values ('375', 'Mario', 'Rossi', 50, 65, '01-JAN-66' , 'Amministr', '20025'); insert into Impiegato values ('010', 'Silvia', 'Zanzi', 40, 46, '15-OCT-97' , 'Amministr', '20025'); insert into Impiegato values ('020', 'Anna', 'Pilatone', 55, 40, '03-NOV-89' , 'Progetto' , '10015'); insert into Impiegato values ('030', 'Antonio', 'Prevignano', 55, 39, '03-NOV-89' , 'Progetto' , '10015'); insert into Impiegato values ('021', 'Fulvia', 'Donetti', 34, 32, '01-SEP-97' , 'CQ' , '10015'); insert into Impiegato values ('031', 'Carmelina', 'Savatteri', 80, 31, '12-NOV-99' , 'Ricerca' , '10015'); insert into Impiegato values ('022', 'Fulvio', 'Marini', 30, 30, '01-JUL-95' , 'CQ' , '10015'); insert into Impiegato values ('032', 'Carla', 'Vercellotti', 79, 32, '01-MAR-98' , 'Ricerca' , '10015'); insert into Impiegato values ('033', 'Massimo', 'Rosciano', 25, 32, '15-FEB-96' , 'Ricerca' , '10015'); alter table Dipartimento add constraint Composizione foreign key (Sede) references Sede(CAP); alter table Dipartimento add constraint Direzione foreign key (Impiegato) references Impiegato(Matricola); alter table Impiegato add constraint Afferenza foreign key (DipNome,DipSede) references Dipartimento(Nome,Sede); create table Partecipazione ( Impiegato varchar2(6) not null, Progetto varchar2(30) not null, Inizio date not null, primary key (Impiegato,Progetto), constraint lato01 foreign key (Impiegato) references Impiegato(Matricola), constraint lato1N foreign key (Progetto) references Progetto(Nome)) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0); insert into Partecipazione values ('231', 'PostKantor', '01-JAN-95'); insert into Partecipazione values ('231', 'Mirror', '01-MAR-96'); insert into Partecipazione values ('105', 'PostKantor', '01-FEB-95'); insert into Partecipazione values ('105', 'Mirror', '20-MAR-96'); insert into Partecipazione values ('210', 'PostKantor', '01-JAN-94'); insert into Partecipazione values ('101', 'PostKantor', '10-JAN-94'); insert into Partecipazione values ('103', 'PostKantor', '10-JAN-94'); insert into Partecipazione values ('104', 'PostKantor', '11-JAN-94'); insert into Partecipazione values ('030', 'Dante', '01-JAN-97'); insert into Partecipazione values ('030', 'S3E', '01-FEB-98'); insert into Partecipazione values ('030', 'B24', '01-MAR-97'); insert into Partecipazione values ('032', 'Dante', '15-JAN-97'); insert into Partecipazione values ('032', 'S3E', '04-FEB-98'); insert into Partecipazione values ('032', 'B24', '28-MAR-97'); insert into Partecipazione values ('031', 'Dante', '14-JAN-97'); insert into Partecipazione values ('031', 'B24', '01-APR-97'); insert into Partecipazione values ('020', 'Dante', '01-JAN-98'); insert into Partecipazione values ('020', 'B24', '01-JUL-97'); insert into Partecipazione values ('021', 'Dante', '10-JAN-98'); insert into Partecipazione values ('022', 'B24', '05-JUL-97'); create table DipartimentoTelefono ( DipNome varchar2(50) not null, DipSede char(5) not null, Telefono varchar2(20) not null, primary key (DipNome,DipSede,Telefono), foreign key (DipNome,DipSede) references Dipartimento(Nome,Sede)) TABLESPACE USERS STORAGE (INITIAL 8K NEXT 4K PCTINCREASE 0) ; insert into DipartimentoTelefono values ('Amministr', '20025', '0212345'); insert into DipartimentoTelefono values ('Amministr', '20025', '0212346'); insert into DipartimentoTelefono values ('Amministr', '20025', '0212347'); insert into DipartimentoTelefono values ('Progetto' , '10015', '0125528'); insert into DipartimentoTelefono values ('Progetto' , '10015', '0125529'); insert into DipartimentoTelefono values ('Progetto' , '80030', '0818533'); insert into DipartimentoTelefono values ('CQ' , '10015', '0125521'); insert into DipartimentoTelefono values ('CQ' , '80030', '0818533'); insert into DipartimentoTelefono values ('CQ' , '80030', '0818534'); insert into DipartimentoTelefono values ('Produzion', '80030', '0818533'); insert into DipartimentoTelefono values ('Ricerca' , '10015', '0125525'); insert into DipartimentoTelefono values ('Ricerca' , '10015', '0125526');