Sei sulla pagina 1di 85

Laboratorio di Informatica Sez.

A, B, C

Lezione L3: Basi di dati

Elaborazione di dati - Richiamo

Fogli Elettronici:
piccoli aggregati di dati utilizzo: simili a fogli cartacei estrazione di informazioni soprattutto di carattere numerico

Basi Dati:
aggregati di dati medio grandi utilizzo: come archivi estrazione selettiva di informazioni di carattere generale

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

DBMS Data Base Management System - Richiamo

Sistemi software per la gestione di collezioni di dati che siano: grandi, condivise, persistenti assicurando: affidabilit e riservatezza I DBMS devono essere: efficienti e efficaci BASE DI DATI = collezione di dati gestita da un DBMS
BASE DI DATI = DATI + DBMS

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

DBMS - Richiamo

Il DBMS gestisce
definizione manipolazione (immissione, modifica, cancellazione dati) interrogazione (accesso, elaborazione, trasferimento, presentazione e visualizzazione dellinformazione)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

Progettazione di basi di dati


Problema: quali informazioni inserire in una base di dati e quali legami esistono tra di esse? Si risolve definendo uno schema concettuale da cui si ricaver lo schema logico secondo il modello logico adottato, nel nostro caso il modello relazionale

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

Progettazione di basi di dati Concretamente: Si descrive lo schema concettuale utilizzando diagrammi Entit-Relazione (E-R) Entit: classi di oggetti rilevanti Relazioni: legami tra entit Attributi: descrivono propriet rilevanti di entit e relazioni
RELAZIONE ENTITA

attributo
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 6

Progettazione di basi di dati


Poi sulla base dello schema concettuale ottenuto si definiscono le tabelle e le relazioni tra di esse Richiamo: due tabelle sono collegate da una relazione se una di esse contiene dati che identificano i record dellaltra

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

Relazioni

Si possono stabilire diversi tipi di relazioni fra tabelle


Uno ad uno fra A e B: Ad ogni record di A corrisponde uno ed un solo record di B Uno a molti fra A e B: Ad ogni record di A possono corrispondere pi record di B Molti a uno fra A e B: Si pu vedere come associazione uno a molti fra B ed A Molti a molti fra A e B: Si riducono al caso uno a molti con lutilizzo di tabelle ausiliarie

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

ESEMPIO
Problema: progettare una base di dati per archiviare studenti, materie e relativi esami Schema concettuale: mediante un diagramma E-R descriviamo entit, attributi e relazioni che vogliamo inserire nel data base Schema logico: definiamo lo schema delle tabelle e le relazioni tra di esse

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

Schema concettuale
Diagramma E-R per una base di dati in cui archiviare studenti, materie e relativi esami

data matricola nome cognome STUDENTE


ESAME

voto MATERIA

nome codice titolare

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

10

Schema logico: prima tabella con richiami

Tabella: STUDENTI(matr, nome, cognome)


STUDENTI
matr 305011 356433 345553 345434 nome cognome Carlo Rossi Mario Verdi Franco Verdi Daniele Rossi

Campi: colonne della tabella

Record: righe della tabella

Ad ogni campo sono associati un nome e un tipo (es.: testo, numerico)


aa 2010-11 Lab.Inf. Sez.A,B,C - Lez.L3 11

Schema logico: tabelle


STUDENTE: Matricola (intero), Cognome (testo), Nome (testo), Data di Nascita (data) Schema MATERIA: Codice (intero), Titolo (testo), Docente (testo)
STUDENTE
Matricola Cognome 6554 Rossi 8765 Neri 9283 Verdi 3456 Rossi Nome Mario Paolo Luisa Maria Data di Nascita 5/12/1978 3/11/1976 12/11/1979 1/2/1978

MATERIA
Codice 01 02 04
aa 2009-10

Titolo Analisi Chimica Chimica

Docente Neri Bruni Verdi

Istanza
12

Lab.Inf. Sez.A,B,C - Lez.L3

Chiavi primarie - Richiamo

Un insieme di attributi detto chiave di una tabella se identifica univocamente ogni riga della tabella. Quando ne esiste pi di una, il progettista ne sceglie una, che viene detta chiave primaria. utile (anche se non obbligatorio) scegliere per ciascuna tabella una chiave primaria: permette di evitare ridondanze e inserimento di dati disomogenei in una tabella di organizzare le ricerche nella base dati

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

13

Le chiavi primarie nellesempio sono


Matricola per la tabella Studente Codice per la tabella Materia

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

14

Relazioni
Esame una relazione tra le tabelle Studente e Materia Si ha la seguente situazione: Studente
Matricola 111111 222222 333333 444444 555555 Cognome Bianchi Verdi Rossi . Neri Codice 101 102 103 104 105

Materia
Titolo

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

15

Quindi Esame una relazione molti-a-molti, si tratta definendo una nuova tabella Esame con lo schema seguente Esame: Studente (intero), Corso (intero), Voto (intero), Data (data) Si ottengono due relazioni uno-a-molti rispettivamente tra Studente ed Esame e tra Materia ed Esame

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

16

Due relazioni uno a molti


Studente
Matricola 111111 222222 333333 444444 555555 Cognome Bianchi Verdi Rossi . Neri
Chiave esterna

Materia
Codice 101 102 103 104 105 Titolo

Esame
Voto Data

Studente 111111 111111 222222 333333


aa 2009-10

Corso 102 103 104 104

N.B. La chiave esterna non una chiave della tabella Esame


17

Lab.Inf. Sez.A,B,C - Lez.L3

La chiave delle nuova tabella Esame la coppia di campi: Studente, Corso

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

18

Relazioni: integrit referenziale Si potrebbe osservare che, anche con pi tabelle, si ha una forma di ripetizione: la matricola degli studenti compare sia nella tabella Studente sia in quella Esami (analogamente per il nome dei corsi) Ma questa forma di ripetizione lessenza stessa delle basi di dati relazionali: due tabelle sono messe in relazione dai dati che hanno in comune;
ad esempio, consente di controllare lintegrit dei dati, attraverso il controllo della integrit referenziale

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

19

Relazioni: integrit referenziale


I valori della chiave esterna della tabella figlio devono comparire come valori della chiave primaria della tabella padre

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

20

Relazioni: integrit referenziale


Studente
Matricola ??? 222222 333333 444444 555555 Cognome Bianchi Verdi Rossi . Neri
Chiave esterna

Materia
Codice 101 102 103 ??? 105 Titolo

Esame
Voto Data

Studente 111111 111111 222222 333333


aa 2009-10

Corso 102 103 104 104

Lab.Inf. Sez.A,B,C - Lez.L3

Se cancelliamo la matricola 111111 da Studente linformazione sugli esami di Bianchi scollegata21

Relazioni: controllo dei vincoli di integrit

Se si informa il sistema di gestione della base dati di un vincolo di integrit, si ha un controllo automatico e, a richiesta, uneliminazione automatica dei record scollegati.

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

22

Accesso ai Dati - Richiami

Si accede ai dati mediante interrogazioni Le interrogazioni, o query - estraggono dati dalla base di dati - si eseguono specificando
tabelle su cui applicare la ricerca insieme di campi da estrarre e criteri di ricerca

- possono essere specificate graficamente o testualmente (QBE, SQL)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

23

Accesso ai Dati - Richiami

Operando sulle tabelle mediante interrogazioni si possono ottenere informazioni aggiuntive rispetto a quelle di partenza - selezionando solo i record che soddisfano particolari propriet - selezionando tutti i valori per specifici campi - combinando varie tabelle per crearne altre

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

24

Accesso ai dati - Richiami

Le interrogazioni non modificano i dati contenuti in una base di dati, vi accedono solo in lettura In una base di dati relazionale ogni interrogazione si riduce alla costruzione di una nuova tabella, detta VISTA poich non fisicamente presente nella base dati, ma estratta da essa.

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

25

Accesso ai dati

QBE (Query By Example)


Idea di base: uninterrogazione formulata descrivendo le caratteristiche che deve avere il risultato La definizione di una query si esegue, quindi, costruendo uno schema di tabella che contenga tutti gli attributi e le condizioni che caratterizzano una riga del risultato richiesto

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

26

Esercitazione guidata Non vedremo SQL ma utilizzeremo linterfaccia visuale di Open Office Base (che crea automaticamente corrispondenti enunciati SQL)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

27

Esercitazione guidata

Problema. Costruire una base di dati per la gestione di un archivio bibliografico ad uso personale, con Articoli o Libri
sono previste ricerche per titolo, autori, anno, argomenti; per completezza, si dar anche la casa editrice ed un breve riassunto, che per non saranno utilizzati per fare delle ricerche

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

28

Fase di analisi: i requisiti


Vogliamo inserire dati relativi a Articoli o Libri, del tipo
Titolo: .. Autori: . Anno: .. Argomento Dati pubblicazione: (editore, ecc.) Riassunto:

Vogliamo inserire ed aggiornare i dati Vogliamo fare delle ricerche per titolo, autore, anno, argomento

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

29

Fase di Analisi: entit e relazioni tra di esse


La prima entit Articoli o Libri Altre entit: Autori, Argomenti Un libro/articolo pu avere pi autori e un autore pu aver scritto pi libri: si ha una relazione molti-a-molti Similmente si ha una relazione molti-a-molti fra Articoli o Libri e Argomenti Si procede con pi tabelle collegate fra loro da relazioni molti a molti, vedremo come si realizzano
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 30

Fase di analisi: entit ed attributi


Entit: Articoli o Libri, Autori, Argomenti

Attributi di Articoli o Libri: IdArticolo (tipo intero) Titolo (tipo testo) Anno (tipo intero) Dati pubblicazione (editore, rivista, ecc.) (tipo memo) Riassunto (tipo memo)

Attributi di Autori - Nome (tipo testo)


- Contatto (tipo memo)

Attributi di Argomento - Argomento (tipo testo)


aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 31

Diagramma E-R
Esercizio: disegnare il diagramma E-R

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

32

Relazione molti-a-molti fra tabelle


Si ha la seguente situazione
Articolo o libro
IdArticolo Titolo ..

Autori
Nome

art11 Canarini art7 Canguri art12 Cani e gatti

Giani Gioele Rossi Zanzi

Come renderla con due relazioni 1-molti, trattate dai DBMS?

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

33

Soluzione:

Articoli o libri
IdArticolo Titolo ..

Autori
Nome

art11 art7 art12

Canarini Canguri Cani e gatti

Giani Gioele Rossi Zanzi

RelArticoloAutore
idArticolo Nome

art11 ha due autori, Giani e Gioele art7 un autore, Rossi art12 un autore, Rossi
34

art11 art11 art7 art12


aa 2009-10

Giani Gioele Rossi Rossi

Lab.Inf. Sez.A,B,C - Lez.L3

Lo schema di base di dati


Libro RelLibroAu..

Autore

RelLibroAr..

Argomento

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

35

Relazione molti-a-molti fra tabelle richiamo della regola generale


Si individuano le due tabelle da collegare: Articoli o Libri con chiave primaria IdArticolo Autori con chiave primaria Nome La relazione molti-a-molti si codifica come tabella RelArticoloAutore con campi IdArticolo,Nome IdArticolo: chiave esterna con integrit referenziale, riferita alla chiave primaria di Articoli o Libri Nome: chiave esterna con integrit referenziale, riferita alla chiave primaria di Autori (Idlibro,Nome) chiave multicampo di RelArticoloAutore

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

36

Chiavi multicampo - Richiamo


Con una chiave multicampo (campo1, , campon) non si pu avere pi di un record con gli stessi valori di (campo1, , campon) Tornando al nostro esempio, la chiave multicampo (IdLibro,Nome) evita ridondanze; ogni coppia (ident. libro, nome autore) compare una sola volta.

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

37

Note
Abbiamo usato il Nome come chiave primaria della tabella Autori; quindi non sono ammesse omonimie (si useranno le iniziali ed altri segni distintivi). Una scelta migliore (che non faremo per brevit) potrebbe essere quella di usare una diversa chiave primaria IdAutore. In modo simile a quello visto per la relazione molti a molti Libro Autore si pu realizzare la relazione molti a molti Libro - Argomento

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

38

Lo schema di base dati individuato


Libro RelLibroAu..

Autore

RelLibroAr..

Argomento

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

39

Realizzazione in Open Office Base


Creazione delle Tabelle Collegamento delle tabelle con creazione delle chiavi esterne e vincoli di integrit Interrogazioni

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

40

Realizzazione in Open Office Base


Apri Open Office Base Seleziona: Crea Nuovo Database Click su Avanti Seleziona: No, non registrare e Apri db per la modifica Click su Fine Salva con nome Biblioteca sul Desktop Click su Tabelle Seleziona Crea tabella in vista struttura

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

41

ATTENZIONE (Problema di Open Office Base)


Se non riuscite a selezionare Tabelle perch avete ERRORE JRE Provate a Chiudere il file e riaprirlo con doppio click oppure Chiudere il file e riaprirlo da Open Office cos: Aprite Open Office Selezionate Apri file db esistente Click su Apri Selezionate il file e il desktop oppure Strumenti Opzioni Java Togliere il check da Usa ambiente runtime Java Chiudere il file Riaprirlo Strumenti Opzioni Java Rimettere il check
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 42

Realizzazione in Open Office Base

Creare la tabella Articoli o Libri coi seguenti campi

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

43

Vincolo Chiave primaria inserito dal MENU MODIFICA o TASTO DESTRO


Valore automatico:si

Chiudendo la finestra viene chiesto come salvarla; indicare il nome che volete, ad es. Articoli o Libri, e CLICK su OK

Intero Intero

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

44

possibile modificare le propriet dei campi: in visualizzazione struttura evidenziare un campo e modificarne le propriet nellarea Propriet di campo: Valore automatico/Digitazione necessaria Lunghezza Valore predefinito Esempio di formato

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

45

Nella tabella Articoli o Libri impostare: Valore automatico per Idarticolo Lunghezza 100 per il titolo

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

46

Vi ora la tabella Articoli o Libri: Tabella vuota Articoli o Libri Con un Click su Articoli o Libri .

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

47

si apre la tabella in visualizzazione INSERIMENTO DATI

campo automatico

Inserire dei dati di prova; si noti che non si possono inserire dati nel campo IdArticolo, i cui valori sono generati automaticamente.

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

48

Si pu inserire, ad esempio:

0 1 2

Inserite solo le prime due righe, la terza serve solo come esempio del Controllo dei dati che non disponibile in Open Office Base:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

49

Controlli sui dati: non disponibile in Open Office

0 1 2

Lanno 3000 errato: conviene introdurre dei controlli per evitare dati errati, almeno dove possibile. Per far ci bisogna operare a livello di Visualizzazione struttura

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

50

Dopo aver selezionato il campo Anno, modificato Intero lungo in Intero e Richiesto da No a S, cliccare su Valido se Controlli sui dati: non disponibile per inserire un controllo; in Open Office Base compaiono i , su cui cliccare Per inserire un controllo sullAnno:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

51

compare il Generatore Espressioni, dove potete digitare lespressione (Anno > 1899) AND (Anno < Year(Date())+1) Poi click su OK

Controlli sui dati: non disponibile in Open Office Base


aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 52

Per passare da visualizzazione inserimento dati a visualizzazione struttura si chiude il foglio dati si seleziona la tabella si seleziona Modifica da tasto destro o dal menu omonimo oppure click sul tasto Modifica

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

53

PROSEGUENDO.

Ora sapete creare le altre tabelle; cominciamo da: Autori, con due campi: Nome chiave primaria, tipo testo Contatto campo non obbligatorio, di tipo memo, con ad es. email, indirizzo, . RelArticoloAutore, con due campi IdArticolo intero (che collegheremo a IdArticolo di Articolo o Libro come chiave esterna) Nome tipo testo, (che collegheremo a Nome di Autori come chiave esterna) con: (IdArticolo, Nome) come chiave multicampo
aa 2010-11 Lab.Inf. Sez.A,B,C - Lez.L3 54

Per la tabella RelArticoloAutore bisogna creare una chiave multicampo; definiti i campi IdArticolo Intero e Nome Testo, si procede inserendo un INDICE (sostanzialmente, un indice con vincolo di univocit un sinonimo di chiave) come segue.

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

55

Selezionare le righe dei due campi e con tasto destro selezionare chiave primaria Per vedere le propriet dellindice: dal menu Strumenti: Struttura indice

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

56

Restano da creare le strutture di tabella: Argomenti, con un solo campo: Argomento chiave primaria TESTO

RelArticoloArgomento, con due campi IdArticolo intero, collegato a IdArticolo di Autori, chiave esterna Argomento testo, collegato a Argomento di Argomenti, chiave secondaria (IdArticolo, Argomento) chiave multicampo (creare come prima un indice univoco)
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 57

Lasciando perdere le chiavi esterne, ma non chiave primaria ed indice univoco, ora lo dovreste saper fare. Alla fine, avrete le tabelle:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

58

Chiavi esterne e vincoli di integrit in Open Office Base


Non abbiamo ancora collegato le tabelle creando le chiavi esterne, passo necessario per ottenere i controlli necessari a mantenere lintegrit referenziale fra le tabelle. Seguiremo il procedimento visuale di Open Office Base

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

59

Inserire una relazione uno-a-molti

Dalla barra Strumenti selezionare Relazioni Compare una finestra Relazioni con una sottofinestra Aggiungi Tabelle AGGIUNGERE le tabelle che si vogliono collegare, nel nostro caso: Articoli o Libri Autori RelArticoloAutore Aggiunte le tabelle e chiusa la sottofinestra Aggiungi Tabelle, si ottiene

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

60

Trascinare Autori sotto ad Articoli o Libri; cliccare su IdArticolo di Articoli o Libri e, mantenendo premuto il tasto del mouse, portare il cursore su IdArticolo di RelArticoloAutore; quindi rilasciare il tasto del mouse;compare:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

61

IdArticolo chiave esterna collegata a

Alla fine, click su OK

Click su
Non presente in Open Office

Aggiorna cascata Elimina cascata .

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

62

Si ottiene (con n al posto di infinito, in Open Office Base)

Non presente in Open Office Base

In modo simile si collega la chiave primaria Nome di Autori a quella secondaria Nome di RelArticoloAutore. Ricordarsi di applicare lINTEGRITA REFERENZIALE e AGGIORNAMENTI ed ELIMINAZIONI A CASCATA
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 63

Si ottiene:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

64

Corrisponde alla situazione progettata:

Articoli o Libri
IdArticolo Titolo ..

0 Cani e gatti 1 Canguri 2 Canarini

RelArticoloAutore
idArticolo Nome

Autori
Nome

2 Giani 2 Gioele 0 Rossi 1 Rossi

Giani Gioele Rossi Zanzi


aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3

65

Salvate le relazioni introdotte e provate a popolare le tabelle in modo da ottenere listanza della diapositiva precedente: in Visualizzazione Foglio dati le tabelle

Articoli o Libri, Autori, RelArticoloAutore sono:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

66

0 1 2

2 2 0 1
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 67

Ricordate che avete selezionato le opzioni di aggiornamento a cascata cancellazione a cascata Ci comporta che, per mantenere lintegrit referenziale, aggiornamenti o cancellazioni sulle tabelle primarie si propagano, a cascata, su quelle secondarie. Provate a cancellare il record Rossi dalla tabella primaria Autori. Ottenete:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

68

2 2

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

69

Si tratta ora di aggiungere le relazioni 1-molti da Articoli o Libri e Argomenti a RelArticoloArgomento Bisogna prima aprire (da Strumenti) la finestra Relazioni Poi aggiungere le tabelle Argomenti e RelArticoloArgomento come prima Si opera quindi come gi visto in precedenza; il risultato finale devessere:

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

70

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

71

Esaminate ora la situazione, popolando le nuove tabelle:

0 0 1

0 1 2

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

72

Open Office Base: query


Per la definizione di interrogazioni Open Office Base mette a disposizione due diversi strumenti: uno strumento grafico di formulazione di interrogazioni di tipo QBE uninterprete SQL vedremo il primo

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

73

Open Office Base: query


Per definire una query si seleziona Crea query in vista struttura dalla finestra di partenza del data base (dopo aver selezionato Ricerche)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

74

Open Office Base: query zona inizialmente vuota, viene riempita con gli schemi delle tabelle selezionate dalla lista

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

75

Open Office Base: query Le tabelle sono collegate dalle relazioni predefinite (la parte superiore della finestra in effetti una porzione della finestra Relazioni rilevante per linterrogazione che si vuole definire)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

76

Per immettere i nomi degli attributi si pu: Open Office Base: query scrivere direttamente il nome dellattributo (e della tabella) selezionarlo dalla parte superiore e trascinarlo nella relativa colonna selezionarlo dal menu a discesa

il carattere * indica tutti i campi della tabella


aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 77

Open Office Base: query fa riferimento allordinamento delle tuple del risultato, se pi colonne sono attivate lordinamento eseguito procedendo da sinistra a destra

lattributo far parte del risultato dellinterrogazione


aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 78

Open Office Base: query condizioni che devono essere soddisfatte dalle tuple risultato dellinterrogazione, possono essere costanti, confronti o espressioni pi complesse (riferimenti ad altri attributi, ecc.)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

79

Open Office Base: query

Per eseguire la query


nel menu Modifica: Esegui ricerca oppure F5 oppure click su pulsante MODIFICA (! In MS Access)

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

80

Esempi: query su una tabella

Open Office Base: query

fornisce titolo e anno di pubblicazione degli articoli pubblicati prima del 2001

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

81

Esempi: query su una tabella

Open Office Base: query congiunzione delle condizioni

Provare a togliere il segno di spunta dallanno in modo da renderlo non visibile nel risultato
aa 2009-10 Lab.Inf. Sez.A,B,C - Lez.L3 82

Esempi: query su una tabella

Open Office Base: query disgiunzione delle condizioni

Cani e gatti
aa 2009-10

>1999
Lab.Inf. Sez.A,B,C - Lez.L3 83

Esempi: query su pi tabelle

Open Office Base: query

Le relazioni predefinite non vanno specificate nella query

Fornisce titolo e nome autore degli articoli scritti da Rossi

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

84

Open Office Base: query

Esempi: query su pi tabelle

aa 2009-10

Lab.Inf. Sez.A,B,C - Lez.L3

85