CLOB: Permette di rappresentare testi di grandi dimensioni
Risulta essere più flessibile dei varchar per rappresentare testi di tipo descrittivo.
5 covigraph2.2. Creazione e popolamento tabella master l'inserimento
In questo capitolo elencheremo le istruzioni DDL per la creazione e dei dati nella tabella master la quale ci agevolerà nella popolazione dello schema normalizzato.
La struttura della tabella master è la stessa struttura del file CSV dove sono contenuti i file, ovvero:
covid_19_data_master (data, stato, cod_reg, denominazione_reg, cod_provincia, denominazione_provincia, sigla_provincia, latitudine, longitudine, totale_casi, note_it, note_en)
Attributo Tipo Byte Descrizione
data Date 3 Riporta la data relativa al record di contagio
stato Char (3) 3 Permette di rappresentare lo stato a cui appartiene la provincia
cod_reg Int 4 Riporta il codice della regione alla quale la provincia appartiene
denominazione_reg Varchar2 (50) 50 Riporta il nome per esteso della provincia
<table>
<tr>
<th>Attributo</th>
<th>Tipo dati</th>
<th>Descrizione</th>
</tr>
<tr>
<td>regionezione_regcod_provincia</td>
<td>Int 4</td>
<td>Riporta il codice della provincia alla quale il record di contagio si riferisce</td>
</tr>
<tr>
<td>denomna</td>
<td>Varchar2 (50)</td>
<td>Riporta il nome della provincia per esteso</td>
</tr>
<tr>
<td>provinciasigla_provincia</td>
<td>Char (3)</td>
<td>Riporta la sigla della provincia</td>
</tr>
<tr>
<td>latitudine</td>
<td>Number(10) 8</td>
<td>Riporta la latitudine della provincia a cui il record di contagio si riferisce</td>
</tr>
<tr>
<td>longitudine</td>
<td>Number(10) 8</td>
<td>Riporta la longitudine della provincia a cui il record di contagio si riferisce</td>
</tr>
<tr>
<td>totale_casi</td>
<td>Int 4</td>
<td>Riporta i casi rilevati in quella data dal record di contagi</td>
</tr>
<tr>
<td>covigraphnote_it</td>
<td>CLOB 64K</td>
<td>Riporta eventuali note e commenti riguardanti il record in lingua italiana</td>
</tr>
<tr>
<td>note_en</td>
<td>CLOB 64K</td>
<td>Riporta eventuali note e commenti riguardanti il record in lingua inglese</td>
</tr>
</table>
<p>Invece di seguito si riporta lo statement DDL per la creazione di suddetta tabella</p>
<pre>
<code>
CREATE TABLE covid_19_data_master (
data date,
stato CHAR (3),
cod_regione
</code>
</pre>
INT,denominazione_regione VARCHAR2 (50),cod_provincia int,denominazione_provincia VARCHAR2 (50),sigla_provincia CHAR (3),latitudine NUMBER(10,5),longitudine NUMBER(10,5),totale_casi INT,note_it CLOB,note_en CLOB);
Come chiave primaria di questa tabella si sceglie la coppia data, cod_provincia e la settiamo col seguente statement
ALTER TABLE covid_19_data_master ADD CONSTRAINT pk_master_table PRIMARY KEY (data,cod_provincia)
Una volta creata la tabella master la si popola con i record forniti dai documenti. Di seguito riportiamo alcuni statement di inserimento, se si è interessati a vederli tutti aprire il file Insert_completo_mergedOracle.doc 7 covigraph
INSERT INTO covid_19_data_master(data,stato,cod_regione,denominazione_regione,cod_provincia,denominazione_provincia,sigla_provincia,latitudine,longitudine,totale_casi,note_it,note_en) VALUES(DATE'2020-02-24', 'ITA', 1, 'Piemonte', 1, 'Torino', 'TO', 45.0732745, 7.680687483, 0, NULL,
NULL);INSERT INTO covid_19_data_master(data,stato,cod_regione,denominazione_regione,cod_provincia,deno-minazione_provincia,sigla_provincia,latitudine,longitudine,totale_casi,note_it,note_en) VALUES(DATE'2020-02-24', 'ITA', 1, 'Piemonte', 2, 'Vercelli', 'VC', 45.32398135, 8.423234312, 0, NULL, NULL);INSERT INTO covid_19_data_master(data,stato,cod_regione,denominazione_regione,cod_provincia,deno-minazione_provincia,sigla_provincia,latitudine,longitudine,totale_casi,note_it,note_en) VALUES(DATE'2020-02-24', 'ITA', 1, 'Piemonte', 3, 'Novara', 'NO', 45.44588506, 8.621915884, 0, NULL, NULL);………… 8 covigraph3. Normalizzazione3.1. Normalizzazione schema masterDi seguito si presenta il processo di normalizzazione a cui è sottoposta la tabella master poichéquest’ultima per via della sua struttura presenta diverse anomalie.l’organizzazionelatitudine, longitudine) REGIONI (cod_regione, denominazione_regione, stato) Inoltre, si può creare una tabella aggiuntiva per rappresentare la dipendenza funzionale tra cod_provincia e denominazione_provincia: PROVINCIA_DENOMINAZIONE (cod_provincia, denominazione_provincia) In questo modo, lo schema risulta normalizzato in 2NF.
- CASO (data, cod_provincia: PROVINCIA, totale_casi, note_it, note_en)
- PROVINCE (cod_provincia, cod_regione:REGIONE, denominazione_provincia, sigla_provincia,latitudine, longitudine)
- REGIONI (cod_regione, denominazione_regione, stato)
Gli attributi evidenziati sono quelli scelti per essere chiave primaria della relazione.
Il seguente schema si presenta in 3NF e sarà lo schema che implementeremo successivamente.
9 covigraph3.2. Creazione dello schema normalizzato
Di seguito illustreremo la creazione delle varie tabelle generate dal processo di normalizzazione della relazione covid_19_data_master.
Le relazioni da tradurre in tabelle sono le seguenti:
- CASI (totale_casi, note_it, note_en)
- PROVINCE (denominazione_provincia, sigla_provincia, latitudine, longitudine)
- REGIONI (denominazione_regione, stato)
CREATE TABLE regioni (cod_regione INT, denominazione_reg VARCHAR2(50), stato VARCHAR2(3), CONSTRAINT pk_key_regions PRIMARY KEY (cod_regione));
CREATE TABLE province (cod_provincia INT, latitudine NUMBER(10), longitudine NUMBER(10,5), denominazione_provincia VARCHAR2(50), sigla_provincia CHAR(3) UNIQUE, cod_regione INT, CONSTRAINT pk_key_provincia PRIMARY KEY (cod_provincia));
CREATE TABLE casi (data DATE, cod_provincia INT, note_it CLOB, note_en CLOB, totale_casi INT, CONSTRAINT pk_key_contagi PRIMARY KEY(data, cod_provincia));
Si noti che se sullo schema normalizzato si esegue di prodotto cartesiano ci si ritrova con la struttura della tabella master, ulteriore dimostrazione che il nostro schema non è stato alterato.
4. Arricchimento dello schema
4.1. Aggiunte allo schema
Allo scopo di migliorare le tipologie di analisi effettuabili sui dati dello schema sono state aggiunte nuove colonne e tabelle.
Di seguito le aggiunte:
Creazione
data | stato | cod_regione | denominazione_regione | latitudine | longitudine | ricoverati_con_sintomi | terapia_intensiva | totale_ospedalizzati | isolamento_domiciliare | dimessi_guariti | casi_testati | deceduti | tamponi | variazione_totale_positivi | nuovi_positivi | totale_positivi | totale_casi | note_it | note_en |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATE | CHAR(3) | INT | VARCHAR2(50) | NUMBER(10,5) | NUMBER(10,5) | INT | INT | INT | INT | INT | INT | INT | INT | INT | INT | INT | CLOB | CLOB |
Lo statement SQL è il seguente:
CREATE TABLE contagi_regione(
data DATE,
cod_regione INT,
totale_casi INT,
ricoverati_con_sintomi INT,
terapia_intensiva INT,
totale_ospedalizzati INT,
isolamento_domiciliare INT,
dimessi_guariti INT,
casi_testati INT,
deceduti INT,
tamponi INT,
variazione_totale_positivi INT,
nuovi_positivi INT,
totale_positivi INT,
CONSTRAINT pk_contagi_regione PRIMARY KEY(cod_regione,data)
);
Inoltre, sempre ai fini del miglioramento del tipo di analisi che vogliamo effettuare alla tabella Regioni sono state aggiunte nuove colonne.
Lo statement SQL è il seguente:
ALTER TABLE regione
ADD COLUMN popolazione INT,
ADD COLUMN densita_abitative INT,
ADD COLUMN numero_aeroporti INT,
ADD COLUMN superficie NUMBER(10,5);
Queste nuove colonne permettono di...
INSERT INTO covid_19_data_master_region(data,stato,cod_regione,denominazione_regione,latitudine,longitudine,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,dimessi_guariti,casi_testati,deceduti,tamponi,variazione_totale_positivi,nuovi_positivi,totale_positivi,totale_casi,note_it,note_en)
VALUES(DATE'2020-02-24', 'ITA', 1, 'Piemonte', 45.0732745, 7.680687483, 2,0, 2, 1, 0, NULL, 0, 141, 0, 3, 3, 3, NULL, NULL);
INSERT INTO covid_19_data_master_region(data,stato,cod_regione,denominazione_regione,latitudine,longitudine,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,dimessi_guariti,casi_testati,deceduti,tamponi,variazione_totale_positivi,nuovi_positivi,totale_positivi,totale_casi,note_it,note_en)
VALUES(DATE'2020-02-24', 'ITA', 2, 'Lombardia', 45.46679409, 9.190347404, 76, 19, 95, 71, 0, NULL, 7, 531, 0, 54, 54, 54, NULL, NULL);
INSERT INTO covid_19_data_master_region(data,stato,cod_regione,denominazione_regione,latitudine,longitudine,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,dimessi_guariti,casi_testati,deceduti,tamponi,variazione_totale_positivi,nuovi_positivi,totale_positivi,totale_casi,note_it,note_en)
VALUES(DATE'2020-02-24', 'ITA', 3, 'Veneto', 45.43490485, 12.33845213, 18, 2, 20, 18, 0, NULL, 0, 148, 0, 2, 2, 2, NULL, NULL);
covid_19_data_master_region(data,stato,cod_regione,denominazione_regione,latitu-dine,longitudine,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,di-messi_guariti,casi_testati,deceduti,tamponi,variazione_totale_positivi,nuovi_positivi,totale_positivi,to-tale_casi,note_it,note_en) VALUES(DATE'2020-02-24', 'ITA', 2, 'Valle d''Aosta', 45.73750286,7.320149366, 0, 0, 0, 0, 0, NULL, 0, 7, 0, 0, 0, 0, NULL, NULL);
INSERT INTO covid_19_data_master_region(data,stato,cod_regione,denominazione_regione,latitu-dine,longitudine,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,di-messi_guariti,casi_testati,deceduti,tamponi,variazione_totale_positivi,nuovi_positivi,totale_positivi,to-tale_casi,note_it,note_en) VALUES(DATE'2020-02-24', 'ITA', 2, 'Valle d''Aosta', 45.73750286,7.320149366, 0, 0, 0, 0, 0, NULL, 0, 7, 0, 0, 0, 0, NULL, NULL);
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Basi di dati - esempio tesina database
-
Basi di Dati, Software House - Tesina
-
Basi di Dati, Fattibilità - Tesina
-
Tesina Basi di Dati Catena Cinema Multisala