Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali Memorie di massa Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 2 Indice • Memorie di massa • Organizzazione degli archivi e basi di dati • Basi di dati relazionali Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 3 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) Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 4 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à) Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone Bit 1 2 3 4 5 6 7 8 Bit di parità 5 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 6 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 Archivi e Basi di Dati Copyright © 2004 - The McGraw-Hill Companies, srl Informatica A – V. Perrone 7 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 8 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 9 Altre memoria di massa • Floppy disk: magnetico • Dischi ottici – CD-ROM – CD-R/RW – DVD • Chiavi USB: memorie a stato solido Flash EPROM Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 10 Organizzazione degli archivi e basi di dati Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 11 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 12 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 13 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 Progr. 3 File modificati Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 14 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 Progr. 1 – Alcuni vincoli di integrità possono essere definiti e verificati in modo automatico Progr. 1 Progr. 1 DBMS Base di dati Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 15 Modelli per la gestione dei dati • Modello dei dati: – 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 Archivi e Basi di Dati Copyright © 2004 - The McGraw-Hill Companies, srl Informatica A – V. Perrone 16 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) Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 17 Livelli di astrazione • Livelli di astrazione: Utente 1 Utente 2 Utente 3 Utente 4 – Fisico: descrive la base di dati come un insieme di record Descrizione Descrizion in memoria di massa esterna 1 e esterna 2 – Logico: descrive la struttura di ciascun dato e i collegamenti tra dati diversi – Esterno: presenta i dati così Descrizione come vengono visti da un logica 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone Utente n Descrizion e esterna n Descrizione interna Archivi 18 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 19 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 20 Basi di dati relazionali Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 21 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 22 Esempio: schema dase di dati Relation CONTO-CORRENTE (NUMERO-CC: integer, NOME: char (20), INDIRIZZO: char (20), SALDO: decimal (14, 2)). Relation MOVIMENTO (NUMERO-CC:integer, DATA-MOV: date, NUMERO-MOV: integer, IMPORTO: decimal (14, 2), CAUSALE: char (1)). Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 23 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 24 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) Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 25 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 26 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 27 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 28 Maschere: definizione Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 29 Maschere: uso Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 30 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) Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 31 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 Copyright © 2004 - The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 32