MSDE Istruzioni per l'uso (parte 3) - Generare una vista su un database MSDE
a cura di Sabrina Cosolo (requisiti: conoscenza minima di Access e linguaggio SQL)
<Precedente Successiva> Che cos'è una Vista:
Una vista è in realtà un particolare tipo di Query, è infatti una Query memorizzata sul Database, serve per visualizzare insieme dati aggregati di più tabelle oppure di visualizzare solo parte dei dati contenuti in una tabella per filtrare ciò che gli utenti vedono o possono modificare in base a criteri prestabiliti.Ad esempio si può utilizzare una View per non far vedere agli utenti una tabella in modo diretto, ma mettere a disposizione solo i dati di loro pertinenza.
A differenza di una Query, la Vista viene memorizzata sul Database e il Server può tenere in memoria il suo Piano di esecuzione, perciò è sicuramente molto più veloce di una Query lanciata "al volo". Vediamo quindi come creare una Vista da Access 2000.
Andiamo sulla finestra Database, selezioniamo Visualizzazioni e attiviamo "Crea visualizzazione nella finestra progettazione". Ci si aprirà una finestra molto triste e vuota (Occhio alla finestrina in alto e tasto <Invio> se appare).
Usiamo il bottone Mostra Tabella per aggiungere le tabelle che ci interessano, in questo caso vogliamo fare un elenco dei CD con i titoli dei brani, gli interpreti, le case discografiche e la categoria.
![]()
Come si può vedere, la costruzione della Vista assomiglia un po' a quella delle Query di Access, ma non è proprio la stessa cosa. Possiamo Vedere 3 pannelli:
- uno con la struttura delle relazioni e la finestra di Mostra tabelle, con le tabelle ed i campi da spuntare
- uno in cui sono elencate le colonne selezionate (campi spuntati) nella parte superiore, gli eventuali "Alias" (ovvero come vogliamo chiamare le colonne), obbligatori quando i campi hanno lo stesso nome (vedi "Nome"), in questa tabella si possono eventualmente indicare i criteri di selezione e i criteri di ordinamento e raggruppamento.
- nell'ultimo possiamo vedere come la Vista viene tradotta in SQL perché possa essere usata dal Server Dati.
I 3 Pannelli possono essere attivati o disattivati usando i tre tastiche si trovano sulla Toolbar in Alto.
Se provate a realizzare la Vista che ho predisposto nell'immagine precedente trascinando le tabelle dal pannello di aggiunta, potrete notare che, lasciando tutte le relazioni automatiche immutate, la tabella Interpreti ha 2 diverse relazioni con la tabella CD e la tabella Brani. Al fine della nostra Vista, se vogliamo indicare solo l'interprete Generico del CD, elimineremo la relazione Interpreti-Brani selezionandola e premendo <Canc>. Un'altra cosa che potete notare nell'immagine complessiva della vista è una piccola differenza nelle Join con le tabelle ausiliarie Casa Discografica e Categorie.
In questo caso, vogliamo fare apparire anche i CD per cui non sia stata impostata una categoria o una casa discografica.
Per indicare a SQL Server che vogliamo vedere "Tutti i record della tabella CD Anche se il campo Casa Discografica o categoria fosse Vuoto", clicchiamo sul rombo al centro della linea di relazione con il tasto destro del mouse e apparirà un menu popup.Scegliendo l'opzione "Seleziona tutte le righe da tbCd", la relazione viene modificata in modo da includere correttamente tutti i CD come da noi richiesto.
Ovvero, guardando il codice SQL, la relazione viene trasformata da INNER JOIN in LEFT OUTER JOIN.Il risultato dell'esecuzione della Query dovrebbe assomigliare a quello dell'immagine qui sotto...
![]()
...anche se, per la mia estrema pigrizia, non ho ancora inserito le case discografiche o le categorie.
Come potete vedere, la vista non è ordinata perché io non ho inserito alcun criterio in tal senso.
Le Viste di SQL Server non si possono ordinare, non perché i programmatori Microsoft non vogliano, ma perché le specifiche SQL non lo prevedono.
In realtà poi l'ordinamento si può fare, basta inserire nella vista una piccola clausola, che in SQL cambia il codice da "SELECT" a "SELECT TOP 100 PERCENT": in questo caso, possiamo poi aggiungere alla vista i criteri di ordinamento come più ci piace...
Facciamo la prova e, dato che vogliamo sperimentare il brivido di scrivere SQL, scriviamo il codice nella finestra SQL in modo diretto (anche perché Access 2000 non supporta questo trucco in modalità grafica, mentre per fortuna Access XP sì).
Il codice SQL modificato dovrebbe risultare il seguente:
![]()
Salvate la vista, e anche se Access 2000 dovesse darvi degli strani messaggi d'errore (per esempio che questa query non è supportata) voi non credetegli e proseguite, salvate e provate la vista, quello che dovrebbe apparire è qualcosa di simile a ciò che trovate nella immagine seguente:
Questa Vista può essere utilizzata poi come sorgente ad esempio per il report dettagliato dei nostri CD.
Avendo terminato la generazione della vista, potremmo passare alla generazione di una stored procedure...
<Precedente Successiva>