Title: Basi di Dati
1Basi 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)
2Concetti Fondamentali
DBMS Relazionali Modello Logico gtgt Sommario
- 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
3Introduzione
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Modello logico dei DBMS commerciali
- Storia
- Basato sul Modello Relazionale E. F. Codd,
1970 - Centrato sullindipendenza dei dati
- Disponibile in DBMS reali dal 1981
- ANSI/ISO SQL-92
4Attenzione
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Lobiettivo di questa lezione è descrivere le
caratteristiche del modello - Non ci occupiamo, per ora
- delle tecniche per manipolare i dati gtgt
linguaggio - dei metodi per costruire la base di dati (come
scegliere le tabelle e valutare la qualità )gtgt
metodologia di progetto
5Intuizione
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Base di dati
- insieme di tabelle
- Tabella
- collezione di ennuple
- Ennupla
- insieme di coppie (attributo, valore)
- analogo nei linguaggi di programmazione
struttura o record
6Esempio Studenti, Corsi, Esami
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Base di dati universitari
- Studenti
- nome, cognome, matricola, data di nascita
- Corsi
- codice, nome del corso, nome del docente
- Esami sostenuti
- corso, studente, voto
7Studenti, Corsi, Esami
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Studenti
- nome stringa
- cognome stringa
- matricola intero
- data di nascita data
- Corsi
- codice stringa
- nome stringa
- nome del docente stringa
- Esami sostenuti
- corso riferimento ad un corso
- studente riferimento ad uno studente
- voto intero
- lode sì/no
8Studenti
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
ennupla
attributo
valore
tabella (istanza)
Studenti
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
TABLE Studenti(matricola integer,
cognome char(20), nome char(20),
dataNascita date)
9Corsi
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
Corsi
codice titolo docente
PR1 Programmazione I F. Totti
ASD Algoritmi e Str. Dati C. Vieri
INFT Informatica Teorica A. Del Piero
TABLE Corsi (codice char(3), titolo
char(50), docente char(20))
10Esami
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
matricola di uno studente
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 21 false
77777 ASD 20 false
88888 PR1 30 false
88888 INFT 30 true
codice di un corso
TABLE Esami (matricola integer, voto
integer, corso char(3),
lode bool)
11DBMS Relazionali Modello Logico gtgt 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
Corsi
codice titolo docente
PR1 Programmazione I F. Totti
ASD Algoritmi e Str. Dati C. Vieri
INFT Informatica Teorica A. Del Piero
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 21 false
77777 ASD 20 false
88888 PR1 30 false
88888 INFT 30 true
Base di Dati
12DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
TABLE Studenti(matricola integer,
cognome char(20), nome char(20),
dataNascita date)
TABLE Corsi (codice char(3), titolo
char(50), docente char(20))
Schema della Base di Dati
TABLE Esami (matricola integer, voto
integer, corso char(3),
lode bool)
13Valori Nulli
DBMS Relazionali Modello Logico gtgt 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
Corsi
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
valore nullo
14Vincoli sui Dati
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Regole della realtà di interesse
- Unicità di codici di corso e matricole
- identificatori
- Voti degli studenti
- da 18 a 30
- lode solo se il voto è 30
- Correttezza dei riferimenti
15Una Base di Dati Scorretta
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
unicità della matricola
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
Studenti
voti scorretti
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 35 false
77777 ASD 20 true
88888 PR1 30 false
9999 INFT 30 true
riferimento scorretto
16Vincoli di IntegritÃ
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Regole imposte sui valori della base di dati
- Vincoli sulle singole tabelle
- vincoli di chiave
- vincoli di ennupla
- Vincoli tra tabelle diverse
- vincoli di riferimento o di integrità referenziale
17Vincoli di IntegritÃ
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Vincoli di chiave
- chiave identificatore per le ennuple
- es matricola è una chiave per Studenti
- Vincoli di ennupla
- predicati sui valori delle ennuple
- es (votogt18 and votolt30)
- Vincoli di Riferimento
- assenza di riferimenti inesistenti
- es esistono esami solo per gli studenti della bd
18Vincoli di Chiave
DBMS Relazionali Modello Logico gtgt 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
TABLE Studenti(matricola integer,
cognome char(20), nome char(20),
dataNascita date,
UNIQUE(matricola))
19Vincoli di Ennupla
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 21 false
77777 ASD 20 false
88888 PR1 30 false
88888 INFT 30 true
TABLE Esami (matricola integer, voto
integer, corso char(3),
lode bool, CHECK (votogt18 and
votolt30), CHECK (not lode or
voto30))
20Vincoli di Riferimento
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 21 false
77777 ASD 20 false
88888 PR1 30 false
88888 INFT 30 true
TABLE Esami (matricola integer corso
char(3) voto integer,
lode bool, CHECK (votogt18 and
votolt30), CHECK (not lode or
voto30), FOREIGN KEY(matricola)
REFERENCES Studenti(matricola),
FOREIGN KEY(corso)
REFERENCES Corsi(codice))
21DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
TABLE Studenti(matricola integer,
cognome char(20), nome char(20),
dataNascita date,
UNIQUE(matricola))
Schema con vincoli di integritÃ
TABLE Corsi (codice char(3), titolo
char(50), docente char(20),
UNIQUE(codice))
TABLE Esami (matricola integer,
corso char(3), voto integer,
lode bool, CHECK (votogt18 and
votolt30), CHECK (not lode or
voto30), FOREIGN KEY(matricola)
REFERENCES studenti(matricola),
FOREIGN KEY(corso)
REFERENCES corsi(codice), UNIQUE
(matricola, corso))
22Caratteristiche del Modello
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
- Legami tra i dati basati sui valori
- assenza di puntatori
- I valori devono essere semplici
- valori atomici numeri, caratteri, stringhe,
booleani, date ecc. - non sono consentite nidificazioni (base di dati
in I forma normale) - differenza con altri modelli (es strutture)
23Un Esempio di Informazione Nidificata
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 23 del 12/10/2003 Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 23 del 12/10/2003 Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 23 del 12/10/2003
Cliente Pinco Palla (tel. 0971/56789) Cliente Pinco Palla (tel. 0971/56789) Cliente Pinco Palla (tel. 0971/56789)
1 Carburatore 57,00
2 Pasticche freni 120,00
1 Manodopera 70,57
Totale Totale 247,57
Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 50 del 12/10/2003 Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 50 del 12/10/2003 Da Gigino Officina Meccanica via della Fisica Potenza FATTURA n. 50 del 12/10/2003
Cliente Pinco Pietro (tel. 0971/23456) Cliente Pinco Pietro (tel. 0971/23456) 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 Totale 877,00
24Una Possibile Rappresentazione
DBMS Relazionali Modello Logico gtgt Concetti
Fondamentali
Fatture
num data cliente telefono totale
23 12/10/2003 Pinco Palla 0971/56789 247,57
50 12/10/2003 Pinco Pietro 0971/23456 877,00
Voci
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
25Concetti Fondamentali
DBMS Relazionali Modello Logico gtgt Sommario
- 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
26DBMS Relazionali Modello Logico gtgt 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
Corsi
codice titolo docente
PR1 Programmazione I F. Totti
ASD Algoritmi e Str. Dati C. Vieri
INFT Informatica Teorica A. Del Piero
Esami
matricola corso voto lode
333 PR1 27 false
77777 PR1 21 false
77777 ASD 20 false
88888 PR1 30 false
88888 INFT 30 true
Base di Dati
27Ringraziamenti
Ringraziamenti
- Lesempio Studenti-Corsi-Esami è stato ispirato
dal corrispondente esempio utilizzato dal Prof.
Paolo Atzeni (atzeni_at_dia.uniroma3.it) nel suo
materiale didattico per il corso di Basi di Dati. - Lesempio delle Fatture è stato ispirato
dallesempio delle Ricevute del Ristorante
utilizzato dal Prof. Paolo Atzeni
(atzeni_at_dia.uniroma3.it) nel suo materiale
didattico per il corso di Basi di Dati.
28Termini 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/lic
enses/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//creativecommo
ns.org/licenses/by-sa/1.0/ oppure inviare una
lettera allindirizzo Creative Commons, 559
Nathan Abbott Way, Stanford, California 94305,
USA.