Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.
-
Upload
ambra-nanni -
Category
Documents
-
view
216 -
download
3
Transcript of Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.
![Page 1: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/1.jpg)
Archivi e basi di dati
Vito Perrone
Corso di Informatica A per Gestionali
![Page 2: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/2.jpg)
2Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Memorie di massa
![Page 3: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/3.jpg)
3Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Indice
• Memorie di massa• Organizzazione degli archivi
e basi di dati• Basi di dati relazionali
![Page 4: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/4.jpg)
4Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Introduzione
• Memoria di tipo persistente– Un dato è persistente se è mantenuto integralmente quando il
calcolatore viene spento oppure si verifica un errore
• Obiettivi:– Memorizzare in modo compatto grandi quantità di dati– Accesso efficientemente e selettivo ai dati
• Possiamo classificare i dispositivi di memoria di massa in:– Dispositivi ad accesso sequenziale (nastri)– Dispositivi ad accesso diretto (dischi)
• Tipicamente, sono basati su tecnologia magnetica• La tecnologia ottica è sempre più diffusa (per i dischi)
![Page 5: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/5.jpg)
5Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Nastri (1)• Accesso sequenziale • Sul nastro magnetico
sono incise delle piste orizzontali, parallele fra loro
• I dati vengono registrati serialmente su ogni traccia
• Il nastro scorre al di sopra della testina di lettura/scrittura
• Ai dati sono aggiunti alcuni bit di controllo per consentire il rilevamento di errori (es. bit di parità)
Bit 12345678
Bit di parità
![Page 6: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/6.jpg)
6Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Nastri (2)
• I dati sono organizzati sul nastro in zone contigue, dette record
• Sono previste zone prove di dati (gap) tra i record e all’inizio
• Parametri principali:– Densità di memorizzazione: è misurata in bit per inch
(bpi) – Capacità di memorizzazione = densità lunghezza (in
pollici)– Velocità di movimento del nastro
• Alcuni nastri hanno le tracce poste diagonalmente e sono letti da testine rotanti (scansione elicoidale)
• I nastri sono attualmente impiegati solo per il backup
![Page 7: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/7.jpg)
7Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Dischi (1)
• Accesso diretto • Disk-pack: un certo
numero di piatti coperti da uno strato magnetico
• Ciascun piatto ha una serie di cerchi concentrici (tracce) su entrambi i lati
• Le tracce sono suddivise in spicchi di ugual grandezza (settori)
• Le testine di lettura/scrittura si spostano (tutte insieme) radialmente tra le varie tracce
![Page 8: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/8.jpg)
8Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Dischi (2)
• L’inizio e la fine dei settori sono marcati con sequenze particolari di bit (formattazione)
• Blocco di ingresso/uscita: gruppo di dati che vengono letti o scritti con un’unica operazione di ingresso/uscita
• Ciascun blocco è individuato dalla terna:(num. superficie, num. traccia, num. settore)
• Una zona di memoria (il buffer) contiene i dati prima che vengano scritti su disco o dopo essere stati letti da disco
![Page 9: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/9.jpg)
9Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Dischi (3)
• Accesso ai dati:– Spostamento della testina verso la traccia richiesta
(tempo di seek)– Attesa del passaggio del settore richiesto (tempo di
latenza)• Mediamente, pari a metà del tempo di rotazione
– Trasferimento dei dati da/verso il buffer (tempo di trasferimento)
Quindi: ti/u = tseek + tlat + ttrasf
• Cilindro: l’insieme delle tracce, appartenenti a tutte le superfici, poste alla stessa distanza dal centro
![Page 10: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/10.jpg)
10Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Altre memoria di massa
• Floppy disk: magnetico• Dischi ottici
– CD-ROM– CD-R/RW– DVD
• Chiavi USB: memorie a stato solido Flash EPROM
![Page 11: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/11.jpg)
11Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Organizzazione degli archivie basi di dati
![Page 12: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/12.jpg)
12Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Organizzazione degli archivi
• Le informazioni vengono organizzate in memoria in record logici
• Blocchi di ingresso/uscita e record logici:– In un medesimo blocco di ingresso/uscita può trovare posto
un certo numero di record logici– Esistono record logici così grandi da occupare più blocchi di
ingresso/uscita
• L’accesso ad un record logico comporta il trasferimento di uno o più blocchi di ingresso/uscita
• Coefficiente di riempimento di un file:
numero di byte allocati a record logici nel filenumero di byte dei blocchi fisici allocati al file
![Page 13: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/13.jpg)
13Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Basi di dati
• Base di dati (o database): insieme di dati raccolti in base a precise regole e organizzati in strutture piuttosto rigide
• DBMS: sistema software che organizza e gestisce basi di dati– Opera al di sopra del sistema operativo– Offre linguaggi specifici per l’organizzazione e la
gestione dei dati– Offre meccanismi efficienti per l’accesso ai dati
![Page 14: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/14.jpg)
14Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Basi di dati e archivi separati (1)
• Dati gestiti basandosi sui file• Più applicazioni accedono ai file• Problemi:
– Inconsistenza e ridondanza dei dati– Riservatezza dei dati– Integrità dei dati– Concorrenza
Progr. 1 Progr. 2 Progr. 3
File
File modificati
![Page 15: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/15.jpg)
15Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Basi di dati e archivi separati (2)
• Integrità dei dati– I dati devono sempre essere consistenti con un
insieme di vincoli logici– Ad es. in un’anagrafe ogni dato riguarda una
persona, che ha un padre e una sequenza di figli. Ovviamente se esiste la persona P avente padre P1 occorre che P compaia tra i figli di P1
– Se il programma che aggiorna i padri è diverso da quello che registra le nascite si possono avere momenti in cui i dati non sono consistenti
![Page 16: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/16.jpg)
16Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Basi di dati e archivi separati (3)
• Dati gestiti da un DBMS• Vantaggi:
– I dati hanno una sola rappresentazione (meno ridondanza ed inconsistenza)
– L’accesso alla base di dati viene disciplinato dal DBMS (controllo, privatezza, ecc.)
– Alcuni vincoli di integritàpossono essere definitie verificati in modoautomatico
– Gestione ottimale della memoria di massa
– Gestione degli accessi concorrenti
Progr. 1 Progr. 1 Progr. 1
DBMS
Base di dati
![Page 17: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/17.jpg)
17Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Modelli per la gestione dei dati
• Modello dei dati:– Gerarchico: basato su strutture ad albero (metà anni 60)– Reticolare: basato su strutture a grafo (Codasyl - 1973,
1978)– Relazionale: basato sul concetto di insieme e sulla
strutturazione dei dati tramite tabelle (inizio anni ’80))– Ad oggetti: estende alle basi di dati alcune
caratteristiche dei linguaggi di programmazione orientati agli oggetti (inizio anni ’90)
• Schema di una base di dati: descrizione dei dati di uno specifico contesto applicativo– Definita tramite un attività detta database design – Istanza (od occorrenza) di una base di dati: valore
assunto dalla base di dati in un particolare istante di tempo
![Page 18: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/18.jpg)
18Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Categorie di linguaggi
• Data Definition Language (DDL):– Utilizzato per definire lo schema della base di dati– Lo schema viene salvato nel dizionario dei dati
• Data Manipulation Language (DML):– Per formulare interrogazioni (o query) sulla base di dati– Per modificare il contenuto della base di dati
• Nel seguito vedremo il linguaggio SQL (che supporta entrambi questi aspetti)
![Page 19: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/19.jpg)
19Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Livelli di astrazione
• Livelli di astrazione:– Fisico: descrive
la base di dati comeun insieme di recordin memoria di massa
– Logico: descrive la struttura di ciascun datoe i collegamenti tra dati diversi
– Esterno: presenta i dati così come vengono visti da un particolare utente o da una classe di utenti
• Livelli di indipendenza:– Fisica: ridefinire il livello fisico
senza modificare il livello logico– Logica: definire nuovi schemi
esterni senza modifica la struttura logica
Descrizione esterna 1
Descrizione esterna 2
Descrizione esterna n
Descrizione logica
Descrizione interna
Utente 1 Utente 2 Utente 3 Utente 4 Utente n
Archivi
![Page 20: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/20.jpg)
20Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Transazioni• Transazioni: non lasciano mai la base di dati in uno
stato inconsistente• Proprietà “acide” delle transazioni:
– Atomicità: vi sono solo due possibili terminazioni• Successo: tutte le attività della transazione sono andate a buon
fine, la base di dati è aggiornata (commit)• Fallimento: qualche attività della transazione non va a buon fine, la
transazione fallisce tutta, la base di dati non viene modificata (rollback)
– Consistenza: i vincoli di integrità dei dati non sono mai violati – Isolamento: transazioni concorrenti sono isolate le une dalle
altre– Durabilità: una volta completata con successo, l’effetto della
transazione sulla base di dati è permanente
![Page 21: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/21.jpg)
21Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Utenti di una base di dati
• Data Base Administrator (DBA):– Definizione degli schemi esterni, logico e fisico– Definizione dei vincoli di integrità e dei requisiti di
riservatezza– Per questi compiti, il DBA utilizza il DDL
• Terminalista:– Interagisce con un’applicazione che a sua volta si
interfaccerà con la base di dati
• Programmatore: – Scrive le applicazioni e le rende disponibili agli utenti– Utilizza il DML per interfacciare applicazione e base di dati
• Utente occasionale:– Formula query non previste dalle applicazioni, usando il DML
![Page 22: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/22.jpg)
22Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Basi di dati relazionali
![Page 23: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/23.jpg)
23Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Base di dati relazionale• Relazione, una tabella caratterizzata da:
– Un numero fisso di colonne (dette attributi); ciascuna colonna assume valori estratti da uno stesso dominio
– Un numero variabile di righe (dette tuple)– Grado di una relazione: il numero di colonne– Cardinalità di una relazione: il numero di righe– Schema di una relazione: il nome della relazione seguito
dai nomi dei suoi attributi; a ciascun attributo è associato un dominio
– Istanza di una relazione: insieme delle tuple presenti nella base di dati in un determinato istante (quindi, varia nel tempo)
• Base di dati relazionale, un insieme di relazioni:– Schema di una base di dati: l’elenco delle relazioni– Istanza di una base di dati: insieme delle istanze delle
relazioni
![Page 24: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/24.jpg)
24Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Esempio: schema base di dati
RelationCONTO-CORRENTE
(NUMERO-CC: integer,
NOME: char (20),
INDIRIZZO: char (20),
SALDO: decimal (14, 2)).
RelationMOVIMENTO
(NUMERO-CC:integer,
DATA-MOV: date,
NUMERO-MOV: integer,
IMPORTO: decimal (14, 2),
CAUSALE: char (1)).
![Page 25: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/25.jpg)
25Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Esempio: istanza base di dati
NUMERO-CC NOME INDIRIZZO SALDO
1 Rossi v. Anemoni 5 3,678.00
2 Bianchi v. Bolla 64 664.00
3 Brunelli v. Po 41 6,777.50
4 Grandi v. Romolo 3 3,400.00
NUMERO-CC DATA-MOV NUMERO-MOV IMPORTO CAUSALE
1 14-01-03 1 +200.00 V
1 14-01-03 2 -500.00 P
1 27-01-03 3 +2,700.00 S
4 27-01-03 1 +1,850.40 S
3 25-01-03 1 -650.00 A
CONTO-CORRENTE
MOVIMENTO
![Page 26: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/26.jpg)
26Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Alcune considerazioni
• Siamo vincolati ad introdurre informazioni che soddisfino lo schema– Ad es. nella relazione Conto_corrente possiamo introdurre
solo il nome e l’indirizzo del cliente, non il suo numero di telefono o il codice fiscale. Per inserire queste informazioni dovremmo prima modificare lo schema
• Partendo dalle relazioni esistenti è possibile ricavare informazioni non direttamente disponibili nel DB, ad es. l’elenco dei clienti che abitano in una certa zona e hanno versato più di un milione nel 1995
• Questo tipo di operazioni viene fatto attraverso il query language (o linguaggio di interrogazione del DB)
![Page 27: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/27.jpg)
27Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Accesso alle tuple
• L’accesso ad una certa tupla (o ad un insieme di tuple) di una relazione è sempre ed esclusivamente di tipo associativo (non posizionale): avviene in base al valore contenuto nella tupla
• Ovvero, posso chiedere al DBMS il saldo di Rossi – trova la tupla in cui l’attributo Nome vale “Rossi” e
leggi l’attributo Saldo• Non posso chiedere il valore dell’attributo
Nome della terza tupla – le tuple non sono ordinate e non c’è modo di fare
un accesso diretto
![Page 28: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/28.jpg)
28Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Chiavi nelle relazioni
• A causa dell’accesso associativo, è importante dotare le relazioni di una “chiave”
• Una chiave è un insieme minimo di attributi il cui valore identifica univocamente una tupla
• Serve per poter accedere ad una singola tupla – Ad es. nel caso del Conto_corrente si vuole poter aggiornare il Saldo di
una specifica tupla, corrispondente ad un ben preciso conto corrente. La chiave sarà pertanto l’attributo Num_CC
– Nel caso del Movimento, la chiave sarà data dall’insieme degli attributi Num_CC, Data_mov, Num_mov
• C è una chiave per una relazione R se valgono le seguenti proprietà:– univocità: non possono esistere due tuple di R con lo stesso valore di C– minimalità: eliminando un attributo da C la proprietà precedente decade
• Per una stessa relazione possono esistere più chiavi candidate– La chiave primaria della relazione sarà una tra queste– Spesso sulla chiave primaria non si accettano valori nulli
![Page 29: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/29.jpg)
29Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Restrizione e chiave• Restrizione: di una tupla t sugli attributi A di R,
indicata con t[A], è data dalla lista dei valori assunti da t sugli attributi A di R
• Chiave di una relazione R: un sottoinsieme K degli attributi di R, tale che valgano:– Unicità: in una qualunque istanza di R, non possono
esistere due tuple distinte di R la cui restrizione su K sia uguale
– Minimalità: non è possibile sottrarre a K un attributo senza che la condizione di unicità cessi di valere
• Ogni relazione deve avere almeno una chiave– Se la relazione ha più chiavi, una di esse sarà la chiave
primaria
CONTO-CORRENTE (NUMERO-CC; NOME, INDIRIZZO, SALDO)
MOVIMENTO (NUMERO-CC, DATA-MOV, NUMERO-MOV, IMPORTO, CAUSALE)
![Page 30: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/30.jpg)
30Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni Le operazioni relazionali• Ci sono operazioni che servono per combinare
relazioni, limitandosi a leggere il contenuto del DB. Restituiscono sempre una relazione– Operazioni unarie: hanno come operando un’unica
relazione– Operazioni binarie: hanno come operando due relazioni– Operazioni insiemistiche: corrispondono alle solite
operazioni di unione, differenza e intersezione
• Ci sono operazioni che servono a modificare il contenuto del DB– Aggiunta e riomozione e modifica di record
• Ci sono operazioni che servono a modificare lo schema del DB
![Page 31: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/31.jpg)
31Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni unarie - selezione
• La selezione restituisce una relazione che è strutturalmente identica all’operando (ha lo stesso schema), ma contiene un sottoinsieme delle tuple dell’operando
• Fa una selezione delle tuple della relazione “operando”, utilizzando un criterio di selezione:– Il criterio di selezione è una espressione logica (predicato)
che viene valutata (vero/ falso) su ciascuna tupla: le tuple per cui l’espressione vale “vero” sono selezionate e fanno parte del risultato, le altre, per cui l’espressione vale “falso” sono scartate.
![Page 32: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/32.jpg)
32Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni unarie – selezioneUn Esempio• Selezioniamo dalla relazione Conto_corrente le tuple
in cui Saldo > 2.000.000
![Page 33: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/33.jpg)
33Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni unarie - proiezione
• Mentre la selezione elimina delle righe della tabella operando, la proiezione elimina delle colonne
• Contrariamente al caso della selezione il criterio di eliminazione non dipende da un’espressione da valutare, ma si dà direttamente l’insieme degli attributi che vanno mantenuti
![Page 34: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/34.jpg)
34Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni unarie – proiezioneUn Esempio• Proiettiamo la relazione Movimento sugli attributi Data_mov e
Importo
• Nota: eliminando delle colonne può darsi che tra le tuple così ottenute esistano dei duplicati. Poiché le relazioni sono insiemi, i duplicati non sono ammessi, e quindi vengono eliminati– Ad es. il movimento del CC 1 del 1-1-96 è un duplicato e viene
eliminato
![Page 35: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/35.jpg)
35Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni binarie – prodotto cartesiano• Il prodotto cartesiano crea una relazione avente per
tuple tutte le possibili combinazioni ottenibili giustapponendo una tupla del primo operando con una tupla del secondo
• Esempio
![Page 36: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/36.jpg)
36Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni binarie – join naturale
• Il prodotto cartesiano raramente è utile, perché generalmente si vogliono ottenere solo le combinazioni di tuple tra le quali esiste una certa corrispondenza, o vale una certa proprietà
• join naturale: si combinano tra loro solo le tuple in cui valori delle relazioni in due attributi aventi dominio uguale (e nome uguale) verificano la proprietà di uguaglianza
• Nella tabella risultante, si considera la colonna uguale una volta sola
![Page 37: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/37.jpg)
37Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le operazioni binarie – join naturaleUn Esempio
![Page 38: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/38.jpg)
38Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL• E’ presente in tutti i DBMS relazionali
• Standard ANSI e ISO
• Mette a disposizione sia un DDL, sia un DML
• DDL: permette di creare lo schema della base di darti– CREATE TABLE: crea una relazione a livello logico– CREATE INDEX: crea indici per una certa relazione; gli indici
permettono di accedere ai dati con maggiore efficienza– DROP TABLE: cancella una relazione– DROP INDEX: cancella un indice
• DML: permette di scrivere le query– Basato sull’algebra relazionale– Operatori: selezione, proiezione, join, unione e differenza
![Page 39: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/39.jpg)
39Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: select
• L’istruzione che permette di formulare le query• Sintassi:
SELECT nomi di attributi
FROM nomi di relazioni
WHERE condizioni di ricerca sui dati
• Le tre clausole individuano rispettivamente:– gli attributi da includere nel risultato;– le relazioni da cui estrarre i dati;– la condizione di ricerca. Questa condizione può essere
assai complessa e coinvolgere nel suo interno altri blocchi SQL
![Page 40: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/40.jpg)
40Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: esempi 1
• La selezione riportata nell’esempio precedente si scrive:SELECT *FROM Conto_correnteWHERE Saldo > 2.000.000
• La proiezione dell’esempio precedente si scrive:SELECT Data_mov, ImportoFROM Movimento
• Nota: nei DBMS commerciali i duplicati sono ammessi. Per eliminarli occorre indicarlo esplicitamente, attraverso la parola chiave DISTINCT:SELECT DISTINCT Data_mov, ImportoFROM Movimento
![Page 41: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/41.jpg)
41Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: esempi 2
• Una singola espressione SQL può indicare selezione e proiezione insieme:SELECT Num_CC, ImportoFROM MovimentoWHERE Data_mov = 1-1-96
• L’operazione descritta seleziona le tuple in cui l’attributo Data_mov ha il valore rescritto, poi sopprime gli attributi diversi da Num_CC e Importo
• Join: Voglio sapere i nomi dei correntisti interessati da ciascun movimento: devo combinare le tuple di Conto_corrente con le tuple di Movimento aventi uguale Num_CC
• In SQL scrivo:SELECT *FROM Conto_corrente, MovimentoWHERE Conto_corrente.Num_CC =Movimento.Num_CC
![Page 42: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/42.jpg)
42Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: esempi 3
• Il join è combinabile con la selezione e la proiezione in un’unica operazione SQL: semplicemente il predicato non indicherà solo la corrispondenza tra tuple, ma anche un criterio cui le tuple del risultato dovranno essere conformi
• Voglio conoscere importo e causale dei movimenti di Rossi del 1-1-96:
SELECT Importo, CausaleFROM Conto_corrente, MovimentoWHERE Conto_corrente.Num_CC =
Movimento.Num_CC AND Nome = “Rossi” AND Data_mov = 1-1-96
![Page 43: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/43.jpg)
43Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: le operazioni insiemistiche
• Corrispondono alle normali operazioni sugli insiemi
• Occorre notare che per avere come risultato dei veri insiemi occorre sempre indicarlo esplicitamente usando la keyword DISTINCT– Altrimenti ad es. l’unione darà semplicemente un
risultato contenente le tuple del primo operando e quelle del secondo, duplicati compresi
• In SQL queste operazioni si chiamano rispettivamente– UNION– MINUS– INTERSECT
![Page 44: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/44.jpg)
44Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Il linguaggio SQL: esempio 4
• Estraiamo i CC che hanno un saldo maggiore di 2.000.000 e per i quali non è stato fatto alcun movimento per un importo maggiore di 1.000.000
SELECT Num_CCFROM Conto_correnteWHERE Saldo > 2.000.000MINUSSELECT Num_CCFROM MovimentoWHERE Importo > 1.000.000
![Page 45: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/45.jpg)
45Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Alcune considerazioni
• L’SQL supporta uno stile di interrogazione dichiarativo, nel senso che le query specificano le caratteristiche del risultato ma non indicano come estrarlo– Ad es. nelle selezioni non diciamo se la tabella deve
essere scandita dall’alto o dal basso, o quale parte della condizione deve essere valutata per prima
• Le query vengono interpretate dal DBMS, che provvede anche a ottimizzarle– Ad es. dovendo fare un join e una selezione conviene fare
la selezione prima, per avere meno tuple su cui valutare la condizione del join
![Page 46: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/46.jpg)
46Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Le applicazioni• SQL non è adatto agli utenti finali delle basi di dati
• Si realizzano applicazioni che permettono un’interazione semplice e schematica
• L’informazione scambiata con l’utente durante l’esecuzione di un’applicazione è mostrata in una maschera (o form)
• Esistono strumenti software per la gestione delle maschere che permettono al programmatore di:– Definire le maschere
– Associare ogni maschera l’operazione da eseguire sulla base di dati
• L’utente finale interagisce con le maschere e non vede né l’SQL, né lo schema della base di dati
![Page 47: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/47.jpg)
47Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Maschere: definizione
![Page 48: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/48.jpg)
48Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Maschere: uso
![Page 49: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/49.jpg)
49Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Rapporti (o report)
• Ulteriore modo per estrarre informazioni dalla base di dati
• Caratteristiche tipiche:– Destinati alla stampa o ad essere visualizzati in pagine Web– Contengono grandi quantità di dati– Generati periodicamente, senza interazioni con l’utente
• Esistono strumenti software per la definizione dei rapporti (generatori di report)
![Page 50: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/50.jpg)
50Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Altri linguaggi
• Linguaggi di quarta generazione• Consentono di realizzare applicazioni specificandole a
un alto livello• Il progettista usa tali linguaggi interagendo con loro
tramite interfacce a menu e maschere
![Page 51: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/51.jpg)
51Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Schemi concettuali e logici: Esempio di riferimento
![Page 52: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/52.jpg)
52Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Schemi concettuali e logici: Esempio di riferimento
![Page 53: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/53.jpg)
53Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Esercizi
• Visualizzare il nome e il peso specifico degli inquinanti prodotti nella città di Torino
• Visualizzare tutte le informazioni relative agli inquinanti prodotti nella città di Torino
• Visualizzare tutte le città in cui viene prodotto un inquinante
• Visualizzare il nome delle aziende con sede a Milano e grado di pericolosità superiore o pari a 20
• Visualizzare le coppie di aziende ed inquinanti tali che entrambi si trovino nella medesima città
• Visualizzare il nome degli inquinanti scaricati durante la lavorazione del prodotto con codice P3
![Page 54: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/54.jpg)
54Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Esercizi
• Visualizzare le coppie di nomi di città tali che un azienda che ha sede nella prima città scarichi nella seconda un inquinante relativo a un qualsiasi prodotto
• Visualizzare le coppie di aziende tali che abbiano sede nella stessa cittàSELECT A.NomeA, B.NomeA,FROM AZIENDA AS A, AZIENDA AS BWHERE A.Città = B.Città AND A.CodA < B.CodA;
• Visualizzare i nomi delle aziende che producono inquinanti a Milano, a Venezia, o in entrambe le città
![Page 55: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/55.jpg)
55Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Esercizi
• Visualizzare i nomi delle aziende che scaricano inquinanti a Milano – Ripetere l’esercizio usando select annidate
• Visualizzare i nomi delle aziende che non scaricano mercurio
SELECT NomeA FROM AZIENDA
WHERE CodA NOT IN
(SELECT CodA FROM SCARICO,INQUINANTE
WHERE SCARICO.CodI = INQUINANTE.CodI AND NomeI = “Mercurio”);
![Page 56: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/56.jpg)
56Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Progettare le Basi di Dati
• Progettare un DBMS vuol dire essenzialmente definirne lo schema– capire quali tabelle servono– definire lo schema di ciascuna tabella– creare le chiavi
• La progettazione delle query e delle modalità di interazione fa invece parte della progettazione delle applicazioni
![Page 57: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/57.jpg)
57Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Progettare le Basi di Dati
• Innanzitutto si cerca di produrre un modello concettuale dei dati da gestire– Il modello è concettuale in quanto prescinde dal
modello logico dei dati adottato dal particolare DBMS scelto
• Un formalismo molto usato per la descrizione concettuale dei dati è costituito dai diagrammi Entity/ Relationship (Chen)– Entità: ciò che è di interesse per il sistema– Relazioni: legami di diversa natura tra entità– Attributi: caratteristiche (proprietà) delle entità e
delle relazioni
![Page 58: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/58.jpg)
58Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Diagramma E-R: un esempio
• Un sistema per la gestione dell’allocazione delle aule per i corsi Universitari
• Entità:
![Page 59: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/59.jpg)
59Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Diagramma E-R: un esempio
• Relazioni:
![Page 60: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/60.jpg)
60Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Diagramma E-R: un esempio
• Molteplicità delle relazioni: indicata graficamente dal “ventagl io” ad una estremità della relazione; ad es:
• Aula--<-Corso, indica che una entità Aula può ospitare più Corsi ma un Corso può essere ospitato in una sola aula (relazione uno-molti)
• Corso->---<-Studente indica che una entità Studente può seguire più Corsi, e viceversa un Corso può essere seguito da più studenti (relazione molti-molti):
![Page 61: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/61.jpg)
61Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Diagramma E-R: un esempio
• Attributi:
![Page 62: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/62.jpg)
62Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Progettare del DB a partire dal modello E-R
• Un diagramma E-R può essere “trasformato” in uno schema logico di DB con qualunque data model
• Tuttavia, i diagrammi E-R sono particolarmente adatti al progetto di DB relazionali, perché la trasformazione di un diagramma E-R in uno schema relazionale è molto semplice:– un’entità diventa una relazione (tabella)– un attributo di un’entità diventa un attributo di una relazione– le relazioni tra entità possono diventare riferimenti diretti da
una tupla di una relazione ad una tupla di un’altra relazione oppure possono dar luogo ad una relazione aggiuntiva, a seconda dei casi
![Page 63: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/63.jpg)
63Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Traduzione di relazioni 1-1
• E1(IdE1: integer, A1: char(1), IdE2: integer)• E2(IdE2: integer, A2: char(1))
![Page 64: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/64.jpg)
64Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Traduzione di relazioni 1-n
• E1(IdE1: integer, A1: char(1), IdE2: integer)• E2(IdE2: integer, A2: char(1))
![Page 65: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/65.jpg)
65Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Traduzione di relazioni 1-n
• Si possono evitare le ridondanze rappresentando la relazione inversa
![Page 66: Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.](https://reader036.fdocument.pub/reader036/viewer/2022062517/5542eb59497959361e8c4b08/html5/thumbnails/66.jpg)
66Copyright © 2004 - The McGraw-Hill Companies, srl
Archivi e Basi di DatiInformatica A – V. Perrone
Traduzione di relazioni n-n
• In questo caso si deve introdurre una tabella apposita per la relazione– R(IdE1: integer, IdE2: integer)