La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Basi di Dati Introduzione ai Database Management System (DBMS) Home page del corso:

Presentazioni simili


Presentazione sul tema: "Corso di Basi di Dati Introduzione ai Database Management System (DBMS) Home page del corso:"— Transcript della presentazione:

1 Corso di Basi di Dati Introduzione ai Database Management System (DBMS) Home page del corso:

2 Sistemi Informativi Un Sistema Informativo ( SI ) e una componente di unorganizzazione il cui scopo e quello di gestire le informazioni utili ad i fini dellorganizzazione stessa. Organizzazione Azienda, Ufficio, Ente, Universita, etc

3 Lesistenza di un Sistema Informativo e indipendente dalla sua automatizzazione. Biblioteca reale di Alessandria dEgitto IV-I secolo a.C rotoli presenti. Sistemi Informativi

4 Lesistenza di un Sistema Informativo e indipendente dalla sua automatizzazione. Censimenti e Registro Anagrafe. NellAntica Roma, i censimenti venivano effettuati dalla fine del IV secolo a.c. Gli elenchi dei censiti, distinti secondo il possesso o meno dei diritti civili e politici, la classe patrimoniale e l'età, venivano utilizzati come liste elettorali, ruoli per lesazione dei tributi e liste di leva. Sistemi Informativi

5 La porzione automatizzata di un sistema informativo prende il nome di Sistema Informatico. Allinterno di un sistema informatico, le informazioni sono rappresentate da dati, che hanno bisogno di essere interpretati per fornire informazioni. SISTEMA SISTEMA INFORMATIVO SISTEMA INFORMATICO Sistemi Informativi

6 Dato vs Informazione Informazione (def): notizia, o elemento che consente di avere conoscenza piu o meno esatta di fatti, situazioni e modi dessere. Dato (def): elementi di informazione constituiti da simboli che devono essere elaborati. FERRARI, 8 NOTA: Senza interpretazione, il dato non e molto utile!

7 Approcci di gestione dei dati Gran parte dei sistemi informatici hanno necessita di gestire dati in maniera persistente. Persistente Dati memorizzati su memoria secondaria Approccio convenzionale (basato su files) Approccio strutturato (basato su software di gestione dei dati) APPROCCI di GESTIONE

8 Gran parte dei sistemi informatici hanno necessita di gestire dati in maniera persistente. Persistente Dati memorizzati su memoria secondaria Approccio convenzionale (basato su files) Approccio strutturato (basato su software di gestione dei dati) APPROCCI di GESTIONE Approcci di gestione dei dati

9 Approccio Convenzionale (basato su files ) APPLICAZIONEFILES Operazioni di Lettura/Scrittura su file mediante supporto del Sistema Operativo Nessuna chiara distinzione tra dati ed applicazioni. Lapplicazione contiene al suo interno la logica di gestione e memorizzazione dei dati stessi (es. formato dei dati). Il Sistema Operativo offre le primitive di base per laccesso ai files ed i meccanismi di sicurezza del file-system. Approccio basato su files

10 Approccio Convenzionale (basato su files ) Qualche esempio estremo: 59 Milioni di clienti iscritti Oltre 42 Terabyte di dati 323 Terabyte di dati 1.9 trillioni di record relative a chiamate PROBLEMA1: Gestione di grandi quantita di dati ? AT&T AMAZON Ovvi problemi di scalabilita ed efficienza …

11 Approccio basato su files Approccio Convenzionale (basato su files ) In molti scenari pratici, i dati devono essere a disposizione di una moltitudine di utenti/applicazioni per accessi concorrenti. PROBLEMA2: Condivisione ed accesso concorrente? Es. Dati del personale strutturato di UNIBO UFFICIO STIPENDI SEGRETERIE DIDATTICHE ANAGRAFE UNIBO Dati retribuzioni Dati corsi,esami, etc Dati anagrafici

12 Approccio basato su files Approccio Convenzionale (basato su files ) Accesso a file condivisi avviene attraverso le politiche di accesso del file-system Lock a livello di file, bassa granularita di concorrenza, prestazioni molto limitate! Applicazioni diverse devono conoscere lesatta collocazione e formato dei dati Aggiornamento del formato dei dati ? In alternativa: Replica dei dati presso i vari sistemi/utenti che ne fanno utilizzo Consistenza delle repliche ? PROBLEMA2: Condivisione ed accesso concorrente?

13 Gran parte dei sistemi informatici hanno necessita di gestire dati in maniera persistente. Persistente Dati memorizzati su memoria secondaria Approccio convenzionale (basato su files) Approccio strutturato (basato su software di gestione dei dati) APPROCCI di GESTIONE Approcci di gestione dei dati

14 Caratteristiche dei DBMS Un DBMS e un sistema software che e in grado di gestire collezioni di dati grandi, condivise e persistenti, in maniera efficiente e sicura. Creazione di una base di dati, indicando la struttura dei dati, e memorizzando i dati su memoria secondaria Accesso in lettura/scrittura ad i dati Condivisione di dati tra diversi utenti/applicazioni Protezione dei dati da accessi non autorizzati Reliability dei dati in caso di guasti (hardware/software) …

15 DBMS: Quali? 4th Dimension Adabas D Alpha Five Apache Derby Aster Data Altibase BlackRay CA-Datacom Clarion Clustrix CSQL CUBRID Daffodil database DataEase Database Management Dataphor Java DB Empress Embedded Database EnterpriseDB eXtremeDB FileMaker Pro Firebird Greenplum GroveSite H2 Helix database HSQLDB IBM DB2 IBM Lotus Approach Infobright Informix Ingres InterBase InterSystems Caché GT.M Linter MariaDB MaxDB Microsoft Access Microsoft Jet Database Engine (part of Microsoft Access) Microsoft SQL Server Lista (parziale) dei DBMS piu utilizzati.

16 DBMS: Quali? Microsoft SQL Server Express Microsoft Visual FoxPro Mimer SQL MonetDB mSQL MySQL Netezza NonStop SQL Openbase OpenLink Virtuoso OpenLink Virtuoso Server OpenOffice.org Base Oracle Oracle Rdb for OpenVMS Panorama PostgreSQL Progress Software RDM Server SAND CDBMS Sav Zigzag ScimoreDB SmallSQL SQLBase SQLite Sybase SQL AdvantageServer Teradata TimesTen txtSQL Unisys RDMS 2200 UniData UniVerse Vertica VMDS VISTADB Lista (parziale) dei DBMS piu utilizzati.

17 Separazione Dati/Applicazioni con DBMS Tramite i DBMS, e possibile implementare un paradigma di separazione tra dati ed applicazioni … Le applicazioni non necessitano di conoscere la struttura fisica dei dati (es. come e dove sono memorizzati su disco) ma solo la struttura logica (cosa rappresentano). APPLICAZIONE DMBS FILES Accesso Fisico ai dati Accesso Logico ai dati M1 M2 Moduli del DBMS

18 APPLICAZIONE DMBS FILES M1 M2 Moduli del DBMS APPLICAZIONE FILES APPROCCIO CONVENZIONALE APPROCCIO DBMS-BASED Linguaggio DDL/DML Separazione Dati/Applicazioni con DBMS

19 Gestore della memoria secondaria Gestore del buffer Gestore dei metodi daccesso Gestore di Interrogazioni e aggiornamenti Gestore delle transazioni Gestore della concorrenza Gestore della affidabilità I DBMS sono software complessi (e per questo costosi!) Larchitettura di un DBMS include tipicamente molte componenti con ruoli diversi. Componenti di un DBMS

20 Caratteristiche di un DBMS: Efficienza Efficienza di un DBMS nella gestione dei dati … DBMS forniscono adeguate strutture dati ( indici ) per velocizzare la ricerca di dati sul disco (interrogazioni ed aggiornamenti) Gli indici si basano generalmente su strutture dati ad albero o su tabelle hash.

21 Efficienza di un DBMS nella gestione dei dati … In molti sistemi e fondamentale gestire operazioni concorrenti di accesso ai dati … Processing di piu di 7.7 milioni di pagamenti ogni giorno La maggior parte dei DBMS forniscono un livello di granularita di locking piu fine di quello convenzionale (a livello di tabella, pagina, o singola entry). Caratteristiche di un DBMS: Efficienza

22 Al tempo stesso, un DBMS deve garantire il fatto che accessi da parte di applicazioni diverse non interferiscano tra loro, lasciando il sistema in uno stato inconsistente … Es. Sistema informativo dei conti bancari 2 richieste da gestire al tempo t: Prelievo di 100 euro dal conto X Prelievo di 80 euro dal conto X Saldo del conto X: 120 euro Caratteristiche di un DBMS: Gestione della Concorrenza

23 ESEMPIO di ESECUZIONE ( non corretta !!) OP1 Leggi X Calcola X-100 Scrivi X OP2 Leggi X Calcola X-80 Scrivi X Schedule : OP1: Leggi X OP2: Leggi X OP1: Calcola X-100 OP2: Calcola X-80 OP1: Scrivi X OP2: Scrivi X Valore X: (????) Per prevenire tali situazioni, i DBMS implementano algoritmi di controllo della concorrenza che garantiscono il fatto che operazioni sui dati ( transazioni ) eseguite in concorrenza producano lo stesso risultato di unesecuzione seriale. Caratteristiche di un DBMS: Gestione della Concorrenza

24 Alcune operazioni sui dati sono particolarmente delicate, e devono essere gestite in maniera opportuna, secondo la regola del tutto o niente. Per questo, i DBMS devono fornire appositi strumenti per annullare operazioni non completate e fare roll-back dello stato del sistema … Caratteristiche di un DBMS: Meccanismi di Roll-back

25 In molti casi i DBMS mettono a disposizione appositi strumenti ed algoritmi per garantire la persistenza dei dati anche in presenza di malfunzionamenti hardware/software. Il controllore di affidabilita utilizza dei log, nel quale sono indicate tutte le operazioni svolte dal DBMS. Algoritmi ad-hoc (es. algorimo di ripresa a caldo/a freddo) per ripristinare lo stato dei dati a partire dai log del DBMS. Caratteristiche di un DBMS: Persistenza ed Affidabilita

26 La maggior parte dei DBMS implementa politiche di controllo degli accessi ad i dati mediante sistemi di permessi : Quali operazioni sono consentite allutente X? Quali dati appartengono allutente X? Caratteristiche di un DBMS: Multi-utenza e Sicurezza UtenteOPERAZIONEDATOPERMESSO Utente XLetturaStipendio di X Consentito Utente XLetturaStipendio di Y Consentito Utente YScritturaStipendio di Y Negato UTENTE X UTENTE Y

27 Architettura a 3 livelli di un DBMS In pratica, un DBMS puo essere visto come un architettura software a 3 livelli … SCHEMA ESTERNO SCHEMA ESTERNO SCHEMA ESTERNO SCHEMA LOGICO SCHEMA FISICO Descrive come si presenta il DB Descrive cosa rappresenta il DB Descrive come/dove sono memorizzati i dati Memorie di massa

28 Livello Logico di un DBMS I DBMS forniscono un approccio strutturato ad i dati. ??? In un DBMS, i dati sono organizzati secondo un modello logico, che definisce i concetti rappresentati, le associazioni dei dati, i vincoli che questi devono rispettare. In pratica, lutente/applicazione interagisce con i dati del DBMS sulla base del modello logico …

29 Sono stati proposti diversi modelli logici … DBMS possono differire sulla base del modello logico dei dati che supportano: Modello Relazionale (di fatto, il piu usato) Modello Gerarchico Modello Reticolare Modello ad Oggetti Approcci NoSQL (diversi) Livello Logico di un DBMS

30 ESEMPIO: Modello Relazionale Base di dati che gestisce le informazioni relative alla programmazione didattica di un Corso di Laurea: elenco corsi, con numero ore, semestre, crediti, nome e codice identificativo di ciascun corso. CodiceNomeNumOreSemestreCrediti 010Basi di Dati Algoritmi90112 } ISTANZE SCHEMA Nel modello relazionale, i dati sono organizzati in tabelle … Livello Logico di un DBMS

31 INDIPENDENZA MODELLO LOGICO – MODELLO FISICO Lorganizzazione logica dei dati non dipende dalle strutture dati usate per leffettiva memorizzazione su disco! In pratica, le applicazioni accedono al DBMS specificando i concetti logici del modello dei dati, piuttosto che i dettagli relativi alla loro memorizzazione. APPLICAZIONE DBMS Non vengono specificate righe/colonne nel quale queste informazioni sono memorizzate nella tabella! Livello Logico di un DBMS

32 Il livello esterno consente di avere viste personalizzate della base di dati da parte di diversi utenti/applicazioni! CodiceNomeCognomeData NascitaLivelloStipendio 001MarcoRossi10/10/ MicheleBianchi10/10/ Es. Base di dati condivisa tra diversi uffici di una stessa organizzazione. Solo alcuni uffici possono accedere a tutto il contenuto del DB! VISTA Ufficio Anagrafe VISTA Ufficio Stipendi Livello Esterno di un DBMS

33 Come possono utenti ed applicazioni interagire con un DBMS? Quasi tutti i DBMS mettono a disposizione dei linguaggi : Definizione dello schema logico ( Linguaggio DDL ) Manipolazione delle istanze ( Linguaggio DML ) Linguaggi orientati ad i dati, molto diversi da linguaggi di programmazione tradizionali (es. C/C++/Java/etc)! Noi vederemo il linguaggio (DDL+DML) SQL Interazione con un DBMS

34 Le applicazioni che si interfacciano con un DBMS: integrano codice SQL allinterno del loro codice utilizzano opportune librerie (fornite dal DBMS) per gestire la connessione al DBMS. APPLICAZIONE DBMS LIBRERIA Codice SQL - Esecuzione del codice SQL Dati/Risultati Interazione con un DBMS

35 Un esempio di modello integrato DMBS/App molto in voga: Web Information System (WIS) DBMS Browser (client) 1. HTTP request 6. HTTP response 2. Parametri 3. SQL Query 4. Dati 5. Pagina Web (dinamica) Esempio: Architettura AMP (Apache + MySQL + PHP) Interazione con un DBMS

36 Quando usare un DBMS in un progetto SW? Necessita di gestire grandi volumi di dati Necessita di costruire sistemi data-centric con molte operazioni di accesso ai dati Necessita di condividere dati, fornendo laccesso a diversi sistemi SW/ applicazioni Necessita di garantire la persistenza dei dati anche a fronte di possibili guasti e malfunzionamenti HW/SW Necessita di implementare meccanismi di sicurezza per laccesso ad i dati in un ambiente multi-utente Vantaggi nelluso di DBMS

37 Quando NON usare un DBMS in un progetto SW? Prestazioni In alcuni sistemi con richieste di efficienza sullelaborazione (es. real-time), loverhead computazionale introdotto dal DBMS puo essere eccessivo … Costo Spese per lacquisto di DBMS, formazione del personale, amministrazione del DB, etc Complessita Applicazioni/sistemi di dimensioni ridotte, single-user e con pochi dati da gestire … Svantaggi nelluso di DBMS

38 Finora abbiamo parlato in generale delle caratteristiche dei DBMS … … ma i DBMS sono tutti uguali ? NO ! Differenze sostanziali, ad esempio in termini di: Modello logico supportato (relazionale? RDBMS) Linguaggio DDL/DML (SQL-2? SQL-3? varianti?) Volumi di dati supportati (es. massima dimensione del DB) Algoritmi di indicizzazione (es. R+ tree?) Supporto alla transazioni (es. proprieta ACID?) Gestione della concorrenza … Quale DBMS usare?

39 DBMS: Un po di storia Nel 1970, un ricercatore della IBM ( Edgar Codd ) pubblica la sua visione di modello relazionale dei dati, basato sul concetto matematico di relazione tra insiemi. Edgar F. Codd A relational model of data for large shared data banks Communications of the ACM 13 (6),

40 Negli anni 1970, IBM lavora allo sviluppo di un linguaggio basato sul modello relazionale (SQL), ed allimplementazione di un RDBMS sperimentale ( System R SQL/DS DB2 ), ma continua anche lo sviluppo del sistema IMS. Nel 1979, una piccola startup ( Relational Software Inc ) produce un primo esempio di RDBMS commerciale (Oracle). Nel 1982, Relational Software cambia il proprio nome in Oracle Corporation. DBMS: Un po di storia

41 Negli anni 80, compaiono i primi DBMS basati sul modello ad oggetto (ORDBMS), che cercano di emulare il successo del paradigma di programmazione ad oggetti, e facilitare lintegrazione tra DBMS e linguaggi di alto livello (es. C++/Java) Viene sviluppata OQL – omologo di SQL per il paradigma ad oggetti … Nonostante cio ORDBMS restano poco diffusi! DBMS: Un po di storia

42 Solo nel 2011, il mercato dei RDMBS ha avuto una crescita del 16.5% con ricavi complessivi pari a 24 billioni di dollari. Il mercato dei RDBMS e dominato da 4 vendor, che da soli occupano una percentuale di ricavi pari al 75% del totale: Oracle (10 billioni di dollari di ricavi nel 2011). IBM Microsoft SAP Fonte: IDC OGGI? DBMS: Un po di storia

43 OGGI? DBMS: Un po di storia

44 Oggi, una delle nuove linee evolutive dei DBMS e rappresentata dallapproccio NoSQL. Idea di base : superare la rigidita del modello relazionale nella definizione dello schema, consentendo una piu facile espansione del DB in termini di dati, e di computazione distribuita. Molti approcci sotto la definizione NoSQL: Es. Apache Cassandra, Apache CouchDB,.. DBMS: Un po di storia


Scaricare ppt "Corso di Basi di Dati Introduzione ai Database Management System (DBMS) Home page del corso:"

Presentazioni simili


Annunci Google