14. Archivi e basi di dati Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Memorie di massa • Memoria di tipo persistente – Un dato è persistente se è mantenuto integralmente quando il calcolatore viene spento oppure si verifica un errore • Obiettivi nell’uso della memoria di massa: – Memorizzare in modo compatto grandi quantità di dati – Accesso efficiente e selettivo ai dati • Possiamo classificare i dispositivi di memoria di massa in: – Dispositivi ad accesso sequenziale (nastri) – Dispositivi ad accesso diretto (dischi) • • Basati su tecnologia magnetica: l’informazione è memorizzata come stato di magnetizzazione(positivo o negativo) delle particelle ferrose presenti sulla pellicola magnetica, indotto da un campo elettrico La tecnologia ottica è sempre più diffusa (per i dischi): lo spazio necessario per lo stato magnetico viene ulteriormente ridotto grazie al laser, che porta maggiore precisione e quindi maggiore capacità Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 che genera campi magnetici per scrivere e ne rimuove per leggere Ai dati sono aggiunti alcuni bit di controllo per consentire il rilevamento di errori (es. bit di parità) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Bit 1 2 3 4 5 6 7 8 Bit di parità Nastri (2) • • • I dati sono organizzati sul nastro in zone contigue, dette record Sono previste zone prive di dati tra i record (inter-record gap) e all’inizio(che consente l’accelerazione necessaria per portare i dati sulla testina ad una certa velocità) 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 ( e l’eventuale restore) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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: i dati di uno stesso file vengono messi sullo stesso cilindro per evitare il seek Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Altre memoria di massa • • Floppy disk: magnetico Dischi ottici – CD-ROM – CD-R/RW – DVD • Chiavi USB: memorie a stato solido Flash EPROM Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 file numero di byte dei blocchi fisici allocati al file Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Basi di dati • • Base di dati (o database): insieme i 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 File Progr. 2 File modificati Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Progr. 3 Basi di dati e archivi separati (2) Dati gestiti da un DBMS • Vantaggi: – I dati hanno una sola rappresentazione – L’accesso alla base di dati viene disciplinato dal DBMS – Alcuni vincoli di integrità possono essere definiti e verificati in modo automatico Progr. 1 Progr. 2 Progr. 3 DBMS Base di dati Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Modelli per la gestione dei dati • Modello dei dati:collezione di costruttori di tipo utilizzabili da un DBMS – Gerarchico: basato su strutture ad albero – Reticolare: basato su strutture a grafo – Relazionale: basato sul concetto di insieme e sulla strutturazione dei dati tramite tabelle – Ad oggetti: estende alle basi di dati alcune caratteristiche dei linguaggi di programmazione orientati agli oggetti • 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Categorie di linguaggi • Linguaggi forniti da un DBMS – 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) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Livelli di astrazione • • Livelli di astrazione: – Fisico: descrive la base di dati come un insieme di record in memoria di massa – Logico: descrive la struttura di ciascun dato e i collegamenti tra dati diversi – Esterno: presenta i dati così come vengono visti da un particolare utente o da una classe di utenti Utente 1 Utente 2 Utente 3 Utente 4 Descrizione esterna 1 Descrizion e esterna 2 Utente n Descrizion e esterna n Descrizione logica Livelli di indipendenza: – Fisica: ridefinire il livello fisico senza modificare il livello logico – Logica: definire nuovi schemi esterni senza modificare la struttura logica Descrizione interna Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Archivi Transazioni • • Transazioni: robuste esecuzioni di programma che 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Esempio: schema base di dati Relation (NUMERO-CC: NOME: INDIRIZZO: SALDO: CONTO-CORRENTE integer, char (20), char (20), decimal (14, 2)). Relation MOVIMENTO (NUMERO-CC: integer, DATA-MOV: date, NUMERO-MOV: integer, IMPORTO: decimal (14, 2), CAUSALE: char (1)). Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Esempio: istanza base di dati CONTO-CORRENTE NUMERO-CC NOME INDIRIZZO SALDO 1 Rossi v. Anemoni 5 3,678.00 2 Bianchi v. Bolla 64 3 Brunelli v. Po 41 6,777.50 4 Grandi v. Romolo 3 3,400.00 664.00 MOVIMENTO 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 1 +2,700.00 S 4 27-01-03 1 +1,850.40 S 3 25-01-03 1 -650.00 A Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013