Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un...

27
Modulo 5 - Database

Transcript of Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un...

Page 1: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Modulo 5 - Database

Page 2: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Contenuti della lezione•5.1.1 Concetti Fondamentali•5.1.2 Organizzazione di un Database•5.1.3 Relazioni•5.2.1 Lavorare con i database•5.2.2 Operazioni comuni

2

11/04/23Dott. Daniele Franco

Page 3: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Concetti Fondamentali – Cos’è un database?

Un database è un insieme di dati, organizzati in tabelle, logicamente correlati fra loro

3

11/04/23Dott. Daniele Franco

Page 4: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Concetti Fondamentali - TabelleUna tabella è un “contenitore” che ci permette di

gestire grossi quantitativi di informazioni simili in maniera ordinata

4

Page 5: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Concetti Fondamentali – Esempi di database

Un insieme di tabelle riguardanti uno stesso argomento o più argomenti correlati tra loro costituisce una base di dati o database

L’insieme delle tabelle di clienti, aerei, prenotazioni, voli e aeroporti costituisce un database

L’insieme delle tabelle di pazienti, medici e medicine costituisce un database.

11/04/23Dott. Daniele Franco

5

Page 6: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database - Tabelle

Una tabella è formata da:•Un insieme di righe (o record)•Un insieme di colonne (o campi)

11/04/23Dott. Daniele Franco

6

Campi

Record

Page 7: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database - Record

•Una record è un insieme di campi relativi alla stessa entità

•Un record è una riga di una tabella del database

11/04/23Dott. Daniele Franco

7

Page 8: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database - Campo

•Una campo è una tipologia di dato/informazione•Una campo è una colonna di una tabella del

database•All’interno di un campo posso memorizzare un solo

valore

11/04/23Dott. Daniele Franco

8

Page 9: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Tipi di DatoIn base alle informazioni che devono contenere

e/o ai comportamenti cui saranno soggetti, i campi saranno definiti attraverso tipi di dato e possiederanno determinate proprietà

11/04/23Dott. Daniele Franco

9

Page 10: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Tipi di DatoTipo di Dato Descrizione Esempio

Testo Testo contenente lettere e numeri, che non devono essere utilizzate in calcoli e fino a massimo di 255 caratteri

Nomi di persone, città,numeri di telefono, codici postali, sigle

Memo Testo di dimensioni molto grandi, più di 255 caratteri. In questa versione è inoltre possibile applicare la formattazione RTF ai dati di un campo Memo. Ad esempio, è possibile impostare i colori, modificare il tipo di carattere e applicare il formato grassetto o corsivo al testo.

Note, descrizioni

11/04/23Dott. Daniele Franco

10

Page 11: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

11/04/23Dott. Daniele Franco

11

Tipo di Dato Descrizione Esempio

Numerico Dati numerici da utilizzare in calcoli. Si può anche definire la dimensione del numero e il formato, indicando se il numero è intero o decimale.

Prezzi, numero di pezzi,percentuale di sconto

Valuta Utilizzato per i valori di tipo valuta; a volte è utile impostarlo anche per valori numerici in calcoli matematici, per evitare l’arrotondamento, con una precisione di 15 cifre a sinistra del separatore decimale e 4 a destra.

Prezzo unitario, prezzototale di un articolo

Organizzazione di un Database – Tipi di Dato

Page 12: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Tipi di Dato

11/04/23Dott. Daniele Franco

12

Tipo di Dato Descrizione Esempio

Contatore Numero sequenziale univoco, cioè incrementato di un'unità ogni volta che viene aggiunto un nuovo record a una tabella. Non si può aggiornare. Non se ne può inserire più di uno per tabella.

Chiave primaria di ognitabella

Si/No Campo che può contenere solo uno di due valori alternativi.

Attivo, Presente, InSede

Page 13: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Chiave Primaria

Uno o più campi i cui valori identificano in modo univoco i singoli record di una tabella costituiscono la chiave primaria della tabella

11/04/23Dott. Daniele Franco

13

Page 14: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Chiave Primaria

11/04/23Dott. Daniele Franco

14

Record 1Record 2

Come faccio a distinguere il Record 1 dal Record 2 ?Devo associare ad ogni record un identificativo (uno o più campi) che lo rende univoco

Page 15: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – Chiave Primaria

11/04/23Dott. Daniele Franco

15

Posso introdurre il campo ‘IDSoggetto’ e fare in modo che questo valore non supporti duplicati.Il campo chiave di una tabella è, in genere, di tipo contatore. Il tipo contatore consente di memorizzare numeri sequenziali univoci, e viene incrementato di un'unità ogni volta che viene aggiunto un nuovo record a una tabella

Page 16: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Organizzazione di un Database – IndiceL’indice è una funzione che accelera la ricerca e

l'ordinamento in una tabella sulla base di uno o più campi, detti campi indicizzati.

Un indice può essere univoco e non ammettere duplicazioni di valore

11/04/23Dott. Daniele Franco

16

Page 17: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

17

Perché organizzare e relazionare i dati in tabelle ?•Gestione di una grossa mole di dati•Evitare duplicazioni•Controllare aggiunte e cancellazioni•Ottimizzare l’accesso alle informazioni

Page 18: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

18

Page 19: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelleVogliamo indicare che gli tutti gli alunni appartengono

alla stessa classe, la III A Informatica.

Soluzione ERRATA: Aggiungiamo i campi della tabella Classi alla tabella Alunni e ricopiamo i dati del record III A Informatica:

11/04/23Dott. Daniele Franco

19

Page 20: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

20

Problema 1: otteniamo una gran quantità di dati ripetuti che aumentano notevolmente la dimensione del database

Page 21: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

21

Problema 2: se la classe III A subisce uno spostamento di piano devo riorganizzare tutti i record correlati (sia nella tabella Alunni che nella tabella Classi!)

Page 22: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

22

Problema 3: se Rossi cambia classe devo aggiornare tutti e tre i campi collegati alla classe

Page 23: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelleI tre problemi elencati in precedenza possono essere risolti definendo una relazione tra le tabelle.

Nella tabella Alunni basta aggiungere il solo campo ‘Classe’ che rappresenta il legame con la tabella Classi

11/04/23Dott. Daniele Franco

23

Page 24: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

11/04/23Dott. Daniele Franco

24

Il campo ‘Classe’ della tabella Alunni è in relazione con il campo ‘IDClasse’ della tabella Classi

I dati della classe saranno gestiti solo nella tabella Classi

Page 25: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelleProblema 1 – Risolto:nella tabella alunni memorizzo solo un codice numerico che fa riferimento alla tabella Classi

Problema 2 – Risolto:devo modificare solo il campo ubicazione nella tabella Classi

Problema 3 – Risolto:devo modificare per Rossi solo il campo codice nella tabella Classi

11/04/23Dott. Daniele Franco

25

Problema 1:ho una gran quantità di dati ripetuti che aumentano notevolmente la dimensione del database

Problema 2:se la classe III A subisce unospostamento di piano devoriorganizzare i record correlati

Problema 3:se Rossi cambia classe devoaggiornare tutti e tre i campicollegati alla classe

Page 26: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle

11/04/23Dott. Daniele Franco

26

Relazione: il campo ‘Classe’ della tabella Alunni è in relazione con il campo ‘IDClasse’ della tabella Classi

Page 27: Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.

Relazioni tra tabelle - Tipi

11/04/23Dott. Daniele Franco

27

• Relazione Uno a Molti: un record della primatabella è associato a più record dell’altra

• Relazione Uno a Uno: ogni record della primatabella può avere solo un record corrispondente nella

seconda tabella e viceversa

• Relazione Molti a Molti: A ogni record della prima tabella possono corrispondere più record della seconda tabella e viceversa