Basi di Dati - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Basi di Dati

Description:

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 ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 29
Provided by: GMeccam5
Category:
Tags: basi | dati

less

Transcript and Presenter's Notes

Title: Basi di Dati


1
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)
2
Concetti 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

3
Introduzione
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

4
Attenzione
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

5
Intuizione
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

6
Esempio 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

7
Studenti, 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

8
Studenti
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)
9
Corsi
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))
10
Esami
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)
11
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
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
12
DBMS 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)
13
Valori 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
14
Vincoli 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

15
Una 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
16
Vincoli 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

17
Vincoli 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

18
Vincoli 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))
19
Vincoli 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))
20
Vincoli 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))
21
DBMS 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))
22
Caratteristiche 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)

23
Un 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
24
Una 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
25
Concetti 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

26
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
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
27
Ringraziamenti
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.

28
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/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.
Write a Comment
User Comments (0)
About PowerShow.com