LABORATORIO di INFORMATICA



Похожие документы
Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

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

DBMS (Data Base Management System)

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Introduzione all Architettura del DBMS

Organizzazione degli archivi

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Corso di Informatica (Basi di Dati)

1. BASI DI DATI: GENERALITÀ

Lezione 1. Introduzione e Modellazione Concettuale

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Informatica (Basi di Dati)

Introduzione al data base

IL SISTEMA INFORMATIVO

Le Basi di Dati. Le Basi di Dati

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

L architettura di un DBMS

Sistemi Informativi e Basi di Dati

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

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Base di dati e sistemi informativi

Il database management system Access

Lezione V. Aula Multimediale - sabato 29/03/2008

BASI DI DATI - : I modelli di database

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

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

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Archivi e Basi di Dati

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Progettazione di Basi di Dati

Informatica Documentale

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Facoltà di Farmacia - Corso di Informatica

Sistemi informativi secondo prospettive combinate

Archivi e database. Lezione n. 7

Data Base. Prof. Filippo TROTTA

1.1 Introduzione alle basi di dati

Informatica per le discipline umanistiche 2 lezione 10

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Alessandra Raffaetà. Basi di Dati

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

Capitolo 13. Interrogare una base di dati

TEORIA sulle BASI DI DATI

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

Database. Si ringrazia Marco Bertini per le slides

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Corso di Basi di Dati A.A. 2014/2015

Tecnologia di un Database Server (centralizzato) Introduzione generale

Corso di Basi di Dati e Conoscenza

DATABASE. nozioni di base

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Corso di Sistemi di Elaborazione delle informazioni

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

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Informatica I per la. Fisica

Database. Francesco Tapparo Informatica e Bioinformatica /16

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

Basi di Dati e Microsoft Access

Introduzione ai sistemi di basi di dati

I database relazionali (Access)

Organizzazione delle informazioni: Database

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

I Sistemi Informativi

Progettaz. e sviluppo Data Base

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Introduzione ai sistemi di basi di dati

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Base Dati Introduzione

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Progetto Campo Base. Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Progettaz. e sviluppo Data Base

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Linguaggio SQL: costrutti avanzati

Elena Baralis 2013 Politecnico di Torino 1

Basi di dati 9 febbraio 2010 Compito A

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

Introduzione ai database relazionali

Cosa è un foglio elettronico

Il Modello Relazionale

Corso di Informatica

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Application Server per sviluppare applicazioni Java Enterprise

BASE DI DATI: sicurezza. Informatica febbraio ASA

MODULO 5 Appunti ACCESS - Basi di dati

Транскрипт:

Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto INTRODUZIONE AI SISTEMI DI BASI DI DATI http://www.diee.unica.it/giacinto/lab Che cos è un DBMS?! Una collezione integrata molto grande di dati! Modella organizzazioni del mondo reale! Entità (ad esempio studenti, corsi)! Relazioni (ad esempio, Antonella segue il corso 564)! Un DataBase Management System (DBMS) è un pacchetto software progettato per memorizzare e gestire basi di dati Giorgio Giacinto 2010 Laboratorio di Informatica 2

Gestione dei dati! Progettazione di basi di dati e sviluppo di applicazioni! Analisi dei dati! Concorrenza (utilizzo da parte di più utenti) e robustezza (protezione dei dati in caso di guasti)! Efficienza e scalabilità Giorgio Giacinto 2010 Laboratorio di Informatica 3 Cenni storici! Anni 60: primo DBMS progettato dalla General Electric! Fine anni 60: primo DBMS dell IBM! IBM e American Airlines svilupparono Il sistema di prenotazione area SABRE! 1970: Edgar Codd propose il modello relazionale dei dati! Anni 80: Modello relazionale si impone sugli altri modelli di dati Giorgio Giacinto 2010 Laboratorio di Informatica 4

Cenni storici! A partire dagli anni 80: diffusione del linguaggio SQL (sviluppato come parte del System R della IBM)! Standardizzazione SQL negli anni 90! Ulteriori progressi! Memorizzazione e gestione di dati provenienti da diverse basi di dati (data warehouse)! Analisi di dati con strumenti di data mining /business intelligence! Commercio elettronico, librerie digitali, mappatura genoma umano, contenuti multimediali Giorgio Giacinto 2010 Laboratorio di Informatica 5 Cenni storici! In tempi più recenti sono comparsi pacchetti applicativi basati su DBMS! ERP (Enterprise Resource Planning)! MRP (Management Resource Planning) produttori: Oracle, SAP, PeopleSoft, ecc.! Questi pacchetti identificano operazioni gestionali comuni e forniscono uno strato applicativo! I dati sono memorizzati in un DBMS Giorgio Giacinto 2010 Laboratorio di Informatica 6

Cenni storici! La diffusione di Internet ha trasformato ulteriormente il mondo delle basi di dati Le interrogazioni e i relativi risultati vengono sempre più spesso mostrati attraverso l uso di un browser! I testi sono formattati attraverso HTML/XML Giorgio Giacinto 2010 Laboratorio di Informatica 7 Uso di file per la gestione dei dati! Necessità di spostare grandi insiemi di dati tra memoria principale e memoria secondaria (ad esempio in caso di buffering, di accessi orientati alla pagina, di indirizzamento a 32 bit, etc.) per esaminare tutti i dati! Necessità di scrivere programmi diversi per ciascuna interrogazione! Protezione dei dati da inconsistenza dovuta a utenti multipli che accedono ai dati in maniera concorrente! Gestire il ripristino da crash! Meccanismi insufficienti per garantire la sicurezza dei dati Giorgio Giacinto 2010 Laboratorio di Informatica 8

Perché usare un DBMS?! Indipendenza dei dati e accesso efficiente! Tempo ridotto di sviluppo dell applicazione! Integrità dei dati e sicurezza! Amministrazione dei dati uniforme! Accesso concorrente, ripristino da crash Giorgio Giacinto 2010 Laboratorio di Informatica 9 Quando non usare un DBMS! Applicazioni con vincoli rigidi di tempo reale! Applicazioni con alcune operazioni critiche che richiedono la scrittura ad hoc di un codice efficiente! Applicazioni che necessitano di tipi di manipolazione di dati non supportati dai DBMS! Analisi costi/benefici Giorgio Giacinto 2010 Laboratorio di Informatica 10

Movimento NoSQL! Motivato dalla moda più diffusa di utilizzo dei DBMS anche in ambienti dove! Il modello relazionale non è il più adatto a rappresentare le informazioni di interesse! Non sono definiti vincoli di integrità! Non devono essere supportate le transazioni In questi casi il DBMS rallenta le operazioni del sistema! Proposti modelli alternativi di gestione dei dati (es., BigTables di Google) Giorgio Giacinto 2010 Laboratorio di Informatica 11 Perché studiare le basi di dati?! Spostamento dalla computazione all informazione! A livello base : gestire i dati caotici del Web! Ad alto livello : applicazioni scientifiche! Gli insiemi di dati aumentano in varietà e volume! Librerie digitali, video interattivi, progetto Genoma Umano, progetto EOS... necessità di crescita esponenziale dei DBMS! I DBMS coprono gran parte dell informatica Sistemi operativi, linguaggi, teoria, Intelligenza Artificiale, multimedialità, logica Giorgio Giacinto 2010 Laboratorio di Informatica 12

MODELLI DI DATI Modelli di dati! Un modello di dati è una collezione di concetti per la descrizione dei dati! Uno schema è una descrizione di una particolare collezione di dati, che fa uso del modello di dati fornito! Il modello di dati relazionale è il modello oggi più usato! Concetto chiave: relazione, fondamentalmente una tabella con righe e colonne! Ogni relazione ha uno schema, che descrive le colonne, o campi Giorgio Giacinto 2010 Laboratorio di Informatica 14

Esempio di relazione Schema Studenti(sid: string, nome: string, login: string, età: integer, media: real) Istanza sid 53666 53688 53650 53831 53832 nome Jones Smith Smith Madayan Guldu login Jones@cs Smith@ee Smith@math Madayan@music Guldu@music età 18 18 19 11 12 media 3.4 3.2 3.8 1.8 2.0 Giorgio Giacinto 2010 Laboratorio di Informatica 15 Livelli di astrazione! Molte viste, un singolo schema logico (concettuale) e uno schema fisico! Le viste descrivono i dati come vengono visti dagli utenti! Lo schema logico definisce la struttura logica! Lo schema fisico descrive i file e gli indici usati Vista 1 Vista 2 Vista 3 Schema Logico Schema Fisico Disco Giorgio Giacinto 2010 Laboratorio di Informatica 16

Esempio: La base di dati di una Università! Schema logico! Studenti(sid: string, nome: string, login: string, età: integer, media: real)! Corsi(cid: string, cnome: string, crediti: integer)! Iscritto(sid: string, cid: string, voto: string)! Schema fisico! Le relazioni sono memorizzate come file non ordinati! Indice sulla prima colonna di Studenti! Schema esterno (vista)! InfoCorso(cid: string, iscritti: integer) Giorgio Giacinto 2010 Laboratorio di Informatica 17 Indipendenza dei dati* Le applicazioni sono separate dalla struttura logica e dalla memorizzazione fisica dei dati! Indipendenza logica dei dati: protezione dalle modifiche alla struttura logica dei dati! Un cambiamento della struttura logica dei dati non si riflette sulle viste degli utenti! Indipendenza fisica dei dati: protezione dalle modifiche alla struttura fisica dei dati! Un cambiamento della struttura fisica dei dati non si riflette sulla struttura logica dei dati *Uno dei più importanti benefici dell uso di un DBMS! Giorgio Giacinto 2010 Laboratorio di Informatica 18

LINGUAGGI DEI DBMS Interrogazioni in un DBMS! Le interrogazioni sono le domande che un utente pone al DBMS per estrarre informazioni dai dati! Qual è il nome dello studente con matricola 24532?! Quanti studenti sono iscritti al corso 8305?! Il corso 8352 è seguito da studenti con una media minore di 23?! Un DBMS fornisce un linguaggio per esprimere le interrogazioni Giorgio Giacinto 2010 Laboratorio di Informatica 20

Linguaggi del modello relazionale! Calcolo relazionale! Linguaggio formale basato sulla logica matematica! Algebra relazionale! Linguaggio formale basato su una collezione di operatori! Un DBMS cerca di valutare le interrogazioni nel modo più efficiente possibile Giorgio Giacinto 2010 Laboratorio di Informatica 21 Linguaggi dei DBMS! DML (Data Manipulation Language)! Inserire, modificare, interrogare i dati! DDL (Data Definition Language)! Per creare lo schema logico! Il linguaggio SQL contiene comandi DDL e DML Giorgio Giacinto 2010 Laboratorio di Informatica 22

TRANSAZIONI Controllo di concorrenza! L esecuzione concorrente di programmi utente è essenziale per ottenere buone prestazioni dal DBMS! Gli accessi al disco sono frequenti e relativamente lenti, perciò è importante tenere occupata la CPU lavorando su diversi programmi utente! Le azioni interallacciate di diversi programmi utente possono portare a inconsistenza: ad esempio, un assegno viene pagato mentre viene calcolato il saldo del conto corrente! Il DBMS garantisce che tali problemi non si presentino: ogni utente può immaginare di essere l unico utente del sistema Giorgio Giacinto 2010 Laboratorio di Informatica 24

Transazione! Il concetto chiave è la transazione,! è una sequenza atomica di azioni sulla base di dati (letture/scritture)! Ciascuna transazione, eseguita completamente, deve lasciare la base di dati in uno stato coerente! Gli utenti possono specificare alcuni semplici vincoli di integrità sui dati, e il DBMS garantirà tali vincoli! Il DBSM non capisce la semantica dei dati (ad esempio il calcolo degli interessi su un conto bancario)! Garantire che una transazione eseguita da sola conservi la coerenza dei dati è, in ultima analisi, responsabilità dell utente! Giorgio Giacinto 2010 Laboratorio di Informatica 25 Garantire l atomicità! Il DBMS garantisce l atomicità (proprietà tutto-oniente) anche se il sistema va in crash durante una transazione! Idea: mantenere un log (una storia) di tutte le azioni effettuate dal DBMS nell eseguire un insieme di transazioni! prima che una modifica sia fatta alla base di dati, la voce corrispondente del log viene messa al sicuro (protocollo WAL - Write-Ahead Log - spesso non supportato dal sistema operativo)! dopo un crash, gli effetti delle transazioni eseguite parzialmente sono annullati usando il log (grazie al WAL, se una voce del log non era stata salvata prima del crash, le corrispondenti modifiche alla base di dati non erano state apportate!) Giorgio Giacinto 2010 Laboratorio di Informatica 26

Il log! Le seguenti azioni sono registrate nel log! T i scrive un oggetto: il vecchio valore e il nuovo valore! Il record nel log deve essere salvato su disco prima della pagina modificata! T i termina/si interrompe: un record nel log registra tale azione! I record nel log sono collegati tramite l ID della transazione, così che sia semplice annullare una transazione specificata (ad esempio per risolvere un deadlock) Giorgio Giacinto 2010 Laboratorio di Informatica 27 Il log! Il log è spesso duplicato e archiviato in una memoria stabile! Tutte le attività connesse al log (e di fatto tutte le attività connesse al controllo di concorrenza, come blocco/sblocco, gestione dei deadlock, ecc) sono gestite dal DBMS in maniera trasparente Giorgio Giacinto 2010 Laboratorio di Informatica 28

GLI ATTORI IN SCENA Le basi di dati fanno felici queste persone...! Utenti finali e produttori di DBMS! Programmatori di applicazioni per DBMS! Ad esempio gestori di siti Web! Amministratori di basi di dati (DBA)! Progettano gli schemi logico/fisico! Gestiscono la sicurezza e le autorizzazioni! Gestiscono disponibilità dei dati, ripristino da crash! Modificano lo schema della base di dati con l evolversi delle necessità Giorgio Giacinto 2010 Laboratorio di Informatica 30

Struttura di un DBMS Giorgio Giacinto 2010 Laboratorio di Informatica 31 Sommario! Un DBMS è usato per mantenere e interrogare grandi insiemi di dati! Tra i benefici, il ripristino dai crash del sistema, l accesso concorrente, il rapido sviluppo di applicazioni, l integrità dei dati e la sicurezza! I livelli di astrazione portano all indipendenza dei dati! Un DBMS tipicamente ha un architettura stratificata! I DBA svolgono un lavoro di responsabilità! La ricerca e sviluppo nei DBMS è una della più vaste aree dell informatica Giorgio Giacinto 2010 Laboratorio di Informatica 32