fondamenti di informatica i cdl in ingegneria elettronica - a.a. 2007-2008 cdl in ingegneria...
TRANSCRIPT
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
14. Archivi e basi di dati14. Archivi e basi di dati
Ing. Simona Colucci
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
• 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à
Memorie di massaMemorie di massa
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Nastri (1)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à)
Bit 12345678
Bit di parità
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Nastri (2)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)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Dischi (1)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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Dischi (2)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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Dischi (3)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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Altre memoria di massaAltre memoria di massa
• Floppy disk: magnetico• Dischi ottici
– CD-ROM– CD-R/RW– DVD
• Chiavi USB: memorie a stato solido Flash EPROM
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Organizzazione degli archiviOrganizzazione 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Basi di datiBasi 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Basi di dati e archivi separati (1)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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Basi di dati e archivi separati (2)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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Modelli per la gestione dei datiModelli 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Categorie di linguaggiCategorie 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)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Livelli di astrazioneLivelli 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
• Livelli di indipendenza:– Fisica: ridefinire il livello
fisico senza modificare il livello logico
– Logica: definire nuovi schemi esterni senza modificare 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
TransazioniTransazioni
• 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Utenti di una base di datiUtenti 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Base di dati relazionaleBase 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Esempio: schema base di datiEsempio: schema base 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)).
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Esempio: istanza base di datiEsempio: 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 1 +2,700.00 S
4 27-01-03 1 +1,850.40 S
3 25-01-03 1 -650.00 A
CONTO-CORRENTE
MOVIMENTO
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Restrizione e chiaveRestrizione 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)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Il linguaggio SQLIl 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Il linguaggio SQL: Il linguaggio SQL: selectselect
• L’istruzione che permette di formulare le query• Sintassi:
SELECT nomi di attributi
FROM nomi di relazioniWHERE 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Le applicazioniLe 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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Maschere: definizioneMaschere: definizione
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Maschere: usoMaschere: uso
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Rapporti (o Rapporti (o reportreport))
• 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)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di Informatica IFondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008CDL in Ingegneria Elettronica - A.A. 2007-2008
Altri linguaggiAltri 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