INFORMATICA Corso Base Modulo G: I DataBase Access Dal file al database • Alcuni problemi relativi all’uso dei file del tipo tradizionale sono legati alla rigidità della loro struttura, definita dal programmatore al momento della creazione. • Si è pensato di inserire tra il file e l’utente un software specifico per la gestione degli archivi, di facile uso anche per gli utenti inesperti, molto dinamico e flessibile. Questi tipi di programmi forniscono un’interfaccia tra l’utente finale e la struttura fisica dei file di dati, facendo in modo che l’utente utilizzi solo i dati necessari senza dover necessariamente conoscere come essi sono effettivamente organizzati sui dispositivi di memoria di massa. Modulo G: I Database 2 DataBase e DBMS • Si chiama DataBase un insieme di informazioni (conservate su memoria di massa) correlate tra loro e alle quali più utenti contemporaneamente possono accedere, tramite programmi specifici, per compiere delle operazioni secondo una propria logica di lavoro. • Definiamo DBMS (Data Base Management System) l’insieme dei programmi che consentono agli utenti (anche inesperti) la gestione di archivi, secondo un preciso linguaggio e modalità di lavoro semplici e intuitive. Modulo G: I Database 3 Struttura FISICA e LOGICA dei dati Il DBMS realizza una separazione tra la struttura fisica e la struttura logica dei dati, organizzandoli su tre livelli: Livello fisico: indica la struttura fisica dei file che costituiscono gli archivi, così come vengono memorizzati sul dispositivo di memoria di massa; Livello concettuale: indica la struttura logica dei dati, cioè il modo in cui le informazioni contenute negli archivi vengono aggregate, indipendentemente dagli archivi fisici in cui esse sono inserite; Livello logico: indica la porzione dei dati che in un certo istante è visibile a ogni utente. Modulo G: I Database 4 Modello di un DataBase • Il modello di un DataBase è una mappa che riproduce in modo simbolico una realtà, contiene sia le entità che costituiscono i dati sia le reciproche relazioni che consentono di ottenere le informazioni di cui l’utente ha bisogno. • A seconda della strategia di progettazione abbiamo: – MODELLO GERARCHICO – MODELLO RETICOLARE – MODELLO RELAZIONALE – MODELLO AD OGGETTI Modulo G: I Database 5 Modello Relazionale • Un DataBase rappresentato mediante un modello relazionale, viene immaginato dall’utente come un insieme di tabelle bidimensionali correlate tra loro mediante dei valori in campi comuni. • Nelle colonne delle tabelle avremo gli attributi (o campi) che indicano le caratteristiche del dato. • Nelle righe avremo, invece, i record (le tuple) dei dati. Possiamo avere un numero arbitrario (ossia non predefinito) di tuple all’interno di una tabella. Modulo G: I Database 6 Modello Relazionale (cont.) Attributi Amici Nome Gloria Nicola Cognome Indirizzo Telefono Fantini Via Pola 054497** Rossi Via Roma 054732** Tuple Cod-fiscale fntglr145 rssncl145 Il numero e il nome delle colonne è fisso mentre il numero (e il contenuto) delle righe può variare in ogni momento per effetto di inserimenti, modifiche e cancellazioni. Modulo G: I Database 7 Modello Relazionale (cont.) • Ogni riga della tabella deve differenziarsi da tutte le altre per il valore di almeno uno degli attributi. • Ogni riga della tabella deve essere identificabile univocamente. Solo così è possibile effettuare efficacemente operazioni di ricerca e manipolazione dei dati contenuti nel database. • CAMPO CHIAVE: è un attributo o una combinazione di essi che identifica in modo univoco ogni singola riga della tabella. Modulo G: I Database 8 Modello Relazionale (cont.) Amici Cod-fiscale fntglr145 rssncl145 Nome Gloria Nicola Cognome Indirizzo Telefono Fantini Via Pola 054497** Rossi Via Roma 054732** Campo chiave: siamo sicuri che è diverso per ogni amico. Modulo G: I Database 9 Modello Relazionale (cont.) • Il termine relazione indica il concetto di esistenza di un legame tra i dati, quindi una tabella costituisce una relazione in quanto contiene tutti i record che verificano in certo legame logico. • Possiamo dire che nel modello relazionale tutte le relazioni tra i dati vengono espresse mediante tabelle. Modulo G: I Database 10 Le operazioni • Il modello relazionale si basa su 3 operazioni elementari che hanno come operandi delle relazioni e restituiscono come risultato delle altre relazioni. • Le operazioni sono: – – – Modulo G: I Database SELEZIONE PROIEZIONE JOIN 11 SELEZIONE • La selezione opera su una sola tabella. L’operando è una relazione, il risultato mantiene tutti gli attributi originali, ed è composta dalle sole righe che verificano la condizione indicata dall’istruzione. Amici Cod-fiscale fntglr145 rssncl145 Modulo G: I Database Nome Gloria Nicola Cognome Indirizzo Telefono Fantini Via Pola 054497** Rossi Via Roma 054732** 12 PROIEZIONE • Opera su una sola tabella. L’operando è una relazione e il risultato restituisce solo gli attributi indicati nell’istruzione e un numero di righe < o = a quello della relazione di partenza. Amici Cod-fiscale fntglr145 rssncl145 Modulo G: I Database Nome Gloria Nicola Cognome Indirizzo Telefono Fantini Via Pola 054497** Rossi Via Roma 054732** 13 JOIN • Opera su due relazioni aventi un attributo in comune e produce una sola relazione. Lo scopo di questa operazione è di combinare le tabelle di partenza in una nuova che conserva gli attributi di entrambe e impiega l’attributo comune come punto di congiunzione. Modulo G: I Database 14 Vendo Codice-V 0123 0128 Venditore Sede Gloria Milano1 Nicola Genova1 Città Milano Genova Indirizzo Sede Milano1 Genova1 Genova2 Modulo G: I Database Indirizzo Telefono Via Pola 8564 Via Sasso 0254 Via Verdi 0254 15 Effettuiamo un’operazione di Join tra le due tabelle VENDO e INDIRIZZO tramite l’attributo SEDE. Il risultato è una nuova relazione, che chiamiamo Combina. Combina Codice-V 0123 0128 Venditore Sede Gloria Milano1 Nicola Genova1 Modulo G: I Database Città Indirizzo Telefono Milano Via Pola 8564 Genova Via Sasso 0254 16 Relazioni tra TABELLE • Quando si decide di collegare tra loro due tabelle bisogna avere ben chiaro che tipo di collegamento realizzare. – Esempio: generalmente ogni cliente avrà un solo indirizzo mentre potrà prenotare presso l’albergo più periodi di soggiorno. • La tabella più importante si chiamerà tabella principale (ossia quella contenente i dati indispensabili all’elaborazione) e l’altra sarà la tabella secondaria. Modulo G: I Database 17 La cardinalità delle relazioni • 1 a 1 ogni record della prima tabella corrisponde a un unico record della seconda e viceversa • 1 a M ogni record della prima tabella corrisponde a uno a più record della seconda, ma ogni record di quest’ultima corrisponde a un unico record della prima • M a M ogni record della prima tabella corrisponde a più Modulo G: I Database record della seconda e viceversa. 18 QUERY • Per individuare più tabelle si semplicemente database per specifiche. e prelevare informazioni da una o utilizzano le QUERY: si tratta di una richiesta effettuata al il ritrovamento di informazioni • Il linguaggio standard utilizzato per fare le interrogazioni si chiama SQL; in Access è possibile definire semplici query anche in modo visuale. Modulo G: I Database 19 Integrità referenziale • E’ un insieme di regole che controllano le modalità di inserimento, modifica, eliminazione dei dati sia dalla tabella principale sia dalla tabella secondaria per far si che i dati continuino ad essere consistenti con lo schema predefinito del database. Modulo G: I Database 20