laboratorio di informatica - home di...

46
Sonia Pini Sonia Pini Lab. di Informatica: Basi di Dati Lab. di Informatica: Basi di Dati Lucido Lucido 1 1 Lezione Lezione 3: 3: Basi Basi di di Dati Dati Laboratorio Laboratorio di di Informatica Informatica Corso Corso di di Laurea Laurea Interfacolt Interfacolt à à in in Biotecnologie Biotecnologie

Upload: dangdung

Post on 02-May-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 11

LezioneLezione 3: 3: BasiBasi didi DatiDati

LaboratorioLaboratorio didi InformaticaInformaticaCorsoCorso didi LaureaLaurea InterfacoltInterfacoltàà in in BiotecnologieBiotecnologie

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 22

Scopo della lezioneScopo della lezione

–– Definire cosDefinire cos’è’è una base di dati e un sistema una base di dati e un sistema di gestione della base di datidi gestione della base di dati

–– Descrivere il modello dei dati RelazionaleDescrivere il modello dei dati Relazionale–– Esemplificare lEsemplificare l’’accesso ai datiaccesso ai dati

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 33

Informazioni e DatiInformazioni e Dati

–– I dati sono fatti elementari, informazioni I dati sono fatti elementari, informazioni codificate, che hanno bisogno di essere codificate, che hanno bisogno di essere interpretate per fornire conoscenza (ciointerpretate per fornire conoscenza (cioèèinformazioni).informazioni).

–– Esempio:Esempio:–– Si consideri un dato rappresentato dal numero 3: Si consideri un dato rappresentato dal numero 3:

tale dato non fornisce alcuna informazione,tale dato non fornisce alcuna informazione,–– Viceversa, dire che 3 Viceversa, dire che 3 èè il numero degli anni di il numero degli anni di

corso del corso di Laurea in Informatica fornisce corso del corso di Laurea in Informatica fornisce una informazione.una informazione.

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 44

Informazioni e DatiInformazioni e Dati

–– Nei sistemi informatici (e non solo in essi) le Nei sistemi informatici (e non solo in essi) le informazioni sono rappresentate attraverso i informazioni sono rappresentate attraverso i dati.dati.

–– InformazioneInformazione: tutto ciò che produce variazioni nel : tutto ciò che produce variazioni nel patrimonio conoscitivo di un soggetto patrimonio conoscitivo di un soggetto

–– DatoDato: una registrazione della descrizione di una : una registrazione della descrizione di una qualsiasi caratteristica della realtqualsiasi caratteristica della realtàà su un supporto su un supporto che ne garantisca la conservazione e, mediante un che ne garantisca la conservazione e, mediante un insieme di simboli, ne garantisca la insieme di simboli, ne garantisca la comprensibilitcomprensibilitàà e la reperibilite la reperibilitàà..

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 55

Informazioni e DatiInformazioni e Dati

–– La rappresentazione dei dati consiste in:La rappresentazione dei dati consiste in:–– Organizzazione logicaOrganizzazione logica: blocchi di dati di varia : blocchi di dati di varia

natura (record), tabelle, grafici, ecc.natura (record), tabelle, grafici, ecc.–– Codifica delle singole componentiCodifica delle singole componenti: testo, numeri, : testo, numeri,

pixel, ecc.pixel, ecc.–– Formato fisicoFormato fisico: celle di memoria, file su disco.: celle di memoria, file su disco.

–– Esempio: nella tavola periodica, ogni Esempio: nella tavola periodica, ogni elemento elemento èè rappresentato da:rappresentato da:–– Record: simbolo, numero atomico, peso atomico, Record: simbolo, numero atomico, peso atomico,

distribuzione degli elettroni nelle orbite degli distribuzione degli elettroni nelle orbite degli atomi (campi del record)atomi (campi del record)

–– Codifica: testuale, numericaCodifica: testuale, numerica–– Formato fisico: scritte su foglio cartaceo o file su Formato fisico: scritte su foglio cartaceo o file su

disco.disco.

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 66

Base di DatiBase di Dati

Definizione genericaDefinizione generica–– Collezione di dati, utilizzati per Collezione di dati, utilizzati per

rappresentare le informazioni di interesse rappresentare le informazioni di interesse per unper un’’organizzazione, un programma, o un organizzazione, un programma, o un individuoindividuo–– La raccolta dei dati anagrafici degli abitantiLa raccolta dei dati anagrafici degli abitanti–– La raccolta dei dati sulle sequenze di DNALa raccolta dei dati sulle sequenze di DNA–– La raccolta dei dati relativi al curriculum La raccolta dei dati relativi al curriculum

scolastico degli studentiscolastico degli studenti

DefinizioneDefinizione–– Collezione di dati gestita da un DBMSCollezione di dati gestita da un DBMS

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 77

DBMSDBMS

–– Sistema di Gestione della Base di Dati Sistema di Gestione della Base di Dati -- DData ata BBase ase MManagement anagement SSystemystem

–– Programma che gestisce raccolte di dati:Programma che gestisce raccolte di dati:Immissione, memorizzazione, cancellazione;Immissione, memorizzazione, cancellazione;Accesso, elaborazione, trasferimento;Accesso, elaborazione, trasferimento;

Dai dati allDai dati all’’informazione.informazione.Presentazione e visualizzazione dellPresentazione e visualizzazione dell’’informazione;informazione;

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 88

DBMSDBMS

–– DData ata BBase ase MManagement anagement SSystem ystem èè un sistema un sistema (prodotto software) in grado di gestire (prodotto software) in grado di gestire collezioni di daticollezioni di dati che siano:che siano:–– GrandiGrandi–– PersistentiPersistenti–– CondiviseCondivise

–– Garantendo:Garantendo:–– AffidabilitAffidabilitàà–– PrivatezzaPrivatezza–– EfficienzaEfficienza

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 99

DBMS DBMS -- EsempiEsempi

–– Sistema di prenotazione dei voliSistema di prenotazione dei voli–– Sistema per la gestione delle cartelle Sistema per la gestione delle cartelle

clinichecliniche–– Sistema di supporto allSistema di supporto all’’acquisto di beni onacquisto di beni on--

lineline–– Sistema per la gestione della bibliotecaSistema per la gestione della biblioteca–– Sistema per la gestione dei dati del genomaSistema per la gestione dei dati del genoma

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1010

DBMSDBMS

–– Il DBMS Il DBMS èè un sistema software cheun sistema software che

–– Nasconde il formato fisico dei datiNasconde il formato fisico dei datiFormato dei dati nei fileFormato dei dati nei file

File diversi per insiemi di dati di tipo diversoFile diversi per insiemi di dati di tipo diversoNome dei file/posizione dei file nel discoNome dei file/posizione dei file nel disco

La sequenza di cartelle in cui si trovano i fileLa sequenza di cartelle in cui si trovano i fileAccesso diretto ai dati sul supporto fisicoAccesso diretto ai dati sul supporto fisico

Interfaccia a disposizione dellInterfaccia a disposizione dell’’utenteutente

–– Offre una visione concettuale dei datiOffre una visione concettuale dei dati

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1111

DBMSDBMS

–– Il Il DBMsDBMs èè un sistema software che un sistema software che

–– Permette di condividere i datiPermette di condividere i datiAssenza di repliche (a livello logico)Assenza di repliche (a livello logico)Concorrenza degli accessi da parte di piConcorrenza degli accessi da parte di piùù utentiutenti

–– Garantisce lGarantisce l’’integritintegritàà dei datidei datiI dati devono rappresentare informazioni corretteI dati devono rappresentare informazioni corrette

–– Garantisce la privatezzaGarantisce la privatezzaControlla gli accessi secondo le autorizzazioni degli Controlla gli accessi secondo le autorizzazioni degli utentiutenti

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1212

DBMSDBMS

–– Il DBMS Il DBMS èè un sistema software cheun sistema software che

–– Gestisce grandi quantitGestisce grandi quantitàà di dati persistenti di dati persistenti

–– ÈÈ efficienteefficienteAcquisizione, ricerca, ordinamentoAcquisizione, ricerca, ordinamento

–– ÈÈ efficaceefficaceMigliora la produttivitMigliora la produttivitàà di chi lo usadi chi lo usa

–– ÈÈ affidabileaffidabileResiste a malfunzionamenti Resiste a malfunzionamenti hwhw e e swsw

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1313

DBMSDBMS

–– DBMS commercialiDBMS commerciali–– OracleOracle–– InformixInformix–– IBM DB2IBM DB2–– SQL ServerSQL Server–– Microsoft AccessMicrosoft Access

–– DBMS freeware (open source)DBMS freeware (open source)–– MySQL (MySQL (LinuxLinux, Windows), Windows)–– PostgressSQL (PostgressSQL (LinuxLinux))

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1414

DBMSDBMS

–– VantaggiVantaggi–– dati come risorsa comunedati come risorsa comune–– Modello standardizzato dei datiModello standardizzato dei dati–– Controllo centralizzato dei datiControllo centralizzato dei dati–– Consistenza e unicitConsistenza e unicitàà dei datidei dati–– Indipendenza delle applicazioni dai datiIndipendenza delle applicazioni dai dati–– Efficienza degli accessiEfficienza degli accessi

–– SvantaggiSvantaggi–– Costi (diretti e indiretti)Costi (diretti e indiretti)–– Ridondanza dei servizi rispetto alle esigenzeRidondanza dei servizi rispetto alle esigenze

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1515

Utenti del DBMSUtenti del DBMS

–– Amministratore del DBAmministratore del DB–– Usa il Usa il Data Data DefinitionDefinition LanguageLanguage (DDL) per definire (DDL) per definire

lo schema logico della base di datilo schema logico della base di datiViene compilato per produrre le strutture datiViene compilato per produrre le strutture dati

–– Programmatore applicativoProgrammatore applicativo–– Programma le applicazioni usando il Programma le applicazioni usando il Data Data

ManipulationManipulation LanguageLanguage (DML) per definire le (DML) per definire le operazioni sui datioperazioni sui dati

–– Utente finaleUtente finale–– Esegue le applicazioni (transazioni) usando il Esegue le applicazioni (transazioni) usando il

QueryQuery LanguageLanguage (QL) (es. SQL) per interrogare la (QL) (es. SQL) per interrogare la base di dati ed eseguire operazioni sui datibase di dati ed eseguire operazioni sui dati

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1616

Uso di un DBMSUso di un DBMS

–– Definizione della struttura generale dei dati, Definizione della struttura generale dei dati, o schemao schema–– Caratteristiche Caratteristiche invariantiinvarianti nel temponel tempo

–– Definizione delle operazioni possibili sui datiDefinizione delle operazioni possibili sui dati–– Immissione dei dati (istanze)Immissione dei dati (istanze)

–– Valori attualiValori attuali

–– Esecuzione di transazioni/interrogazioniEsecuzione di transazioni/interrogazioni

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1717

EsempioEsempio–– SchemaSchema

–– IstanzaIstanzaRaggio atomicoRaggio atomico

Distribuzione degli Distribuzione degli elettronielettroni

Peso atomicoPeso atomico

Numero atomicoNumero atomico

simbolosimbolo

2.032.03

2 8 8 12 8 8 1

39.10239.102

1919

KK

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1818

TransazioniTransazioni

– Programmi che realizzano attività frequenti e predefinite, con poche eccezioni, previste a priori:– Versamento presso uno sportello bancario;– Emissione di certificato anagrafico;– Dichiarazione presso l’ufficio di stato civile;– Prenotazione aerea;

– Le transazioni sono di solito realizzate con programmi in linguaggio ospite (tradizionale o ad hoc)

– Le operazioni che le compongono sono eseguite tutte, o nessuna– atomicità

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 1919

Modello dei DatiModello dei Dati

– Un modello dei dati è un insieme di strumenti concettuali, o formalismo, che consta di tre componenti fondamentali:– un insieme di strutture dati– una notazione per specificare i dati tramite le

strutture dati del modello– un insieme di operazioni per manipolare i dati

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2020

Modello dei DatiModello dei Dati

– I modelli dei dati permettono di rappresentare la realtà di interesse per un certo insieme di applicazioni

– concetti rilevanti alla base di tale rappresentazione:– Entità: "oggetto" della realtà applicativa di

interesse, esistente e distinguibile da tutti gli altri– Attributo: una proprietà significativa, ai fini della

descrizione della realtà applicativa di interesse, di una data entità

– Ogni entità è pertanto caratterizzata da uno o piùattributi; un attributo assume uno o più valori, detti valori dell'attributo, da un insieme di valori possibili detto dominio dell'attributo

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2121

Modello dei DatiModello dei DatiInsieme di entità.– raggruppa un insieme di "oggetti" con le stesse

caratteristiche; in altre parole, raggruppa entità"simili" aventi gli stessi attributi, anche se non necessariamente gli stessi valori per tali attributi

Chiave. – Un insieme di attributi i cui valori identificano

univocamente una entità in un dato insieme di entitàcostituisce una chiave per l'insieme di entità

Associazione.– una corrispondenza tra gli elementi di due (o più)

insiemi di entità

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2222

Modello dei Dati Modello dei Dati --EsempioEsempio–– Si consideri la realtSi consideri la realtàà applicativa relativa agli applicativa relativa agli

impiegati ed ai dipartimenti:impiegati ed ai dipartimenti:

–– EntitEntitàà: Mario Rossi, il dipartimento 30: Mario Rossi, il dipartimento 30–– Insieme di entitInsieme di entitàà: l: l’’insieme di tutti gli impiegati, insieme di tutti gli impiegati,

ll’’insieme di tutti i insieme di tutti i dipartimentidipartimenti

–– AttributiAttributi: nome di impiegato, stipendio, : nome di impiegato, stipendio, mansione, numero mansione, numero di dipartimento, di dipartimento, nome di dipartimentonome di dipartimento

–– AssociazioneAssociazione: il fatto che Mario Rossi lavora nel : il fatto che Mario Rossi lavora nel dipartimento dipartimento 3030

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2323

Modello dei DatiModello dei Dati

–– Qualsiasi modello dei dati deve rispondere a Qualsiasi modello dei dati deve rispondere a due domande fondamentali:due domande fondamentali:1.1. come rappresentare le entitcome rappresentare le entitàà e i loro attributi,e i loro attributi,2.2. come rappresentare le associazioni.come rappresentare le associazioni.

–– La maggioranza dei modelli usa strutture La maggioranza dei modelli usa strutture come il record, in cui ogni componente come il record, in cui ogni componente rappresenta un attributo.rappresenta un attributo.

–– I modelli differiscono notevolmente in I modelli differiscono notevolmente in questo aspetto.questo aspetto.

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2424

Il Modello RelazionaleIl Modello Relazionale

–– I dati sono modellati da I dati sono modellati da relazionirelazioni..–– Una relazione definisce lUna relazione definisce l’’insieme delle insieme delle

caratteristiche di un dato in termini caratteristiche di un dato in termini matematici:matematici:–– relazione: sottoinsieme del prodotto cartesiano di relazione: sottoinsieme del prodotto cartesiano di

pipiùù insiemiinsiemiA = (a1,a2,a3), B = (b1,b2)A = (a1,a2,a3), B = (b1,b2)AxBAxB = (<a1,b1>, <a1,b2>, <a1,b1>, <a2,b2>, = (<a1,b1>, <a1,b2>, <a1,b1>, <a2,b2>,

<a3,b1>, <a3,b2>)<a3,b1>, <a3,b2>)RRAxBAxB = (<a1,b1>, <a1,b2>, <a3,b1>)= (<a1,b1>, <a1,b2>, <a3,b1>)

–– la teoria delle relazioni la teoria delle relazioni èè alla base del modelloalla base del modello

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2525

EsempioEsempio

–– Dati: gas nobiliDati: gas nobili

–– Caratteristiche: nome, simbolo, n. atomicoCaratteristiche: nome, simbolo, n. atomico

–– Nome: A = (elio, neon, argon,cripto, xeno,radon)Nome: A = (elio, neon, argon,cripto, xeno,radon)–– Simbolo: B = (Simbolo: B = (HeHe, Ne, , Ne, ArAr, , KrKr, , XeXe, , RnRn))–– N. atomico: N. atomico: C=C= (2, 10, 18, 36, 54, 86)(2, 10, 18, 36, 54, 86)–– datidatiAxBxC AxBxC = (<elio, = (<elio, HeHe, 2>, <neon, Ne, 10>, <argon, , 2>, <neon, Ne, 10>, <argon,

ArAr, 18>, <cripto, , 18>, <cripto, KrKr, 36>, <xeno, , 36>, <xeno, XeXe, 54>, , 54>, <radon, <radon, RnRn, 86>), 86>)

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2626

Il Modello RelazionaleIl Modello Relazionale

–– Una relazione può essere vista come una Una relazione può essere vista come una tabellatabella–– Ciascuna riga rappresenta un elemento della Ciascuna riga rappresenta un elemento della

relazione:relazione:Una Una tuplatupla della relazione;della relazione;Un record;Un record;Individua un dato;Individua un dato;Le righe sono diverse tra loro.Le righe sono diverse tra loro.

–– Ciascuna colonna rappresenta un insieme di Ciascuna colonna rappresenta un insieme di entitentitàà::

I valori di ciascuna colonna sono di tipo omogeneo;I valori di ciascuna colonna sono di tipo omogeneo;Individua un attributo dei dati.Individua un attributo dei dati.

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2727

Tabelle: rappresentazione Tabelle: rappresentazione di relazionidi relazioni

8686RnRnradonradon

5454XeXexenoxeno

3636KrKrcriptocripto

1818ArArargonargon

1010NeNeneonneon

22HeHeelioelionome simbolo n. atomicoTuple

attributi o campi

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2828

Il Modello RelazionaleIl Modello Relazionale

–– Ciascun campo Ciascun campo èè caratterizzato dacaratterizzato da–– Nome del campoNome del campo–– Tipo di datoTipo di dato–– Dimensione del datoDimensione del dato

–– Le Le tupletuple sono caratterizzate dai campi che sono caratterizzate dai campi che le compongonole compongono–– Schema relazionaleSchema relazionale

–– Nelle tabelle lNelle tabelle l’’ordine delle colonne e delle ordine delle colonne e delle righe righe èè irrilevantiirrilevanti–– Le tabelle sono strutture non posizionaliLe tabelle sono strutture non posizionali

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 2929

Il Modello RelazionaleIl Modello Relazionale

–– La base di dati La base di dati èè una raccolta di tabelle una raccolta di tabelle –– Ogni tabella Ogni tabella èè costituita da record (costituita da record (tupletuple) )

omogeneiomogenei

–– Lo schema della base di dati Lo schema della base di dati èè ll’’insieme di insieme di tutti gli schemi relazioni che rappresentano i tutti gli schemi relazioni che rappresentano i dati elementari e delle relazioni definite su dati elementari e delle relazioni definite su di essi.di essi.

–– Una tabella raccoglie i dati su un argomentoUna tabella raccoglie i dati su un argomento–– Informazioni aggiuntive si ottengono Informazioni aggiuntive si ottengono

operando sulle tabelleoperando sulle tabelle–– Selezionando solo i record che soddisfano una Selezionando solo i record che soddisfano una

proprietproprietàà–– Selezionando tutti i valori per specifici campiSelezionando tutti i valori per specifici campi–– Combinando varie tabelle per crearne altreCombinando varie tabelle per crearne altre

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3030

EsempioEsempio

–– Schema della base di datiSchema della base di dati–– schemi relazionali: Corsi, Aule, CorsiSedischemi relazionali: Corsi, Aule, CorsiSedi–– relazionrelazionii: vedi pag. successiva: vedi pag. successiva

SemestSemestrere

DocentDocentee

CorsoCorsoCorsi

PianoPianoEdificioEdificioAulaAula

EdificioEdificio PianoPianoAulaAulaCorsoCorso

Aule

CorsiSedi

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3131

Esempio Esempio –– Continua Continua

–– Dalla base di dati contenente Corsi, Aule, Dalla base di dati contenente Corsi, Aule, CorsiSedi, si ricava DoveQuandoCorsiSedi, si ricava DoveQuando

Corsi Corso Docente Semestre Basi di dati Rossi I Sistemi Neri II Reti Bruni II Controlli Bruni I

Aule Aula Edificio Piano DS1 Ex-OMI Terra N3 Ex-OMI Terra G Pincherle Primo

CorsiSedi Corso Aula Edificio Piano Sistemi N3 Ex-OMI Terra Reti N3 Ex-OMI Terra Controlli G Pincherle Primo

DoveQuando Corso Aula Semestre Sistemi N3 II Reti N3 II Controlli G I

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3232

Il Modello RelazionaleIl Modello Relazionale

–– Le operazioni sono indipendenti dalla Le operazioni sono indipendenti dalla realizzazione fisica della tabella.realizzazione fisica della tabella.

–– I riferimenti fra i dati in tabelle diverse sono I riferimenti fra i dati in tabelle diverse sono rappresentati da valori degli attributo rappresentati da valori degli attributo comuni alle tabelle.comuni alle tabelle.

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3333

Il Modello RelazionaleIl Modello Relazionale

–– Chiave primariaChiave primaria–– Insieme di attributi che identificano Insieme di attributi che identificano

univocamente i record di una o piunivocamente i record di una o piùù tabelletabelle

–– Vista Vista –– ÈÈ una proiezione della base di datiuna proiezione della base di dati

Risultato di normali operazioni (Risultato di normali operazioni (selectselect) sulle tabelle ) sulle tabelle Permette di limitare gli accessi in funzione dei Permette di limitare gli accessi in funzione dei privilegi del ruolo ricoperto dallprivilegi del ruolo ricoperto dall’’utenteutente

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3434

Accesso ai DatiAccesso ai Dati

–– Le operazioni possibili sulla base di dati Le operazioni possibili sulla base di dati devono permetternedevono permetterne–– la creazione la creazione –– ll‘‘aggiornamentoaggiornamento–– la selezione di la selezione di recordrecord (tuple) che soddisfino dei (tuple) che soddisfino dei

criteri definiti dallcriteri definiti dall’’utenteutente–– la selezione di tutti i valori di uno o pila selezione di tutti i valori di uno o piùù campicampi–– la combinazione di tabelle per crearne altrela combinazione di tabelle per crearne altre

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3535

Accesso ai DatiAccesso ai Dati

–– Le operazioni sono un sottinsieme delle Le operazioni sono un sottinsieme delle operazioni delloperazioni dell’’algebra relazionalealgebra relazionale–– unioneunione–– intersezione intersezione –– differenzadifferenza–– prodotto cartesianoprodotto cartesiano–– decomposizione orizzontale (select)decomposizione orizzontale (select)–– proiezione verticale (project)proiezione verticale (project)–– combinazione naturale (join)combinazione naturale (join)

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3636

Accesso ai DatiAccesso ai Dati

–– I DBMS implementano operazioni relazionali I DBMS implementano operazioni relazionali e operazioni proceduralie operazioni procedurali–– operazioni operazioni relazionali:relazionali:

Select(r,c)Select(r,c)Insieme delle tuple della relazione Insieme delle tuple della relazione rr che che soddisfano una soddisfano una condizione condizione cc

Project(r,(aProject(r,(a11,..., a,..., ann))))Insieme delle Insieme delle tupletuple di di rr definito su un definito su un sottoinsieme degli attributi (campi) originali di sottoinsieme degli attributi (campi) originali di rr

Join(r,s,r.a,s.a)Join(r,s,r.a,s.a)Insieme delle Insieme delle tupletuple ottenute concatenando le ottenute concatenando le tupletuple di di rr e di e di s s aventi in comune una chiave aventi in comune una chiave aa

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3737

Accesso ai DatiAccesso ai Dati

–– SelectSelect in SQLin SQLSelect Ri1, Ri2, Select Ri1, Ri2, ……, Rin, Rin

From R1,R2, From R1,R2, ……, Rk, RkWhere FWhere F

Dove:Dove:–– R1,R2,R1,R2,……,,RkRk èè una lista di nomi distinti di relazioniuna lista di nomi distinti di relazioni–– Ri1,Ri2,Ri1,Ri2,……RinRin èè una lista di nomi di colonneuna lista di nomi di colonne–– La nozione La nozione R.CR.C indica la colonna di nome C della indica la colonna di nome C della

relazione Rrelazione R–– F F èè un predicatoun predicato

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3838

Accesso ai DatiAccesso ai Dati

–– JoinJoin–– LL’’operazione di operazione di joinjoin èè importante perchimportante perchéé

permette di correlare dati rappresentati da permette di correlare dati rappresentati da relazioni diverserelazioni diverse

–– SQL non prevede una operazione di SQL non prevede una operazione di joinjoin espilicitaespilicita..–– Un predicato di Un predicato di joinjoin esprime una relazione che esprime una relazione che

deve essere verificata dalle deve essere verificata dalle tupletuple del risultato del risultato delldell’’interrogazione.interrogazione.

–– Esempio: determinare il nome del dipartimento in Esempio: determinare il nome del dipartimento in cui lavora lcui lavora l’’impiegato Rossi.impiegato Rossi.

SelectSelect nomenomefromfrom impiegati, dipartimentiimpiegati, dipartimentiwherewhere nome=nome=‘‘RossiRossi’’ and impiegati.Dip# = and impiegati.Dip# = dipartimenti.Dip#dipartimenti.Dip#

Il predicato di Il predicato di joinjoin èè::impiegati.Dip# = dipartimenti.Dip#impiegati.Dip# = dipartimenti.Dip#

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 3939

Accesso ai DatiAccesso ai Dati

–– I DBMS implementano operazioni relazionali I DBMS implementano operazioni relazionali e operazioni proceduralie operazioni procedurali–– operazioni operazioni procedurali:procedurali:

insertinsert--into(r, valore)into(r, valore)aggiunge la nuova tupla valore nella relazione aggiunge la nuova tupla valore nella relazione rr

deletedelete--from(r, valore)from(r, valore)elimina la tupla valore dalla relazione elimina la tupla valore dalla relazione rr

update(r, valore)update(r, valore)aggiorna i campi della relazione aggiorna i campi della relazione rr specificati da specificati da valorevalore

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4040

Accesso ai DatiAccesso ai Dati

–– Si accede ai dati mediante Si accede ai dati mediante interrogazioniinterrogazioni–– Le interrogazioni, o queryLe interrogazioni, o query

–– estraggono dati dalla base di datiestraggono dati dalla base di dati–– si eseguono specificandosi eseguono specificando

criterio di ricercacriterio di ricercainsieme di campiinsieme di campi

tabelle su cui applicare la ricercatabelle su cui applicare la ricercaordine in cui eseguire la ricercaordine in cui eseguire la ricerca

–– possono essere specificate graficamente o possono essere specificate graficamente o testualmente (QBE, SQL)testualmente (QBE, SQL)

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4141

Accesso ai DatiAccesso ai Dati

–– Le interrogazioni non modificano i dati Le interrogazioni non modificano i dati contenuti in una base di dati, vi accedono contenuti in una base di dati, vi accedono solo in lettura.solo in lettura.

–– In una base di dati relazionale ogni In una base di dati relazionale ogni interrogazione si riduce alla costruzione di interrogazione si riduce alla costruzione di una nuova tabella, detta una nuova tabella, detta VISTAVISTA poichpoichéé non non èèfisicamente presente nella base dati, ma fisicamente presente nella base dati, ma èèestratta da essa .estratta da essa .

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4242

Accesso ai DatiAccesso ai Dati

–– I dati sono identificati dallaI dati sono identificati dalla chiavechiave–– esempio: si consideri la relazione studenteesempio: si consideri la relazione studente

–– matricola matricola èè una chiaveuna chiaveunica per ciascuno studenteunica per ciascuno studente

–– ((cognome&nome, nascita) potrebbe non essere cognome&nome, nascita) potrebbe non essere una chiaveuna chiave

due studenti con stessi datidue studenti con stessi dati

–– tutti gli attributi che definiscono la relazione tutti gli attributi che definiscono la relazione costituiscono una chiavecostituiscono una chiave

non esistono record duplicatinon esistono record duplicati

matricola cognome&nome corso nascita immatricolazione

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4343

Accesso ai DatiAccesso ai Dati

–– Le chiavi sono: Le chiavi sono: –– lo strumento con cui vengono correlati i dati in lo strumento con cui vengono correlati i dati in

relazioni diverserelazioni diverse–– la garanzia della possibilitla garanzia della possibilitàà di accedere a ciascun di accedere a ciascun

dato della base di datidato della base di dati–– usate per le interrogazioni e lusate per le interrogazioni e l’’ordinamento dei ordinamento dei

datidati

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4444

EsempioEsempio

–– Relazione ImpiegatoRelazione Impiegato

–– Relazione ImpiegoRelazione Impiego

–– Relazione IncaricoRelazione Incarico

nome cognome codice fiscale matricola indirizzo Piero Bianchi PRIBNC37M70F455Z 11234 Via pola 1, bressoMario Rossi MRIRSS63L61G388Y 12880 Via verdi 2,milano

titolo codice qualità livello reparto meccanico 36 BY8 Quadro officina Assistente vendite 12 AX3 quadro vendite

matricola codice impiego data inizio data fine

11234 36 20/02/1997 null 12880 12 12/03/1993 15/12/1998

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4545

esempioesempio–– Nuova = Nuova = SELECTSELECT fromfrom Impiegato Impiegato wherewhere matricola == matricola ==

1288012880

–– matricola: chiavematricola: chiave–– Posta = Posta = PROJECTPROJECT nome, cognome, indirizzo nome, cognome, indirizzo fromfrom

ImpiegatoImpiegato

–– (nome,cognome, indirizzo): chiave(nome,cognome, indirizzo): chiave

nome cognome codice fiscale matricola indirizzo Mario Rossi MRIRSS63L61G388Y 12880 Via verdi 2,milano

nome cognome indirizzo Piero Bianchi Via pola 1, bresso Mario Rossi Via verdi 2,milano

Sonia PiniSonia Pini Lab. di Informatica: Basi di DatiLab. di Informatica: Basi di Dati Lucido Lucido 4646

esempioesempio–– Carriera = Carriera = JOINJOIN Impiegato Impiegato andand Incarico Incarico wherewhere

Impiegato.matricola == Incarico.matricolaImpiegato.matricola == Incarico.matricola

–– matricola: chiave matricola: chiave –– nota: Nuova, Posta, Carriera sono tutte vistenota: Nuova, Posta, Carriera sono tutte viste

cognome codice fiscale matricola indirizzo codice impiego

data inizio dat

Bianchi PRIBNC37M70F455Z 11234 Via pola 1, bresso

36 20/021997 nul

Rossi MRIRSS63L61G388Y 12880 Via verdi 2,milano

12 12/03/1993 15/