L’assicurazione può assicurare sia persone fisiche sia società, delle une e delle altre serve conoscere i dati anagrafici. Ad ogni assicurato è attribuito un numero di codice e un giudizio di affidabilità preso da un elenco predefinito.
Ogni assicurato può stipulare una polizza per la copertura di uno o più tipi di rischio, presi da un elenco predefinito. Il costo della polizza, o premio complessivo, può essere pagato in un’unica soluzione o in rate mensili. Sta all’assicurato scegliere fra queste due possibilità, il sistema informativo prende atto della scelta e registra i pagamenti man mano che avvengono con ammontare e data. Ogni volta che accade un sinistro che riguarda un assicurato occorre registrarne tutti i dati descrittivi, compreso l’ammontare del danno, ed eventualmente le foto di corredo. Il sistema informativo deve poi associare il sinistro a uno dei tipi di rischio. Gli stati attraverso cui passa il giudizio di affidabilità sono i seguenti: nuovo, fedele, ottimo, lento, costoso.
Modello concettuale
Analisi del problema
Una compagnia assicurativa può assicurare sia persone fisiche sia società, delle une e delle altre serve conoscere i dati anagrafici. Ad ogni assicurato è attribuito un numero di codice e un giudizio di affidabilità preso da un elenco predefinito.
Ogni assicurato può stipulare una polizza per la copertura di uno o più tipi di rischio, presi da un elenco predefinito. Il costo della polizza, o premio complessivo, può essere pagato in un’unica soluzione o in rate mensili. Sta all’assicurato scegliere fra queste due possibilità, il sistema informativo prende atto della scelta e registra i pagamenti man mano che avvengono con ammontare e data. Ogni volta che accade un sinistro che riguarda un assicurato occorre registrarne tutti i dati descrittivi, compreso l’ammontare del danno, ed eventualmente le foto di corredo. Il sistema informativo deve poi associare il sinistro a uno dei tipi di rischio. Gli stati attraverso cui passa il giudizio di affidabilità sono i seguenti: nuovo, fedele, ottimo, lento, costoso.
In questo esercizio, possiamo individuare le seguenti tabelle:
•Gli assicurati da cui derivano le Persone Fisiche e le Società;
•Le polizze;
•I sinistri;
•I pagamenti da cui derivano le rate o un’unica rata.
Individuiamo le relazioni che intercorrono tra:
Assicurati e Polizze;
Polizze e Sinistri
Polizze e Pagamenti

Tra Assicurati e Polizze il tipo di relazione è uno a molti (1;M), infatti un assicurato può
sottoscrivere più polizze, ma una polizza non può essere sottoscritta da più assicurati.
Polizze e Sinistri: tra Polizze e Sinistri il tipo di relazione è uno a molti (1;M), infatti una polizza può subire più sinistri nel tempo, ma ogni sinistro è associato a una sola polizza specifica
Polizze e Pagamenti: tra Polizze e pagamenti il tipo di relazione è uno a molti (1;M), infatti il premio di una polizza può essere rateizzato in più pagamenti, ma ogni pagamento si riferisce a una sola polizza.
Le tabelle Persone e società rappresentano una generalizzazione della tabella Assicurati: il tipo di relazione è 1 a 1(1;1) tra Assicurati e Persone, in modo simile tra Assicurati e Società.
Le tabelle Unica e Rate rappresentano una generalizzazione della tabella Pagamenti: il tipo di relazione è 1 a 1(1;1)tra Pagamenti e Unica, in modo identico tra Pagamenti e Rate.

Modello logico
Dal modello concettuale si stabilisce il livello di priorità delle tabelle indicate:
livello 1: assicurati:
livello 2: persone, società, polizze
livello 3: sinistri, pagamenti
livello 4: unica, rate
Tabella Assicurati:
id (PK) testo 5 caratteri
indirizzo testo 50 caratteri
telefono testo 15 caratteri
Tabella Persone:
id_assicurato (FK unica) testo 5 caratteri
nome testo 30 caratteri
cognome testo 30 caratteri
codice_fiscale testo 16 caratteri
data_nascita
Tabella Società
id_assicurato (FK unica) testo 5 caratteri
ragione_sociale testo 50 caratteri
partita_iva testo 11 caratteri
Tabella Polizze
id_polizza (PK) testo 5 caratteri
id_assicurato (FK) testo 5 caratteri
tipo_polizza testo 30 caratteri
data_fine
premio_anuo
Tabella Sinistri
id_sinistro (PK) testo 5 caratteri
id_polizza (FK) testo 5 caratteri
data_sinistro
descrizione testo 100 caratteri
importo_danno
stato testo 20 caratteri
Tabella Pagamenti
id_pagamento (PK) testo 5 caratteri
id_polizza (FK)
data_scadenza
Tabella Rate
id_pagamento (FK unica) testo 5 caratteri
numero_rata
importo_rata
data_pagamento_rata
Tabella Unica
id_pagamento (FK unica) testo 5o caratteri
importo
data_pagamento
Modello fisico
Tabella Assicurati
CREATE TABLE Assicurati (
id VARCHAR(5) PRIMARY KEY,
indirizzo VARCHAR(50),
telefono VARCHAR(15)
);
Tabella Persone
CREATE TABLE Persone (
id_assicurato VARCHAR(5) UNIQUE,
nome VARCHAR(30),
cognome VARCHAR(30),
codice_fiscale VARCHAR(16),
data_nascita DATE,
FOREIGN KEY (id_assicurato) REFERENCES Assicurati(id)
);
Tabella Societa
CREATE TABLE Societa (
id_assicurato VARCHAR(5) UNIQUE,
ragione_sociale VARCHAR(50),
partita_iva VARCHAR(11),
FOREIGN KEY (id_assicurato) REFERENCES Assicurati(id)
);
Tabella Polizze
CREATE TABLE Polizze (
id_polizza VARCHAR(5) PRIMARY KEY,
id_assicurato VARCHAR(5),
tipo_polizza VARCHAR(30),
data_fine DATE,
premio_annuo DECIMAL(10,2),
FOREIGN KEY (id_assicurato) REFERENCES Assicurati(id)
);
Tabella Sinistri
CREATE TABLE Sinistri (
id_sinistro VARCHAR(5) PRIMARY KEY,
id_polizza VARCHAR(5),
data_sinistro DATE,
descrizione VARCHAR(100),
importo_danno DECIMAL(10,2),
stato VARCHAR(20),
FOREIGN KEY (id_polizza) REFERENCES Polizze(id_polizza)
);
Tabella Pagamenti
CREATE TABLE Pagamenti (
id_pagamento VARCHAR(5) PRIMARY KEY,
id_polizza VARCHAR(5),
data_scadenza DATE,
FOREIGN KEY (id_polizza) REFERENCES Polizze(id_polizza)
);
Tabella Rate
CREATE TABLE Rate (
id_pagamento VARCHAR(5) UNIQUE,
numero_rata INT,
importo_rata DECIMAL(10,2),
data_pagamento_rata DATE,
FOREIGN KEY (id_pagamento) REFERENCES Pagamenti(id_pagamento)
);
Tabella Unica
CREATE TABLE Unica (
id_pagamento VARCHAR(5) UNIQUE,
importo DECIMAL(10,2),
data_pagamento DATE,
FOREIGN KEY (id_pagamento) REFERENCES Pagamenti(id_pagamento)
);







