Basi di dati - The BCIF lossless image compression · PDF fileGestione grandi basi di dati Le...

Click here to load reader

  • date post

    14-Feb-2019
  • Category

    Documents

  • view

    218
  • download

    0

Embed Size (px)

Transcript of Basi di dati - The BCIF lossless image compression · PDF fileGestione grandi basi di dati Le...

Basi di dati

Stefano Brocchistefano.brocchi@unifi.it

Stefano Brocchi Basi di dati 1 / 93

Database, informazioni e dati

Attualmente, pressoche in qualsiasi attivita il compito della gestioneed organizzazione dei dati viene realizzata da un sistema informatico

Diffusione capillare dellinformatica a partire degli anni 80 e 90

Stefano Brocchi Basi di dati 2 / 93

Database, informazioni e dati

In molte applicazioni, e necessario avere dei dati organizzati in modopreciso seguendo degli standard universali

Puo non essere sufficiente il normale filesystem

Vengono per questo introdotte le basi di dati (database)

Stefano Brocchi Basi di dati 3 / 93

Basi di dati

Una base di dati e un insieme di dati strutturati gestibili in modoflessibile da soggetti diversi

I programmi che realizzano e gestiscono le basi di dati si chiamanoDBMS (Database Management System)

Alcuni nomi dei programmi che fanno da DBMS: Oracle, MySQL,MSSQL, ...

Stefano Brocchi Basi di dati 4 / 93

Basi di dati: interfaccia

Per interfacciarsi direttamente con una base di dati, esistononumerosi programmi ad interfaccia grafica

Tramite questi programmi, si possono inserire, modificare ed estrarredati, ma anche creare database e definirne la struttura

Diversi dai programmi applicativi destinati allutente finale, checonoscendo il significato dei dati nel database forniscono un contestopiu facilmente comprensibile allutente

Per database su server, si puo accedere spesso anche tramiteuninterfaccia web

Questi programmi convertono i comandi dati tramite interfacciagrafica nel linguaggio del database

Di seguito vedremo come e regolamentato laccesso

Stefano Brocchi Basi di dati 5 / 93

Basi di dati: esempio

Nel seguito, faremo riferimento ad un ipotetico esempio di una basedi dati utilizzata in un laboratorio scientifico

La base di dati conterra innanzitutto una serie di dati anagraficiconsultabili dal laboratorio

Ogni esperimento eseguito verra salvato permanentemente nella basedi dati

Stefano Brocchi Basi di dati 6 / 93

Basi di dati: esempio

Altri utilizzi comuni delle basi di dati che coinvolgono svariate attivitasono:

Anagrafiche, per esempio di comuni Basi di dati per esami universitari Archivi di pagamenti per aziende o tassazioni Informazioni a proposito di siti web dinamici (es. forum) Prenotazioni per cinema, ristoranti, compagnie aeree, ...

Stefano Brocchi Basi di dati 7 / 93

Basi di dati: proprieta

Le basi di dati devono mettere a disposizione le seguenti proprieta: Gestione grandi dimensioni di dati Condivisione Persistenza Affidabilita Riservatezza Efficienza

Stefano Brocchi Basi di dati 8 / 93

Gestione grandi basi di dati

Le basi dati devono essere in grado di gestire grandi quantita di dati

Non ci devono essere limiti, se non quelli dati dalla macchina stessadove risiede la base di dati

Questo deve valere anche se non si conosce a priori la grandezzarichiesta

Una base di dati inizialmente piccola puo crescere fino a grandidimensioni

Stefano Brocchi Basi di dati 9 / 93

Persistenza

Una base di dati deve essere chiaramente persistente

I dati devono rimanere salvati anche quando i programmi che ligestiscono vengono interrotti, o quando i computer vengono spenti

Necessario quindi chiaramente salvare i dati su memoria di archivio Requisito necessario anche per realizzare basi di dati di grandi

dimensioni, visto che la memoria di archivio e molto piu grande diquella centrale

Stefano Brocchi Basi di dati 10 / 93

Condivisione

Un altro fattore fondamentale e la possibilita di condividere i dati conmolti utenti

Per fare in modo che tutti possano comunicare correttamente con labase di dati ed estrarne informazioni, e definito un linguaggio comuneutilizzabile da tutti

Vedremo in seguito il linguaggio SQL

Tipicamente, questa funzionalita e realizzata tramite luso di reti dicalcolatori

Stefano Brocchi Basi di dati 11 / 93

Condivisione database in rete

Il DBMS viene eseguito su di una macchina detta server che mette adisposizione il servizio

Tramite rete, altre macchine dette client potranno inviare richieste aldatabase per inserire o estrarre dati

E possibile che laccesso avvenga con programmi diversi per diversefunzionalita

La connessione puo avvenire tramite internet o reti private

Stefano Brocchi Basi di dati 12 / 93

Identificazione utenti e permessi

Tipicamente solo un numero ristretto di utenti autorizzati potraaccedere alla base di dati

Per identificare i vari utenti, viene utilizzato un meccanismo diidentificazione che richiede ad ognuno un nome utente ed unapassword

Si possono imporre vincoli su quello che puo fare un determinatoutente, sia in funzione dei dati che puo modificare o cancellare sia perquanto riguarda i dati che puo estrarre

Stefano Brocchi Basi di dati 13 / 93

Permessi utenti

Nel nostro esempio, tutte le macchine del laboratorio potrannoaccedere ai dati anagrafici, ma non modificarli

Sarebbe possibile anche che ogni macchina possa accedere soloallanagrafica delle persone che hanno dato un consenso

Dal laboratorio verosimilmente sara possibile inserire dei risultati dianalisi, ma solo a patto di attribuirli al laboratorio stesso

Controllo sui dati inseriti: non si puo attribuire un esame ad un altrolaboratorio

Si puo immaginare inoltre che i test inseriti nel database non possanopiu venir modificati

Stefano Brocchi Basi di dati 14 / 93

Permessi utenti

I controlli sui vincoli degli utenti vengono fatti dal server con il DBMS

Non dipendono quindi dai programmi installati sulle macchine locali:anche se una di queste tentasse di aggirare una limitazione, il serverlo impedirebbe

Questo non impedisce ai programmi sui client di imporre dei vincoliulteriori

Stefano Brocchi Basi di dati 15 / 93

Registro operazioni

Inoltre, per database particolarmente critici per problematiche disegretezza o integrita dei dati, si possono memorizzare e raccoglieretutte le operazioni eseguite dagli utenti

Se sfruttando una qualche falla del sistema qualcuno eseguemodifiche non autorizzate, si puo rintracciare lutente responsabile

I dati vengono immagazzinati in un file detto registro o log

Stefano Brocchi Basi di dati 16 / 93

Riservatezza

I dati devono inoltre disporre di determinati requisiti di riservatezza

Questo viene realizzato innanzitutto tramite i meccanismi diautenticazione e permessi visti

Inoltre, per evitare che i dati possano essere intercettati e lettidurante la comunicazione, si possono utilizzare protocolli ditrasmissione criptati

Senza disporre di una chiave di decodifica, i dati trasmessi risultanoincomprensibili

Stefano Brocchi Basi di dati 17 / 93

Affidabilita

I database devono inoltre disporre di unalta affidabilita per i dati chevi sono contenuti

Puo succedere che una memoria abbia un guasto e che i daticontenuti vadano persi

Una prima soluzione: utilizzare piu dischi fissi sul server, e scrivere idati su piu di un disco in modo che se uno si guasta si possanorecuperare dallaltro

Tecnologia detta RAID

Stefano Brocchi Basi di dati 18 / 93

Affidabilita

Una soluzione ancora migliore consiste nel salvare i dati su piu server

Si garantisce cos il servizio anche in caso di guasto di uninteramacchina

Nel caso di un database pesantemente utilizzato, si mantengonoinoltre le prestazioni alte grazie alla distribuzione del carico di lavoro

Stefano Brocchi Basi di dati 19 / 93

Affidabilita: problematiche

Daltra parte, nascono cos delle problematiche di consistenza:dobbiamo essere sicuri che quando un dato viene modificato, tutti iserver siano aggiornati in modo concorde

Immaginare per esempio la situazione dove due modifiche diversevengono richieste contemporaneamente a due diversi server: cebisogno di un meccanismo che gestisca il conflitto

Esistono meccanismi elaborati che gestiscono tali situazioni, per cuieventuali problemi vengono evitati e lutente non se ne devepreoccupare

Stefano Brocchi Basi di dati 20 / 93

Efficienza

Unaltra caratteristica di base per la realizzazione di database elefficienza

Le richieste di estrazione di dati o di modifiche devono essere eseguitein tempi molto brevi

Anche con macchine molto veloci, per grandi quantita di dati questacaratteristica non e scontata, ma conseguenza di unattentarealizzazione

Caratteristica necessaria anche perche un database puo essere usato incontemporanea da molti utenti

Stefano Brocchi Basi di dati 21 / 93

Il modello relazionale

Attualmente, la maggior parte dei database e rappresentata tramite ilmodello relazionale

Il modello e indipendente dalla realizzazione fisica: possiamorappresentare i dati per come sono strutturati a livello logico,indipendentemente da come verranno rappresentati nella macchina

Altri modelli proposti ma meno utilizzati sono il modello gerarchico ereticolare

Stefano Brocchi Basi di dati 22 / 93

Il modello relazionale

Il modello relazionale si basa su due concetti chiave: quello di tabellae quello di relazione

Il concetto di tabella corrisponde a quello che si ha nel linguaggiocomune

Le relazioni servono a legare insieme i vari dati allinterno di unatabella o tra tabelle diverse

Stefano Brocchi Basi di dati 23 / 93

Il m