--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- Name: azienda; Type: SCHEMA; Schema: -; Owner: vagrant
--

CREATE SCHEMA azienda;


ALTER SCHEMA azienda OWNER TO vagrant;


SET search_path = azienda, pg_catalog;

--
-- Name: cf_persona; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN cf_persona AS character(16);


ALTER DOMAIN azienda.cf_persona OWNER TO vagrant;

--
-- Name: data; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN data AS date;


ALTER DOMAIN azienda.data OWNER TO vagrant;

--
-- Name: indirizzi; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN indirizzi AS character varying(35);


ALTER DOMAIN azienda.indirizzi OWNER TO vagrant;

--
-- Name: iniziali_persona; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN iniziali_persona AS character(1)
	CONSTRAINT carattere_alfabetico_maiuscolo CHECK ((VALUE ~ similar_escape('[A-Z]'::text, NULL::text)));


ALTER DOMAIN azienda.iniziali_persona OWNER TO vagrant;

--
-- Name: nomi_dipartimento; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN nomi_dipartimento AS character varying(20);


ALTER DOMAIN azienda.nomi_dipartimento OWNER TO vagrant;

--
-- Name: nomi_persona; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN nomi_persona AS character varying(15);


ALTER DOMAIN azienda.nomi_persona OWNER TO vagrant;

--
-- Name: numeri_dipartimento; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN numeri_dipartimento AS integer
	CONSTRAINT num_dip_valido CHECK (((VALUE >= 1) AND (VALUE <= 10)));


ALTER DOMAIN azienda.numeri_dipartimento OWNER TO vagrant;

--
-- Name: numeri_progetto; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN numeri_progetto AS integer
	CONSTRAINT numeri_progetto_check CHECK ((VALUE > 0));


ALTER DOMAIN azienda.numeri_progetto OWNER TO vagrant;

--
-- Name: sesso_persona; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN sesso_persona AS character(1)
	CONSTRAINT sesso_persona_check CHECK (((VALUE = 'M'::bpchar) OR (VALUE = 'F'::bpchar)));


ALTER DOMAIN azienda.sesso_persona OWNER TO vagrant;

--
-- Name: stipendi_persona; Type: DOMAIN; Schema: azienda; Owner: vagrant
--

CREATE DOMAIN stipendi_persona AS numeric(9,2)
	CONSTRAINT stipendio_valido CHECK ((VALUE > 0.0));


ALTER DOMAIN azienda.stipendi_persona OWNER TO vagrant;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: dipartimento; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE dipartimento (
    dnumero numeri_dipartimento NOT NULL,
    dnome nomi_dipartimento NOT NULL,
    manager cf_persona NOT NULL,
    data_inizio data
);


ALTER TABLE azienda.dipartimento OWNER TO vagrant;

--
-- Name: impiegato; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE impiegato (
    nome nomi_persona,
    iniziale iniziali_persona,
    cognome nomi_persona,
    cf cf_persona NOT NULL,
    data_nascita data,
    indirizzo indirizzi,
    sesso sesso_persona,
    stipendio stipendi_persona,
    supervisore cf_persona,
    dip numeri_dipartimento
);


ALTER TABLE azienda.impiegato OWNER TO vagrant;

--
-- Name: lavora_a; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE lavora_a (
    imp cf_persona NOT NULL,
    progetto integer NOT NULL,
    ore_settimana integer NOT NULL,
    CONSTRAINT numero_ore_valido CHECK ((ore_settimana > 0))
);


ALTER TABLE azienda.lavora_a OWNER TO vagrant;

--
-- Name: persona_a_carico; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE persona_a_carico (
    imp cf_persona NOT NULL,
    nome nomi_persona NOT NULL,
    sesso sesso_persona NOT NULL,
    data_nascita data NOT NULL,
    legame character varying(30) NOT NULL
);


ALTER TABLE azienda.persona_a_carico OWNER TO vagrant;

--
-- Name: progetto; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE progetto (
    pnumero numeri_progetto NOT NULL,
    pnome character varying(100) NOT NULL,
    dnum numeri_dipartimento,
    psede indirizzi
);


ALTER TABLE azienda.progetto OWNER TO vagrant;

--
-- Name: sedi_dipartimento; Type: TABLE; Schema: azienda; Owner: vagrant; Tablespace: 
--

CREATE TABLE sedi_dipartimento (
    dnumero numeri_dipartimento NOT NULL,
    dsede indirizzi NOT NULL
);


ALTER TABLE azienda.sedi_dipartimento OWNER TO vagrant;

--
-- Data for Name: dipartimento; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY dipartimento (dnumero, dnome, manager, data_inizio) FROM stdin;
1	Dipartimento 1	DLYLTN86G18F038D	2012-01-21
2	Dipartimento 2	LHNLLY64L12B519I	2013-09-04
3	Dipartimento 3	RAUGRT77K26W641P	2012-07-20
\.


--
-- Data for Name: impiegato; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY impiegato (nome, iniziale, cognome, cf, data_nascita, indirizzo, sesso, stipendio, supervisore, dip) FROM stdin;
Alivia	A	Stroman	STRLVA84J28F132W	1984-10-28	60576 Willms Island	F	5186.00	\N	1
Alysha	A	Bailey	BLYLYS77K17V103J	1977-11-17	550 Baumbach Roads	F	4297.00	\N	3
Camron	C	Eichmann	CHMCMR72H13H813V	1972-08-13	3935 Hegmann Tunnel	M	6240.00	\N	3
Pamela	P	Murray	MRRPML65G07R697A	1965-07-07	369 Balistreri Trail	F	5277.00	CHMCMR72H13H813V	2
Garth	G	Auer	RAUGRT77K26W641P	1977-11-26	9013 Karlee Shore	M	5627.00	BLYLYS77K17V103J	1
Esmeralda	E	Hessel	HSSSMR70J09P891Z	1970-10-09	977 Gianni Mountains	F	5099.00	STRLVA84J28F132W	3
Wendell	W	Mertz	MRTWND67C12S123A	1967-03-12	4562 Juston Forest	M	8432.00	BLYLYS77K17V103J	2
Daren	D	Hansen	HNSDRN67D24D836M	1967-04-24	8658 Lloyd Square	M	2620.00	LHNLLY64L12B519I	1
Elton	E	Dooley	DLYLTN86G18F038D	1986-07-18	7774 Judah Valleys	M	6648.00	LHNLLY64L12B519I	2
Daniela	D	Doyle	DYLDNL78C25S097Q	1978-03-25	418 Feeney Grove	F	8748.00	RAUGRT77K26W641P	3
Leonardo	L	Medhurst	MDHLNR75B04E435L	1975-02-04	102 Asa Lake	M	3884.00	MRTWND67C12S123A	1
Cyrus	C	Herman	HRMCYR89H14G255G	1989-08-14	52601 Westley Stravenue	M	6411.00	RAUGRT77K26W641P	1
Lilyan	L	Lehner	LHNLLY64L12B519I	1964-12-12	631 Greyson Station	F	3342.00	BLYLYS77K17V103J	2
Sarah	S	McGlynn	MCGSRH75A04O144A	1975-01-04	43667 Price Union	F	3084.00	\N	3
Antonette	A	Schaefer	SCHNTN73H30D028Y	1973-08-30	99476 Corine Rest	F	7739.00	\N	3
\.


--
-- Data for Name: lavora_a; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY lavora_a (imp, progetto, ore_settimana) FROM stdin;
DLYLTN86G18F038D	3	26
HNSDRN67D24D836M	5	16
MRTWND67C12S123A	9	20
HNSDRN67D24D836M	1	39
HSSSMR70J09P891Z	7	25
HSSSMR70J09P891Z	4	15
CHMCMR72H13H813V	8	38
DLYLTN86G18F038D	5	21
CHMCMR72H13H813V	1	36
HSSSMR70J09P891Z	10	36
LHNLLY64L12B519I	6	9
HNSDRN67D24D836M	3	28
MRTWND67C12S123A	3	22
SCHNTN73H30D028Y	6	18
\.


--
-- Data for Name: persona_a_carico; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY persona_a_carico (imp, nome, sesso, data_nascita, legame) FROM stdin;
LHNLLY64L12B519I	Mina	F	1989-05-07	Sorella
MRRPML65G07R697A	Danial	M	1976-08-09	Fratello
BLYLYS77K17V103J	Hayden	M	1972-12-30	Fratello
SCHNTN73H30D028Y	Sean	M	1975-11-02	Coniuge
DLYLTN86G18F038D	Elton	M	1976-10-21	Padre
MRTWND67C12S123A	Savannah	F	1976-02-07	Figlia
\.


--
-- Data for Name: progetto; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY progetto (pnumero, pnome, dnum, psede) FROM stdin;
1	Progetto 1	1	4185 Franecki Hill
2	Progetto 2	3	41872 Reilly Camp
3	Progetto 3	1	9203 Botsford Forest
4	Progetto 4	2	45075 Ruthie Cliff
5	Progetto 5	1	674 Labadie Course
6	Progetto 6	1	4146 Franecki Lake
7	Progetto 7	1	58522 McDermott Loaf
8	Progetto 8	3	73492 Jacobs Islands
9	Progetto 9	1	969 Ernestine Extensions
10	Progetto 10	3	9825 Angelita Roads
\.


--
-- Data for Name: sedi_dipartimento; Type: TABLE DATA; Schema: azienda; Owner: vagrant
--

COPY sedi_dipartimento (dnumero, dsede) FROM stdin;
2	43001 Spinka Ramp
2	713 Waelchi Hollow
2	594 Deckow Throughway
1	7815 Monroe Port
1	9152 Trantow Loop
\.


--
-- Name: dipartimento_pk; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY dipartimento
    ADD CONSTRAINT dipartimento_pk PRIMARY KEY (dnumero);


--
-- Name: dnome_unico; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY dipartimento
    ADD CONSTRAINT dnome_unico UNIQUE (dnome);


--
-- Name: impiegato_pk; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY impiegato
    ADD CONSTRAINT impiegato_pk PRIMARY KEY (cf);


--
-- Name: lavora_a_pkey; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY lavora_a
    ADD CONSTRAINT lavora_a_pkey PRIMARY KEY (imp, progetto);


--
-- Name: persona_a_carico_pkey; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY persona_a_carico
    ADD CONSTRAINT persona_a_carico_pkey PRIMARY KEY (imp, nome);


--
-- Name: progetto_pkey; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY progetto
    ADD CONSTRAINT progetto_pkey PRIMARY KEY (pnumero);


--
-- Name: progetto_pnome_key; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY progetto
    ADD CONSTRAINT progetto_pnome_key UNIQUE (pnome);


--
-- Name: sedi_dipartimento_pkey; Type: CONSTRAINT; Schema: azienda; Owner: vagrant; Tablespace: 
--

ALTER TABLE ONLY sedi_dipartimento
    ADD CONSTRAINT sedi_dipartimento_pkey PRIMARY KEY (dnumero, dsede);


--
-- Name: dip_fk; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY impiegato
    ADD CONSTRAINT dip_fk FOREIGN KEY (dip) REFERENCES dipartimento(dnumero) ON UPDATE CASCADE DEFERRABLE;


--
-- Name: lavora_a_imp_fkey; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY lavora_a
    ADD CONSTRAINT lavora_a_imp_fkey FOREIGN KEY (imp) REFERENCES impiegato(cf) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: lavora_a_progetto_fkey; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY lavora_a
    ADD CONSTRAINT lavora_a_progetto_fkey FOREIGN KEY (progetto) REFERENCES progetto(pnumero) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: manager_fk; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY dipartimento
    ADD CONSTRAINT manager_fk FOREIGN KEY (manager) REFERENCES impiegato(cf) ON UPDATE CASCADE DEFERRABLE;


--
-- Name: persona_a_carico_imp_fkey; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY persona_a_carico
    ADD CONSTRAINT persona_a_carico_imp_fkey FOREIGN KEY (imp) REFERENCES impiegato(cf) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: progetto_dnum_fkey; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY progetto
    ADD CONSTRAINT progetto_dnum_fkey FOREIGN KEY (dnum) REFERENCES dipartimento(dnumero) ON UPDATE CASCADE;


--
-- Name: sedi_dipartimento_dnumero_fkey; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY sedi_dipartimento
    ADD CONSTRAINT sedi_dipartimento_dnumero_fkey FOREIGN KEY (dnumero) REFERENCES dipartimento(dnumero) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: supervisore_fk; Type: FK CONSTRAINT; Schema: azienda; Owner: vagrant
--

ALTER TABLE ONLY impiegato
    ADD CONSTRAINT supervisore_fk FOREIGN KEY (supervisore) REFERENCES impiegato(cf) ON UPDATE CASCADE ON DELETE SET NULL;

--
-- PostgreSQL database dump complete
--

