Sei sulla pagina 1di 14

SCHEMA E-R

SCHEMA LOGICO RELAZIONALE


Schema logico
Dipendente (codFiscale, nome, cognome, eta)
ParcoDivertimento (nomeParco, citta, indirizzo, numPiscine,
percorso, tema,GestoreParco)
Telefono (numTelefono, ParcoDivertimento)
Gestore Parco (username, password)
Contratto (numContratto, durata, tipo, Dipendente,
ParcoDivertimento)
Biglietto (codiceBiglietto, dataAcquisto, ParcoDivertimento, Cliente)
Struttura (codiceStruttura, nomeStruttura, descrizione,
ParcoDivertimento)
Formare (ID, ParcoDivertimento, Struttura)
Promozione (codPromozione, nomePromozione, descrizione,
dataInizio, dataFine, ParcoDivertimento)
Agenzia (partitaIva, nomeAgenzia, indirizzo, numTelefonico,
GestoreAgenzia)
Gestore Agenzia (username, password)
Vendere (ID, Agenzia, Biglietto, codFiscale, nomeCliente,
cognomeCliente, etaCliente, dataAcquisto, dataInizio,
dataFine)
Convenzionare (ID, ParcoDivertimento, Agenzia)
Attivita (codAttivita, nomeAttivita, descrizione, costo,
ParcoDivertimento, orario)
Svolgere(ID, Attivita, Dipendente)
Riferire (ID, Biglietto, Attivit)
Cliente(codiceFiscale,nome,cognome,dataNascita,luogoNascita,
Pacchetto,dataPrenotazione,dataAcquisto)
Albergo (nomeAlbergo,citt,indirizzo)
Ristorante (nomeRisotante,citt,indirizzo)
Pacchetto (codPacchetto, descrizione, nomePacchetto,
prezzo,Albergo, Ristorante)
Promuove (ID, Agenzia,Pacchetto)
Offrire (ID, Attivit, Promozione)
TABELLA: agenzia
Campo Tipo Dimensio Chiave
ne
partitaIva Varchar 20 Primaria
nomeAgenzi Varchar 20
a
Indirizzo Varchar 30
usernameAg Varchar 20
enzia

TABELLA: albergo
Campo Tipo Dimension Chiave
e
nomeAlbe Varchar 20 Primaria
rgo
citta Varchar 20 Primaria
Indirizzo Varchar 30 Primaria

TABELLA: attivita
Campo Tipo Dimension Chiave
e
CodAttivit Varchar 5 Primaria
a
nomeAttiv Varchar 20
ita
Descrizion Varchar 100
e
Costo double
nomeParc Varchar 20 Esterna
o
cittaParco Varchar 20 Esterna
indirizzoP Varchar 30 Esterna
arco
Orario Time

TABELLA: biglietto
Campo Tipo Dimension Chiave
e
CodBigliet Varchar 5 Primaria
to
dataAcqui Date
sto
nomeParc Varchar 20 Esterna
o
cittaParco Varchar 20 Esterna
indirizzoP Varchar 30 Esterna
arco
codiceFisc Varchar 17 Esterna
ale

TABELLA: cliente
Campo Tipo Dimensio Chiave
ne
codiceFiscale Varchar 17 Primaria
nome Varchar 20
Cognome Varchar 20
dataNascita date
luogoNascita Varchar 20
codPacchetto Varchar 5 Esterna
dataPrenotaz Date
ione*
dataAcquisto Date
*

TABELLA: contratto
Campo Tipo Dimension Chiave
e
numContr Int 11 Primaria
atto
Durata* Int 11
Tipo Varchar 20
codiceFisc Varchar 17 Esterna
ale
nomeParc Varchar 20 Esterna
o
cittaParco Varchar 20 Esterna
indirizzoP Varchar 30 Esterna
arco

TABELLA: convenzionare
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
nomeParc Varchar 20 Esterna
o
Citta Varchar 30 Esterna
Indirizzo Varchar 30 Esterna
partitaIva Varchar 20 Esterna

TABELLA: dipendente
Campo Tipo Dimension Chiave
e
codiceFisc Varchar 17 Primaria
ale
Nome Varchar 15
Cognome Varchar 15
Eta Int 11

TABELLA: gestoreagenzia
Campo Tipo Dimension Chiave
e
Username Varchar 20 Primaria
password Varchar 20

TABELLA: gestoreparco
Campo Tipo Dimension Chiave
e
Username Varchar 20 Primaria
Password Varchar 20

TABELLA: offrire
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
codPromoz Varchar 5 Esterna
ione
codAttivita Varchar 5 esterna

TABELLA: pacchetto
Campo Tipo Dimensio Chiave
ne
codPacchetto Varchar 5 Primaria
Descrizione Varchar 100
nomePacchet Varchar 20
to
nomeAlbergo Varchar 20 Esterna
cittaAlbergo Varchar 20 Esterna
indirizzoAlber Varchar 30 Esterna
go
nomeRistora Varchar 20 Esterna
nte
Prezzo Double
cittaRistorant Varchar 30 Esterna
e
indirizzoRisto Varchar 30 Esterna
rante
TABELLA: parcodivertimento
Campo Tipo Dimension Chiave
e
nomeParco Varchar 20 Primaria
Citta Varchar 20 Primaria
Indirizzo Varchar 30 Primaria
numPiscine Int 11
*
Percorso* Varchar 20
Tema* Varchar 20
usernameP Varchar 30 Esterna
arco

TABELLA: promozione
Campo Tipo Dimensio Chiave
ne
codPromozio Varchar 5 Primaria
ne
nomePromoz Varchar 30
ione
Descrizione Varchar 100
dataInizio Date
dataFine Date
nomeParco Varchar 20 Esterna
cittaParco Varchar 20 Esterna
indirizzoParc Varchar 30 Esterna
o

TABELLA: promuovere
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
partitaIva Varchar 20 Esterna
codPacche Varchar 5 Esterna
tto

TABELLA: riferire
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
codiceBigli Varchar 5 Esterna
etto
codAttivit Varchar 5 Esterna
a

TABELLA: ristorante
Campo Tipo Dimension Chiave
e
nomeRistor Varchar 20 Primaria
ante
Citta Varchar 20 Primaria
Indirizzo Varchar 30 Primaria

TABELLA: struttura
Campo Tipo Dimension Chiave
e
codiceStru Varchar 5 Primaria
ttura
nomeStrut Varchar 20
tura
Descrizion Varchar 100
e
nomeParco Varchar 20 Esterna
cittaParco Varchar 20 Esterna
indirizzoPa Varchar 30 Esterna
rco

TABELLA: svolgere
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
codAttivit Varchar 5 Esterna
a
cidFiscale Varchar 17 Esterna

TABELLA: telefono
Campo Tipo Dimension Chiave
e
numTelefo Varchar 15 Primaria
no
nomeParc Varchar 20 Esterna
o
cittaParco Varchar 20 Esterna
indirizzoP Varchar 30 Esterna
arco

TABELLA: vendere
Campo Tipo Dimension Chiave
e
ID Varchar 5 Primaria
partitaIva Varchar 20 Esterna
codiceBigli Varchar 5 Esterna
etto
codFiscale Varchar 17
nomeClient Varchar 20
e
cognomeCli Varchar 20
ente
etaCliente Int 11
dataAcquis Date
to
dataInizio Date
dataFine Date

Creazione Base dati:


1. CREATE TABLE `agenzia` (`partitaIva` varchar(20) NOT NULL PRIMARY KEY,
`nomeAgenzia` varchar(20) NOT NULL, `indirizzo` varchar(30) NOT NULL,
`numTelefonico` int(11) NOT NULL, `usernameAgenzia`
varchar(20) NOT NULL REFERENCES gestoreAgenzia(username));
2. CREATE TABLE `albergo` (`nomeAlbergo` varchar(20) NOT NULL PRIMARY KEY,
`citta` varchar(20) NOT NULL, `indirizzo` varchar(30) NOT NULL);

3. CREATE TABLE `attivita` (`codAttivita` varchar(5) NOT NULL PRIMARY


KEY,`nomeAttivita` varchar(20) NOT NULL, `descrizione` varchar(100) NOT
NULL,`costo` double NOT NULL,`nomeParco` varchar(20) NOT NULL,
`cittaParco` varchar(20) NOT NULL,`indirizzoParco` varchar(30) NOT
NULL,`orario` time NOT NULL, FOREIGN KEY(nomeParco) REFERENCES
parcodivertimento (nomeParco), FOREIGN KEY(cittaParco) REFERENCES
parcodivertimento (cittaParco), FOREIGN KEY(indirizzoParco) REFERENCES
parcodivertimento(indirizzoParco));
4. CREATE TABLE `biglietto` (`codiceBiglietto` varchar(5) NOT NULL PRIMARY
KEY,`dataAcquisto` date NOT NULL, `nomeParco` varchar(20) NOT
NULL,`cittaParco` varchar(20) NOT NULL, `indirizzoParco`
varchar(30) NOT NULL,`codiceFiscale` varchar(17) NOT NULL, FOREIGN
KEY(nomeParco) REFERENCES parcodivertimento(nomeParco), FOREIGN
KEY(cittaParco) REFERENCES parcodivertimento(cittaParco), FOREIGN
KEY(indirizzoParco) REFERENCES parcodivertimento(indirizzoParco), FOREIGN
KEY(codiceFiscale) REFERENCES cliente(codiceFiscale));
5. CREATE TABLE `cliente` (`codiceFiscale` varchar(17) NOT NULL DEFAULT 'CF'
PRIMARY KEY,`nome` varchar(20) NOT NULL,`cognome` varchar(20) NOT
NULL,`dataNascita` date NOT NULL, `luogoNascita` varchar(20)
NOT NULL,`codPacchetto` varchar(5) NOT NULL, `dataPrenotazione` date
DEFAULT NULL,`dataAcquisto` date DEFAULT NULL, FOREIGN KEY(codPacchetto)
REFERENCES pacchetto(codPacchetto));
6. CREATE TABLE `contratto` (`numContratto` int(11) NOT NULL PRIMARY
KEY,`durata` int(11) DEFAULT NULL,`tipo` varchar(20) NOT NULL,`codFiscale`
varchar(17) NOT NULL,`nomeParco` varchar(20) NOT NULL,`cittaParco`
varchar(20) NOT NULL,`indirizzoParco` varchar(30) NOT NULL, FOREIGN
KEY(codFiscale) REFERENCES dipendente(codFiscale), FOREIGN KEY(nomeParco)
REFERENCES parcodivertimento(nomeParco), FOREIGN KEY(cittaParco)
REFERENCES parcodivertimento(cittaParco), FOREIGN KEY(indirizzoParco)
REFERENCES parco(indirizzoParco));
7. CREATE TABLE `convenzionare` (`ID` varchar(5) NOT NULL DEFAULT 'C0'
PRIMARY KEY,`nomeParco` varchar(20) NOT NULL,`citta` varchar(30) NOT
NULL,`indirizzo` varchar(30) NOT NULL,`partitaIva` varchar(20) NOT NULL,
FOREIGN KEY(nomeParco) REFERENCES parcodivertimento(nomeParco),
FOREIGN KEY(citta) REFERENCES parcodivertimento(cittaParco), FOREIGN
KEY(indirizzo) REFERENCES parcodivertimento(indirizzoParco), FOREIGN
KEY(partitaIva) REFERENCES attivita(partitaIva));
8. CREATE TABLE `dipendente` (`codFiscale` varchar(17) NOT NULL DEFAULT 'CFD'
PRIMARY KEY,`nome` varchar(15) NOT NULL,`cognome` varchar(15) NOT
NULL,`eta` int(11) NOT NULL);
9. CREATE TABLE `gestoreagenzia` (`username` varchar(20) NOT NULL PRIMARY
KEY,`password` varchar(20) NOT NULL);
10.CREATE TABLE `gestoreparco` (`username` varchar(20) NOT NULL PRIMARY
KEY,`password` varchar(20) NOT NULL);
11.CREATE TABLE `offrire` (`ID` varchar(5) NOT NULL DEFAULT 'P0' PRIMARY
KEY,`codPromozione` varchar(5) NOT NULL,`codAttivita` varchar(5) NOT NULL,
FOREIGN KEY(codPromozione) REFERENCES promozione(codPromozione),
FOREIGN KEY(codAttivita) REFERENCES attivita(codAttivita));

12.CREATE TABLE `pacchetto` (`codPacchetto` varchar(5) NOT NULL,`descrizione`


varchar(100) NOT NULL,`nomePacchetto` varchar(20) NOT NULL,`prezzo`
double NOT NULL,`nomeAlbergo` varchar(20) NOT NULL, `cittaAlbergo`
varchar(20) NOT NULL,`indirizzoAlbergo` varchar(30) NOT
NULL,`nomeRisotante` varchar(20) NOT NULL,`cittaRisotante` varchar(30) NOT
NULL,`indirizzoRisotante` varchar(30) NOT NULL, FOREIGN KEY(nomeAlbergo)
REFERENCES albergo(nomeAlbergo), FOREIGN KEY(cittaAlbergo) REFERENCES
albergo(cittaAlbergo), FOREIGN KEY(indirizzoAlbergo) REFERENCES
albergo(indirizzoAlbergo), FOREIGN KEY(nomeRistorante) REFERENCES
ristorante(nomeRistorante), FOREIGN KEY(cittaRistorante) REFERENCES
ristorante(cittaRistorante), FOREIGN KEY(indirizzoRistorante) REFERENCES
ristorante(indirizzoRistorante));
13.CREATE TABLE `parcodivertimento` (`nomeParco` varchar(20) NOT NULL
PRIMARY KEY,`citta` varchar(20) NOT NULL PRIMARY KEY,`indirizzo` varchar(30)
NOT NULL PRIMARY KEY,`numPiscine` int(11) DEFAULT NULL,`percorso`
varchar(20) DEFAULT NULL,`tema` varchar(20) DEFAULT NULL,`usernameParco`
varchar(20) NOT NULL, FOREIGN KEY(usernamePArco) REFERENCES
gestoreparco(username))
14.CREATE TABLE `promozione` (`codPromozione` varchar(5) NOT NULL PRIMARY
KEY,`nomePromozione` varchar(30) NOT NULL,`descrizione` varchar(100) NOT
NULL,`dataInizio` date NOT NULL,`dataFine` date NOT NULL,`nomeParco`
varchar(20) NOT NULL,`cittaParco` varchar(20) NOT NULL, `indirizzoParco`
varchar(30) NOT NULL, FOREIGN KEY(nomeParco) REFERENCES
parcodivertimento(nomeParco), FOREIGN KEY(cittaParco) REFERENCES
parcodivertimento(cittaParco), FOREIGN KEY(indirizzoParco) REFERENCES
parcodivertimento(indirizzoParco));
15.CREATE TABLE `promuovere` (`ID` varchar(5) NOT NULL DEFAULT 'P0' PRIMARY
KEY,`partitaIva` varchar(20) NOT NULL,`codPacchetto` varchar(5) NOT
NULL,FOREIGN KEY(partitaIva) REFERENCES attivita(partitaIva), FOREIGN
KEY(codPacchetto) REFERENCES pacchetto(codPacchetto));
16.CREATE TABLE `riferire` (`ID` varchar(5) NOT NULL DEFAULT 'R0' PRIMARY
KEY,`codiceBiglietto` varchar(5) NOT NULL,`codAttivita` varchar(5) NOT NULL,
FOREIGN KEY(codBiglietto) REFERENCES biglietto(nomeParco), FOREIGN
KEY(codAttivita) REFERENCES attivita(codAttivita));
17.CREATE TABLE `risotante` (`nomeRisotante` varchar(20) NOT NULL PRIMARY
KEY,`citta` varchar(20) NOT NULL PRIMARY KEY, `indirizzo` varchar(30) NOT
NULL PRIMARY KEY)
18.CREATE TABLE `struttura` (`codiceStruttura` varchar(5) NOT NULL PRIMARY
KEY,`nomeStruttura` varchar(20) NOT NULL,`descrizione` varchar(100) NOT
NULL,`nomeParco` varchar(20) NOT NULL,`cittaParco` varchar(20) NOT
NULL,`indirizzoParco` varchar(30) NOT NULL; FOREIGN KEY(nomeParco)
REFERENCES parcodivertimento(nomeParco), FOREIGN KEY(cittaParco)
REFERENCES parcodivertimento(cittaParco), FOREIGN KEY(indirizzoParco)
REFERENCES parcodivertimento(indirizzoParco));
19.CREATE TABLE `svolgere` (`ID` varchar(5) NOT NULL DEFAULT 'S0' PRIMIRAY
KEY,`codAttivita` varchar(5) NOT NULL,`codFiscale` varchar(17) NOT NULL,
FOREIGN KEY(codAttivita) REFERENCES attivita(codAttivita), FOREIGN
KEY(codFiscale) REFERENCES dipendente(codFiscale));
20.CREATE TABLE `telefono` (`numTelefono` varchar(15) NOT NULL PRIMARY
KEY,`nomeParco` varchar(20) NOT NULL,`cittaParco` varchar(20) NOT
NULL,`indirizzoParco` varchar(30) NOT NULL, FOREIGN KEY(nomeParco)
REFERENCES parcodivertimento(nomeParco), FOREIGN KEY(cittaParco)
REFERENCES parcodivertimento(cittaParco), FOREIGN KEY(indirizzoParco)
REFERENCES parcodivertimento(indirizzoParco));
21.CREATE TABLE `vendere` (`ID` varchar(5) NOT NULL DEFAULT 'V0' PRIMARY
KEY,`partitaIva` varchar(20) NOT NULL,`codiceBiglietto` varchar(5) NOT
NULL,`codFiscale` varchar(17) NOT NULL,`nomeCliente` varchar(20) NOT
NULL,`cognomeCliente` varchar(20) NOT NULL,`etaCliente` int(11) NOT NULL,
`dataAcquisto` date NOT NULL,`dataInizio` date NOT NULL,`dataFine` date NOT
NULL, FOREIGN KEY(partitaIva) REFERENCES attivita(partitaIva), FOREIGN
KEY(codBiglieto) REFERENCES biglietto (codBiglietto))