Download Capitolo 13 Interrogare una base di dati

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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