Basi di Dati - · PDF file25/02/2004 1 Basi di Dati Sistemi per Basi di Dati Relazionali:...
date post
14-Feb-2019Category
Documents
view
223download
0
Embed Size (px)
Transcript of Basi di Dati - · PDF file25/02/2004 1 Basi di Dati Sistemi per Basi di Dati Relazionali:...
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 sullindipendenza dei datiDisponibile in DBMS reali dal 1981ANSI/ISO SQL-92
4
AttenzioneLobiettivo 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 matricoleidentificatori
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
25/02/2004
10
19
Vincoli di Ennupla
TABLE Esami (matricola integer,voto integer,corso char(3),lode bool,CHECK (voto>=18 and voto=18 and voto
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
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