Strutture di accesso ai dati

Documenti analoghi
Siti web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications)

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Progettazione Fisica FILE

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Al giorno d oggi, i sistemi per la gestione di database

Laboratorio di Basi di Dati

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

CORSO DI PROGRAMMAZIONE JAVA

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

L architettura MVC (Model- View-Controller) Introduzione

Protocolli e architetture per WIS

SWIM v2 Design Document

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Una metodologia di progettazione di applicazioni web centrate sui dati

Web Application Libro Firme Autorizzate

Architettura MVC-2: i JavaBeans

Organizzazione degli archivi

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Architetture Web: un ripasso

Introduzione ai database relazionali

Le Basi di Dati. Le Basi di Dati

19. LA PROGRAMMAZIONE LATO SERVER

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Corso di Informatica Modulo T3 B2 - Database in rete

Implementazione di MVC. Gabriele Pellegrinetti

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Basi di Dati Complementi Esercizi. Esercizi su strutture fisiche di accesso. Soluzione Esercizio 1. Esercizio 1. Soluzione Esercizio 2.

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Corso di Informatica Modulo T3 B1 Programmazione web

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

Cosa è un foglio elettronico

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

MetaMAG METAMAG 1 IL PRODOTTO

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

sito web sito Internet

Componenti Web: client-side e server-side

Il Sistema Operativo: il File System

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

L architettura di un DBMS

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Informatica Documentale

Concetti base. Impianti Informatici. Web application

Progettaz. e sviluppo Data Base

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

MagiCum S.r.l. Progetto Inno-School

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Siti interattivi e dinamici. in poche pagine

Database. Francesco Tapparo Informatica e Bioinformatica /16

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

Introduzione al Web. dott. Andrea Mazzini

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

INFORMATICA 1 L. Mezzalira

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Il Software. Il software del PC. Il BIOS

INDICE. Indice. Introduzione

EUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE Database Livello avanzato

Access. P a r t e p r i m a

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

1. BASI DI DATI: GENERALITÀ

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

Introduzione all Information Retrieval

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Introduzione al data base

Dipartimento di informatica CONTENUTI MINIMI DI INFORMATICA E TECNOLOGIE DELLA COMUNICAZIONE

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Flavio De Paoli

Transcript:

Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione prodotto dall ottimizzatore in sequenze di accessi alle pagine della base di dati presenti in memoria secondaria. piano di esecuzione Gestore dei metodi d accesso Richieste di accesso alle pagine DATI/INDICI 1

Gestore dei metodi di accesso 3 Metodi d accesso Sono i moduli software che implementano gli algoritmi di accesso e manipolazione dei dati organizzati in specifiche strutture fisiche. Esempio: Scansione sequenziale Accesso via indice Ordinamento Varie implementazioni del join Metodi di accesso 4 Ogni metodo d accesso ai dati conosce: L organizzazione delle tuple nelle pagine DATI salvate in memoria secondaria L organizzazione fisica della pagine DATI e delle pagine che memorizzano le strutture fisiche di accesso (INDICI). 2

Organizzazione di una pagina DATI In una pagina DATI sono presenti informazioni utili e informazioni di controllo: Informazioni utili: tuple della tabella Informazioni di controllo: dizionario pagina, bit di parità, altre informazioni del file system o del metodo d accesso specifico. STRUTTURA della pagina DATI dizionario delle tuple 5 tuple bit di parità Informazioni di controllo del metodo d accesso Informazioni di controllo del File System Struttura del dizionario Pagina DATI 6 tuple di lunghezza fissa: il dizionario non è necessario, si deve solo memorizzare la dimensione delle tuple e l offset del punto iniziale Tuple di lunghezza variabile: il dizionario memorizza l offset di ogni tupla presente nella pagina e di ogni attributo di ogni tupla Lunghezza massima di una tupla = dimensione massima dell area disponibile su una pagina, altrimenti va gestito il caso di tuple memorizzate su più pagine. 3

Inserimento di una tupla Pagina DATI Se esiste spazio contiguo sufficiente: inserimento semplice Se non esiste spazio contiguo ma esiste spazio sufficiente: riorganizzare lo spazio e eseguire un inserimento semplice Se non esiste spazio sufficiente: operazione rifiutata Cancellazione: sempre possibile anche senza riorganizzare Accesso ad una tupla Accesso ad un attributo di una tupla Accesso sequenziale (in ordine di chiave primaria) Riorganizzazione 7 Rappresentazione di una tabella a livello fisico 8 Livello fisico (memoria secondaria) Livello logico (modello dei dati relazionale) Tabella Struttura FISICA: - Strutture ad accesso calc. - Seriale - Array - SEQUENZIALE ORDINATA o FILE SEQUENZIALE Indice 4

Strutture fisiche di rappresentazione dei dati File sequenziale (struttura sequenziale ordinata in base alla chiave di ordinamento) Caratteristica fondamentale: è un file sequenziale dove le tuple sono ordinate secondo una chiave di ordinamento. Esempio Filiale Conto Cliente Saldo Pagina 1 Pagina 2 A 102 Rossi 1000 B 110 Rossi 3020 B 198 Bianchi 500 E 17 Neri 345 E 102 Verdi 1200 E 113 Bianchi 200 H 53 Neri 120 F 78 Verdi 3400 9 Inserimento di una tupla FILE SEQUENZIALE Individuare la pagina P che contiene la tupla che precede, nell ordine della chiave, la tupla da inserire. Inserire la tupla nuova in P; se l operazione non va a buon fine aggiungere una nuova pagina (overflow page) alla struttura: la pagina contiene la nuova tupla, altrimenti si prosegue. Aggiustare la catena di puntatori. Scansione sequenziale ordinata secondo la chiave Cancellazione di una tupla Individuare la pagina P che contiene la tupla da cancellare. Cancellare la tupla da P. Riorganizzazione: si assegnano le tuple alle pagine in base ad opportuni coefficienti di riempimento. 10 5

INDICI Per aumentare le prestazioni degli accessi alle tuple memorizzate nelle strutture fisiche (FILE SEQUENZIALE), si introducono strutture ausiliarie (dette strutture di accesso ai dati o INDICI). Tali strutture velocizzano l accesso casuale via chiave di ricerca. La chiave di ricerca è un insieme di attributi utilizzati dall indice nella ricerca. Indici su file sequenziali INDICE PRIMARIO: in questo caso la chiave di ordinamento del file sequenziale coincide con la chiave di ricerca dell indice. INDICE SECONDARIO: in questo caso invece la chiave di ordinamento e la chiave di ricerca sono diverse. 11 INDICE PRIMARIO Usa una chiave di ricerca che coincide con la chiave di ordinamento del file sequenziale. Ogni record dell indice primario contiene una coppia <v i, p i >: v i : valore della chiave di ricerca; 12 p i : puntatore al primo record nel file sequenziale con chiave v i Esistono due varianti dell indice primario: INDICE DENSO: per ogni occorrenza della chiave presente nel file esiste un corrispondente record nell indice. INDICE SPARSO: solo per alcune occorrenze della chiave presenti nel file esiste un corrispondente record nell indice, tipicamente una per pagina. 6

INDICE PRIMARIO 13 Esempio Indice denso A B E H M A E Indice sparso Pagina 1 Pagina 2 Filiale Conto Cliente Saldo A 102 Rossi 1000 B 110 Rossi 3020 B 198 Bianchi 500 E 17 Neri 345 E 102 Verdi 1200 E 113 Bianchi 200 H 53 Neri 120 M 78 Verdi 3400 INDICE PRIMARIO Ricerca di una tupla con chiave di ricerca K. DENSO ( K è presente nell indice) Scansione sequenziale dell indice per trovare il record (K,p k ) Accesso al file attraverso il puntatore p k Costo: 1 accesso indice + 1 accesso pagina dati SPARSO ( K potrebbe non essere presente nell indice) 14 Scansione sequenziale dell indice fino al record (K,p k ) dove K è il valore più grande che sia minore o uguale a K Accesso al file via p k e scansione del file per trovare le tuple con chiave K. Costo: 1 accesso indice + 1 accesso pagina dati 7

INDICE PRIMARIO Inserimento di un record nell indice Come inserimento nel FILE SEQUENZIALE DENSO 15 L inserimento nell indice avviene solo se la tupla inserita nel file ha un valore di chiave K che non è già presente. SPARSO L inserimento avviene solo quando, per effetto dell inserimento di una nuova tupla, si aggiunge una pagina dati alla struttura. INDICE PRIMARIO 16 Cancellazione di un record nell indice Come cancellazione nel FILE SEQUENZIALE DENSO La cancellazione nell indice avviene solo se la tupla cancellata nel file è l ultima tupla con valore di chiave K. SPARSO La cancellazione nell indice avviene solo quando K è presente nell indice e la corrispondente pagina viene eliminata, altrimenti, se la pagina sopravvive, va sostituito K nel record dell indice con il primo valore K presente nella pagina. 8

INDICE SECONDARIO Usa una chiave di ricerca che NON coincide con la chiave di ordinamento del file sequenziale. Ogni record dell indice primario contiene una coppia <v i, p i >: v i : valore della chiave di ricerca; p i : puntatore al bucket di puntatori che individuano nel file sequenziale tutte le tuple con valore di chiave v i. 17 Gli indici secondari sono sempre DENSI. INDICE SECONDARIO Esempio Bianchi Neri Rossi Verdi buckets 18 Filiale Conto Cliente Saldo A 102 Rossi 1000 B 110 Rossi 3020 B 198 Bianchi 500 E 17 Neri 345 E 102 Verdi 1200 E 113 Bianchi 200 H 53 Neri 120 M 78 Verdi 3400 9

INDICE SECONDARIO Ricerca di una tupla con chiave di ricerca K. Scansione sequenziale dell indice per trovare il record (K,p k ) Accesso al bucket B di puntatori attraverso il puntatore p k Accesso al file attraverso i puntatori del bucket B. Costo: 1 accesso indice + 1 accesso al bucket + n accessi pagine dati Inserimento e cancellazione: come indice primario denso con in più l aggiornamento dei bucket. 19 Prossime lezioni ed esercitazioni 20 28-mar-11 29-mar-11 29-mar-11 04-apr-11 05-apr-11 05-apr-11 11-apr-11 12-apr-11 12-apr-11 18-apr-11 19-apr-11 19-apr-11 Strutture ad accesso calcolato: hashing come indice secondario. Confronto tra B+-tree e hashing. Applicazioni Web: introduzione, protocollo TCP/IP, protocollo HTTP, definizione di URL. Linguaggio HTML: struttura, definizione di LINK. Esempio di applicazione web: il sito della 2 facoltà di Scienze. Architettura generale di sito statico e di sito dinamico centrato sui dati. Accesso a una base di dati dall'application server. Limitazioni dell'approccio CGI. Applicationi Web: architettura basata sull'estensione dell'application server: Servlet Java. Esempio di servlet: oggetti HttpServletRequest e HttpServletResponse. WEB-MM Interazione con una base di dati da un programma JAVA: classi della libreria java JDBC. Applicazioni Web: Esempio di servlet per l'estrazione dati da una base di dati gestita dal sistema postgresql via JDBC. 2 WEB-MM Laboratorio di basi di dati (applicazioni web): il linguaggio HTML. Struttura di un file HTML. Principali tag di formattazione del testo. Tabelle. Form. Controllo input con Javascript: cenni 3 LABWEB/MM Applicazioni Web: Una metodologia di progettazione di un sito web centrato sui dati: gli schemi di pagina. Metodologia di progettazione di un 2 sito web centrato sui dati: schemi di pagina con link. Esempi e esercizi. Una metodologia di progettazione di un sito web centrato sui dati: corrispondenza con la base di dati. WEB Tecnologie per applicazioni Web: Introduzione al costrutto "java bean". Uso dei java bean per l'interazione con il database. Classe Java per l'interazione con il DBMS. I metodi makebean. Esercizi sulla progettazione logica di applicazioni web centrate sui dati. 2 WEB Laboratorio di basi di dati (applicazioni Web): installazione di un sevlet engine (Tomcat). Servlet: funzionamento di base e in accoppiata con form HTML. Esempio di servlet semplice (HelloWorld) e servlet per il calcolo del contenuto di una tabella. 3 LABWEB/MM Java Server Pages (JSP): introduzione e sintassi di directives e scripting elements. Esempio di JSP semplice. Java Server Pages (JSP): 2 marcatori per l'uso di java beans nelle JSP. Esempi di JSP con java beans. WEB Architettura di un'applicazione Web-DBMS: il modello Model View Controller (MVC) servlet-centric. Java Server Pages (JSP): JSP action (forward, include). XML: introduzione. XML: sintassi base, nomi dei tag e struttura. XML: elemnti vs attributi. XML: esempi di documenti 2 semistrutturati. WEB Laboratorio di Basi di dati (applicazioni Web): interazione con un DBMS dalle servlet: il package JDBC e i Java Data Beans. 4 LABWEB/MM XML: specifica della sintassi degli elementi attraverso uno schema XMLSchema. XMLSchema: namespaces, definizione di elementi, tipi semplici e specializzazione di tipi semplici. 2 WEB-MM XMLSchema: gerarchie di tipi e gerarchie di elementi (substitutiongroup). Dichiarazione di attributi. Dichiarazione di <xsd:complextype> varianti: <xsd:choice>, <xsd:sequence> e <xsd:all>. Dichiazione di elementi vuoti ed elementi vuoti con attributi. File XSD senza namespace. 2 Esempi di file XML e corrispondenti file XSD. WEB-MM Laboratorio di Basi di dati (applicazioni Web): Java Server Pages. Esempi di JSP semplici. JSP e interazione con Bean e Database. 4 LABWEB/MM 02-mag-11 DTD: sintassi. XML: esercizi. 2 WEB-MM/MM Dati Multimediali: architettura dei DBMS multimediali, il dato multimediale. Concetti generali sulle sorgenti di segnali e messaggi: entropia e 03-mag-11 quantità di informazione, primo teorema di Shannon. Tecniche di compressione: lossles e lossy. 2 MM 03-mag-11 Laboratorio di applicazioni Web: esercitazione sull'architettura MVC-2 servlet centric. 4 LABWEB/MM 09-mag-11 Tecniche di compressione: Huffman e Lempel-Ziv-Welch. Esempi di codifica ed esercizi. 2 MM 10-mag-11 Tecniche di compressione dei dati multimediali: codifica JPEG. Dati MM: Indici per dati multimediali: il k-d-tree. 2 MM 10-mag-11 Laboratorio di applicazioni Web: Laboratorio di basi di dati e mm: gestione dei dati multimediali da servlet. 3 LABWEB/MM 17-mag-11 Laboratorio di basi di dati: architetture avanzate per applicazioni web. Command pattern e Enterpise Java Beans e Portlet (cenni). 4 24-mag-11 Esercitazione finale 2 LABWEB/MM 10