G. Mecca – [email protected] – Università della Basilicata Basi di Dati Sistemi per Basi di Dati...

28
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Transcript of G. Mecca – [email protected] – Università della Basilicata Basi di Dati Sistemi per Basi di Dati...

Page 1: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

G. Mecca – [email protected] – Università della BasilicataG. Mecca – [email protected] – Università della Basilicata

Basi di Dati

Sistemi per Basi di Dati Relazionali: Modello Logico

Concetti Fondamentali

versione 2.0

Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Page 2: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

2G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Concetti Fondamentali

Introduzione Base di dati, tabella, ennupla, attributo

Sintassi per la Descrizione delle Tabelle Valori nulli Vincoli di chiave, di ennupla, di riferimento Caratteristiche del modello

Rappresentazione di Informazione Nidificata

DBMS Relazionali – Modello Logico >> Sommario

Page 3: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

3G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Introduzione

Modello logico dei DBMS commerciali Storia:

Basato sul “Modello Relazionale” [E. F. Codd, 1970]

Centrato sull’indipendenza dei datiDisponibile in DBMS reali dal 1981ANSI/ISO SQL-92

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 4: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

4G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Attenzione

L’obiettivo di questa lezione è descrivere le caratteristiche del modello

Non ci occupiamo, per ora:delle tecniche per manipolare i dati

>> linguaggiodei metodi per costruire la base di dati (come

scegliere le tabelle e valutare la qualità)>> metodologia di progetto

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 5: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

5G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Intuizione

Base di datiinsieme di tabelle

Tabellacollezione di ennuple

Ennupla:insieme di coppie (attributo, valore)analogo nei linguaggi di programmazione:

“struttura” o “record”

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 6: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

6G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esempio: Studenti, Corsi, Esami

Base di dati universitari Studenti

nome, cognome, matricola, data di nascita Corsi

codice, nome del corso, nome del docente Esami sostenuti

corso, studente, voto

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 7: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

7G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Studenti, Corsi, Esami

Studentinome: stringacognome: stringamatricola: interodata di nascita: data

Corsicodice: stringanome: stringa

nome del docente: stringa

Esami sostenuticorso: “riferimento” ad

un corsostudente: “riferimento”

ad uno studentevoto: interolode: sì/no

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 8: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

8G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Studenti

TABLE Studenti(matricola integer, cognome char(20), nome char(20), dataNascita date);

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

88888 Pinco Pietro 01/10/1984

ennupla attributo valore

schema(esempio disintassi)

dominio(tipo)

tabella(istanza)

Studenti

Page 9: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

9G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Corsi

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

TABLE Corsi (codice char(3), titolo char(50), docente char(20));

codice titolo docente

PR1 Programmazione I F. Totti

ASD Algoritmi e Str. Dati C. Vieri

INFT Informatica Teorica A. Del Piero

Corsi

Page 10: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

10G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

matricola corso voto lode

333 PR1 27 false

77777 PR1 21 false

77777 ASD 20 false

88888 PR1 30 false

88888 INFT 30 true

Esami

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

TABLE Esami (matricola integer, voto integer, corso char(3), lode bool);

matricola di uno studente

codicedi un corso

Esami

Page 11: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

11G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

88888 Pinco Pietro 01/10/1984

Studenti

codice titolo docente

PR1 Programmazione I F. Totti

ASD Algoritmi e Str. Dati C. Vieri

INFT Informatica Teorica A. Del Piero

Corsi

matricola corso voto lode

333 PR1 27 false

77777 PR1 21 false

77777 ASD 20 false

88888 PR1 30 false

88888 INFT 30 true

Esami Base diDati

Page 12: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

12G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

SchemadellaBase di Dati

TABLE Studenti(matricola integer, cognome char(20), nome char(20), dataNascita date);

TABLE Corsi (codice char(3), titolo char(50), docente char(20));

TABLE Esami (matricola integer, voto integer, corso char(3), lode bool);

Page 13: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

13G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Valori Nulli

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

88888 Pinco Pietro 01/10/1984

123 Paolo Rossi NULL

Studenti

codice titolo docente

PR1 Programmazione I F. Totti

ASD Algoritmi e Str. Dati C. Vieri

INFT Informatica Teorica A. Del Piero

POO Prog. a Oggetti NULL

Corsivalore nullo

Page 14: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

14G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli sui Dati

Regole della realtà di interesse Unicità di codici di corso e matricole

“identificatori” Voti degli studenti

da 18 a 30lode solo se il voto è 30

Correttezza dei riferimenti

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 15: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

15G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

matricola corso voto lode

333 PR1 27 false

77777 PR1 35 false

77777 ASD 20 true

88888 PR1 30 false

9999 INFT 30 true

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

77777 Pinco Pietro 01/10/1984

Una Base di Dati Scorretta

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

unicità della matricola

voti scorretti

riferimentoscorretto

Studenti

Esami

Page 16: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

16G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli di Integrità

Regole imposte sui valori della base di dati

Vincoli sulle singole tabellevincoli di chiavevincoli di ennupla

Vincoli tra tabelle diversevincoli di riferimento o di integrità

referenziale

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 17: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

17G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli di Integrità

Vincoli di chiavechiave: identificatore per le ennuplees: “matricola” è una chiave per “Studenti”

Vincoli di ennuplapredicati sui valori delle ennuplees: (voto>=18 and voto<=30)

Vincoli di Riferimentoassenza di riferimenti inesistenties: esistono esami solo per gli studenti della bd

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 18: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

18G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli di Chiave

TABLE Studenti(matricola integer, cognome char(20), nome char(20), dataNascita date, UNIQUE(matricola));

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

88888 Pinco Pietro 01/10/1984

Studenti

Page 19: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

19G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli di Ennupla

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

TABLE Esami (matricola integer, voto integer, corso char(3), lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30));

matricola corso voto lode

333 PR1 27 false

77777 PR1 21 false

77777 ASD 20 false

88888 PR1 30 false

88888 INFT 30 true

Esami

Page 20: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

20G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Vincoli di Riferimento

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

TABLE Esami (matricola integer corso char(3) voto integer, lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), FOREIGN KEY(matricola) REFERENCES Studenti(matricola), FOREIGN KEY(corso) REFERENCES Corsi(codice));

matricola corso voto lode

333 PR1 27 false

77777 PR1 21 false

77777 ASD 20 false

88888 PR1 30 false

88888 INFT 30 true

Esami

Page 21: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

21G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Schemacon

vincoli di integrità

TABLE Corsi (codice char(3), titolo char(50), docente char(20), UNIQUE(codice));

TABLE Studenti(matricola integer, cognome char(20), nome char(20), dataNascita date, UNIQUE(matricola));

TABLE Esami (matricola integer, corso char(3), voto integer, lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), FOREIGN KEY(matricola) REFERENCES studenti(matricola), FOREIGN KEY(corso) REFERENCES corsi(codice), UNIQUE (matricola, corso));

Page 22: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

22G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Caratteristiche del Modello

Legami tra i dati basati sui valoriassenza di puntatori

I valori devono essere semplicivalori “atomici” : numeri, caratteri, stringhe,

booleani, date ecc.non sono consentite “nidificazioni” (base di

dati in “I forma normale”)differenza con altri modelli (es: strutture)

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Page 23: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

23G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Un Esempio di Informazione Nidificata

Da Gigino – Officina Meccanica

via della Fisica – Potenza

FATTURA n. 23 del 12/10/2003

Cliente: Pinco Palla (tel. 0971/56789)

1 Carburatore 57,00

2 Pasticche freni 120,00

1 Manodopera 70,57

Totale 247,57

Da Gigino – Officina Meccanica

via della Fisica – Potenza

FATTURA n. 50 del 12/10/2003

Cliente: Pinco Pietro (tel. 0971/23456)

1 Testata motore 257,00

1 Punterie motore 150,00

2 Semiassi anteriori 170,00

1 Manodopera 300,00

Totale 877,00

Page 24: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

24G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

Una Possibile Rappresentazionenum data cliente telefono totale

23 12/10/2003 Pinco Palla 0971/56789 247,57

50 12/10/2003 Pinco Pietro 0971/23456 877,00

Fatture

fattura quantita genere costoTot

23 1 Carburatore 57,00

23 2 Pasticche freni 120,00

23 1 Manodopera 70,57

50 1 Testata motore 257,00

50 1 Punterie motore 150,00

50 2 Semiassi anteriori 170,00

50 1 Manodopera 300,00

Voci

Page 25: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

25G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Concetti Fondamentali

Introduzione Base di dati, tabella, ennupla, attributo

Sintassi per la Descrizione delle Tabelle Valori nulli Vincoli di chiave, di ennupla, di riferimento Caratteristiche del modello

Rappresentazione di Informazione Nidificata

DBMS Relazionali – Modello Logico >> Sommario

Page 26: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

26G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

DBMS Relazionali – Modello Logico >> Concetti Fondamentali

matricola cognome nome dataNascita

333 John Smith 15/06/1980

444 Pinco Palla 01/10/1984

77777 Bruno Pasquale 05/07/1983

88888 Pinco Pietro 01/10/1984

Studenti

codice titolo docente

PR1 Programmazione I F. Totti

ASD Algoritmi e Str. Dati C. Vieri

INFT Informatica Teorica A. Del Piero

Corsi

matricola corso voto lode

333 PR1 27 false

77777 PR1 21 false

77777 ASD 20 false

88888 PR1 30 false

88888 INFT 30 true

Esami Base diDati

Page 27: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

27G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Ringraziamenti

Ringraziamenti

L’esempio Studenti-Corsi-Esami è stato ispirato dal corrispondente esempio utilizzato dal Prof. Paolo Atzeni ([email protected]) nel suo materiale didattico per il corso di Basi di Dati.

L’esempio delle Fatture è stato ispirato dall’esempio delle Ricevute del Ristorante utilizzato dal Prof. Paolo Atzeni ([email protected]) nel suo materiale didattico per il corso di Basi di Dati.

Page 28: G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

28G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Termini della Licenza

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.