21
1 Laboratorio di Informatica AA 2006/2007 1 Basi di dati (database) Laboratorio di Informatica AA 2006/2007 2 Scopo Gestione dell’informazione • Informazione: difficile da definire ma a tutti è chiara l’importanza della sua gestione in diversi tipi di attività Esempi: aziende, banche, anagrafi, università, compagnie aeree, ...

Basi di dati (database)homes.di.unimi.it/frosio/Lessons/AY2006-2007-LdI/Presentazioni/LdI... · DATI Sistema informatico • Basi di dati: collezione di dati che rappresentano informazioni

Embed Size (px)

Citation preview

1

Laboratorio di Informatica AA 2006/2007

1

Basi di dati (database)

Laboratorio di Informatica AA 2006/2007

2

Scopo

• Gestione dell’informazione• Informazione: difficile da definire ma a tutti

è chiara l’importanza della sua gestione in diversi tipi di attività

• Esempi: aziende, banche, anagrafi, università, compagnie aeree, ...

2

Laboratorio di Informatica AA 2006/2007

3

Gestione dei dati

• Aggiunta nuovi dati;• Aggiornamento dati esistenti;• Cancellazione;• Richiesta di informazioni relative ad un utente;• Elaborazioni statistiche…

• Per eseguire tali operazioni, devono essere allocate delle risorse.

Laboratorio di Informatica AA 2006/2007

4

Sistema informativo

• Insieme delle risorse di un’organizzazione dedicate alla gestione dell’informazione

• Gestione: acquisizione, elaborazione, conservazione, produzione

• Il concetto di sistema informativo esiste da secoli (es.: anagrafi)

3

Laboratorio di Informatica AA 2006/2007

5

Sistema informatico

• Parte del sistema informativo che gestisce l’informazione automaticamente (calcolatori, reti, software, ...)

SistemainformaticoSiste

ma informativo

Laboratorio di Informatica AA 2006/2007

6

Dati e informazione

• Dati: stringhe di caratteri, numeri, immagini, suoni, ...

• Informazione: veicolata dai dati opportunamente interpretati

• Esempio:“Paolo”, “Rossi”, 1100 nome, cognome del direttore, stipendio

dati

interpretazione

4

Laboratorio di Informatica AA 2006/2007

7

L’informazione nei sistemi informatici

Rappresentazione Interpretazione

Informazione InformazioneDATI

Sistema informatico

• Basi di dati: collezione di dati che rappresentano informazioni di interesse per un certo sistema informativo

Laboratorio di Informatica AA 2006/2007

8

Problemi con la gestione dei dati

• I programmi tradizionali operano indipendentemente su copie di dati

Prog1

copia1

Prog2

copia2

Prog3

copia3

• Problemi: inconsistenzaridondanza

5

Laboratorio di Informatica AA 2006/2007

9

Inconsistenza e ridondanza• sia D un database che contiene i nomi degli N studenti

Unimi al tempo t;• l’utente A usa il programma A per aggiungere un nuovo

studente a D;• nel frattempo, l’utente B usa il programma B per

aggiungere due nuovi studenti a D;• Quanti studenti ha Unimi al tempo t+1?• Secondo A ne ha N+1;• Secondo B ne ha N+2;• In realtà ne ha N+3!

• Informazioni ridondanti (N studenti replicati) sui PC di A e di B.

Laboratorio di Informatica AA 2006/2007

10

Soluzione ottimale

• Unica risorsa dati accessibile a piùprogrammi

Prog2

Prog1

Prog3

6

Laboratorio di Informatica AA 2006/2007

11

DBMS Data Base Management System

• Sistemi software per la gestione di collezioni di dati che siano: grandi, condivise, persistentiassicurando: affidabilità e privatezza

• BASE DI DATI = collezione di dati gestita da un DBMS

Laboratorio di Informatica AA 2006/2007

12

Modello logico e fisico dei dati

• Modello logico: regole per strutturare i dati secondo certe proprietà + operazioni sui dati

• Modello fisico: rappresentazione delloschema logico mediante strutture fisiche dimemorizzazione. Es.: file, liste, alberi, ...

DATIBASE DI DATI

=DATI + DBMS

7

Laboratorio di Informatica AA 2006/2007

13

DBMS: Architettura ANSI/SPARC

Schema esterno

Schema logico

Schema fisico

DATI

utente

Schema esternoutente

Schema esternoutente

Laboratorio di Informatica AA 2006/2007

14

I linguaggi nei DBMS

• DDL: data definition languagedefinisce gli schemi esterni, logici, fisici e le autorizzazioni d’accesso

• DML: data manipulation languageconsente di interrogare e di aggiornare la base di dati

• Nelle basi di dati relazionali (che vedremo), SQL contiene entrambe le funzionalità

8

Laboratorio di Informatica AA 2006/2007

15

Progettazione di basi di dati

• Problema: quali informazioni inserire in una base di dati e quali legami esistono tra di esse?

• Schema concettuale di una base di dati da cui ricavare la struttura dei dati secondo il modello logico del DBMS (schema logico)

• Uno strumento per esprimere schemi concettuali: i diagrammi Entità-Relazione(E-R)

Laboratorio di Informatica AA 2006/2007

16

I diagrammi E-R

• Entità: classi di oggetti rilevanti

• Relazioni: legami tra entità

• Attributi: descrivono proprietàrilevanti di entità e relazioni

ENTITA’

RELAZIONE

attributo

9

Laboratorio di Informatica AA 2006/2007

17

Uno schema concettuale

• E-R per una base di dati in cui archiviare studenti, materie e relativi esami

ESAME MATERIASTUDENTEmatricola

cognomenome

nome

titolare

data voto

Laboratorio di Informatica AA 2006/2007

18

Identificatori

• Gruppi di attributi che identificano univocamente le occorrenze di un’entità

ESAME MATERIASTUDENTEmatricola

cognomenome

nome

titolare

data voto

identificatore singolo

identificatore multiplo

10

Laboratorio di Informatica AA 2006/2007

19

Cardinalità delle relazioni

• molti a molti (N-N):

ESAME MATERIASTUDENTEN N

• Ogni studente può aver sostenuto più esami• Ogni esame può essere stato dato da più

studenti

Laboratorio di Informatica AA 2006/2007

20

Cardinalità delle relazioni

• uno a molti (1-N):

ISCR CdLSTUDENTE1 N

• Ogni studente è iscritto ad un corso di laurea

• Ogni corso di laurea può avere più iscritti

11

Laboratorio di Informatica AA 2006/2007

21

Cardinalità delle relazioni

• uno a uno (1-1):

DIRIGE DIPARTDIRETTORE1 1

• Ogni direttore dirige un dipartimento• Ogni dipartimento ha un direttore

Laboratorio di Informatica AA 2006/2007

22

Il modello relazionale

• I dati vengono strutturati in tabelle

Record: righe della tabella

Campi: colonne della tabellamatr nome cognome

305011 Carlo Rossi356433 Mario Verdi345553 Franco Verdi345434 Daniele Rossi

STUDENTI

Tabella: STUDENTI(matr, nome, cognome)

12

Laboratorio di Informatica AA 2006/2007

23

Schema e istanze

Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 5/12/1978 8765 Neri Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 1/2/1978

Codice Titolo Docente 01 Analisi Neri 02 Chimica Bruni 04 Chimica Verdi

STUDENTEStudente Voto Corso

3456 30 04 3456 24 02 9283 28 01 6554 26 01

ESAME

MATERIA

Istanza

STUDENTE(Matricola, Cognome, Nome, Data di Nascita),CORSO(Codice, Titolo, Docente), ESAME(Studente, Voto, Corso) Schema

Laboratorio di Informatica AA 2006/2007

24

I legami tra i dati

• Il modello relazionale è basato sui valori

Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 5/12/1978 8765 Neri Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 1/2/1978

Codice Titolo Docente 01 Analisi Neri 02 Chimica Bruni 04 Chimica Verdi

Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01

STUDENTE

ESAME

MATERIA

13

Laboratorio di Informatica AA 2006/2007

25

Vincoli di integrità

• Proprietà che le istanze devono soddisfare• Tipi di vincoli

intrarelazionali: su campi, su record, su tabellainterrelazionali: su più tabelle

(integrità referenziale)

Laboratorio di Informatica AA 2006/2007

26

Esempi di vincoli

Studenti Matricola Cognome Nome Nascita276545 Rossi Maria 23/04/1968276545 Neri Anna 23/04/1972788854 Verdi Fabio 12/02/1972

Esami Studente Voto Lode Corso 276545 28 e lode 01 276545 32 02 788854 23 03 200768 30 e lode 03

Corsi Codice Titolo Docente01 Analisi Giani03 NULL NULL

02 Chimica Belli

Con tabellaStudenti

Vincoli Interrelazionali

Vincolo surecord

Vincolo sucampo

Vincoli Intrarelazionali

Vincolo sutabella

14

Laboratorio di Informatica AA 2006/2007

27

Chiave• Insieme minimale di attributi che identifica

univocamente i record di una tabella

Matr Nome Cognome301 Carlo Rossi 302 Marco Neri 311 Guido Mauro

STUDENTE

Matricola Cognome Nome Esame Data Voto6554 Rossi Mario Informatica 5/12/2000 246554 Rossi Mario Matematica 3/2/2001 276554 Rossi Mario Fisica 3/2/2001 30

ESAME

Laboratorio di Informatica AA 2006/2007

28

Chiave esterna eintegrità referenziale

• Attributo/i che costituiscono la chiave di un’altra tabella

Studenti Matricola Cognome Nome Nascita276545 Rossi Maria 23/04/1968276543 Neri Anna 23/04/1972788854 Verdi Fabio 12/02/1972

Esami Studente Voto Lode Corso276545 28 Fisica276545 18 Analisi788854 23 Analisi788854 30 e lode Algebra

Vincolo di integrità

referenziale

15

Laboratorio di Informatica AA 2006/2007

29

Dai diagrammi E-R alle tabelle

• molti a molti (N-N):

STUDENTE(matr, nome, cognome) MATERIA(id, nome)

ESAME(matr, id, voto)

nome

cognome

matr

ESAME

votoN N

STUDENTE MATERIA nome

id

Laboratorio di Informatica AA 2006/2007

30

Dai diagrammi E-R alle tabelle

• uno a molti (1-N):

STUDENTE(matr, nome, cognome, cdl, anno) CdL(id, nome)

nome

cognome

matr

ISCR

anno1 N

STUDENTE CdL nome

id

• A volte è preferibile tradurre come nel caso N-N

16

Laboratorio di Informatica AA 2006/2007

31

Dai diagrammi E-R alle tabelle

• uno a uno (1-1):

DIRETTORE(matr, nome, cognome, id, nome-dip, anno)

nome

cognome

matr

DIRIGE

anno1 1

DIRETTORE DIPART nome

id

• A volte è preferibile tradurre come nel caso 1-N

Laboratorio di Informatica AA 2006/2007

32

Query (interrogazioni)

• Query: estrazione da un data base di informazioni che soddisfa certe proprietà

• Come esprimere le query:SQL: Structured Query LanguageQBE: Query by Example di AccessAlgebra relazionale: un linguaggio formale...

• In comune hanno un insieme di operatori

17

Laboratorio di Informatica AA 2006/2007

33

Operatori su tabelle

• Operatori insiemistici:unioneintersezionedifferenza

• Operatori relazionali:proiezioneselezionejoin (naturale)

binari

unari

binario

Laboratorio di Informatica AA 2006/2007

34

Operatori insiemistici: unione

• L’unione di due tabelle con attributi compatibili è una tabella con lo stesso schema contenente l’unione dei record

CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20

CICLISMO

CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20

CALCIO

CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20 RSSY Rossi 20

CICLISMO ∪ CALCIO

Appassionati di ciclismo o di calcio

18

Laboratorio di Informatica AA 2006/2007

35

Operatori insiemistici: intersezione

• L’intersezione di due tabelle con attributi compatibili è una tabella con lo stesso schema contenente l’intersezione dei record

CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20

CICLISMO

CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20

CALCIO Appassionati di ciclismo e di calcio

CF Cognome Eta` NRXY Neri 21 VRDX Verdi 20

CICLISMO ∩ CALCIO

Laboratorio di Informatica AA 2006/2007

36

Operatori insiemistici: differenza• La differenza di due tabelle con attributi

compatibili è una tabella con lo stesso schema contenente i record presenti nella prima ma non nella seconda

CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20

CICLISMO

CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20

CALCIO

Appassionati di calcio ma non di ciclismo

CF Cognome Eta` RSSY Rossi 20

CALCIO - CICLISMO

CF Cognome Eta` RSSX Rossi 20

CICLISMO - CALCIO

Appassionati di ciclismo ma non di calcio

19

Laboratorio di Informatica AA 2006/2007

37

Operatori relazionali: proiezione

• La proiezione su una tabella produce una tabella con gli attributi specificati e contenente gli stessi record “ristretti”

Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica55655 Marco Rossi Lettere

STUDENTI

Elencare cognomi e nomi degli studenti

Cognome NomeRossi Paolo

Bianchi PieroVerdi PieroRossi Marco

πCognome,Nome(STUDENTI)

Laboratorio di Informatica AA 2006/2007

38

Operatori relazionali: selezione

• La selezione su una tabella produce una tabella con gli stessi attributi contenente record che soddisfano un certo predicato

Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica55655 Marco Rossi Lettere

STUDENTI

σ Nome = ‘Piero’ or CdL = ‘Fisica’ (STUDENTI)

Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica

Quali sono gli studenti con nome ‘Piero’ o iscritti a ‘Fisica’?

20

Laboratorio di Informatica AA 2006/2007

39

Operatori relazionali: prodotto cartesiano

• Il prodotto di due tabelle produce una tabella con l’unione degli attributi contenente le concatenazioni dei record

Tutte le possibili concatenazioni

tra record

Cognome Corso

Rossi FisicaBianchi Fisica

Nome Materia

Fisica MeccanicaMatematica Algebra

STUDENTI CdL

Cognome Corso Nome Materia

Rossi Fisica Fisica MeccanicaRossi Fisica Matematica Algebra

Bianchi Fisica Fisica MeccanicaBianchi Fisica Matematica Algebra

STUDENTI × CdL

Laboratorio di Informatica AA 2006/2007

40

Operatori relazionali: join• Il join tra due tabella produce una tabella con

l’unione degli attributi contenente le concatenazioni dei record concordanti sugli attributi comuni

Situazione esami degli studenti

Matricola Cognome Nome6554 Rossi Mario8765 Neri Paolo9283 Verdi Luisa3456 Rossi Maria

Matricola Voto Corso3456 30 Analisi3456 24 Fisica9283 28 Fisica

STUDENTE ESAME

Matricola Cognome Nome Voto Corso3456 Rossi Maria 30 Analisi3456 Rossi Maria 24 Fisica9283 Verdi Luisa 28 Fisica

STUDENTI ESAME

21

Laboratorio di Informatica AA 2006/2007

41

Esercitazione

• Consideriamo la seguente basi di dati per l’archiviazione di noleggi di CD

ID-Cliente ID-CD data

10 1 23/7/20029 1 11/9/2002

11 3 15/2/200310 2 30/3/2003

NOLEGGIO

ID -CD Titolo Artista

1 Up REM2 October U23 Syncronicity Police

CD

Cognome Nome ID-Cliente

Rossi Paolo 10Bianchi Maria 11Verdi Carlo 9

CLIENTE

CLIENTE(Cognome, Nome, ID-Cliente)CD(ID-CD, Titlo, Artista)NOLEGGIO(ID-Cliente, ID-CD, data)

Laboratorio di Informatica AA 2006/2007

42

Esempi di query

• Eseguire le seguenti query:a) Artista e titolo dei cd noleggiati dal signor

Paolo Rossi;b) Nome e cognome dei clienti che hanno

noleggiato cd dei REM; c) Titolo dei cd che sono stati noleggiati dal

cliente avente codice 10 oppure dal cliente avente codice 11.