It:Stabile Relazioni

From NeoWiki

Jump to: navigation, search
Questo articolo fa parte della serie di guide intitolate Verso Base e Ritorno.

Parte della potenza di Base sta nel fatto che si tratta di un database relazionale, che permette cioè di mettere in relazione differenti tabelle di dati. Per sfruttare questa potenza abbiamo bisogno di stabilire delle relazioni tra le varie tabelle.

Contents

Tipi di relazioni

Le relezioni possono essere del tipo uno-ad-uno o di tipo uno-a-molti. Nelle relazioni di tipo uno-a-uno, un record in una tabella è in relazione ad uno ed un solo record di un'altra tabella. Nelle relazioni uno-a-molti, un record di una tabella è in relazione a più di un record di un'altra tabella. Nel nostro database le relazioni tra le tabelle Escursioni e Avvistamenti è del tipo uno-a-molti; in una data escursione l'ornitologo vedrà (speriamo) molti uccelli. Nota che almeno uno dei campi che stai per utilizzare nella relazione deve essere una chiave primaria. Le relazioni uno-ad-uno vengono usate più frequentemente quando alcuni dati sono confidenziali e l'accesso a questi dati deve essere limitato). Nel nostro database ornitologico non abbiamo bisogno di relazione di tipo uno-ad-uno.

Creare relazioni quando un campo è una chiave primaria

  1. Con il database aperto, vai al menù Strumenti e scegli Relazioni...
  2. Nella finestra che si aprirà clicca su Escursioni poi clicca sul bottone Aggiungi. Apparirà una piccola finestra con nome Escursioni all'interno della finestra più grande Struttura relazioni.
  3. ripeti la stessa cosa con Avvistamenti
  4. chiudi la finestra
  5. clicca sul campo ID_Escursione nella finestra piccola Escursioni; trascina da lì fino al campo ID_Esccursione nella finestra piccola Avvistamenti. Apparirà una linea che connettee i due campi, con un 1 dalla parte della finestra Escursioni ed una n dalla parte della finestra Avvistamenti. Questo individua una relazione di tipo uno-a-molti.
  6. clicca sul simbolo del disco presente nella barra degli strumenti per salvare i cambiamenti che hai fatto, poi chiudi la finestra.

Creare una relazione quando nessun campo è una chiave primaria

In Base, qualunque sia la relazione che vuoi creare tra tabelle, almeno uno dei campi che vuoi utilizzare deve essere unico, ovvero in almeno una delle tabelle non devono esserci due record uguali nel campo che vuoi usare per creare la relazione. Questo è il caso se uno dei campi è una Chiave Primaria. Ma sei vuoi mettere in relazione tabelle usando qualcosa di differente rispetto alla chiave primaria, devi allora introdurre un vincolo unico in uno dei campi che vuoi utilizzare.

Nel caso del nostro database ornitologico, l'immissione dei dati sarà più semplice se creiamo due di questi tipi di relazione, in particolare le relazioni tra:

La tabella Uccelli e la tabella Avvistamenti (se abbiamo usato la tabella italiana, Nome Italiano è in relazione con Nome Uccello)
Le tabelle Luoghi e Escursioni (Luogo è in relazione con Luogo Escurzione)

L'esempio qui sotto seguen la procedura per mettere in relazione le tabelle Uccelli e Avvistamenti. La stessa procedura dovrà essere utilizzata per il collegamento tra le tabelle Luoghi ed Escursioni.

Creare un Indice Unico

Anche se un indice unico non è indispensabile, farlo assicura di non duplicare accidentalmente alcuna informazione nei campi in questione.

  1. Nella finestra principale del database, clicca sull'icona Tabelle nella colonna di sinistra
  2. Clicca col tasto destro o control-click sull'icona Check-listPoTO e scegli Modifica
  3. Clicca nella cella con il nome di campo Nome Italiano
  4. Clicca sul bottone Struttura Indice nella barra degli strumenti (è l'icona che rappresenta un foglio di carta con sovrapposta una squadra azzurra). Si apre la finestra Indici.
  5. Clicca sull'icona Nuovo Indice (un foglio di carta con una stella gialla in alto a destra).
  6. Nell'elenco appare la scritta indice1. Assegna il nome appropriato (p.e. Nome italiano)
  7. Smarca la casella Univoco nella sezione Dettagli indice.
  8. Assegna il Campo indice a Nome Italiano e ordina come Crescente
  9. Cliccasull'icona Registra indice (un foglio di carta con sovrapposto un dischetto "floppy").
  10. Clicca sul bottone Chiudi


Creare un Vincolo Univoco

  1. Make a note of the exact table and field names involved. In this case AOU_Birdlist and EnglishName
    Note: There must not be any spaces in the field name. While Base will not allow you to create field names with spaces in them when using the wizard or Design view, Base will retain spaces in field names if you import a spreadsheet into Base as a table. When importing the AOU Birdlist, the field name was English Name (with a space). I had to edit the table and delete the space before the SQL command would work.
  2. While the database open to the main window (the one with Tables, Queries, Forms, and Reports in the left hand column), go to the Tools menu and choose SQL....
  3. Enter the following statement into the top portion of the Execute SQL Statement window:
    alter table "AOU_Birdlist" add constraint "uq_EngName" unique ("EnglishName" )
    uq_EngName is the name of the constraint that is created by this command.
  4. Click Execute
    Note: The Status section of the window will tell you if the command was succesfully executed or if there was a problem.
  5. Close the Execute SQL Statement window

Creare la Relazione

  1. With the database open, go to the Tools menu and choose Relationships
  2. Click on the icon that looks like a block of blue cells with a green plus in the corner.
  3. In the Add Tables window that appears, click on AOU_Birdlist
Note: If you have not created any relationships yet, the Add Tables window will open automatically.
  1. If the Sightings Table does not appear in the relationship "map," add it as well.
  2. close the floating window
  3. click on the the EnglishName field in the {{Window|AOU_Birdlist} sub-window; drag from there to the Bird_Name field in the Sightings sub-window. A line appears connecting these two fields.
  4. click on the hard drive symbol in the toolbar to save the changes you have made, and close the window.

Collegamenti esterni

OOo forum thread on unique constraints


Questo articolo in altre lingue: English Français
Personal tools