V. Moriggia Modelli di Base Dati Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 V. Moriggia Modelli di Base Dati 4.2 © DBMS DBMS A GI IG OR M V. ? DBMS 02 20 = Data Base Management System ? Software per la costruzione e la gestione di una base dati ? Esempi di DBMS: Oracle, MySQL Oracle, MySQL,, SQLServer SQLServer,, SyBase SyBase,, Access per Windows, … ? Quando la base dati è organizzata con il modello relazionale si parla di Relational Data Base Management System (RDBMS) a.a. 2001/2002 4.2 V. Moriggia Modelli di Base Dati 4.3 Caratteristiche dei DBMS © A GI IG OR M V. ? Software 02 20 basato su un modello logico (solitamente il modello relazionale) ? Gestione dei dati attraverso una User Interface (solitamente GUI) ? Integrità referenziale ? Sicurezza degli accessi ? Linguaggi per l’impiego del DBMS a.a. 2001/2002 4.3 V. Moriggia Modelli di Base Dati 4.4 Integrità © A GI IG OR M V. 02 20 ? Integrità sulle entità – integrità dei dati, garantiti dall’assenza di valori nulli nelle chiavi primarie ? Integrità referenziale – insieme di regole di integrità dei dati sulle chiavi esterne ? Integrità dell’utente – vincoli definiti dall’utente in conseguenza a politiche commerciali, normative fiscali, ecc. Integrità referenziale è l'insieme di regole del modello relazionale che garantiscono l’integrità dei dati : • rendere valide le associazioni tra le tabelle • eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro. Integrità referenziale : per ogni valore non nullo della chiave esterna, deve esistere un valore corrispondente della chiave primaria nella tabella associata. Per esempio Date le due relazioni: R1 con chiave K1 e R2 chiave esterna KE2 associata a K1 si possono accettare due casi: • ogni valore di KE2 deve avere un valore uguale di K1 in una delle righe della tabella R1; oppure • il valore di KE2 deve essere Null. R1 a.a. 2001/2002 K1 R2 K2 KE2 1 2 2 Null 3 1 4 2 4.4 V. Moriggia Modelli di Base Dati 4.5 Integrità referenziale © A GI IG OR M V. 02 20 “A ogni valore non nullo della chiave esterna deve corrispondere una valore della chiave primaria della relazione associata” 1. 2. 3. Non è possibile immettere un valore nella chiave esterna che non esiste nella relazione associata. Il valore NULL è ammesso Non è consentito cancellare l’istanza di una chiave primaria se esistono delle istanze uguali nella chiave secondaria della relazione associata Non è possibile modificare il valore di una chiave primaria se esistono delle istanze uguali nella chiave secondaria della relazione associata Regole pratiche per l'integrità referenziale Non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria. Esempio : un ordine non può essere assegnato ad un cliente che non esiste nella tabella dei clienti Non è possibile eliminare una tupla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata. Esempio : non è possibile eliminare un cliente dalla tabella dei clienti se ci sono ordini assegnati a quel cliente nella tabella degli ordini Non si può modificare il valore alla chiave nella tabella primaria, se ad essa corrispondono righe nella tabella correlata. Esempio : non è possibile modificare il valore alla chiave di un cliente se si sono ordini per quel cliente già registrati nella tabella degli ordini. a.a. 2001/2002 4.5 V. Moriggia Modelli di Base Dati 4.6 Integrità referenziale © A GI IG OR M V. ? rendere 02 20 valide le associazioni tra le tabelle ? eliminare gli errori di inserimento, modifica o cancellazione di dati collegati tra loro a.a. 2001/2002 R1 R2 K1 K2 KE2 1 2 2 Null 3 1 4 2 4.6 V. Moriggia Modelli di Base Dati 4.7 © A GI IG OR M V. Linguaggi per l’impiego del DBMS ? DDL ( Data 02 20 Definition Language) Language) creazione di tabelle, viste ? DMCL ( Device Media Control Language Language)) scambi con il supporto fisico ? DML (Data Manipulation Language) Language) inserimento, modifica, cancellazione dati ? DCL ( Data Control Language Language)) integrità e sicurezza ? Query Language interrogazioni Le viste sono sottoschemi (view), cioè visioni del database legate alle particolari applicazioni dei singoli utenti e che consentono agli utenti di accedere ai dati che servono. Le viste sono ottenute attraverso proiezioni o congiunzioni. Vista = tabella virtuale Tabelle del data base = tabelle primarie Le viste sono finestre dinamiche sulle tabelle del data base : ogni modifica ai dati nella tabella primaria si riflette sulla vista. a.a. 2001/2002 4.7 V. Moriggia Modelli di Base Dati 4.8 © A GI IG OR M V. Impiego dei linguaggi dei DBMS ? Interfacce 02 20 utente (GUI) ? Chiamate da linguaggi tradizionali (Cobol, C, C++, Java, …) ? Linguaggi ad ad--hoc (SQL) a.a. 2001/2002 4.8 V. Moriggia Modelli di Base Dati 4.9 © Access Access per per Windows Windows A GI IG OR M V. a.a. 2001/2002 02 20 sistema di gestione di basi di dati relazionali con interfaccia grafica in ambiente Windows ? icone comuni ai prodotti Office (barra degli strumenti) ? oggetti di Access: – Tabelle – Query – Maschere e Report – Macro e Moduli – Pagine Web ? 4.9 V. Moriggia Modelli di Base Dati 4.10 © Apertura Apertura del del database database All'ingresso in Access, con Database vuoto si crea un nuovo database (file con estensione .mdb mdb)) oppure si apre un database già esistente. 02 20 a.a. 2001/2002 A GI IG OR M V. ? 4.10 V. Moriggia Modelli di Base Dati 4.11 © Autocomposizione Autocomposizione A GI IG OR M V. a.a. 2001/2002 02 20 Creazione di database in autocomposizione (in inglese Wizard Wizard)) ? Modelli standard predefiniti ? Servono a: ? Creare database di uso comune ? Imparare a usare Access (dati di prova) ? Anche database di esempio (Northwind (Northwind..mdb in \Office Office\\Office Office\\Samples Samples)) ? 4.11 V. Moriggia Modelli di Base Dati 4.12 © L’ambiente L’ambiente di di lavoro lavoro Per ciascun oggetto l’ambiente di lavoro di Access presenta 3 pulsanti: Apri, Struttura, Nuovo. 02 20 a.a. 2001/2002 A GI IG OR M V. ? 4.12 V. Moriggia Modelli di Base Dati 4.13 Terminologia di Access © A GI IG OR M V. 02 20 associazione relazione Studente ID Nome entità, relazione, tabella Indirizzo Telefono 21345 Bianchi via Garibaldi 1 43567889 21345 10 ID Classe 23455 Neri via Mazzini 3 56723468 23455 5 53566 Rossi via Giolitti 8 istanza, tupla, 34576865 53566 8 42786 Verdi largo Cavour 2 23424325riga, record 42786 7 attributo colonna campo a.a. 2001/2002 4.13 V. Moriggia Modelli di Base Dati 4.14 © Definizione Definizione di di una una tabella tabella A GI IG OR M V. 02 20 clic sul pulsante Tabelle, poi su Crea una tabella in visualizzazione Struttura:: Struttura ? occorre fornire nomi delle colonne (campi), tipo e dimensione ? Tipi: Testo, Numerico, Data/ora, ecc. ? Alla fine salvare con un nome la struttura della tabella. a.a. 2001/2002 4.14 V. Moriggia Modelli di Base Dati 4.15 © La La chiave chiave della della tabella tabella A GI IG OR M V. 02 20 Per facilitare la ricerca dei dati nel database campo chiave = campo che assume valori diversi in tutte le righe, identifica univocamente ogni riga della tabella (matricola studente, codice prodotto, ecc.), ? Il campo chiave viene fissato con clic sull’icona della barra degli strumenti di Access. ? Chiave predefinita da Access: ID di tipo contatore (autoincrementale (autoincrementale)) ? ? a.a. 2001/2002 4.15 V. Moriggia Modelli di Base Dati 4.16 © Manipolazione Manipolazione dei dei dati dati A GI IG OR M V. ? premendo 02 20 sul pulsante Apri (oppure doppio clic sul nome) si visualizza la tabella in modalità Foglio Dati: Dati: le righe possono essere riempite con i valori ? ci si sposta nelle colonne con i tasti freccia, anche per la modifica Inserimento di una nuova riga in coda a.a. 2001/2002 cancellazione di una riga 4.16 V. Moriggia Modelli di Base Dati 4.17 © A GI IG OR M V. Due modalità: 02 20 ? Visualizzazione Visualizzazione della della tabella tabella ?Foglio dati ?Struttura a.a. 2001/2002 4.17 V. Moriggia Modelli di Base Dati 4.18 © Le Le relazioni relazioni tra tra tabelle tabelle A GI IG OR M V. 02 20 Si scelgono le tabelle tra le quali creare l’associazione Chiave primaria e chiave esterna: per esempio codice cliente nella tabella Clienti (primaria) e codice cliente nella tabella Ordini (esterna) a.a. 2001/2002 4.18 V. Moriggia Modelli di Base Dati 4.19 © Integrità Integrità referenziale referenziale A GI IG OR M V. 02 20 ? garantire la consistenza dei dati durante le operazioni di manipolazione delle tabelle legate tra loro da una corrispondenza di campi (inserimento, modifica, cancellazione) a.a. 2001/2002 4.19 V. Moriggia Modelli di Base Dati 4.20 © Associazione Associazione tra tra ii dati dati A GI IG OR M V. 02 20 ? Rappresentazione visuale delle associazioni tra le tabelle a.a. 2001/2002 4.20 V. Moriggia Modelli di Base Dati 4.21 © Esercizio Esercizio A GI IG OR M V. Creare un nuovo database con due tabelle: 02 20 ? Anag(Codice Anag( Codice,, cognome, nome, indirizzo, provincia) Movim((ID Movim ID,, codice codice,, causale, data, importo) Inserire 5 righe per ogni tabella. ? Creare la relazione tra le tabelle e fissare l’integrità referenziale. ? a.a. 2001/2002 4.21