470 likes | 649 Views
Corso di Basi di Dati. Introduzione ai Database Management System ( DBMS ) Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. Sistemi Informativi.
E N D
Corso di Basi di Dati Introduzioneai Database Management System (DBMS) Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
SistemiInformativi Un SistemaInformativo(SI) e’ unacomponente di un’organizzazioneil cui scopo e’ quello di gestire le informazioniutili ad ifinidell’organizzazionestessa. Organizzazione Azienda, Ufficio, Ente, Universita’, etc
SistemiInformativi L’esistenza di un SistemaInformativoe’ indipendentedallasuaautomatizzazione. Bibliotecareale di Alessandria d’Egitto IV-I secoloa.C 400000 rotolipresenti.
SistemiInformativi L’esistenza di un SistemaInformativoe’ indipendentedallasuaautomatizzazione. Censimenti e RegistroAnagrafe. Nell’Antica Roma, icensimentivenivanoeffettuatidalla fine del IV secoloa.c. Glielenchideicensiti, distintisecondo ilpossesso o menodeidiritticivili e politici, la classepatrimoniale e l'età, venivanoutilizzati come listeelettorali, ruoli per l’esazionedeitributi e liste di leva.
SistemiInformativi • La porzioneautomatizzata di un sistemainformativoprendeilnome di SistemaInformatico. • All’interno di un sistemainformatico, le informazionisonorappresentate da dati, chehannobisogno di essereinterpretati per fornireinformazioni. SISTEMA SISTEMA INFORMATIVO SISTEMA INFORMATICO DATI
DatovsInformazione • Informazione (def): notizia, o elementocheconsente di avereconoscenzapiu’ o menoesatta di fatti, situazioni e modid’essere. • Dato (def): elementi di informazioneconstituiti da simbolichedevonoessereelaborati. NOTA: Senzainterpretazione, ildato non e’ molto utile! FERRARI, 8
Approcci di gestionedeidati Gran parte deisistemiinformaticihannonecessita’ di gestiredati in manierapersistente. Persistente Datimemorizzatisu memoriasecondaria APPROCCI di GESTIONE • Approccioconvenzionale (basatosu files) • Approcciostrutturato (basatosu software di gestionedeidati)
Approcci di gestionedeidati Gran parte deisistemiinformaticihannonecessita’ di gestiredati in manierapersistente. Persistente Datimemorizzatisu memoriasecondaria APPROCCI di GESTIONE • Approccioconvenzionale (basatosu files) • Approcciostrutturato (basatosu software di gestionedeidati)
Approcciobasatosu files • ApproccioConvenzionale (basatosufiles) APPLICAZIONE FILES Operazioni di Lettura/Scrittura su file mediantesupporto del SistemaOperativo • Nessunachiaradistinzionetradatiedapplicazioni. • L’applicazionecontiene al suointerno la logica di gestione e • memorizzazionedeidatistessi (es. formatodeidati). • Il SistemaOperativooffre le primitive di base per l’accessoai files edimeccanismi di sicurezza del file-system.
Approcciobasatosu files • ApproccioConvenzionale (basatosufiles) PROBLEMA1: Gestione di grandiquantita’ di dati? Qualcheesempio “estremo”: 59 Milioni di clientiiscritti Oltre 42 Terabyte di dati 323 Terabyte di dati 1.9 trillioni di record relative a chiamate AMAZON AT&T Ovviproblemi di scalabilita’edefficienza …
Approcciobasatosu files • ApproccioConvenzionale (basatosufiles) PROBLEMA2: Condivisioneedaccessoconcorrente? In moltiscenaripratici, idatidevonoessere a disposizione di unamoltitudine di utenti/applicazioni per accessiconcorrenti. Es. Dati del personalestrutturato di UNIBO ANAGRAFE UNIBO Datianagrafici Datiretribuzioni DATI SEGRETERIE DIDATTICHE UFFICIO STIPENDI Daticorsi,esami, etc
Approcciobasatosu files • ApproccioConvenzionale (basatosufiles) PROBLEMA2: Condivisioneedaccessoconcorrente? LIMITAZIONI • Accesso a file condivisiavvieneattraverso le politiche di accesso del file-system Lock a livello di file, bassagranularita’ di concorrenza, prestazioni molto limitate! • Applicazioni diverse devonoconoscerel’esattacollocazione e formatodeidati Aggiornamento del formatodeidati? • In alternativa: Replica deidatipressoivarisistemi/utentiche ne fannoutilizzo Consistenzadellerepliche?
Approcci di gestionedeidati Gran parte deisistemiinformaticihannonecessita’ di gestiredati in manierapersistente. Persistente Datimemorizzatisu memoriasecondaria APPROCCI di GESTIONE • Approccioconvenzionale (basatosu files) • Approcciostrutturato (basatosu software di gestionedeidati)
Caratteristichedei DBMS Un DBMS e’ un sistema software che e’ in grado di gestirecollezioni di datigrandi, condivise e persistenti, in manieraefficiente e sicura. (ALCUNE) FUNZIONALITA’: • Creazione di una base di dati, indicando la strutturadeidati, e memorizzandoidatisumemoriasecondaria • Accesso in lettura/scrittura ad idati • Condivisione di datitradiversiutenti/applicazioni • Protezionedeidati da accessi non autorizzati • Reliability deidati in caso di guasti (hardware/software) • …
DBMS: Quali? 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 4th Dimension Adabas D Alpha Five Apache Derby Aster Data Altibase BlackRay CA-Datacom Clarion Clustrix CSQL CUBRID Daffodil database DataEase Database Management Dataphor Lista (parziale) dei DBMS piu’ utilizzati.
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.
SeparazioneDati/Applicazioni con DBMS DMBS FILES APPLICAZIONE M1 BD M2 M2 AccessoLogico aidati AccessoFisico aidati Moduli del DBMS • Tramitei DBMS, e’ possibileimplementare un paradigma di separazionetradatiedapplicazioni … • Le applicazioni non necessitano di conoscere la strutturafisicadeidati (es. come e dove sonomemorizzatisu disco) ma solo la strutturalogica (cosarappresentano).
SeparazioneDati/Applicazioni con DBMS “Dimmiilcodice del corso tenuto da Marco di Felice” Leggiilfile data.db dal byte X al byte X+2 DMBS FILES M1 BD M2 Linguaggio DDL/DML M2 Moduli del DBMS APPLICAZIONE APPROCCIO DBMS-BASED Leggiilfile file.txt Dallariga X allariga X+1 APPROCCIO CONVENZIONALE APPLICAZIONE FILES
Gestore di Interrogazioni e aggiornamenti Gestoredelle transazioni Gestoredellaconcorrenza Gestoredei metodid’accesso Gestoredella affidabilità Gestore del buffer Gestoredella memoriasecondaria Memoria secondaria Componenti di un DBMS • I DBMS sono software complessi(e per questocostosi!) • L’architettura di un DBMS include tipicamentemoltecomponenti con ruolidiversi.
Caratteristiche di un DBMS: Efficienza Efficienza di un DBMS nellagestionedeidati … • DBMS fornisconoadeguatestrutturedati (indici) per velocizzarela ricercadi datisul disco (interrogazionied aggiornamenti) • Gliindicisibasanogeneralmentesustrutturedati ad alberoo sutabellehash.
Caratteristiche di un DBMS: Efficienza Efficienza di un DBMS nellagestionedeidati … • In moltisistemi e’ fondamentalegestireoperazioniconcorrenti di accessoaidati … Processing di piu’ di 7.7 milioni di pagamentiognigiorno La maggior parte dei DBMS forniscono un livello di granularita’ di lockingpiu’ fine di quelloconvenzionale(a livello di tabella, pagina, o singola entry).
Caratteristiche di un DBMS: GestionedellaConcorrenza • Al tempo stesso, un DBMS devegarantireilfattocheaccessi da parte di applicazioni diverse non interferiscanotraloro, lasciandoilsistema in unostatoinconsistente … • Es. Sistemainformativodeicontibancari • 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: GestionedellaConcorrenza 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: 120 120 120 120 20 40 (????) Per preveniretalisituazioni, i DBMS implementano algoritmi di controllodellaconcorrenzachegarantisconoilfattocheoperazioni sui dati (transazioni) eseguite in concorrenzaproducanolo stessorisultato di un’esecuzioneseriale.
Caratteristiche di un DBMS: Meccanismi di Roll-back • Alcuneoperazioni sui datisonoparticolarmente delicate, e devonoesseregestite in manieraopportuna, secondo la regola del tutto o niente. • Per questo, i DBMS devonofornireappositistrumenti per annullareoperazioninon completate e fare roll-backdellostato del sistema …
Caratteristiche di un DBMS: PersistenzaedAffidabilita’ • In molticasii DBMS mettono a disposizioneappositistrumentiedalgoritmi per garantire la persistenzadeidatianche in presenza dimalfunzionamenti hardware/software. • Il controllore di affidabilita’ utilizzadeilog, nel quale sono indicate tutte le operazionisvolte dal DBMS. • Algoritmi ad-hoc (es. algorimo di ripresaa caldo/a freddo) per ripristinare lo statodeidati a partiredai log del DBMS.
Caratteristiche di un DBMS: Multi-utenza e Sicurezza • La maggior parte dei DBMS implementapolitiche di controllodegliaccessi ad idatimediantesistemi di permessi: • Qualioperazionisonoconsentiteall’utente X? • Qualidatiappartengonoall’utente X? UTENTE X UTENTE Y
Architettura a 3 livelli di un DBMS • In pratica, un DBMS puo’ esserevisto come un’architettura software a 3 livelli … Descrivecome sipresentail DB SCHEMA ESTERNO SCHEMA ESTERNO SCHEMA ESTERNO Descrivecosarappresentail DB SCHEMA LOGICO DBMS SCHEMA FISICO Descrivecome/dove sonomemorizzati idati Memorie di massa
LivelloLogico di un DBMS I DBMS forniscono un approcciostrutturato ad idati. ??? In un DBMS, idatisonoorganizzati secondo un modellologico, chedefinisceiconcettirappresentati, le associazionideidati, ivincolichequestidevonorispettare. • In pratica, l’utente/applicazioneinteragisce con idati del DBMS sullabase del modellologico …
LivelloLogico di un DBMS • Sonostatipropostidiversimodellilogici … • DBMS possonodifferiresulla base del modellologicodeidatichesupportano: • ModelloRelazionale(di fatto, ilpiu’ usato) • ModelloGerarchico • ModelloReticolare • Modello ad Oggetti • ApprocciNoSQL(diversi)
LivelloLogico di un DBMS ESEMPIO: ModelloRelazionale Base di datichegestisce le informazioni relative allaprogrammazionedidattica di un Corso di Laurea: elencocorsi, con numero ore, semestre, crediti, nome e codiceidentificativo di ciascuncorso. SCHEMA } ISTANZE • Nelmodellorelazionale, idatisonoorganizzati in tabelle …
LivelloLogico di un DBMS INDIPENDENZA MODELLO LOGICO – MODELLO FISICO • L’organizzazionelogicadeidatinon dipendedallestrutture • datiusate per l’effettivamemorizzazionesu disco! • In pratica, le applicazioniaccedono al DBMS specificandoi • concettilogici del modellodeidati, piuttostocheidettagli • relativiallaloromemorizzazione. Dammiilcodice del corso di “Algoritmi” Non vengonospecificaterighe/colonne nel quale questeinformazionisonomemorizzatenellatabella! BD APPLICAZIONE DBMS
LivelloEsterno di un DBMS • Il livelloesternoconsente di averevistepersonalizzatedella base di datida parte di diversiutenti/applicazioni! Es. Base di daticondivisatradiversiuffici di unastessaorganizzazione. Solo alcuniufficipossonoaccedere a tuttoilcontenuto del DB! VISTA UfficioAnagrafe VISTA UfficioStipendi
Interazione con un DBMS • Come possonoutentiedapplicazioniinteragire con un DBMS? • Quasi tuttii DBMS mettono a disposizionedeilinguaggi: • Definizionedello schema logico (Linguaggio DDL) • Manipolazionedelleistanze (Linguaggio DML) • Linguaggiorientati ad idati, molto diversi da linguaggi di programmazione“tradizionali” (es. C/C++/Java/etc)! • Noivederemoillinguaggio (DDL+DML) SQL
Interazione con un DBMS • Le applicazionichesiinterfacciano con un DBMS: • integranocodice SQLall’interno del lorocodice • utilizzano opportune librerie (fornite dal DBMS) • per gestire la connessione al DBMS. Codice SQL BD - Esecuzione del codice SQL LIBRERIA APPLICAZIONE Dati/Risultati DBMS
Interazione con un DBMS • Un esempio di modellointegrato DMBS/App molto in voga: Web Information System (WIS) 2. Parametri MT 3. SQL Query 1. HTTP request Web-server DBMS 4. Dati 5. Pagina Web (dinamica) 6. HTTP response Browser (client) • Esempio: Architettura AMP (Apache + MySQL + PHP)
Vantagginell’uso di DBMS Quandousare un DBMS in un progetto SW? • Necessita’ di gestiregrandivolumi di dati • Necessita’ di costruiresistemidata-centric con molteoperazioni di accessoaidati • Necessita’ di condivideredati, fornendol’accesso a diversisistemi SW/ applicazioni • Necessita’ di garantire la persistenzadeidatianche a fronte di possibiliguasti e malfunzionamenti HW/SW • Necessita’ di implementaremeccanismi di sicurezza per l’accesso ad idati in un ambiente multi-utente
Svantagginell’uso di DBMS QuandoNON usare un DBMS in un progetto SW? • Prestazioni In alcunisistemi con richieste di efficienzasull’elaborazione (es. real-time), l’overheadcomputazionaleintrodotto dal DBMS puo’ essereeccessivo … • Costo Spese per l’acquisto di DBMS, formazione del personale, amministrazione del DB, etc • Complessita’ Applicazioni/sistemi di dimensioniridotte, single-user e con pochidati da gestire …
Quale DBMS usare? • Fin’oraabbiamoparlato in generaledellecaratteristichedei DBMS … • … ma i DBMS sonotuttiuguali? NO! • Differenzesostanziali, ad esempio in termini di: • Modellologicosupportato (relazionale? RDBMS) • LinguaggioDDL/DML (SQL-2? SQL-3? varianti?) • Volumi di datisupportati (es. massimadimensione del DB) • Algoritmi di indicizzazione (es. R+ tree?) • Supportoallatransazioni (es. proprieta’ ACID?) • Gestionedellaconcorrenza • …
DBMS: Un po’ di storia • Nel 1970, un ricercatoredella IBM (Edgar Codd) pubblica la suavisione di modello “relazionale”deidati, basatosulconcettomatematico di relazionetrainsiemi. Edgar F. CoddA relational model of data for large shared data banks Communications of the ACM 13 (6), 377-387. 1970.
DBMS: Un po’ di storia • Neglianni 1970, IBM lavoraallosviluppo di un linguaggiobasatosulmodellorelazionale (SQL),edall’implementazione di un RDBMS sperimentale (System R SQL/DS DB2), ma continua anche lo sviluppo del sistema IMS. • Nel 1979, unapiccola startup (Relational Software Inc) produce un primo esempio di RDBMS commerciale (Oracle). Nel 1982, Relational Software cambia ilproprionome in Oracle Corporation.
DBMS: Un po’ di storia • Neglianni ‘80, compaionoiprimi DBMS basatisulmodello ad oggetto (ORDBMS), checercano di emulareilsuccesso del paradigma di programmazione ad oggetti, e facilitarel’integrazionetra DBMS e linguaggi di alto livello (es. C++/Java) • VienesviluppataOQL – omologo di SQL per ilparadigma ad oggetti … • Nonostantecio’ ORDBMS restanopocodiffusi!
DBMS: Un po’ di storia OGGI? • Solo nel 2011, ilmercatodei RDMBS ha avutounacrescita del 16.5% con ricavicomplessivipari a 24 billioni di dollari. • Il mercatodei RDBMS e’ dominato da 4 vendor, che da soli occupanounapercentuale di ricavipari al 75% del totale: • Oracle (10 billioni di dollari di ricavinel 2011). • IBM • Microsoft • SAP Fonte: IDC
DBMS: Un po’ di storia OGGI?
DBMS: Un po’ di storia • Oggi, unadellenuovelineeevolutivedei DBMS e’ rappresentatadall’approccioNoSQL. • Idea di base: superare la rigidita’ del modellorelazionalenelladefinizionedello schema, consentendounapiu’ facile espansione del DB in termini di dati, e di computazionedistribuita. • Moltiapprocci sotto la definizioneNoSQL: • Es. Apache Cassandra, Apache CouchDB, ..