25/02/2004
1
Basi di DatiSistemi per Basi di Dati
Relazionali: Modello Logico
Concetti Fondamentali
2
Concetti FondamentaliIntroduzione
Base di dati, tabella, ennupla, attributo, dominio
Valori nulli
Vincoli di chiave, di ennupla, di riferimento
Caratteristiche del modello
25/02/2004
2
3
IntroduzioneModello 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
4
AttenzioneL’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
25/02/2004
3
5
IntuizioneBase di dati
insieme di tabelle
Tabellacollezione di ennuple
Ennupla:insieme di coppie (attributo, valore)analogo nei linguaggi di programmazione: “struttura” o “record”
6
Esempio: Studenti, Corsi, EsamiBase di dati universitari
Studentinome, cognome, matricola, data di nascita
Corsicodice, nome del corso, nome del docente
Esami sostenuticorso, studente, voto
25/02/2004
4
7
Studenti, Corsi, EsamiStudenti
nome: stringacognome: stringamatricola: interodata di nascita: data
Corsicodice: stringanome: stringanome del docente: stringa
Esami sostenuticorso: “riferimento” ad un corsostudente: “riferimento” ad uno studentevoto: interolode: sì/no
8
matricola cognome nome dataNascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
Studenti
Studenti
TABLE Studenti(matricola integer,cognome char(20),nome char(20),dataNascita date);
ennupla attributo valore
schema(esempio disintassi)
dominio(tipo)
tabella(istanza)
25/02/2004
5
9
Corsi
codice titolo docentea01 Analisi Pincoc02 Chimica Brunic04 Chimica Verdi
Corsi
TABLE Corsi (codice char(3),titolo char(50),docente char(20));
10
Esami
TABLE Esami (matricola integer,voto integer,corso char(3),lode bool);
matricola voto corso3456 30 c043456 24 c029283 28 a016554 26 a01
lode1000
Esami
matricola di uno studente
codicedi un corso
25/02/2004
6
11
matricola cognome nome dataNascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
Studenti
codice titolo docentea01 Analisi Pincoc02 Chimica Brunic04 Chimica Verdi
Corsi
matricola voto corso3456 30 c043456 24 c029283 28 a016554 26 a01
lode1000
Esami
Base di Dati
12
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);
25/02/2004
7
13
Valori Nulli
Corsi
Studenti matricola cognome nome dataNascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
8999 Pinco Pallino ??
codice titolo docentea01 Analisi Pincoc02 Chimica Brunic04 Chimica Verdib05 Basi Dati ??
valore nullo
null
null
14
Vincoli sui Dati
Regole della realtà di interesse
Unicità di codici di corso e matricole“identificatori”
Voti degli studentida 18 a 30lode solo se il voto è 30
Correttezza dei riferimenti
25/02/2004
8
15
Una Base di Dati Scorretta
matricola6554
7878778787
cognomeRossiNeri
Bianchi
nomeMarioPieroLuca
Studenti
matricola voto lode corso32 0 a016554
78787 30 1 c026554 27 1 d031122 24 0 c04
Esami
unicità della matricola
voti scorretti
riferimentoscorretto
16
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
25/02/2004
9
17
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
18
Vincoli di Chiave
matricola cognome nome dataNascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
Studenti
TABLE Studenti(matricola integer,cognome char(20),nome char(20),dataNascita date,UNIQUE(matricola));
25/02/2004
10
19
Vincoli di Ennupla
TABLE Esami (matricola integer,voto integer,corso char(3),lode bool,CHECK (voto>=18 and voto<=30),CHECK (not lode or voto=30));
matricola voto corso3456 30 c043456 24 c029283 28 a016554 26 a01
lode1000
Esami
20
Vincoli di Riferimento
TABLE Esami (matricola integercorso 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 voto corso3456 30 c043456 24 c029283 28 a016554 26 a01
lode1000
Esami
25/02/2004
11
21
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));
22
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)
25/02/2004
12
23
Dal SudicioVia Buia, Pisa
Ricevuta Fiscale1235 del 12/10/2001
3 Coperti 3,00
2 Bistecche 18,003 Primi 12,002 Antipasti 6,20
Totale 39,20
Dal SudicioVia Buia, Pisa
Ricevuta Fiscale1240 del 13/10/2001
2 Coperti 2,00
2 Orate 20,002 Primi 8,002 Antipasti 7,00
2 Caffè 2,00
Totale 39,00
Un Esempio di Informazione Nidificata
24
1235 39,2012/10/2000numero totaledata
1240 39,0013/10/2000
Ricevute
3 Coperti 3,00
2 Bistecche 18,003 Primi 12,002 Antipasti 6,20
Dettaglio qta portata prezzo1235
numero
1240
123512351235
2 Coperti 2,00… … … …
Una Possibile Rappresentazione
25/02/2004
13
25
Concetti FondamentaliIntroduzione
Base di dati, tabella, ennupla, attributo, dominio
Valori nulli
Vincoli di chiave, di ennupla, di riferimento
Caratteristiche del modello
26
matricola cognome nome dataNascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
Studenti
codice titolo docentea01 Analisi Pincoc02 Chimica Brunic04 Chimica Verdi
Corsi
matricola voto corso3456 30 c043456 24 c029283 28 a016554 26 a01
lode1000
Esami
Base di Dati
Top Related