1 “ Le Basi di Dati ”
2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura della sezione
3 LE BASI DATI Parte 5 Le TABELLE
4 Parte 5: LE BASI DATI A cosa servono le tabelle? Le Tabelle sono l’unità base di un Database. Rappresentano la struttura tipica all’interno della quale vengono memorizzati i dati; un Database è in grado di gestire contemporaneamente più tabelle. Loro scopo è quello di raggruppare record omogenei, ovvero raccolgono un insieme di dati relativi ad un argomento specifico (ENTITA’). Esempio: nell’archivio per la gestione dei libri di una biblioteca, tutti i dati di ogni singolo libro possono essere raggruppati in una tabella “Libri”
5 Parte 5: LE BASI DATI Una tabella è costituita da: un insieme di campi, cioè spazi nei quali vengono inseriti i dati, nonché le informazioni relative all’argomento della tabella (es. nella tabella “Libri” titolo del libro, autore, anno di pubblicazione, …). TitoloAutoreAnno CAMPO ogni RIGA prende il nome di record e contiene tutte le informazioni relative ad un’entità dell’argomento (es.titolo, autore e anno di un singolo libro). TitoloAutoreAnno I miei AnniFerrari1980 ogni COLONNA riporta le informazioni relative ad uno specifico attributo (campo). Struttura delle Tabelle
6 Parte 5: LE BASI DATI Creazione di una Tabella Una tabella è il risultato della trasformazione del diagramma ER. La prima fase della sua creazione consiste nel determinare: Lo scopo della tabella e quindi l ’ argomento cui fa riferimento ciò che nel diagramma ER rappresenta l ’ ENTITA ’ ; I campi della tabella e quindi il tipo di informazioni che si intendono raccogliere relative all ’ argomento ciò che nel diagramma ER rappresentano gli ATTRIBUTI.
7 Parte 5: LE BASI DATI Esempio di creazione di una tabella Immaginiamo di voler archiviare i libri conservati in una biblioteca, per poter tenere sotto controllo la loro gestione. È necessario quindi raccogliere in una tabella importanti informazioni relative ad ogni singolo libro. Quindi: ARGOMENTO = Libri; CAMPI = Titolo, Anno di pubblicazione, Autore. Tabella Libri: TitoloAnno di pubblicazioneAutore
8 Parte 5: LE BASI DATI Regole per la creazione di Tabelle Non ripetere le stesse informazioni in più tabelle, quindi evitare ridondanze; Evitare di creare voci con lo stesso nome che contengono informazioni diverse; Ogni tabella deve contenere informazioni omogenee in modo da agevolare l’archiviazione e la ricerca delle informazioni.
9 Parte 5: LE BASI DATI Chiavi primarie L’ultimo elemento da considerare nella creazione di una tabella è l’inserimento di un campo chiave o chiave primaria, che permette di identificare in modo inequivocabile ogni singolo record. In genere è numerato in modo progressivo. ID LibroTitoloAnno di pubblicazioneAutore Pertanto il campo chiave non può mai: ammettere duplicati; Essere vuoto.
10 Parte 5: LE BASI DATI ID LibroTitoloAnno di pubblicazioneAutore 1Il cielo1990Scalise 2Era mio padre1985Rossi Nell’esempio, l’ “ID Libro=1” identifica solo ed esclusivamente il libro “Il cielo”, per tanto il secondo libro non può essere identificato con lo stesso ID (1), bensì con l’ ID=2, che identifica solo il secondo libro, e così via. Ricorda: - Un campo chiave può essere dato anche da un gruppo di campi: - I campi candidati ad essere campi primari di una tabella sono detti determinanti.
11 Parte 5: LE BASI DATI Gli Indici La chiave primaria di una tabella è un campo indicizzato, perché permette di ordinare i dati secondo un ordine logico e di trovare rapidamente quelli che cerchiamo. In una tabella, gli indici permettono quindi di: ORDINARE I RECORD secondo un ordine logico, basato cioè sul contenuto (alfabetico, numerico, cronologico) e non sull’ordine di inserimento; TROVARE I RECORD che ci interessano più velocemente, evitando di doverli scorrere tutti; in altre parole consentono di raggiungere direttamente il record che vogliamo.
12 Parte 5: LE BASI DATI - In una tabella l ’ INDICE può essere anche un campo diverso da quello chiave. - Tra le propriet à attribuibili a ogni campo c ’è infatti anche “ Indicizzato ” Esempio: Anno di pubblicazioneindicizzato Ciò significa che i record della tabella saranno ordinati secondo il contenuto di quel campo e la fase di ricerca delle informazioni sarà agevolata proprio attraverso il campo stesso.
13 Parte 5: LE BASI DATI Le Relazioni tra tabelle Sappiamo che per organizzare al meglio un archivio, bisogna creare tante tabelle quante sono le tipologie di dati da raccogliere (es. tabella ‘libri’ e tabella ‘autori’) : ID LibroTitoloAnno di pubblicazioneAutore ID AutoreNomeCognomeData di nascita Tra le tabelle che costituiscono un archivio è possibile creare delle relazioni, in modo da poter estrarre informazioni da più tabelle contemporaneamente, e quindi unire tali informazioni. Per RELAZIONI si intendono quindi associazioni tra tabelle.
14 Parte5: LE BASI DATI Come stabilire le Relazioni Due tabelle per essere correlate devono avere un campo in comune. Una relazione tra due tabelle si basa sempre sull’uso di una: CHIAVE PRIMARIA, che nella tabella A, detta tabella primaria, identifica in modo univoco ogni singolo record e perciò non ammette duplicati; CHIAVE ESTERNA, che permette di collegare la tabella B, detta tabella secondaria, con la tabella A, riportando gli stessi dati della chiave primaria di quest’ultima, ammettendo duplicati. ! Una Relazione è quindi una corrispondenza tra il campo chiave primaria di una tabella x e il campo chiave esterna di una tabella y.
15 Parte 5: LE BASI DATI Esempio: creare una relazione Immaginiamo sempre di voler gestire i dati relativi ai libri di una biblioteca e agli autori dei volumi: ID AutoreNomeCognomeData di nascita Tabella Autori ID LibroTitoloAnno di pubblicazioneID Autore Tabella Libri ID Autore Chiave primaria nella prima tabella e non ammette duplicati perché identifica in maniera univoca ogni singolo autore; Chiave esterna nella seconda e ammette duplicati perché libri diversi possono essere stati scritti dallo stesso autore
16 Parte 5: LE BASI DATI Per cui, inserendo i dati, potremmo avere: ID AutoreNomeCognomeData di nascita 1CarloInsegno AntonioPonti ID LibroTitoloAnno di pubblicazioneID Autore 1Il gabbiano L ’ Alba Nell’esempio, i due libri sono stati scritti dallo stesso autore. Grazie alla relazione tra le due tabelle resa dalla CHIAVE ESTERNA “ID Autore”, per ogni libro è possibile avere delle informazioni anche sull’autore, estrapolate dalla tabella primaria.
17 Parte 5: LE BASI DATI Quanti tipi di Relazioni esistono? La Relazione che intercorre tra due tabelle di un Database può essere di tre tipi: RELAZIONE UNO A UNO; RELAZIONE UNO A MOLTI; RELAZIONE MOLTI A MOLTI. N.B. Definire la cardinalità significa esprimere numericamente il tipo di relazione che c’è tra due tabelle (es. 1:1).
18 Parte 5: LE BASI DATI Relazione Uno a Uno Un record di una tabella può essere correlato ad un solo record di una seconda tabella. Quindi la chiave esterna NON AMMETTE DUPLICATI. ID StudenteNomeCognomeMatricola 1RossiFederica ID TesiTitoloAnnoID Studente 1 L ’ arte Nell’esempio, la relazione è del tipo 1:1 perché una determinata tesi può essere stata scritta da un solo studente.
19 Parte 5: LE BASI DATI Relazione Uno a Molti Un record univoco di una tabella può essere correlato a più record di un’altra tabella, ma non viceversa. ID DocenteNomeCognome 1MarioCadillo ID StudenteNomeCognomeID Docente 1RobertoPalumbo1 2CaterinaSola1 1 Nell’esempio, la relazione è del tipo 1: ¥ perchè un docente può essere il relatore di più studenti, ma uno studente non può avere più di un relatore.
20 Parte 5: LE BASI DATI Relazione Molti a Molti Più record di una tabella possono essere correlati a più record di un’altra tabella. ! Questo tipo di relazione comporta necessariamente l’introduzione di una terza tabella, detta tabella di congiunzione, in cui si riportano le chiavi primarie di entrambe le tabelle, che qui diventano chiavi esterne e quindi ammettono duplicati. La TABELLA DI CONGIUNZIONE permette quindi di relazionare due tabelle aventi più record collegati tra loro, attraverso l’impostazione di una relazione 1: ¥ tra ciascuna tabella e la tabella di congiunzione stessa.
21 Parte 5: LE BASI DATI Immaginiamo che il nostro archivio sia formato dalla tabella “ esami ” e la tabella “ studenti ” : ID EsameMateriaDocente 1GeografiaRossi 2StoriaVerdi ID EsameID Studente NomeCognome 1GaetanoVitaliano 2AnnaCrespo 1 1
22 Parte 5: LE BASI DATI Nell’esempio, la relazione è del tipo Molti : Molti perché uno stesso esame può essere sostenuto da più studenti e viceversa uno stesso studente può sostenere più esami. Per cui è necessaria la tabella di congiunzione, con la quale la tabella “esami” e la tabella “studenti” hanno una relazione 1: Molti, e grazie a questa tabella è possibile estrapolare informazioni da entrambe le tabelle principali, e quindi avere informazioni su tutti gli studenti che hanno sostenuto un determinato esame oppure sugli esami che un determinato studente ha sostenuto.
23 Parte 5: LE BASI DATI L’Integrità Referenziale Definite le relazioni, è possibile impostare l’ Integrità Referenziale. L’Integrità referenziale si basa su alcune regole principali: Non è possibile immettere un valore nel campo chiave esterna della tabella correlata che non esista nella chiave primaria della tabella primaria; Non è possibile eliminare un record da una tabella primaria se esistono record corrispondenti in una tabella correlata; Non è possibile modificare un valore chiave primaria nella tabella primaria se quel record dispone di record correlati. L’Integrità referenziale serve quindi per assicurare che le relazioni tra i record delle tabelle correlate siano valide.