1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi...

71
1 Sommario Sommario Le basi di dati Le basi di dati Cenni storici e introduzione Cenni storici e introduzione Da sistemi informativi a sistemi Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS informatici: le basi di dati e i DBMS Il modello relazionale Il modello relazionale Vincoli Vincoli Chiavi Chiavi Algebra relazionale Algebra relazionale UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti. L’algebra di Boole Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true true e false false, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

Transcript of 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi...

Page 1: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

1

SommarioSommario

Le basi di datiLe basi di datiCenni storici e introduzioneCenni storici e introduzione

Da sistemi informativi a sistemi informatici: le Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS basi di dati e i DBMS

Il modello relazionaleIl modello relazionaleVincoliVincoli

ChiaviChiavi

Algebra relazionaleAlgebra relazionale

UNIVAC

Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti.

L’algebra di Boole

Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true true e falsefalse, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati.

Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di veritàtabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

UNIVAC

Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti.

L’algebra di Boole

Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true true e falsefalse, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati.

Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di veritàtabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

Page 2: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

2

Le basi di datiLe basi di dati

Page 3: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

3

Cenni storiciCenni storici

L’avvento dell’informatica ha permesso l’integrazione, in un unico programma applicativo, delle funzionalità di archiviazione e gestione dei dati

Gli archivi costituiscono una memoria di lavoro indispensabile per gestire quantità ingenti di informazione, per ordinare gli elementi significativi, metterli in relazione, e filtrare i dati che devono essere utilizzati nelle varie circostanze

Prima della diffusione dei sistemi informatici, gli archivi erano gestiti in forma cartacea, con schedari e registri, che permettevano di catalogare e ordinare i dati secondo un unico criterio di ricerca e rendevano disagevole il recupero e l’analisi dell’informazione

Page 4: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

4

Introduzione Introduzione 1 1

Le basi di dati, ed i relativi programmi di gestione, sono sistemi che permettono la manipolazione di grandi quantità di informazione, per raggiungere gli scopi di una qualche organizzazione (azienda, istituzione, etc.):

Raccolta, acquisizioneArchiviazione, conservazioneElaborazione, trasformazione, produzioneDistribuzione, comunicazione, scambio

Page 5: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

5

Introduzione Introduzione 2 2

Le attività di gestione delle informazioni, così come le informazioni stesse, mentre a livello umano possono essere realizzate usando idee informali e linguaggio naturale, a livello informatico devono essere opportunamente formalizzate e codificate

Tuttavia, tali formalizzazioni sono per lo più anteriori alla realizzazione dei sistemi informatici

Nei sistemi informatici le informazioni vengono rappresentate in modo strutturato ed essenziale (mediante i dati)

Page 6: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

6

Introduzione Introduzione 3 3

Il database permette la creazione di una memoria digitale vasta ed “intelligente”, che può essere utilizzata a diversi livelli di complessità

Il database è un insieme integrato di informazioni omogenee, che fornisce strumenti, quali tabelle, queryquery, maschere e report, per la catalogazione, l’ordinamento e la ricerca dei dati

Page 7: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

7

Basi di dati oggi...Basi di dati oggi...

DBMS

borsa

DBMS

orari

Sistemi informativiSistemi informativi

InformazioniInformazioni

DatiDati

Page 8: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

8

Sistema informativoSistema informativo

Sottosistema di un’organizzazione che gestisceacquisizioneelaborazioneconservazioneproduzione (distribuzione)

delle informazioni informazioni di interesseOgni organizzazione ha un sistema informativo

Le informazioni sono un “bene”

L’esistenza del sistema informativo è indipendente dalla sua automazione (sistema sistema informaticoinformatico)

Page 9: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

9

Sistema informaticoSistema informatico

Gestisce un sistema informativo in modo automatizzatoGarantisce che i dati siano conservati in modo permanente su dispositivi di memoriaPermette un aggiornamento veloce dei dati per riflettere rapidamente le loro variazioniRende i dati accessibili alle interrogazioni degli utentiPuò essere distribuito sul territorioNotaNota: prima di essere automatizzati, molti sistemi informativi si sono evoluti verso una razionalizzazione e standardizzazione delle razionalizzazione e standardizzazione delle procedure e dellprocedure e dell’’organizzazione delle informazioniorganizzazione delle informazioni

Page 10: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

10

Gestione delle informazioniGestione delle informazioni

Modo di gestire e comunicare le informazioni

accesso, elaborazione, trasmissioneaccesso, elaborazione, trasmissione

lingua scritta e parlatadisegni, grafici, schemicodici e numeri

Modo di memorizzare l’informazionericordata a memoriacopia cartaceain formato elettronico

Page 11: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

11

Sistemi per la gestione Sistemi per la gestione di informazionidi informazioni

Nelle attività standardizzate dei sistemi informativi complessi sono state introdotte col tempo

forme di organizzazione eforme di organizzazione e

codifica delle informazionicodifica delle informazioni

Ad esempio, nei servizi anagraficiservizi anagrafici si è iniziato con registrazioni discorsive e poi

 nome e cognomeestremi anagrafici codice fiscale... una chiavechiave per tutti!

Page 12: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

12

I sistemi informativiI sistemi informativi

Rendono disponibili le informazioniPermettono di gestirle in maniera efficaceNon sono legati alla loro realizzazione automatizzata (sistema informatico)

L’informazione si ottiene interpretando opportunamente i dati

Numero di telefono di Mario Rossi

Informazione dato

0577233601NumeroMario RossiMario Rossi

Page 13: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

13

Dati e informazioniDati e informazioni

DatoDato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; in informatica, elementi di informazione costituiti da simboli che devono essere elaborati

InformazioneInformazione: notizia o elemento che consente di avere conoscenza di fatti, situazioni, modi di essere

Page 14: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

14

Base di datiBase di dati

È una collezione di dati utilizzata per rappresentare le informazioni di interesse in un sistema informativo

I dati hanno vita più lunga delle procedure che operano su di essi

Gestione di una base di dati

Organizzazione e conservazione dei dati Operazioni per la gestione e l’accesso ai

dati

Page 15: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

15

Un esempio: la rubrica Un esempio: la rubrica telefonicatelefonica

Dati

Nome Cognome Indirizzo Telefono

Operazioni

Cercare un numero, dato il nome Inserire un nuovo numero Modificare un indirizzo ……

Mario Rossi Via Garibaldi 10 0577233601

Page 16: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

16

Basi di dati: dove si trovano?Basi di dati: dove si trovano?

AnagrafeAnagrafe — anagrafe residenti, anagrafe studentiServizi bancariServizi bancari — conti correnti, Bancomat, carte di creditoElenchi delle utenze telefonicheElenchi delle utenze telefonicheOrari ferroviariOrari ferroviariPrenotazione voliPrenotazione voliCatalogo prodottiCatalogo prodotti (CD,…)……

Accessibili in modo distribuito (Sportelli Bancomat, negozi,...) Accessibili da Internet (Orari FFSS, siti di ecommerce,...) Accessibili da terminali dedicati (Agenzie di viaggio, biblioteche...) ……

Page 17: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

17

DBMSDBMS

DBMSDBMS — Data Base Management SystemData Base Management System — è un sistema software per gestire basi di dati: ha il compito di amministrare i file in una base di dati, in modo persistente e condiviso

Grandi dimensioniGrandi dimensioni uso della memoria secondariaCondivisione Condivisione accesso di più utenti a dati comuni; si riduce la ridondanza dei dati e la possibilità di inconsistenze ed errori; necessario un meccanismo di contollo di concorrenzacontollo di concorrenzaPersistenzaPersistenza i dati rimangono memorizzatiAffidabilitàAffidabilità capacità di non perdere i dati in caso di malfunzionamento (backupbackup e recoveryrecovery )PrivatezzaPrivatezza ciascun utente è riconosciuto da un usernameusername e una passwordpassword e ha autorizzazione ad effettuare soltanto certe operazioniEfficienzaEfficienza capacità di svolgere le operazioni in tempo ragionevole e con risorse di calcolo e memoria accettabili

Caratteristiche

Page 18: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

18

A cosa serve una base di dati A cosa serve una base di dati 1 1

Per l’utente finale, l’uso più comune di una base di dati è l’esecuzione di opportune interrogazioni, queryquery, predefinite

Esempi tipici di interrogazioni sono… l’accesso al catalogo elettronico di una bibliotecala consultazione (online oppure sulle apposite macchine nelle stazioni) degli orari dei trenila prenotazione di un volo aereola consultazione delle informazioni relative all’andamento dei titoli in borsa……

Page 19: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

19

A cosa serve una base di dati A cosa serve una base di dati 2 2

Le interrogazioni possono essere molto semplici… Elencami tutti i libri di Calvino che sono presenti in biblioteca

…ma possono essere anche molto complesseElencami i libri di Calvino che nel titolo hanno una parola che compare anche nel titolo di un libro di Pavese e che sono stati presi in prestito almeno 10 volte

Le interrogazioni possono essere espresse usando opportuni linguaggi, detti query languagequery language, che si differenziano in base al modello dei dati adottato L’uso di linguaggi di programmazione specializzati costituisce la maggiore differenza fra le basi di dati ed i fogli elettronici (oltre alla diversa quantità di informazione trattabile)

Page 20: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

20

Descrizione dei dati nei DBMSDescrizione dei dati nei DBMS

Livelli diversi di descrizione e rappresentazione dei dati

permettono l’indipendenza dei datiindipendenza dei dati dalla rappresentazione fisicai programmi fanno riferimento alla struttura a livello più altole rappresentazioni fisiche possono essere modificate senza necessità di modifica dei programmi

Si introduce il concetto dimodello dei datimodello dei dati

modalità usata per organizzare i dati e descriverne la struttura: offre meccanismi di rappresentazione per descrivere sinteticamente il formato dei dati

Page 21: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

21

Il modello dei datiIl modello dei dati

Modalità prescelta per l’organizzazione dei dati e per descriverne la struttura:

Il modello relazionalerelazionale permette di organizzare i dati in insiemi di record a struttura fissarecord a struttura fissa (concetto di relazione)

recordrecord

RelazionaleRelazionale, gerarchica, reticolare, ad oggetti..., gerarchica, reticolare, ad oggetti...

NomeNome CognomeCognome IndirizzoIndirizzo TelefonoTelefono

Mario Rossi Via Verdi 5 0577234567

Marco Bianchi Via Righi 73 0557456783

Anna Dati Via Romeo 4 0578345234

Page 22: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

22

Schemi ed istanzeSchemi ed istanze

SchemaSchema: parte non variabile dei dati, è il formato del record (nome della relazione ed attributi)

IstanzaIstanza (stato): valori effettivi contenuti nella base di dati

RUBRICA(Nome,Cognome,Indirizzo,Telefono)

Mario Rossi Via Verdi 5 0577234567 Marco Bianchi Via Righi 73 0557456783 Anna Dati Via Romeo

4 0578345234

Page 23: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

23

Schemi e astrazioneSchemi e astrazione

rappresentazione dello schema logico per

mezzo di strutture di memorizzazione (file)

il livello logico è indipendente da quello fisico: una tabella è utilizzata nello stesso modo qualunque sia la sua realizzazione

fisica (che può anche variare nel tempo)

utente(applicazioni)

DB

schema logico

schema fisico

descrizione della base di datinel modello logico

(es., struttura della tabella)

schema esterno (vista)

descrizione, allo stesso livello di astrazione dello schema logico, di una parte della base di dati (es., la parte accessibile ad una classe di utenti)

Page 24: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

24

EsempioEsempio

CorsoCorso DocenteDocente

Basi di dati Rossi

Impianti Neri

Linguaggi e traduttori

Verdi

CdCdLL

MateriaMateria AnnoAnno

II Basi di dati 5

II Impianti 5

II Linguaggi e traduttori

4

IE Basi di dati 5

IE Linguaggi e traduttori

5MANIFESTOMANIFESTO

DOCENZADOCENZA

CdCdLL

MateriaMateria AnnoAnno

IE Basi di dati 5

IE Linguaggi e traduttori

5

ELETTRONICAELETTRONICA

Una “vista” Una “vista” relazionalerelazionale

Page 25: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

25

Utenti di un DBMSUtenti di un DBMS

L’amministratore della base di datiamministratore della base di dati (DBA) è responsabile della progettazione, del controllo e dell’amministrazione della base di dati; configura il DBMS per garantirne le prestazioni, assicura l’affidabilità del sistema, gestisce le autorizzazioni di accessoI progettistiprogettisti e programmatori di applicazioniprogrammatori di applicazioni realizzano programmi che accedono alla base di dati; utilizzano gli strumenti di sviluppo per la creazione di interfacce verso la base di datiGli utentiutenti, in grado di utilizzare i linguaggi interattivi di interrogazione, effettuano transazioni transazioni (attività frequenti e predefinite) o attività casualicasuali

Page 26: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

26

Transazioni Transazioni 1 1

Programmi che realizzano attività frequenti e predefinite, con poche eccezioni, previste a prioriEsempi:

versamento presso uno sportello bancario emissione di un certificato anagrafico prenotazione aerea

Il termine transazionetransazione ha un’altra accezione, più specifica: una transazione è un insieme di operazioni sulla base di dati che devono essere considerate in modo indivisibile (o atomico); ovvero, o tutte le operazioni dell’insieme sono eseguite correttamente oppure nessuna

Page 27: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

27

Transazioni Transazioni 2 2

L’effetto di una transazione deve essere corretto, anche in presenza di transazioni concorrenti eseguite nello stesso intervallo di tempoGli effetti di una transazione conclusasi positivamente devono essere definitivi, ovvero devono essere garantiti anche in presenza di guasti e di esecuzione concorrenteCostituiscono una transazione...

...le operazioni di addebitamento dell’importo prelevato da un Bancomat e l’erogazione del denaro...lo spostamento di fondi fra due conti (le operazioni di accreditamento su un conto e addebitamento su un altro)

Page 28: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

28

Vantaggi e svantaggi dei DBMSVantaggi e svantaggi dei DBMS

VantaggiVantaggidati come risorsa comune a disposizione di tutta l’organizzazionegestione centralizzata con possibilità di standardizzazionedisponibilità di servizi integrati riduzione di ridondanze e inconsistenze grazie alla condivisioneindipendenza dei dati (favorisce lo sviluppo e la manutenzione delle applicazioni)

SvantaggiSvantaggi costo dei prodotti e della transizione verso di essi (strutture, hardware/software, personale) non scorporabilità di eventuali servizi non utili (con riduzione di efficienza)

Page 29: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

29

Il modello relazionaleIl modello relazionaleCodd, 1970Codd, 1970

Adottato dalla maggior parte dei DBMS in commercioDefinisce come sono organizzati i dati e non come sono memorizzati e gestiti dal sistema informatico

Relazione – TabellaRelazione – Tabella

Il concetto di relazionerelazione proviene dalla matematica, mentre quello di tabellatabella è intuitivo

Il modello relazionalemodello relazionale permette di trattare i dati a livello livello logicologico senza preoccuparsi del livello fisicolivello fisico, ovvero di come i dati sono effettivamente elaborati e memorizzati: per accedere ai dati non è necessario conoscere le strutture fisiche (file) con cui sono realizzati!

Page 30: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

30

Prodotto cartesiano Prodotto cartesiano 1 1

Consideriamo l’insieme dei nomi e dei numeri di telefono dei dipendenti di un’azienda:

Mario RossiLuca VerdiAnna Bianchi

2345236723782356

D1 D2

Il prodotto cartesianoprodotto cartesiano D1 D2 è l’insieme di tutte le coppie ordinate (NOME,TELEFONO)

Page 31: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

31

Prodotto cartesiano Prodotto cartesiano 2 2Mario Rossi 2345Mario Rossi 2367Mario Rossi 2378Mario Rossi 2356Luca Verdi 2345Luca Verdi 2367Luca Verdi 2378Luca Verdi 2356Anna Bianchi 2345Anna Bianchi 2367Anna Bianchi 2378Anna Bianchi 2356

Il prodotto cartesiano contiene tutte le possibili associazioni fra gli elementi degli insiemiLa rubrica dei numeri telefonici contiene solo alcune possibili coppie

Page 32: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

32

RelazioniRelazioni

Una relazione matematicarelazione matematica sugli insiemi D1 e D2 (dominidomini) è un sottoinsieme del prodotto cartesiano D1 D2

La rubrica contiene solo le coppie (NOME,TELEFONO) che esistono

Mario Rossi 2345Luca Verdi 2367Luca Verdi 2378Anna Bianchi 2356

Page 33: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

33

Un esempioUn esempio

D1 = Squadre di Serie A D2 = Squadre di Serie A

D3 = Numero D4 = Numero

Risultati delle partite della 27° giornata del campionato 2004/05

Relazione

Fiorentina Reggina 2 1Inter Lecce 2 1Messina Lazio 1 0Parma Cagliari 3 2Sampdoria Chievo 1 0Siena Brescia 2 3Udinese Bologna 0 1Livorno Palermo 2 2

Page 34: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

34

Relazioni con attributiRelazioni con attributi

Un nome può essere associato a ciascuna componente della nuplaI nomi associati ai domini si dicono attributiattributi e descrivono il ruolo che il dominio ha nella relazione

SquadraDiCasaSquadraDiCasa SquadraOspite RetiCasa RetiOspitataSquadraOspite RetiCasa RetiOspitata

Fiorentina Reggina 2 1

Ogni nupla della relazione stabilisce un legame fra i datiIl significato dei valori dipende dall’ordine con cui sono elencati nella nupla

Page 35: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

35

Record e campiRecord e campi

Ciascuna nupla della relazione può essere vista come un recordrecordGli attributi definiscono la struttura del record, ovvero i suoi campicampiSi può accedere al valore di un attributo di un record usando il nome del campo

tupletuple

SquadraDiCasaSquadraOspitata RetiCasa RetiOspitataFiorentina Reggina 2 1Inter Lecce 2 1Messina Lazio 1 0

Si usa il termine tuplatupla per indicare una riga di n valori corrispondenti ad attributi (l’ordine non è significativo)

Page 36: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

36

Tuple e relazioniTuple e relazioni

Una relazione su X è un insieme di tuple su X (X è un insieme di attributi)Si usa la definizione di tupla al posto di n–upla:

In una n–upla gli elementi sono individuati per posizioneIn una tupla gli elementi sono individuati per attributiIn una tupla gli elementi sono individuati per attributi

relazione tuple

attributi

serie A N dominiserie A N

SquadraDiCasaSquadraOspitata RetiCasa RetiOspitataFiorentina Reggina 2 1Inter Lecce 0 0Messina Lazio 1 0

Page 37: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

37

Relazioni e basi di datiRelazioni e basi di dati

Una base di dati è in genere costituita da più relazioni

Si possono creare corrispondenzecorrispondenze fra le tuple di relazioni distinte

Le corrispondenze si ottengono fra tuple di relazioni diverse aventi gli stessi valori su un insieme assegnato di attributi

Page 38: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

38

Corrispondenze fra relazioniCorrispondenze fra relazioni

Studente Voto CorsoA80198760 28 01A80293450 30 04A80198330 27 01A80198330 25 03A80197456 21 05

Codice Titolo Docente01 Analisi I Anna Verdi03 Geometria Andrea Pitagora04 Fisica I Luca Galileo05 Chimica Lorenzo Argenti

STUDENTISTUDENTI

CORSICORSI

ESAMIESAMI

Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/1982 A80198330 Neri Luca 04/08/1985 A80295640 Felici Lorenzo 25/02/1983 A80197456 Melli Mara 17/10/1980

Page 39: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

39

Schemi per basi di datiSchemi per basi di dati

Uno schema di relazioneschema di relazione R(X) è costituito dal nome della relazione e da un insieme di attributi, X={A1, A2,…, An}

Uno schema di base di datischema di base di dati è un insieme di schemi di relazioni con nomi diversi:

R={R1(X1), R2(X2),…, Rm(Xm)}

STUDENTI(Matricola, Cognome, Nome, Data di Nascita)

R = { STUDENTI(Matricola, Cognome, Nome, Data di Nascita), ESAMI(Studente, Voto, Corso), CORSI(Codice, Titolo, Docente) }

Page 40: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

40

Esempio: archivio fornitureEsempio: archivio forniture

PRODOTTIPRODOTTI

FORNITUREFORNITURE

CLIENTICLIENTI

Codice Descrizione Magazzino CostoA0001 Chiodi 35mm 234000 0.15A0004 Viti 12mm 102400 0.25P0010 Pinza 200 7P0230 Cacciavite 600 3.50

Articolo Quantita Data ClienteA0001 3000 25/06/2004 0034A0004 500 25/06/2004 0034P0010 3 12/07/2004 0001P0230 2 13/07/2004 0101A0004 100 15/07/2004 0034

Codice Nome Indirizzo P. IVA0001 Carlo Berti Via Roma 6 023320020034 BCD Spa Via Verdi 4 045543030101 A&G Srl Viale Morgagni 16 109203930076 Luca Nelli Piazza Bixio 5 08832822

Page 41: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

41

Informazione incompletaInformazione incompleta

Può accadere che il valore di un attributo non sia disponibile per tutte le tupleSi introduce un valore nullovalore nullo (NULLNULL) che denota l’assenza di informazione sul valore di un attributo per una data tuplaIl valore di un attributo può essere sconosciutosconosciuto, inesistenteinesistente o privo di informazioneprivo di informazione (non si sa se esiste)

Codice Nome Indirizzo P. IVA 0001 Carlo Berti Via Roma 6 NULL 0034 BCD Spa Via Verdi 4 04554303 0101 A&G Srl Viale Morgagni 16 NULL

inesistenteinesistente

sconosciutosconosciuto

Page 42: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

42

Vincoli di integritàVincoli di integrità

Occorre che le tuple rappresentino informazioni corrette per l’applicazione:

Ex: Valori nulli

Può essere accettabilePuò essere accettabile

Non ammesso!Non ammesso!

Alcuni campi non possono assumere valori nulli!Alcuni campi non possono assumere valori nulli!

STUDENTISTUDENTI

In generale, occorre che i valori assegnati agli attributi in ciascuna tupla soddisfino una serie di vincoli

Matricola Cognome Nome Data di nascita NULL Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/198 2 A80197456 Melli Mara NULL

Page 43: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

43

Vincoli intrarelazionaliVincoli intrarelazionali

Sono vincoli che coinvolgono il valore degli attributi all’interno di una stessa relazione:

Studente Voto Lode CorsoA80198760 37 01A80293450 30 L 04A80198330 22 01A80198330 25 L 03

Valore non ammessoValore non ammesso

Combinazione non ammessaCombinazione non ammessa

Non ci possono Non ci possono essere due studenti essere due studenti con matricola uguale!con matricola uguale!

Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/1982 A80198760 Felici Lorenzo 25/02/1983 A80197456 Melli Mara 17/10/1980

Page 44: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

44

Vincoli interrelazionaliVincoli interrelazionali

Sono vincoli che coinvolgono più relazioniGarantiscono l’integrità dei riferimenti fra tabelle

Studente Voto CorsoA80198760 28 01A80293450 30 04A80198330 27 01A80198330 25 03A80197456 21 05

Codice Titolo Docente01 Analisi I Anna Verdi03 Geometria Andrea Pitagora04 Fisica I Luca Galileo??

ESAMIESAMI

CORSICORSI

Page 45: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

45

Vincoli di tuplaVincoli di tupla

Esprimono condizioni sui valori degli attributi di ciascuna tupla indipendentemente dalle altre (intrarelazionali) Sono espressi con predicati che devono essere veri per tutte le tuple

Possono anche essere definiti da espressioni aritmetiche che legano fra loro i valori degli attributi

(Voto18) AND (Voto30)

NOT((Lode=‘L’) AND (Voto30))

PAGAMENTI(Data,Importo,Ritenute,Netto)

Netto = Importo – Ritenute

Page 46: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

46

ChiaviChiavi

I vincoli di chiave sono fondamentali per il modello relazionaleUna chiavechiave è un insieme di attributi utilizzato per identificare univocamenteunivocamente le tuple di una relazione

Matricola Cognome Nome Data di nascita Luogo di Nascita Corso A80198760 Bianchi Anna 22/03/1977 Siena Lettere A80293450 Rossi Andrea 13/04/1978 Poggibonsi Fisica A80198777 Felici Lorenzo 25/02/1979 Montepulciano Ingegneria A80197456 Melli Mara 17/10/1976 Siena Lettere

Matricola

Nome, Cognome, Data di Nascita, Luogo di Nascita SI

Nome, Cognome, CorsoNome, Cognome, Data di NascitaNO

Page 47: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

47

Superchiavi e chiaviSuperchiavi e chiavi

Un insieme K di attributi è una superchiavesuperchiave per una relazione R se R non contiene due tuple distinte t1 e t2 con t1[K]=t2[K]Un insieme di attributi K è una chiavechiave per una relazione R se è una superchiave minimalesuperchiave minimale (cioè non esiste una superchiave K’ che è contenuta in K)

{Matricola}{Nome, Cognome, Data di Nascita, Luogo di Nascita}

{Matricola, Nome}{Nome, Cognome, Data di Nascita, Luogo di Nascita, Corso}{Matricola, Corso}

CHIAVI (Superchiavi Minimali)

SUPERCHIAVI

Page 48: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

48

Scelta delle chiaviScelta delle chiavi

La scelta della chiave deve tenere conto delle proprietà del mondo reale da cui provengono i dati

STUDENTI(Matricola,Cognome,Nome,Data di Nascita,Luogo di Nascita,Corso)

può essere una chiave nel caso che in un dato ateneo (e quindi nella base di dati) non ci siano due studenti con ugual Nome e Cognome iscritti allo stesso corso… ma niente vieta che possa accadere in futuro!

{Cognome,Nome,Corso}

Può essere aggiunto un campo ad hoccampo ad hoc (ad esempio la matricola) da usare come chiaveI campi corrispondenti alla I campi corrispondenti alla chiave primariachiave primaria non non possono assumere valori nullipossono assumere valori nulli

Page 49: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

49

Integrità referenzialeIntegrità referenziale

Matricola Cognome Nome672 Rossi Mario223 Verdi Francesco532 Belli Carlo

AGENTI

AUTO

INFRAZIONI

MatricolaMatricola: chiave primaria per : chiave primaria per AGENTIAGENTI

chiave esterna per chiave esterna per INFRAZIONIINFRAZIONI

Prov, NumeroProv, Numero: chiave primaria per AUTO: chiave primaria per AUTO

chiave esterna per INFRAZIONIchiave esterna per INFRAZIONI

Codice Data Agente Art Prov Numero174655 25-12-2002 672 44 FI M363521156732 13-05-2003 223 12 SI BC637ZY

Prov Numero Proprietario Indirizzo

456345 17-08-2002 672 44 GR ZA731CD

FI M363521 Gilli Luca Via OroSI BC637ZY Tilli Nedo Via AbeteGR ZA731CD Billi Aldo Via Sole

Le corrispondenze fra i dati in relazioni diverse si stabiliscono per mezzo dei valori di chiavi delle tuple

Page 50: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

50

Vincoli di integrità referenzialeVincoli di integrità referenziale

Un vincolo di integrità referenzialevincolo di integrità referenziale (foreign keyforeign key, chiave esterna) fra un insieme di attributi X di una relazione R1 e una relazione R2 è soddisfatto se i valori su X di ciascuna tupla in R1 compaiono come valori della chiave (primaria) dell’istanza di R2

Matricola Cognome Nome672 Rossi Mario223 Verdi Francesco532 Belli Carlo

Occorre definire un vincolo di integrità referenziale fra l’attributo AgenteAgente dellarelazione INFRAZIONI e la relazione AGENTI (chiave primaria MatricolaMatricola)

??

INFRAZIONI

AGENTI

Codice Data Agente Art Prov Numero

174655 25-12-2002 672 44 FI M363521156732 13-05-2003 223 12 SI BC637ZY456345 17-08-2002 345 44 GR ZA731CD

Page 51: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

51

Un esempioUn esempio

Codice Targa1 Targa2 Luogo Danni

5434 BE370TZ AB234TV Siena Fari

5534 FIG04546 TV443AZ Monteroni Paraurti

Targa Proprietario Indirizzo

BE370TZ Fabio Rossi Via Abete 13 Siena

FIG04546 Giovanni Neri Via Moro 7 Firenze

AB234TV Michele Bessi Via Sila 4 Terni

TV443AZ Maria Bianchi Via Belli 4 Roma

INCIDENTIINCIDENTI AUTOVEICOLIAUTOVEICOLI

1) vincolo di integrità referenziale fra l’attributo Targa1 della relazione INCIDENTI e la relazione AUTOVEICOLI

2) vincolo di integrità referenziale fra l’attributo Targa2 della relazione INCIDENTI e la relazione AUTOVEICOLI

Page 52: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

52

Algebra relazionaleAlgebra relazionale

È basata su un insieme di operatori definiti su relazioni e che producono relazioniSi possono combinare gli operatori di base per ottenere interrogazioni complesse

operatorioperatori insiemisticiinsiemistici (unione, intersezione, differenza) ridenominazioneridenominazione, selezioneselezione, proiezioneproiezione joinjoin (join naturale, prodotto cartesiano, theta–join)

Page 53: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

53

Operatori insiemistici Operatori insiemistici 1 1

Hanno senso solo se si applicano a relazioni con lo stesso schema (con gli stessi attributi)

L’unioneunione di due relazioni R1(X) e R2(X) è la relazione R(X)= R1(X) U R2(X) che contiene le tuple che appartengono ad R1 oppure ad R2, oppure ad entrambe

Matricola Nome CognomeA80010012 Mario RossiA80010200 Gianni LonghiA80010111 Fabio Verdi

Matricola Nome CognomeA80010012 Mario RossiA80010200 Gianni LonghiA80010111 Fabio VerdiA82010007 Marco BeniA82010345 Anna Bianchi

Matricola Nome CognomeA82010007 Marco BeniA82010345 Anna Bianchi

Laurea 1° livelloLaurea 1° livello Laurea 2° livelloLaurea 2° livello

STUDENTISTUDENTI

Page 54: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

54

Operatori insiemistici Operatori insiemistici 2 2

L’intersezioneintersezione di due relazioni R1(X) e R2(X), definite su un insieme di attributi X, è la relazione R(X)= R1(X) R2(X) contenente le tuple che appartengono sia a R1(X) che a R2(X)

La differenzadifferenza di due relazioni R1(X) e R2(X), definite su un insieme di attributi X, è la relazione R(X)= R1(X) – R2(X) contenente le tuple che appartengono a R1(X) ma non a R2(X)

Matricola Nome Cognome

3456575 Mario Rossi3432334 Gianni Longhi3223343 Fabio Verdi

Matricola Nome Cognome

3456576 Anna Verdi 3223342 Isa Belli 3432334 Gianni Longhi 3222122 Fabio Feltri

Matricola Nome Cognome

3432334 Gianni Longhi

Matricola Nome Cognome

3456575 Mario Rossi3223343 Fabio Verdi

SPECIALIZZATISPECIALIZZATI LAUREATILAUREATI

SPECIALIZZATI SPECIALIZZATI LAUREATI LAUREATI SPECIALIZZATI SPECIALIZZATI –– LAUREATI LAUREATI

U

Page 55: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

55

RidenominazioneRidenominazione

Con l’operazione di ridenominazioneridenominazione si modifica il nome degli attributi lasciando inalterato il contenuto delle relazioni

Matricola Cognome Agenzia Stipendio

2321112 Belli Milano 553432334 Longhi Roma 45

Matricola Cognome Sede Retribuzione

2321112 Belli Milano 553432334 Longhi Roma 45

Matricola Cognome Fabbrica Salario4434556 Sordi Monza 354568797 Bianchi Viterbo 33

Matricola Cognome Sede Retribuzione

4434556 Sordi Monza 354568797 Bianchi Viterbo 33

Matricola Cognome Sede Retribuzione

2321112 Belli Milano 553432334 Longhi Roma 454434556 Sordi Monza 354568797 Bianchi Viterbo 33

Sede,RetribuzioneAgenzia,Stipendio(IMPIEGATI) Sede,RetribuzioneFabbrica,Salario(OPERAI)

Sede,RetribuzioneAgenzia,Stipendio(IMPIEGATI) Sede,RetribuzioneFabbrica,Salario(OPERAI)

IMPIEGATIIMPIEGATI OPERAIOPERAI

Page 56: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

56

SelezioneSelezione

L’operatore di selezione selezione condcond (R) produce una relazione che contiene le tuple della relazione R che soddisfano la condizione cond.Le condizioni di selezione possono prevedere confronti fra attributi e fra attributi e costanti e possono essere costruite combinando condizioni più semplici con i connettivi logici (or), (and) e (not)

IMPIEGATI(Cognome, Nome, Età, Stipendio)

Età<30 AND Stipendio>2.000(IMPIEGATI)

Vengono selezionati i record relativi ad impiegati con età minore di 30 anni e stipendio superiore a 2000€

Page 57: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

57

Esempi di selezioneEsempi di selezione

Cognome Nome Età Stipendio Rossi Alberto 25 1.000 Verdi Luca 40 2.200 Billi Paolo 28 2.100 Luti Anna 29 2.500

Cognome Nome Età Stipendio Billi Paolo 28 2.100 Luti Anna 29 2.500

Età<30 AND Stipendio>2.000(IMPIEGATI)

IMPIEGATIIMPIEGATI

Cognome Nome Città di nascita

Residenza

Rossi Alberto Firenze FirenzeVerdi Luca Siena PisaBilli Paolo Pisa LuccaLuti Anna Prato Prato

Cognome Nome Città di nascita

Residenza

Rossi Alberto Firenze FirenzeLuti Anna Prato Prato

CITTADINICITTADINI

Città di Nascita=Residenza(CITTADINI)

Page 58: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

58

ProiezioneProiezione

Dati una relazione R(X) e un sottoinsieme Y degli attributi in X, la proiezioneproiezione di R su Y, YY(R), è l’insieme delle tuple su Y ottenute dalle tuple di R considerando solo i valori su Y

Cognome Nome Cat Stipendio Rossi Alberto Ric 1.000 Verdi Luca PA 1.750 Billi Paolo PA 1.750 Luti Anna PO 2.500

DOCENTIDOCENTI

Cognome NomeRossi AlbertoVerdi LucaBilli PaoloLuti Anna

Cognome,Nome(DOCENTI)

Cat Stipendio Ric 1.000 PA 1.750 PO 2.500

Cat,Stipendio(DOCENTI)

Page 59: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

59

JoinJoin

È l’operatore che permette di correlare dati contenuti in relazioni diverse confrontando i valori contenuti in esse join naturalejoin naturale è un operatore che correla dati in relazioni diverse sulla base di valori uguali in attributi con lo stesso nome; il risultato è una relazione che ha per attributi l’unione degli attributi delle relazioni di partenza e le tuple ottenute combinando quelle delle relazioni con valori uguali sugli attributi comuni

Impiegato Reparto Rossi Vendite Verdi Produzione Billi Produzione

Reparto CapoProduzione MoriVendite Bruni

Impiegato Reparto Capo Rossi Vendite Bruni Verdi Produzione Mori Billi Produzione Mori

IMPIEGATI

CAPOREPARTO

CAPOREPARTOCAPOREPARTOIMPIEGATIIMPIEGATI

Page 60: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

60

Un esempio di joinUn esempio di join

Impiegato ProgettoRossi ANeri ABianchi A

Progetto CapoA MoriA Bruni

Impiegato Progetto CapoRossi A MoriRossi A BruniNeri A MoriNeri A BruniBianchi A MoriBianchi A Bruni

RICERCATORIRICERCATORICOORDINATORICOORDINATORI

RICERCATORI

COORDINATORI

Ciascuna tupla della prima relazione è combinabile con tutte le tuple dell’altra; il risultato contiene un numero di tuple pari al prodotto del numero di tuple nelle due relazioni originarie

Page 61: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

61

Infrazioni e autoInfrazioni e auto

Codice Data Agente Art Prov Numero 343535 12/05/99 567 44 FI B04546 343344 14/05/99 456 22 SI 345678 342233 22/06/99 456 44 FI B04546 332112 27/07/99 456 53 PI 768930 334545 07/08/99 567 44 GR 546788

Prov Numero Proprietario IndirizzoFI B04546 Paolo Rossi Via Bixio 5 PratoSI 345678 Piero Berti Via Abete 6 SienaPI 768930 Luca Bianchi Piazza Po 16 PisaGR 546788 Anna Verdi Viale Europa 4 Firenze

Codice Data Agente Art Prov Numero Proprietario Indirizzo343535 12/05/99 567 44 FI B04546 Paolo Rossi Via Bixio 5 Prato343344 14/05/99 456 22 SI 345678 Piero Berti Via Abete 6 Siena342233 22/06/99 456 44 FI B04546 Paolo Rossi Via Bixio 5 Prato332112 27/07/99 456 53 PI 768930 Luca Bianchi Piazza Po 16 Pisa334545 07/08/99 567 44 GR 546788 Anna Verdi Viale Europa 4 Firenze

INFRAZIONIINFRAZIONI

AUTOVEICOLIAUTOVEICOLI

INFRAZIONI

AUTOVEICOLI

Page 62: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

62

Theta–joinTheta–join

È un operatore derivato: corrisponde alla generazione di tutte le possibili combinazioni fra le tuple delle due relazioni seguita da una selezione basata su una condizione F

R1 F R2 = F( R1

R2)

È importante dal punto di vista pratico perché è molto utilizzato nei sistemi di basi di dati esistenti

Tutte le possibili combinazioni delle tuple

Selezione delle tuple che soddisfano F

Page 63: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

63

Un esempio di theta–joinUn esempio di theta–joinImpiegato ProgettoRossi ANeri ANeri B

Codice NomeA VenereB Marte

Impiegato Progetto Codice NomeRossi A A VenereNeri A A VenereNeri B A VenereRossi A B MarteNeri A B MarteNeri B B Marte

Impiegato Progetto Codice NomeRossi A A VenereNeri A A VenereNeri B B Marte

RICERCATORIRICERCATORIPROGETTIPROGETTI

RICERCATORI

PROGETTI

RICERCATORI

PROGETTI

Progetto=Codice

Page 64: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

64

Query in algebra relazionale Query in algebra relazionale 1 1

Un’interrogazioneinterrogazione, o queryquery,, a una base di dati produce una serie di record che soddisfano i criteri richiesti

È una funzione che, applicata ad un’istanza di base di dati, produce una relazione, ovvero dei dati organizzati come tuple di una relazione

Le interrogazioni si possono rappresentare con gli operatori dell’algebra relazionale che forniscono una procedura per calcolarne il risultato

Page 65: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

65

Query in algebra relazionale Query in algebra relazionale 2 2

Con le query è possibile recuperare i dati dalle tabelle e organizzarli in modo diverso

Le query permettono di utilizzare le tabelle in modo dinamico…

…mettendo in relazione le informazioni…filtrando i dati di interesse

…effettuando ricerche incrociate sui record che

rispondono a determinati criteri

Page 66: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

66

Un esempio di interrogazioneUn esempio di interrogazione

Matricola Nome Età Stipendio101 Marco Rossi 23 1.500103 Paolo Bianchi 34 2.380105 Anna Falchi 33 1.700110 Gaia Belli 36 2.500134 Luca Forti 27 2.500145 Sonia Melli 23 1.500149 Mario Mori 33 1.800153 Bruno Bruni 35 1.500155 Filippo Mei 30 2.500

Capo Impiegato103 101103 105103 145110 103110 149134 153

Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 1.700€

IMPIEGATI

SUPERVISIONE

Page 67: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

67

I passi dell’interrogazione: 1I passi dell’interrogazione: 1

Si selezionano gli impiegati che guadagnano più di 1.700€Stipendio>1.700(IMPIEGATI)

Matricola Nome Età Stipendio103 Paolo Bianchi 34 2.380110 Gaia Belli 36 2.500134 Luca Forti 27 2.500149 Mario Mori 33 1.800155 Filippo Mei 30 2.500

Si associano gli impiegati trovati con i rispettivi capi

Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE

Matricola Nome Età Stipendio Capo Impiegato103 Paolo Bianchi 34 2.380 110 103149 Mario Mori 33 1.800 110 149

Page 68: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

68

I passi dell’interrogazione: 2I passi dell’interrogazione: 2

Si estrae la matricola dei capi

Capo110

Si associa la matricola con la relazione IMPIEGATI per ottenere le informazioni sui capi e poi si proietta sugli attributi richiesti (Nome, Stipendio)

Nome,Stipendio (IMPIEGATI Matricola=Capo (

Nome StipendioGaia Belli 2.500

Capo( Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE)))

Capo( Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE)

Page 69: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

69

Esempio: AziendaEsempio: Azienda

ID Nome Età Stipendio_orario Ore Stipendio

86 Giulia Invernizzi 51 16.60 € 94 1560.40 €

123 Francesca Perrera 18 8.50 € 185 1572.50 €

149 Franco Toccasana 43 12.35 € 250 3087.50 €

71 Gianni Calvini 53 17.80 € 245 4361.00 €

165 Bruno Ferri 17 6.70 € 53 355.10 €

Un DBMS, a differenza di un semplice gestore di file, lavora Un DBMS, a differenza di un semplice gestore di file, lavora a livello dei singoli campi nei singoli record del file, ovvero a livello dei singoli campi nei singoli record del file, ovvero agisce a livello dei singoli attributi sulle tuple della tabella agisce a livello dei singoli attributi sulle tuple della tabella relazionalerelazionale

Sia data la tabella IMPIEGATO:

Page 70: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

70

Esempio: AziendaEsempio: Azienda

Un DBMS può eseguire la seguente interrogazione:select id, nome, età, stipendio_orario, ore, stipendio

from impiegato

where id = 123;

che recupera tutte le informazioni relative all’impiegato con ID uguale a 123; ID è la chiave primaria

Per localizzare invece tutte le informazioni riguardanti un impiegato con un dato nome…

select id, nome, età, stipendio_orario, ore, stipendio

from impiegato

where nome = ‘Gianni Calvini’;

L’attributo Nome può non identificare la tupla univocamente; se nella L’attributo Nome può non identificare la tupla univocamente; se nella tabella esistono più impiegati con lo stesso nome, vengono estratti tabella esistono più impiegati con lo stesso nome, vengono estratti tutti gli elementi rilevantitutti gli elementi rilevanti

Page 71: 1 Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale VincoliChiavi.

71

Esempio: AziendaEsempio: Azienda

Se l’interrogazione presuppone l’estrazione solo di alcuni attributi, può essere formulata come…

select id, nome, stipendio

from impiegato

where nome = ‘Gianni calvini’;

che estrae solo il nome e lo stipendio dell’impiegato/i con il nome specificato

select nome, stipendio

from impiegato

where nome = ‘Gianni Calvini’;