Basi di Dati e Microsoft Access Alessandro Lolli - [email protected] - Database: Esempio Tutti utilizzano un database nella vita comune. Quando si consulta una semplice agenda telefonica, un vocabolario o un catalogo di viaggi, in realtà si sta usando un archivio (base) di dati, detto anche database. Database: Database Introduzione Un database è una collezione di informazioni organizzata in gruppi, che consentono un semplice recupero delle stesse. Informazioni facilmente reperibili Uno dei requisiti fondamentali che un db deve rispettare è la reperibilità delle informazioni che contiene, deve cioè essere possibile trovare in modo semplice e rapido i dati che di volta in volta interessano all’utente. Consultando una rubrica, deve essere possibile ricercare un contatto, oppure ordinare i contatti in ordine alfabetico 1 Omogeneità delle informazioni Un altro requisito essenziale per un db è l’omogeneità delle informazioni in esso contenute, ciò significa che i dati devono avere tutti la stessa natura. A chi crea un db viene quindi chiesto di specificare con precisione quali tipi di dati vanno inclusi e quali esclusi. In un vocabolario di italiano, non andranno inclusi termini stranieri Sommario 9 9 Inizialmente analizzeremo i concetti e le regole che si devono seguire per progettare un database Dopo aver familiarizzato con il concetti di base, li utilizzeremo per implementare un database in Microsoft Access DBMS: DataBase Management System Un Data Base Management System (DBMS) è un software per la gestione di basi di dati. Esso si interfaccia e facilita la registrazione ed il reperimento dei dati. ¾Access ¾Oracle ¾Sybase ¾DB2 ¾Informix ¾SQL Server sono esempi di DBMS. DBMS. Organizzazione dati Un DBMS (Ms Access) memorizza le informazioni del database all’interno di tabelle di dati contenute in un file. Ogni tabella di dati ha una struttura che consente la raccolta, l’organizzazione, la memorizzazione e la ricerca. 2 Access: Access tabelle Tabella: esempio Una tabella è composta da campi e record. studenti Matricola Cognome 6554 Rossi 8765 Neri 9283 Verdi 3456 Rossi I campi sono categorie di informazioni come, ad esempio, Nome, Cognome e Data di Nascita. L’insieme dei campi che contiene i dati di una singola voce è chiamato record (istanza). Tabella: esempio Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica I Fisica II Sistemi inform. Data di Nascita 5/12/1978 3/11/1976 12/11/1979 1/2/1978 Tabella Campi Tabelle, campi e record Schema: definisce le caratteristiche dei dati; è invariabile nel tempo Docente Luigi Neri Piero Rossi Nicola Mori Mario Bruni Mario Bruni Piero Rossi Record Nome Mario Paolo Luisa Maria Aula N1 N2 N1 N1 N3 N3 Ora 8:00 9:45 9:45 11:45 9:45 8:00 Istanza: specifica i valori effettivi di una particolare base di dati che si conforma a una dato schema I campi possono avere caratteristiche diverse tra loro: matricola o anno accademico potrebbero essere numerici, mentre Nome o Cognome testuali. Un db informatico può essere (e normalmente lo è) costituito da più tabelle. 3 Schedario: esempio db Si supponga di avere voler utilizzare uno schedario per catalogare una biblioteca. Dedichiamo a ciascun libro una scheda (record) su cui scriveremo le seguenti voci (campi): titolo, autore, casa editrice, anno di pubblicazione, genere (romanzo, saggio, teatro, …) e giudizio sull’opera. Schedario: regole Schedario: tabella Titolo Autore Casa editrice Anno pubbl. … … … … … … … … … … … … Genere Giudizio Schedario: ricerca informazioni Si vogliono utilizzare le seguenti regole: ¾ ¾ Schede dei libri in ordine alfabetico per autore Ordine cronologico per i libri di uno stesso autore In questo modo se un utente cerca un libro di Banana Yoshimoto o Alessandro Baricco li troverà, rispettivamente, tutti alla lettera Y e B. 4 Schedario: limiti ricerca informazioni Se, invece, la ricerca verte sul controllo di tutti i libri pubblicati da un certo editore non si potrà fare a meno di controllare tutte le schede una ad una. DB informatici I db gestiti dal computer consentono di superare questi problemi. Infatti consentono di: ¾ ¾ Oppure se si volessero riordinare per genere letterario, l’operazione costringerebbe a ricontrollare e riorganizzare l’intero schedario. ¾ ¾ Ordinare una gran quantità di dati Riordinare rapidamente in molti modi diversi Estrarre molteplici informazioni contemporaneamente Aggiungere nuovi dati in maniera semplice e veloce. DB: progettazione DB film: informazioni da archiviare L’unica fatica sta nel progettare il db in modo da soddisfare tutte le nostre esigenze. Il primo passo consiste nel decidere quali informazioni archiviare. Supponiamo: I prossimi lucidi sono dedicati alla progettazione di un db in grado di conservare informazioni riguardanti film di una collezione privata. Film Registi Attori Il nostro archivio conterrà, perciò 3 tipi di schede (tabelle). 5 DB film: schemi tabelle (modelli) Attraverso la fase successiva si definiscono in dettaglio le informazioni da archiviare in ciascuna tabella. DB film: dati Una volta definiti gli schemi delle tabelle, si possono inserire i dati che si è deciso di archiviare all’interno delle stesse. Db film: le tabelle Film Registi Attori Titolo Genere Regista Attore Anno Durata Oscar vinti Cognome Nome Data di nascita Nazionalità Oscar vinti Nota biografica Cognome Nome Data di nascita Nazionalità Oscar vinti DB film: ordinamenti Decidendo di inserire, ad esempio, i film in ordine alfabetico si può ,in un secondo tempo, riordinarli facilmente per autore o per anno. 6 Vantaggi DB informatico Modello relazionale Un DBMS agevola operazioni difficili: 9 9 Ordinamento dei dati in una tabella in base ad uno qualsiasi dei campi Semplifica enormemente le ricerche (query) permettendo di estrarre rapidamente le informazioni senza duplicare i dati Relazioni Registi Cognome Nome Data di nascita Nazionalità Oscar vinti Nota biografica MicroSoft Access è un DBMS che si basa sul modello relazionale, permette cioè di mettere in relazione dati che si trovano su tabelle diverse. Relazioni uno-a-molti Film Titolo Genere Regista Attore Anno Durata Oscar vinti Attori Cognome Nome Data di nascita Nazionalità Oscar vinti A ciascun regista possono essere associati più film, mentre a ciascun film è associato un solo regista. A ciascun attore possono essere associati più film, mentre a ciascun film è associato un solo attore (per scelta implementativa quello principale). 7 Relazioni uno-a-uno Relazioni molti-a-molti (esempio) Esistono anche relazioni di cardinalità uno-a-uno: Tra persone e codice fiscale Tra automobili e targhe Esercizio Utilizzare i vocaboli campi, record, relazione e tabella per completare. a) La scelta dei campi in cui inserire i dati definisce lo schema di una tabella. b) Un record completo contiene dati corrispondenti a tutti i campi di una tabella. c) In un database si può creare una relazione tra una tabella e un’altra. Se fossero stati memorizzati per ogni film più attori, allora la relazione tra film e attori avrebbe avuto cardinalità molti-a-molti. Progettazione DB: accorgimenti Ogni tabella un solo argomento In generale il DB va progettato in modo che le singole tabelle contengano dati relativi ad un solo argomento ⇒ Film, Attore, Regista. Le tabelle devono rappresentare un concetto. 8 Progettazione DB: accorgimenti Progettazione DB: accorgimenti Occorre, inoltre, evitare il più possibile la duplicazione, nelle diverse tabelle, delle informazioni relative a ciascun argomento. L’unico caso in cui essa è utile è per creare relazioni. Limitare le duplicazioni Duplicazioni utili Risulterebbe inutile riportare, ad esempio, tutte le informazioni anagrafiche del regista nella tabella film. Nella tabella film è riportato il cognome del regista: questa duplicazione è utile perché permette di risalire, dato un film, alle informazioni biografiche del regista del film stesso. Progettazione DB: accorgimenti Progettazione DB: accorgimenti Le relazioni vanno definite su campi definiti chiave che le diverse tabelle devono avere in comune. Poniamo di dover eseguire, ad esempio, la ricerca sui dati anagrafici del regista del film L’ultimo imperatore che risulta “Bertolucci” dalla tabella film. Relazioni ben definite e non ambigue Relazioni ben definite e non ambigue (2) 9 Progettazione DB: accorgimenti Relazioni ben definite e non ambigue (3) Per saperne di più, si cerca all’interno della tabella Registi, nel campo cognome “Bertolucci”. I risultati potrebbero essere più di uno (Giuseppe Bertolucci e Bernardo Bertolucci sono fratelli ed entrambi registi) avendo scelto come campo su cui porre la relazione cognome. Progettazione DB: accorgimenti Scelta chiave primaria Progettazione DB: accorgimenti Chiave primaria Una tabella è ben strutturata quando ogni suo record può essere identificato in maniera univoca, ossia quando esiste almeno un campo che non assume mai valori uguali nella tabella. Progettazione DB: accorgimenti Nome chiave primaria Nella tabella registi non può essere quindi chiave il campo cognome, ma neppure titolo nella tabella film. Per consuetudine al campo chiave viene dato il nome della tabella preceduto dal prefisso “Id-” La soluzione più semplice consiste nell’aggiungere un campo contatore, contenente numeri progressivi (1,2,3,..) che etichettano ciascun record. Esempio: “Id-Regista” Questo campo speciale viene chiamato appunto chiave primaria. 10 Progettazione DB: correzioni Registi Id-Regista Cognome Nome Data di nascita Nazionalità Oscar vinti Nota biografica Film Titolo Genere Regista Attore Anno Durata Oscar vinti Oscar Id-Regista Attori Id-Attore Cognome Nome Data di nascita Nazionalità Oscar vinti Esercizio Nel DB di una biblioteca, qual è l’unico tra questi campi che potrebbe essere utilizzato come chiave primaria? a) b) c) d) Titolo del libro Cognome dell’autore Editore Codice ISBN Id-Attore 11