Corso di Informatica

Documenti analoghi
Corso di Informatica

Corso di Informatica

Corso di Informatica

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Pag Politecnico di Torino 1

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

Corso di Informatica

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

Corso di Informatica

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:

Corso di Informatica

Strutture fisiche e strutture di accesso ai dati

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:

Organizzazione Fisica dei Dati (Parte II)

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Il file system. Il File System. Il file È un insieme di informazioni: programmi dati testi

Corso di Informatica

Organizzazione fisica dei dati: Gli Indici

FILE E INDICI Architettura DBMS

Corso di Informatica

Trasformare array paralleli in array di record

Corso di Informatica

Trasformare array paralleli in array di record

Corso di Informatica

Sistema operativo: Gestione del file system e delle periferiche

Corso sul linguaggio Java

ORDINE DI INSERIMENTO DELLE CHIAVI <35 >35

INTRODUZIONE AL 2 TEST IN ITINERE. a.a

Corso di. Basi di Dati I. 1. Introduzione

Il file system. Il File System. Attributi del file. File

Basi di dati II, primo modulo Prova parziale 22 marzo 2010 Compito A

Corso di. Basi di Dati I. 1. Introduzione

I B+ Alberi. Sommario

Corso sul linguaggio Java

Trasformare array paralleli in array di record

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Corso di Informatica

Introduzione alle basi di dati. A. Ferrari

Strutture di accesso ai dati: B + -tree

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Corso di Informatica

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Informatica e Bioinformatica: Basi di Dati

Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Corso di Informatica

Casi di studio per il tuning delle strutture fisiche (Shasha)

Sistemi Operativi. Bruschi Martignoni Monga. File system Astrazioni utente Metadati Tecniche implementative. Sistemi Operativi

Il File System. Sistemi Operativi L-A AA

Corso di Informatica

Gestione del file system. Astrazione di File System. Attributi del file. File

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

Algoritmi e strutture dati

LA MEMORIA NEL CALCOLATORE

INTRODUZIONE ALLE BASI DI DATI

SISTEMI INFORMATIVI E DATABASE

Corso di Access. Prerequisiti. Modulo L2A (Access) 2.4 Ordinamento e filtri

Basi di Dati Concetti Introduttivi

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

Corso di Informatica Modulo T1 C1-Sequenza e selezione

Lezione 22 La Memoria Interna (1)

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Corso di Laurea in Informatica Basi di Dati a.a

I database. Introduzione alla teoria delle basi di dati

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Basi di dati Basi di dati per bioinformatica

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Basi di dati. Concetti introduttivi

Il File System. Sistemi Operativi T AA

Memorizzazione di una relazione

Sistema Operativo (Software di base)

una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Corso di Informatica

I file utente sistema operativo nome

Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"

ITI M. FARADAY. Programmazione a. s

CHE COS È. I file vengono utilizzati come supporto per la memorizzazione dei programmi (sia programmi di sistema che programmi utente) e dei dati

Hashing e indici multidimensionali

Corso sul linguaggio Java

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi. L interfaccia del file system

Corso di Informatica Modulo T2 1 - Linguaggi e macchine

Il linguaggio di programmazione Python

Introduzione alle Basi di Dati

File ed Archivi. Prima parte

Corso di Informatica Modulo T1 1-Il concetto di algoritmo

Linee di programmazione

Transcript:

Corso di Informatica Modulo T1 C1 Organizzazione sequenziale con indici 1 Prerequisiti E necessario conoscere: organizzazione sequenziale organizzazione relativa struttura dati tabella chiave primaria accesso diretto cenni sulla struttura di un hard-disk 2 1

Informazioni generali In questa Unità si discute un nuovo tipo di organizzazione sequenziale, detto organizzazione sequenziale con indici. Questo tipo di organizzazione è un evoluzione dell organizzazione sequenziale e presenta, come vedremo, vantaggi e svantaggi. N.B. Nel descrivere gli algoritmi di trattamento dei file, indichiamo con: Tipo r; un generico record (un oggetto di classe Tipo) e con l intero k il suo attributo usato come chiave primaria, tralasciando per semplicità eventuali restanti attributi. 3 Introduzione Dovendo gestire un elenco di dati ad esempio anagrafici, si potrebbe pensare allo schema seguente, basato su due file: si accede al primo file, fornendo il valore di una chiave alfanumerica, chiave primaria, ad es. Assini ; alla chiave trovata è associata la posizione logica del record cercato. Accedendo al file di dati a detta posizione, otteniamo i dati completi. Chiave Posizione Cognome Nome Indirizzo Provincia Saldo Assini Botti Ceri Giusti 4 1 3 2 1 2 3 4 Botti Giusti Ceri Assini Anna Ennio Luigi Carlo Napoli Roma Perugia Pisa NA RM PG PI 2000 1450 1100 800 4 2

Organizzazione indexed L organizzazione sequenziale con indice indexed file) prevede due file: file di indici (index file, dizionario), nel quale: (o index sequential o sono presenti tutte le chiavi, ordinate (in genere, in ordine crescente); ogni chiave è associata alla posizione logica del record corrispondente è possibile accesso diretto file primario (work file), in cui sono presenti i dati effettivi e completi: organizzazione sequenziale o relativa con accesso diretto a blocchi (pagine) ordinati in base alla chiave 5 Organizzazione indexed In generale, considerando le chiavi come numeri, un file con organizzazione ad indici può essere rappresentato come indicato. Il file indice è ordinato in base alle chiavi e ogni record contiene: la chiave massima presente nel blocco; l indice del blocco associato. File indice File primario 6 3

Tipi di accesso Nei file organizzati ad indici possiamo avere: accesso sequenziale: è sempre possibile la scansione sequenziale dei record, come in tutte le altre organizzazioni. La freccia che unisce i blocchi del file primario nella figura precedente, indica appunto che è possibile visitare i record uno dopo l altro con chiave logica crescente (ad es. in ordine alfabetico). accesso a chiave: avviene secondo la procedura seguente: si immette la chiave k si ricerca k nel dizionario (ad esempio con una ricerca binaria) si preleva la posizione associata p si preleva il record in posizione p del work file mediante accesso diretto. 7 File multi-index L organizzazione index sequential è nata con l introduzione delle unità a disco (anni 60). Le prime realizzazioni utilizzavano un work file, ordinato fisicamente sulla chiave primaria, e permettevano di associarlo ad un unico index file. Le realizzazioni più moderne utilizzano un work file non ordinato su alcun campo e permettono per uno stesso work file, che sia costruito più di un index file in modo che sia possibile accedere attraverso più chiavi logiche (multi-index file). Si può utilizzare una chiave: primaria, quando occorre individuare uno ed un solo record (univoca) secondaria (o alternativa), anche non univoca, per individuare più di un record, procedendo sequenzialmente dal primo in poi. 8 4

File multi-index Chiave Assi Bott Ceri Gius Posizione 4 1 3 2 Metodo a chiave parziale In alcuni casi, per ottimizzare tempi e occupazione di memoria si può: usare una chiave parziale mantenere contenute le dimensioni del file indice, così da registrarlo in memoria centrale sotto forma di: tabella (garantisce velocità, come la ricerca binaria) lista (garantisce ottimizzazione dello spazio di memoria) Provincia RM NA PG PI Posizione 2 1 3 4 1 2 3 4 Cognome Botticelli Giustini Cerini Assini Nome Anna Ennio Luigi Carlo Indirizzo Napoli Roma Perugia Pisa Provincia NA RM PG PI Saldo 2000 1450 1100 800 9 Operazioni su file indexed Le operazioni sono quelle consuete: ricerca di un record di chiave k aggiornamento in base al valore di k Supponiamo di operare con un organizzazione con indici a più livelli. 10 5

Operazioni su file indexed - ricerca su file indexed La ricerca di un record di chiave k procede secondo il seguente algoritmo: Tipo Ricerca (Intero k) Flusso work-f, index-f; Inizio Ricerca nel file index-f la prima chiave k1 >=k; Acquisisci l indirizzo p della pagina associata a k1; Accedi nel file primario alla pagina p; Ricerca nella pagina p la chiave k; Se (record presente) Ritorna r; Altrimenti Ritorna null; Fine 11 Operazioni su file indexed - inserimento su file indexed L inserimento di un record di chiave k si intuisce che espone al rischio di dover riorganizzare l archivio. Tuttavia, trattandosi di un archivio sequenziale, si può con vantaggio usare la tecnica delle aree di overflow. L inserimento della chiave 85 riguarda la pagina 3 (chiavi comprese tra 125 e 190), che risulta satura. Quindi si attua un trabocco sulla pagina 5. 12 6

Operazioni su file indexed - inserimento su file indexed void Inserisci (Tipo r) Inizio Ricerca nel file indice la prima chiave ki >= r.k; Se (r.k > ki) Inserisci ordinatamente r nell area di overflow Altrimenti Fine Inizio Inserisci ordinatamente r nella pagina Se (c è trabocco) Inizio Inserisci r in testa all area di overflow Se (è il primo trabocco) Aggiorna Kovf, Povf, Chiave Altrimenti Aggiorna Chiave Fine Fine L algoritmo per l inserimento si presenta come segue: 13 Operazioni logiche Le operazioni logiche principali per l organizzazione ad indici sono le stesse dell organizzazione sequenziale con, in aggiunta, le seguenti: Operazione Leggi (Flusso f, Tipo rec, Stringa k) Scrivi (Flusso f, Tipo rec, Stringa k) Cancella (Flusso f, Stringa k) Effetto Legge record rec con chiave k Scrive record rec con chiave k Cancella record di chiave k 14 7

Indici a più livelli Quando il numero di blocchi diventa molto grande, il file indice cresce e, di conseguenza, la sua gestione può diventare pesante. Si può allora pensare il file indice stesso con un organizzazione ad indici, per riportare i tempi di elaborazione a valori accettabili. L organizzazione a indici a più livelli è un evoluzione della gestione indexed descritta in precedenza. In questa tecnica si struttura il file ad indici in più livelli di indici, in modo che ciascun livello contenga un gruppo di chiavi (ordinate) di cui è nota quella di valore massimo. In questo modo, data una chiave k, è possibile risalire al gruppo che la contiene; successivamente, si accede al file dati all indirizzo corrispondente alla chiave k. 15 Indici a più livelli - ricerca di un record Ad esempio, per cercare la chiave 200: si accede all indice 1 a livello 1 e si trova 900 (indice 2) si accede all indice 2 di livello 2 e si trova 215 (indice 6) si accede all indice 6 di livello 3 e si trova 202 (indice 114) si accede al file primario alla pagina 114 e scorrendo sequenzialmente, si trova 200 16 8

Indici a più livelli - ricerca di un record In generale, l algoritmo per la ricerca di un record di chiave k in un file indexed sequential a n livelli, può essere descritto come segue: 1. cercare nell indice di 1 livello la prima chiave di valore >= k 2. accedere all indice di 2 livello fino alla prima chiave >= k 3. n. accedere all indice di n livello fino alla prima chiave >= k Accedere al file primario e, scorrendolo sequenzialmente, prelevare, se presente, l informazione associata. 17 Indici a più livelli - inserimento di un record In generale, l inserimento su file ordinati a più livelli, prevede la gestione di aree di overflow, come negli archivi sequenziali. Nel caso di file non ordinati, l inserimento può essere fatto in coda o in posizioni cancellate in modo logico. 18 9

Applicazioni L organizzazione ad indici a 3 livelli, in particolare, è utilizzate nella progettazione dei file system, allo scopo di ottimizzare occupazione e tempi di ricerca delle informazioni. I tre indici sono: Indice di unità, determina l unità di memoria di massa su cui cercare l informazione (se questa è suddivisa su più unità) Indice di cilindro, determina il numero di cilindro sui cui si trova l informazione Indice di traccia, determina il numero di traccia sui cui si trova l informazione (le tracce sono le pagine del file primario) 19 Valutazioni di efficienza Possiamo osservare i seguenti vantaggi: questa tecnica, scomponendo il file ad indici in pagine, fa sì che il singolo gruppo di indici, di dimensioni più ridotte rispetto all intero file ad indici, possa essere caricato in memoria centrale; la presenza di più livelli di indici riduce lo spazio di ricerca per gli indici. è comunque sempre possibile la scansione sequenziale dei record L organizzazione a più livelli di indici è consigliata quando l archivio è dinamico (subisce frequenti aggiornamenti) poiché, pur prevedendo una notevole occupazione di memoria per gli indici, è sufficiente mantenere l ordinamento degli indici in caso di inserimento o cancellazione. 20 10

Tecniche di indicizzazione Esistono vari metodi di gestione del file indice, più o meno potenti, più o meno flessibili, più o meno veloci. Sostanzialmente possiamo avere: tecnica ISAM (Indexed Sequential Access Method), sviluppata originariamente da IBM, costituisce oggi la base per l immagazzinamento dei dati in molti database, relazionali e non. tecnica B-Tree (basata sugli ABR o Alberi Binari di Ricerca, quali B-Albero, B *-Albero, B+_Albero), più attuale ed efficiente nella costruzioni degli indici (descritta in altre Unità). 21 Tecnica ISAM Cilindri per ogni unità Tracce per ogni cilindro 22 11

Tecnica ISAM Nel metodo ISAM i record e gli indici sono organizzati in maniera tale da riempire perfettamente le tracce dei cilindri e da minimizzare gli spostamenti delle testine di lettura/scrittura da un cilindro all altro. Le principali caratteristiche dell ISAM sono: si hanno tre livelli di indici; gli indici di livello più basso (gli indici di traccia) contengono il valore più grande delle chiavi in quella traccia; ogni cilindro contiene il valore più grande delle chiavi in quel cilindro; l indice di cilindro è suddiviso in tracce; l indice di unità è allocato permanentemente in memoria centrale; 23 Tecnica ISAM la prima traccia di ogni cilindro contiene l indice di traccia per quel cilindro, l ultima traccia di ogni cilindro contiene un area di overflow comune alle tracce di quel cilindro; ad ogni area di overflow di cilindro può essere associata un area di overflow indipendente su un altro cilindro allo scopo di ovviare agli inconvenienti dovuti ad un veloce riempimento della traccia di overflow di cilindro; è una tecnica che prevede che il file primario sia ordinato logicamente in base alla chiave 24 12

Ricerca su archivi ISAM La ricerca in un archivio ISAM procede in questo modo: ricerca sull Indice dei Cilindri del cilindro interessato movimento delle testine per il posizionamento sul cilindro lettura prima traccia per portare in memoria l Indice di Traccia movimento delle testine per trovare la traccia interessata lettura della traccia interessata senz altro spostamento delle testine individuazione in memoria del record interessato Questo modo di organizzare i dati permetteva, con un solo movimento delle testine, di accedere a qualsiasi record e quindi era particolarmente efficiente. 25 Aggiornamenti su archivi ISAM I problemi nascevano per gli inserimenti e le cancellazioni. Per evitare di spostare i record in avanti (costo eccessivo) si adottavano diverse soluzioni: al momento della creazione del file, riempire le tracce solo al 70%. riservare le ultime due tracce di ogni cilindro come Aree di Overflow Primario in cui venivano registrati come lista ordinata i record. Nell Indice di traccia era registrata: la chiave massima contenuta in ogni traccia la chiave più alta registrata nella catena di Overflow Primario per quella traccia. In questo modo era possibile capire, senza altri movimenti della testina, se il record richiesto era nella traccia o in overflow. 26 13

Aggiornamenti su archivi ISAM Quando anche l Area di Overflow Primario si riempiva, si avevano due alternative: riorganizzare il file (copia su file sequenziale, cancellazione vecchio file e nuova creazione), cosa che richiedeva troppo tempo e impediva di usare nel frattempo il file e che veniva quindi svolta di notte. usare un area detta Area di Overflow Secondario dove potevano espandersi le varie catene dell Overflow Primario. Quest ultima possibilità faceva abbassare notevolmente le prestazioni del metodo, poiché per la lettura ed anche per l inserimento dei record in overflow, un unico movimento delle testine non era più sufficiente. 27 Argomenti Introduzione Organizzazione indexed Tipi di accesso File multi-index Operazioni su file indexed ricerca su file indexed inserimento su file indexed Operazioni logiche Indici a più livelli ricerca di un record inserimento di un record Applicazioni Valutazioni di efficienza Tecniche di indicizzazione Tecnica ISAM Ricerca su archivi ISAM Aggiornamenti su archivi ISAM 28 14

Altre fonti di informazione A.Lorenzi-D.Rossi, Le basi di dati e il linguaggio SQL ed. ATLAS G.Callegarin Corso di Informatica Generale 3 CEDAM P.Gallo, F.Salerno Informatica Generale - ed. Minerva Italica Cesarini, Pippolini, Soda Informatica 3 ed. CEDAM 29 15