La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.

Presentazioni simili


Presentazione sul tema: "G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione."— Transcript della presentazione:

1 G. Mecca – mecca@unibas.it – 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)

2 2 G. Mecca - mecca@unibas.it - Basi di Dati Concetti Fondamentali m Introduzione m Base di dati, tabella, ennupla, attributo Sintassi per la Descrizione delle Tabelle m Valori nulli m Vincoli di chiave, di ennupla, di riferimento m Caratteristiche del modello Rappresentazione di Informazione Nidificata DBMS Relazionali – Modello Logico >> Sommario

3 3 G. Mecca - mecca@unibas.it - Basi di Dati Introduzione m Modello logico dei DBMS commerciali m Storia: Basato sul Modello Relazionale [E. F. Codd, 1970] Centrato sullindipendenza dei dati Disponibile in DBMS reali dal 1981 ANSI/ISO SQL-92 DBMS Relazionali – Modello Logico >> Concetti Fondamentali

4 4 G. Mecca - mecca@unibas.it - Basi di Dati Attenzione m Lobiettivo di questa lezione è descrivere le caratteristiche del modello m Non ci occupiamo, per ora: delle tecniche per manipolare i dati >> linguaggio dei metodi per costruire la base di dati (come scegliere le tabelle e valutare la qualità) >> metodologia di progetto DBMS Relazionali – Modello Logico >> Concetti Fondamentali

5 5 G. Mecca - mecca@unibas.it - Basi di Dati Intuizione m Base di dati insieme di tabelle m Tabella collezione di ennuple m Ennupla: insieme di coppie (attributo, valore) analogo nei linguaggi di programmazione: struttura o record DBMS Relazionali – Modello Logico >> Concetti Fondamentali

6 6 G. Mecca - mecca@unibas.it - Basi di Dati Esempio: Studenti, Corsi, Esami m Base di dati universitari m Studenti nome, cognome, matricola, data di nascita m Corsi codice, nome del corso, nome del docente m Esami sostenuti corso, studente, voto DBMS Relazionali – Modello Logico >> Concetti Fondamentali

7 7 G. Mecca - mecca@unibas.it - Basi di Dati Studenti, Corsi, Esami m Studenti nome: stringa cognome: stringa matricola: intero data di nascita: data m Corsi codice: stringa nome: stringa nome del docente: stringa m Esami sostenuti corso: riferimento ad un corso studente: riferimento ad uno studente voto: intero lode: sì/no DBMS Relazionali – Modello Logico >> Concetti Fondamentali

8 8 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali Studenti TABLE Studenti(matricola integer, cognome char(20), nome char(20), dataNascita date); matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 ennupla attributovalore schema (esempio di sintassi) dominio (tipo) tabella (istanza) Studenti

9 9 G. Mecca - mecca@unibas.it - Basi di Dati Corsi DBMS Relazionali – Modello Logico >> Concetti Fondamentali TABLE Corsi (codice char(3), titolo char(50), docente char(20)); codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero Corsi

10 10 G. Mecca - mecca@unibas.it - Basi di Dati matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami DBMS Relazionali – Modello Logico >> Concetti Fondamentali TABLE Esami (matricola integer, voto integer, corso char(3), lode bool); matricola di uno studente codice di un corso Esami

11 11 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero Corsi matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami Base di Dati

12 12 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali Schema della Base 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);

13 13 G. Mecca - mecca@unibas.it - Basi di Dati Valori Nulli DBMS Relazionali – Modello Logico >> Concetti Fondamentali matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 123PaoloRossiNULL Studenti codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero POOProg. a OggettiNULL Corsi valore nullo

14 14 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli sui Dati m Regole della realtà di interesse m Unicità di codici di corso e matricole identificatori m Voti degli studenti da 18 a 30 lode solo se il voto è 30 m Correttezza dei riferimenti DBMS Relazionali – Modello Logico >> Concetti Fondamentali

15 15 G. Mecca - mecca@unibas.it - Basi di Dati matricolacorsovotolode 333PR127false 77777PR135false 77777ASD20true 88888PR130false 9999INFT30true matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 77777PincoPietro01/10/1984 Una Base di Dati Scorretta DBMS Relazionali – Modello Logico >> Concetti Fondamentali unicità della matricola voti scorretti riferimento scorretto Studenti Esami

16 16 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Integrità m Regole imposte sui valori della base di dati m Vincoli sulle singole tabelle vincoli di chiave vincoli di ennupla m Vincoli tra tabelle diverse vincoli di riferimento o di integrità referenziale DBMS Relazionali – Modello Logico >> Concetti Fondamentali

17 17 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Integrità m Vincoli di chiave chiave: identificatore per le ennuple es: matricola è una chiave per Studenti m Vincoli di ennupla predicati sui valori delle ennuple es: (voto>=18 and voto<=30) m Vincoli di Riferimento assenza di riferimenti inesistenti es: esistono esami solo per gli studenti della bd DBMS Relazionali – Modello Logico >> Concetti Fondamentali

18 18 G. Mecca - mecca@unibas.it - 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 matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti

19 19 G. Mecca - mecca@unibas.it - 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)); matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami

20 20 G. Mecca - mecca@unibas.it - 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)); matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami

21 21 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali Schema con 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 22 G. Mecca - mecca@unibas.it - Basi di Dati Caratteristiche del Modello m Legami tra i dati basati sui valori assenza di puntatori m 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) DBMS Relazionali – Modello Logico >> Concetti Fondamentali

23 23 G. Mecca - mecca@unibas.it - 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) 1Carburatore57,00 2Pasticche freni120,00 1Manodopera70,57 Totale247,57 Da Gigino – Officina Meccanica via della Fisica – Potenza FATTURA n. 50 del 12/10/2003 Cliente: Pinco Pietro (tel. 0971/23456) 1Testata motore257,00 1Punterie motore150,00 2Semiassi anteriori170,00 1Manodopera300,00 Totale877,00

24 24 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali Una Possibile Rappresentazione numdataclientetelefonototale 2312/10/2003Pinco Palla 0971/56789 247,57 5012/10/2003Pinco Pietro 0971/23456 877,00 Fatture fatturaquantitagenerecostoTot 231Carburatore57,00 232Pasticche freni120,00 231Manodopera70,57 501Testata motore257,00 501Punterie motore150,00 502Semiassi anteriori170,00 501Manodopera300,00 Voci

25 25 G. Mecca - mecca@unibas.it - Basi di Dati Concetti Fondamentali m Introduzione m Base di dati, tabella, ennupla, attributo Sintassi per la Descrizione delle Tabelle m Valori nulli m Vincoli di chiave, di ennupla, di riferimento m Caratteristiche del modello Rappresentazione di Informazione Nidificata DBMS Relazionali – Modello Logico >> Sommario

26 26 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Concetti Fondamentali matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero Corsi matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami Base di Dati

27 27 G. Mecca - mecca@unibas.it - Basi di Dati Ringraziamenti m Lesempio Studenti-Corsi-Esami è stato ispirato dal corrispondente esempio utilizzato dal Prof. Paolo Atzeni (atzeni@dia.uniroma3.it) nel suo materiale didattico per il corso di Basi di Dati. m Lesempio delle Fatture è stato ispirato dallesempio delle Ricevute del Ristorante utilizzato dal Prof. Paolo Atzeni (atzeni@dia.uniroma3.it) nel suo materiale didattico per il corso di Basi di Dati.

28 28 G. Mecca - mecca@unibas.it - Basi di Dati Termini della Licenza m 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. http://creativecommons.org/licenses/by-sa/1.0/ m 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 allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. http://creativecommons.org/licenses/by-sa/1.0/


Scaricare ppt "G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione."

Presentazioni simili


Annunci Google