Fondamenti di Informatica NOTE • Per Excel, funzioni e operazioni, leggere il capitolo 23. Fondamenti di Informatica DBMS – Introduzione ai DBMS • Sez. 7.5: Introduzione • Sez. 22.1: I criteri di archiviazione • Sez. 20.4, 20.5: Come si usano, DB online • Sez. 18.2, 22.2, 22.3: Query Prof. De Maio Carmen [email protected] Definizione di DB e di DBMS BASE DI DATI (DB=Database) •collezione di dati (tipicamente molto corposa) – memorizzati in un computer – organizzati in forma strutturata – condivisi tra più utenti (anche migliaia) e da questi accessibili contemporaneamente sui quali è possibile operare efficientemente ricerche e aggiornamenti DBMS (Data Base Management System) •Software che permette di gestire un Database (es.: memorizzare, cancellare, aggiornare o interrogare i dati) Fogli elettronici (Excel) e DBMS (Access) • • • • • • Molti hanno già utilizzato un programma che permette di gestire dati … Microsoft Excel … Adesso impareremo ad utilizzare un suo “fratello” … Microsoft Access … Cercheremo, prima di tutto, di individuare quali sono le applicazioni in cui Excel è utilizzato con profitto … … e quali sono quelle in cui Excel non è adatto Fogli elettronici (Excel) e DBMS (Access) • I Fogli Elettronici (documenti Excel) sono adatti a – Trattare piccole quantità di dati – prevalentemente di tipo numerico – con elevate dipendenze reciproche • • es: bilancio di un’azienda dove, cambiando il valore in una cella si modificano a cascata i valori presenti in tante altre celle Inoltre i fogli elettronici – hanno notevoli capacità analitiche, grazie alla disponibilità di funzioni predefinite e alla facilità di costruirne nuove – permettono di visualizzare i dati attraverso grafici e diagrammi, aiutando l’analista nella ricerca di trends Fogli elettronici (Excel) e DBMS (Access) • Al contrario, i fogli elettronici sono poco adatti per svolgere operazioni di – ricerca di informazioni in archivi – a cui accedono contemporaneamente anche migliaia di utenti • Spesso, infatti, è necessario “trattare” – grandi quantità di dati – di tipo molto diversificato (testi,numeri,date,immagini, …) – correlati, ma poco dipendenti gli uni dagli altri • es: schedario di una biblioteca, dove l’inserimento o l’eliminazione di un volume non ha effetti sulle informazioni che riguardano altri libri Organizzazione di una Base di Dati Tutti i dati sono memorizzati in tabelle •ogni tabella memorizza (in righe e colonne) informazioni su un insieme di “oggetti” che hanno identica struttura (es. un insieme di studenti, di libri, di film, di CD, …) Matricola Cognome Nome Data di Nascita Tabella con informazioni su una popolazione di STUDENTI 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 •righe (dette record, ennuple o tuple) ognuna corrispondente a un singolo dato (1 libro, 1 studente, …) •colonne (detti campi o attributi), corrispondenti a singole informazioni relative ai dati (es. matricola, data di nascita, …) DBMS Relazionali: creazione di un DB • Per utilizzare un DBMS bisogna – costruire le tabelle che lo compongono. – Stabilire proprietà di validità delle tabelle (chiavi, vincoli di integrità), per evitare l'inserimento di dati palesemente sbagliati – Creare gli strumenti di lavoro. Questi sono (al minimo): • Interrogazioni o Queries • Maschere • Report TABELLE • Per utilizzare un DBMS bisogna innanzitutto costruire le tabelle che lo compongono. – Per prima cosa bisogna identificare il tipo di informazione (es. libri) da memorizzare e quali sono le sue proprietà (es. titolo, autore, pagine, … ) pertinenti per l’applicazione. – Ad ogni proprietà (colonna o campo) va poi assegnato un nome, una lunghezza e una categoria di dati • Un’applicazione semplice può presentare anche una sola tabella, ma più spesso un DB è composto da più tabelle, collegate tra di loro tramite valori di campi comuni TABELLE: Excel vs DB • Nei fogli elettronici la posizione della cella è fondamentale: – A1, B5, etc. • La struttura della tabella non è importante nei fogli elettronici: – Nei DB è fondamentale perché la struttura identifica i vari dati. • In un foglio elettronico le singole celle possono ospitare diversi tipi di dati – Nei database il formato, il tipo e la lunghezza va dichiarato all’inizio Le basi di dati relazionali Le relazioni tra tabelle • Per collegare tra loro le tabelle è necessario un campo CHIAVE che identifica univocamente ogni record. – – – – • Carta di Identità, Codice fiscale Matricolo per lo studente, Etc.. Il collegamento tra le tabelle è realizzato mediante il meccanismo della CHIAVE ESTERNA – I valori della chiave primaria della tabella principale sono duplicati in un campo della tabella dipendente. Tipi di Chiave • Genericamente una chiave è un insieme di campi che identificano un record; • CHIAVE PRIMARIA: – È unica; – Non è nulla Le relazioni tra tabelle Tipi di relazioni • Relazione uno a uno: a un record della prima tabella corrisponde un solo record della seconda; • Relazione uno a molti: a un record della prima tabella corrispondono più record della seconda; • Relazione molti a molti: a più record della prima tabella corrispondono più record della seconda; Maschera Video • • Una Maschera è uno strumento di interazione con le tabelle del DB e permette di – visualizzare un record per volta, utilizzando un’interfaccia grafica “amichevole” – Aggiornare i dati nelle tabelle • immettere • cancellare • Modificare – selezionare solo alcuni campi della tabella da visualizzare – visualizzare dati provenienti da tabelle diverse Una maschera è collegata direttamente alla tabella. Maschera Video Anche i database hanno delle funzioni grafiche e di formato che consentono a questi programmi di rendere più accattivante l'immissione dati e la loro visualizzazione. Controlli di validità • Con un DBMS è possibile effettuare controlli sulla validità dei dati inseriti. • Ad esempio è possibile impedire – l’inserimento di una data impossibile (es 30-febbraio) – l’inserimento di un voto di esame errato, come ad esempio -30 – l’inserimento di un anno di nascita errato (es. 20.001) – L’inserimento di un testo in un campo numerico. Controlli di validità Rapporti Un Report permette di stampare un sottoinsieme dei dati contenente solo le informazioni che interessano • Un Report viene generato automaticamente già in formato adatto per la stampa (con intestazioni, impaginazione corretta, ecc…) • Da una stessa Base di Dati è possibile ricavare diversi Reports. DB: Import/Export di dati • • • Un DBMS presenta una elevata INTEROPERABILITA’ E’ cioè possibile trasportare (far “migrare”) dati memorizzati in una o piu’ tabelle (anche come risultato di un’interrogazione) verso formati leggibili da altri programmi e viceversa. E’ possibile Importare/Esportare dati con – Excel (che presenta strumenti di analisi dei dati migliori di quelli di Access) – Word (ad esempio per creare tabelle da usare nella creazione di lettere circolari) DB Multimediali Anche programmi meno “seriosi” sono in realtà applicazioni che gestiscono basi di dati... Basi di dati online • Praticamente ogni sito web che contenga un numero significativo di dati ha al suo interno una Base di Dati. • Spesso i dati sono dinamici, cioè mutano con continuità (i valori del mercato azionario, ad esempio) • Motori di ricerca non sono altro che DBMS interfacciati verso l’utente tramite un linguaggio di interrogazione (QBE o SQL) Basi di dati online Basi di dati online Query Una tabella può contenere – centinaia di campi (colonne) e – milioni di records (righe) di tutta questa informazione a noi, generalmente, interessa solo una piccola parte (es solo i CD di un certo artista) • Una Query (interrogazione) è una frase scritta in un linguaggio speciale che permette di estrare dalla tabella principale solo i dati che interessano – Una Query crea una tabella più piccola che contiene solo i dati che interessano • Esempio • • Nome del corso e nome del docente di tutti i corsi che si svolgono nell’aula N3 Tabella input: Corsi Corso Basi di dati Sistemi Reti Controlli • Docente Aula Rossi DS3 Neri N3 Bruni N3 Bruni G Risultato: Corso Sistemi Docente Neri Reti Bruni Linguaggi per esprimere una Query • • Come formulare una Query? Le principali modalità di interrogazione sono: – QBE Query by example (interfaccia grafica) • Modalità semplice e diretta • Adatta per interrogazioni semplici • Spesso legata al DBMS – SQL (pron. Sequel) Structure Query Language (linguaggio) • Modalità più complessa della precedente • Valida per tutti i tipi di interrogazione (soprattutto per quelle più complesse) • Linguaggio universale, adottato da tutti i DBMS Esempio: interrogazione in QBE e in SQL • QBE • SQL Le QBE nella pratica Query di selezione e criteri • Perché una query riesca ad estrarre solo i dati che interessano dalla tabella, occorre specificare delle condizioni di ricerca che sono soddisfatte dai record che interessano • • Le condizioni possono essere espresse tramite: operatori relazionali (di confronto) =, >, <, etc. • operatori logici AND, OR, NOT, etc. Operatori Relazionali (o di confronto) Operatori Logici Query con una sola tabella • QUERY: Mostrare l’elenco dei clienti nordamericani dei quali non è stato inserito il numero telefonico. Query con una sola tabella Fondamenti di Informatica Lavoriamo con Acces Prof. De Maio Carmen [email protected] Avviare Access • Metteremo in pratica tecniche comuni a tutte le versioni del programma anche se, per alcune di esse, i bottoni o parte dell'interfaccia grafica potrebbero risultare leggermente diversi. Facciamo partire il programma e creiamo il nostro primo data base. Se la maschera iniziale di MS Access (fig. 5) non appare automaticamente, possiamo creare il progetto dal menu file>nuovo e selezionare database vuoto. Primi passi Access • Access mostra una schermata più o meno come questa A questo punto possiamo iniziare ad utilizzare tutte le caratteristiche di Access 2010, come creare tabelle, queries, report e funzioni. Funzionalità più importanti di Access • Tabelle – costituiscono lo schema con cui sono organizzati i dati all’interno del db • Query - elementi importantissimi che ci permettono di effettuare interrogazioni, anche combinate, di diverse tabelle • Maschere - permettono di creare interfacce grafiche, per la manipolazione e la visualizzazione dei dati. • Report - modelli per la stampa personalizzabili • Pagine - sono utilizzate per creare finestre grafiche in formato html Creare delle tabelle in Access • creiamo la nostra prima tabella: la tabella libri • Dal menu crea nella finestra principale scegliamo Tabella, Access creerà in automatico una tabella che metterà in ultima posizione nell'elenco delle tabelle già presenti. • Scegliamo la voce Visualizza Struttura dal menù del Foglio Dati. • Il sistema ci chiederà di dare un nome alla tabella, inseriamo Libri. • La nuova finestra ci permette, così, di impostare i nomi dei campi e di sceglierne il tipo. Creare delle tabelle in Access • Ogni riga della struttura rappresenta un campo della tabella. • Nella colonna Nome campo inseriamo il nome del campo e nella colonna Tipo dati gli assegniamo un tipo tra quelli disponibili. • L'ultima colonna può servire a descrivere l'utilizzo di un certo campo il cui nome non risulti abbastanza auto esplicativo. • Iniziamo inserendo il campo id_libro come identificatore. • Gli assegniamo il tipo Contatore: questo tipo di dato è perfetto per le chiavi primarie perché rappresenta un campo numerico che si incrementa automaticamente. Creare delle tabelle in Access • Il campo id_libro non è ancora una chiave primaria, anche se il suo tipo è contatore. Perché lo diventi clicchiamo col tasto destro del mouse sul quadratino celeste alla sua sinistra e selezioniamo "Chiave primaria" nel menù. • Alle chiavi esterne assegneremo invece il semplice tipo numerico: – in questo caso non è necessario un contatore, poiché le chiavi esterne possono ripetersi (ad esempio, un autore scrive più libri!). Creare delle tabelle in Access • La scelta del tipo testo per il campo titolo e del tipo numerico per il campo anno di pubblicazione non dovrebbero creare incomprensioni. • Altri tipi disponibili di nostro interesse sono: – memo: è un campo testo di dimensioni illimitate, utile per campi come post dei blog o come i commenti – data/ora: per memorizzare una data in diversi formati – valuta: utilizzato per campi numerici espressioni di valori monetari Creare delle tabelle in Access • Non ci resta che chiudere la finestra. • Nella finestra centrale adesso la tabella libri appare in bella mostra e possiamo eliminarla, farne una copia o rinominarla semplicemente cliccandoci su col tasto destro del mouse. • Selezionando la tabella possiamo ora riaprirla in modalità struttura per modificare la struttura dei campi della tabella. • Nello stesso identico modo creiamo la tabella AUTORI . – Possiamo inserire tutti i campi che vogliamo, ma è fondamentale, ai fini dell'esempio, inserire almeno i campi id_autore e nome. Una volta creata aggiungiamo qualche record. Vincoli sui campi e indici • Abbiamo visto che possiamo assegnare ad ogni campo un particolare tipo di dato. Per ogni tipo, nella "visualizzazione struttura" appaiono una serie di elementi aggiuntivi, in basso, che servono a specificare altre caratteristiche del campo. • La dimensione del campo • il massimo numero rappresentabile per gli interi • quante cifre desideriamo dopo la virgola. • Per i campi testo, la dimensione del campo a 30 caratteri. • Il formato può essere utile nel caso di un tipo numerico (es. valuta) • Valido se, indica i valori consentiti per quel campo. • Valore predefinito, indica un valore che Access inserisce quando non inseriamo. Operazioni sui dati: ORDINAMENTO • Possiamo visualizzare i dati in ordine basandoci su un certo campo, senza modificare il modo in cui i dati sono memorizzati nel file. – Ad esempio possiamo elencare i libri mettendo i titoli in ordine alfabetico. – Nella visualizzazione tabellare, puntiamo il mouse sulla scritta titolo, clicchiamo col tasto destro del mouse e scegliamo il pulsante "ordinamento crescente" (o decrescente). Operazioni sui dati: FILTRI • Immaginiamo di avere una tabella con numerosissimi record e di volerne individuare uno in particolare oppure di volerne isolare un sottoinsieme: – ad esempio quello dei libri pubblicati tra il 1900 e il 1986. • utilizziamo un filtro in base a maschera. Dal menu Home, andiamo nella sezione Ordina e filtra, e dal menu a tendina Avanzate scegliamo la voce Filtro in base a maschera. Operazioni sui dati: FILTRI • Appare una nuova tabella vuota, serve per inserire nei campi delle chiavi di ricerca. – Ad esempio, volendo cercare tutti i libri pubblicati nell'anno 1987 basta scrivere 1987 nel campo anno e cliccare sul pulsante applica filtro.