Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Capitolo 13 Interrogare una base di dati Il database fisico • La ridondanza è una cosa molto, molto, molto brutta – Non si devono mai replicare informazioni scrivendole in più posti diversi nel database • Per evitare inconsistenza tra le copie – potremmo cambiare un dato in un posto e dimenticare di cambiarlo in un altro • I dati incoerenti sono chiamati garbage – spazzatura, perché la loro presenza è peggio della mancanza assoluta di dati Copyright © 2006 Pearson Education. All rights reserved. 13-2 Il database fisico (cont.) • Una sola copia di ogni dato – evitare le duplicazioni favorisce la coerenza interna, ma non assicura che i dati siano corretti • L’informazione potrebbe essere necessaria in più parti del DB – è meglio tenere una lista singola e permettere agli altri di accedervi Copyright © 2006 Pearson Education. All rights reserved. 13-3 Il database fisico (cont.) • La cosa migliore è mantenere una tabella separata e la sua chiave – piuttosto che ripetere l’informazione, si tiene una tabella separata con una chiave che funge da identificatore unico (chiave esterna) – per reperire i dati, si fa una ricerca usando la chiave esterna Copyright © 2006 Pearson Education. All rights reserved. 13-4 Lo schema di un database • I metadati di una tabella sono chiamati schema del database – struttura e progetto • Immaginiamo un DB universitario con due tabelle, Studente e Residenza: Copyright © 2006 Pearson Education. All rights reserved. 13-5 Copyright © 2006 Pearson Education. All rights reserved. 13-6 Collegare tabelle mediante relazioni • Le due tabelle sono distinte, ma non indipendenti • Il Num_Matricola le collega – si dice che tra le due entità c’è una relazione • corrispondenza tra le righe • le relazioni fanno parte dei metadati • la relazione è bidirezionale (possiamo trovare l’indirizzo per ogni studente ma anche lo studente per ogni indirizzo) Copyright © 2006 Pearson Education. All rights reserved. 13-7 Ricostruire le tabelle con il join • Le relazioni tra due tabelle permettono di costruirne una terza (Lista_Master) che contiene le informazioni combinate di entrambe le tabelle – utilizziamo l’operazione di join naturale descritta nel Capitolo 12 Copyright © 2006 Pearson Education. All rights reserved. 13-8 Progettare uno schema di database • Poniamo che l’ufficio del Preside e il centro sportivo necessitino entrambi delle informazioni sugli indirizzi – definiamo le tabelle senza l’indirizzo ma con Num_Matricola come chiave primaria – ogni nuova tabella ha una relazione uno-auno con la tabella Residenza e Studente (sia l’ufficio del Preside che il centro sportivo possono cercare il nome degli studenti) Copyright © 2006 Pearson Education. All rights reserved. 13-9 Database logici e fisici • Partendo dal nostro insieme base di quattro tabelle, ne possiamo creare altre personalizzate per i vari dipartimenti e uffici – Il database logico non esiste fisicamente • È ricreato ogni volta che è necessario, usando i valori correnti del DB fisico • I database logici contengono informazioni duplicate, ragion per cui non li memorizziamo in modo permanente (cosa che creerebbe ridondanza) • DB logici personalizzati (noti come viste) permettono a ogni gruppo di utenti di vedere i dati da un punto di vista particolare Copyright © 2006 Pearson Education. All rights reserved. Database logici: creare viste sui dati • Le viste sono tabelle logiche costruite mediante l’applicazione di operazioni alle tabelle fisiche • Le operazioni che creano le viste sono chiamate query o interrogazioni – il join naturale è una query • Ogni tabella dotata di nome è una tabella fisica registrata sull’hard disk oppure una tabella logica creata da un’interrogazione Copyright © 2006 Pearson Education. All rights reserved. 13-11 Creare la vista del Preside • Contiene informazioni selezionate dalle tabelle fisiche Copyright © 2006 Pearson Education. All rights reserved. 13-12 Riunire tre tabelle con un join • Primo passo: notate che la vista del Preside contiene informazioni prese da tre tabelle • L’operazione di join associa l’informazione per ogni studente • Per ogni studente si possono riunire le informazioni prese da tutte e tre le tabelle Copyright © 2006 Pearson Education. All rights reserved. 13-13 “Sfoltire” i dati nella tabella • Recupera solo le colonne che il Preside vuole vedere • La strategia del “join più sfoltimento” è un approccio standard – si crea una “supertabella” mediante il join di diverse tabelle fisiche – quindi si estraggono solo le informazioni che interessano l’utente Copyright © 2006 Pearson Education. All rights reserved. 13-14 La vista del centro sportivo Copyright © 2006 Pearson Education. All rights reserved. 13-15 Un linguaggio di interrogazione: SQL • SQL (Structured Query Language): – è un linguaggio standard di uso larghissimo – fornisce una struttura specifica di query per tecniche come “join più sfoltimento” – ogni venditore usa un proprio dialetto SQL, ma le interrogazioni semplici sono più o meno uguali: • SELECT • FROM • WHERE lista di campi tabella/e vincoli sulle righe Copyright © 2006 Pearson Education. All rights reserved. 13-16 La clausola ON di SQL • Dopo il SELECT c’è una lista di campi • Il FROM specifica le tabelle da riunire nel Join, la clausola ON il campo da usare come riferimento per far corrispondere le righe Copyright © 2006 Pearson Education. All rights reserved. 13-17 La clausola WHERE di SQL • La clausola WHERE permette di specificare condizioni sulle righe: il Preside ad esempio vuole vedere solo gli studenti con una media uguale o superiore al 28 Copyright © 2006 Pearson Education. All rights reserved. 13-18 Diagrammi entità-relazione • La creazione di nuove tabelle coinvolge relazioni • Le relazioni entrano a far parte dello schema di un database per indicare le connessioni tra le informazioni; i join le realizzano in pratica • Se c’è una relazione, probabilmente sarà applicata nella costruzione del database logico • Gli amministratori di un database ne documentano la struttura riportando su un diagramma le relazioni Copyright © 2006 Pearson Education. All rights reserved. 13-19 Diagrammi entità-relazione (cont.) Copyright © 2006 Pearson Education. All rights reserved. 13-20 Diagrammi entità-relazione (cont.) • Relazioni uno-a-uno – ogni riga della prima entità è associata al più a una riga della seconda entità • Relazioni uno-a-molti – molte righe della prima entità possono essere associate a una singola riga della seconda entità • Nei diagrammi ER questi tipi di relazione possono essere rappresentati in modi diversi Copyright © 2006 Pearson Education. All rights reserved. 13-21 Copyright © 2006 Pearson Education. All rights reserved. 13-22 Copyright © 2006 Pearson Education. All rights reserved. 13-23 Copyright © 2006 Pearson Education. All rights reserved. 13-24