Basi di Dati e Microsoft Access Database: Introduzione Alessandro Lolli - alolli@csr.unibo.it - Un database è una collezione di informazioni organizzata in gruppi, che consentono un semplice recupero delle stesse. 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. 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
Omogeneità delle informazioni DBMS: DataBase Management System 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 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 DB2 Oracle Informix sono esempi di DBMS. Sybase SQL Server Sommario Organizzazione dati 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 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.
Access: tabelle Tabella: esempio Una tabella è composta da campi e record. I campi sono categorie di informazioni come, ad esempio,, e Data di Nascita. studenti Matricola Data di Nascita 6554 Rossi Mario 5/12/1978 8765 Neri Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 1/2/1978 Tabella L insieme dei campi che contiene i dati di una singola voce è chiamato record (istanza). Record Campi Tabella: esempio Tabelle, campi e record Orario Insegnamento Docente Aula Ora Analisi matem. I Luigi Neri N1 8:00 Basi di dati Piero Rossi N2 9:45 Chimica Nicola Mori N1 9:45 Fisica I Mario Bruni N1 11:45 Fisica II Mario Bruni N3 9:45 Sistemi inform. Piero Rossi N3 8:00 Schema: definisce le caratteristiche dei dati; è invariabile nel tempo 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 o testuali. Un db informatico può essere (e normalmente lo è) costituito da più tabelle.
Schedario: esempio db Schedario: tabella 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. Titolo Autore Casa editrice Anno pubbl. Genere Giudizio Schedario: regole 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.
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. Oppure se si volessero riordinare per genere letterario, l operazione costringerebbe a ricontrollare e riorganizzare l intero schedario. DB informatici I db gestiti dal computer consentono di superare questi problemi. Infatti consentono di: 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 L unica fatica sta nel progettare il db in modo da soddisfare tutte le nostre esigenze. I prossimi lucidi sono dedicati alla progettazione di un db in grado di conservare informazioni riguardanti film di una collezione privata. DB film: informazioni da archiviare Il primo passo consiste nel decidere quali informazioni archiviare. Supponiamo: Film Registi Attori Il nostro archivio conterrà, perciò 3 tipi di schede (tabelle).
DB film: schemi tabelle (modelli) Db film: le tabelle Film Registi Attori Attraverso la fase successiva si definiscono in dettaglio le informazioni da archiviare in ciascuna tabella. Titolo Genere Regista Attore Anno Durata Nota biografica DB film: dati DB film: ordinamenti Una volta definiti gli schemi delle tabelle, si possono inserire i dati che si è deciso di archiviare all interno delle stesse. Decidendo di inserire, ad esempio, i film in ordine alfabetico si può,in un secondo tempo, riordinarli facilmente per autore o per anno.
Vantaggi DB informatico Modello relazionale Un DBMS agevola operazioni difficili: 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 MicroSoft Access è un DBMS che si basa sul modello relazionale, permette cioè di mettere in relazione dati che si trovano su tabelle diverse. Relazioni Relazioni uno-a-molti Registi Nota biografica Film Titolo Genere Regista Attore Anno Durata Attori 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).
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 Se fossero stati memorizzati per ogni film più attori, allora la relazione tra film e attori avrebbe avuto cardinalità molti-a-molti. 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 recordcompleto contiene dati corrispondenti a tutti i campi di una tabella. c) In un database si può creare una relazione tra una tabellae un altra. 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.
Limitare le duplicazioni Occorre, inoltre, evitare il più possibile la duplicazione, nelle diverse tabelle, delle informazioni relative a ciascun argomento. Risulterebbe inutile riportare, ad esempio, tutte le informazioni anagrafiche del regista nella tabella film. Duplicazioni utili L unico caso in cui essa è utile è per creare relazioni. 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. Relazioni ben definite e non ambigue Relazioni ben definite e non ambigue (2) 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 (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. 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. Scelta chiave primaria Nella tabella registi non può essere quindi chiave il campo cognome, ma neppure titolo nella tabella film. La soluzione più semplice consiste nell aggiungere un campo contatore, contenente numeri progressivi (1,2,3,..) che etichettano ciascun record. chiave primaria Per consuetudine al campo chiave viene dato il nome della tabella preceduto dal prefisso Id- Esempio: Id-Regista Questo campo speciale viene chiamato appunto chiave primaria.
Progettazione DB: correzioni Esercizio Registi Id-Regista Nota biografica Film Titolo Genere Regista Attore Anno Durata Oscar Id-Regista Attori Id-Attore Nel DB di una biblioteca, qual è l unico tra questi campi che potrebbe essere utilizzato come chiave primaria? a) Titolo del libro b) dell autore c) Editore d) Codice ISBN Id-Attore