BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015
Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare il modello relazionale e il linguaggio SQL (Structured Query Language) Progettazione di base di dati: verrà illustrato in sintesi il processo di : progettazione concettuale progettazione logica progettazione fisica delle basi di dati relazionali
Cosa si intende per base di dati? (1/2) In generale per base di dati o data base o DB si intende un archivio dati nei quali i dati sono collegati tra loro secondo un modello logico.
Cosa si intende per base di dati? (2/2) In ambito informatico si intende per data base una collezione di dati gestita da un DBMS
DBMS Data Base Management System (Sistema di Gestione di Base di Dati): software in grado di gestire collezioni di dati che siano: Grandi Condivise Persistenti Assicurandone la affidabilità e la riservatezza
Caratteristiche DBMS: grandi Le base di dati possono essere enormi (superiori ai PetaByte), in generali molto maggiori (>>) della memoria centrale disponibile. I DBMS devono prevedere una gestione dati in memoria secondaria. N.B. i sistemi devono poter gestire i dati senza porre limiti alle dimensioni (a parte quelle fisiche dei dispositivi)
Caratteristiche DBMS: condivise Applicazioni e utenti diversi devono poter accedere, secondo opportune modalità, a dati comuni. In questa maniera si riduce la ridondanza dei dati e l inconsistenza. Es. se esistono copie degli stessi dati e possibile che esse in qualche momento non siano uguali.(disallineamento). Per garantire la condivisione dei dati il DBMS ha un gestore della concorrenza, ossia lo strato più interno del DBMS che gestisce le operazioni di scrittura/lettura della memoria (scheduler).
Caratteristiche DBMS:persistenti Tempo di vita non limitato a quello delle singole esecuzioni dei programmi che utilizzano i DB. N.B. i dati gestiti da un programma in memoria centrale hanno una durata pari alla durata dell esecuzione del programma, quindi tali dati non sono persistenti.
Caratteristiche DBMS: affidabilità Conservare sostanzialmente intatti i dati contenuti nel DB o permetterne la ricostruzione in caso di malfunzionamenti HW o SW. I DBMS forniscono funzionalità di backup e recovery dei dati.
Caratteristiche DBMS: riservatezza Ciascun utente del DB viene abilitato solamente a svolgere determinate azioni sui dati attraverso meccanismi di autorizzazione. Tipi di utente: casuali, programmatori, amministratore del DB, specializzati o finali o terminalisti.
Basi di Dati e WWW Negli ultimi anni si è diffuso notevolmente l accesso ai DB attraverso il WWW. Attualmente la maggior parte dei siti WEB genera pagine in maniera dinamica (on demand) a partire da dati contenuti in basi di dati. Per generare pagine web in maniera dinamica si utilizzano dei linguaggi di programmazione uno dei più usati è il PHP (Hypertext Preprocessor) che approfondiremo durante il corso.
MODELLO DEI DATI Insieme di concetti utilizzati per organizzare i dati e descriverne la struttura in modo che risulti comprensibile all elaboratore. Ogni modello fornisce meccanismi di strutturazione analoghi ai costruttori dei linguaggi di programmazione. Costruttori:indicano dei metodi di programmazione associati alle classi che hanno lo scopo di inizializzare le variabili di istanza.
Tipi di modello dei dati:relazionale Il più usato. Permette di definire tipi per mezzo del costruttore relazione che consente di organizzare i dati in insiemi di record a struttura fissa. La relazione è spesso rappresentata per mezzo di una tabella
Tipi di modello dei dati:gerarchico Basato sull uso di strutture ad albero definito durante la prima fase di sviluppo dei DBMS, ma ad oggi ancora utilizzato.
Tipi di modello dei dati:reticolare Basato sull uso dei grafi è stato sviluppato successivamente al modello gerarchico. Viene chiamato anche CODASYL
Tipi di modello dei dati:a oggetti Sviluppato negli anni 80 come evoluzione del modello relazionale. Tipi di modello dei dati:xml Extensible Markup Language, sviluppato negli anni 90 come rivisitazione del modello gerarchico. I dati vengono presentati assieme alla loro descrizione e non devono sottostare rigidamente ad un unica struttura logica.
Schemi e istanze Schema: parte della base di dati invariante nel tempo, che è costituita dalla caratteristiche dei dati. Istanza: parte della base di dati variante nel tempo, che è costituita dai valori effettivi.
Schemi e istanze: esempio Data la relazione DOCENZA(Materia, NomeDocente) Materia NomeD ocente Italiano Rossi Inglese Bianchi La relazione ha una struttura fissa ed è formata da due attributi (nel caso specifico). Le righe della tabella invece cambiano nel tempo perché corrispondono alle materie e ai nomi dei docenti che di anno in anno possono cambiare.
Schemi e istanze Lo schema di una relazione è costituito dalla sua intestazione ossia nome della relazione seguito dal nome dei suoi attributi. DOCENZA(Materia, NomeDocente) L istanza di una relazione è costituita dall insieme variante delle sue righe nel tempo. Italiano Rossi ; Inglese Bianchi
Livelli di astrazione di un DBMS Sono 3: esterno: descrizione di una porzione della base di dati di interesse, per mezzo del modello logico. Nei sistemi più moderni non è esplicitamente presente ma è possibile definire relazioni derivate (views) logico: descrizione dell intera base di dati per mezzo del modello logico adottato interno: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione
Livelli di astrazione di un DBMS
Indipendenza dei dati (1/2) L architettura a livelli, così definita, garantisce l indipendenza dei dati. Indipendenza fisica consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati. Si possono così modificare le strutture fisiche senza influire sulle descrizioni dei dati ad alto livello e quindi sui programmi che utilizzano tali dati.
Indipendenza dei dati (2/2) Indipendenza logica consente di interagire con il livello esterno della base di dati in modo indipendente dal livello logico. Ad es. è possibile aggiungere uno schema esterno in base alle esigenze di un nuovo utente senza dovere modificare lo schema logico e quindi la sottostante organizzazione fisica dei dati. E possibile modificare il livello logico mantenendo inalterate le strutture esterne di interesse per l utente. N.B. gli accessi al DB avvengono solo dal livello esterno.
Linguaggi per le basi di dati DDL Data Definition Language: utilizzati per definire gli schemi logici, esterni e fisici e le autorizzazioni per l accesso al DB DML Data Manipulation Language: utilizzato per l interrogazione e l aggiornamento delle istanze di base di dati. SQL è sia DDL sia DML.
Accesso ai dati Può essere fatto tramite varie modalità attraverso linguaggi testuali interattivi (SQL) attraverso comandi simili a quelli interattivi immersi in linguaggi di programmazione tipo C, C++ attraverso comandi simili a quelli interattivi immersi in linguaggi di programmazione ad hoc attraverso interfacce user friendly che permettono di sintetizzare interrogazioni senza utilizzare un linguaggio testuale.
Utenti e progettisti Database Administrator responsabile della progettazione, controllo e amministrazione della base di dati. Progettisti e programmatori di applicazioni definiscono e realizzano i programmi che accedono alla base di dati Utenti che in base alla loro attività possono essere: Finali utilizzano programmi che realizzano attività predefinite Casuali in grado di impiegare linguaggi interattivi per l accesso alla base di dati, formulando interragazioni di tipo vario.
Vantaggi del DBMS Compattezza dell informazione: i dati vengono considerati come una risorsa comune di una organizzazione, a disposizione delle sue componenti Riduzione ridondanze e inconsistenze Velocità di accesso ai dati Aggiornamento dei dati in tempo reale Controllo centralizzato dei dati Il DB fornisce un modello unificato e preciso della parte del mondo reale di interesse all organizzazione.
Svantaggi del DBMS Sono prodotti costosi, complessi e abbastanza diversi da molti altri strumenti informatici, quindi la loro introduzione comporta un notevole investimento di denaro (HW, SW e formazione del personale). Forniscono una serie di servizi che sono necessariamente associati costi. Nei casi in cui alcuni questi servizi non siano necessari, è difficile scorporare quelli effettivamente richiesti dagli altri.
Quesiti 1 Cosa si intende per base di dati? Cos è un DBMS? Elencare le caratteristiche del DBMS Cosa si intende per modello relazionale? Elencare alcuni tipi di modello di dati. Cosa si intende per schema e cosa si intende per istanza. Fare esempi
Quesiti 2 Quanti e quali sono i livelli di astrazione di un DBMS? Spiegare in breve i livelli di astrazione di un DBMS. Cosa si intende per indipendenza logica dei dati? Cosa si intende per indipendenza fisica dei dati?
Quesiti 3 Cos è il DDL? Cos è il DML? Elencare le varie modalità di accesso ai dati. Quali sono le varie tipologie di utenti di un DB e che funzioni hanno? Quali sono i vantaggi di un DBMS? Quali sono gli svantaggi di un DBMS?