“Le Basi di Dati” 1 Basi di Dati Struttura della sezione Parte 5: Tabelle – Creazione di una tabella – Indici e chiavi primarie – Relazioni e integrità referenziale 2 LE BASI DATI Parte 5 Le TABELLE 3 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” 4 Parte 5: LE BASI DATI Struttura delle Tabelle 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, …). Titolo Autore Anno CAMPO CAMPO 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). Titolo Autore Anno I miei Anni Ferrari 1980 ogni COLONNA riporta le informazioni relative ad uno specifico attributo (campo). 5 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 che nel diagramma ER rappresenta l’ENTITA’; ciò 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. 6 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: Titolo Anno di pubblicazione Autore 7 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. 8 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 Libro Titolo Anno di pubblicazione Autore Pertanto il campo chiave non può mai: • ammettere duplicati; • Essere vuoto. 9 Parte 5: LE BASI DATI ID Libro Titolo Anno di pubblicazione Autore 1 Il cielo 1990 Scalise 2 Era mio padre 1985 Rossi 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. 10 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. 11 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 pubblicazione indicizzato 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. 12 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 Libro Titolo Anno di pubblicazione Autore ID Autore Nome Cognome Data 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. 13 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. 14 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: Tabella Autori ID Autore Nome Cognome Data di nascita Tabella Libri ID Libro ID Autore Titolo Anno di pubblicazione 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 15 Parte 5: LE BASI DATI Per cui, inserendo i dati, potremmo avere: ID Autore Nome Cognome Data di nascita 1 Carlo Insegno 13-04-1950 2 Antonio Ponti 14-09-1953 ID Libro Titolo Anno di pubblicazione ID Autore 1 Il gabbiano 1977 1 2 L’Alba 1980 1 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. 16 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). 17 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. 1 ID Studente Nome Cognome Matricola 1 Rossi Federica 336498 1 ID Tesi Titolo Anno ID Studente 1 L’arte 2000 1 Nell’esempio, la relazione è del tipo 1:1 perché una determinata tesi può essere stata scritta da un solo studente. 18 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. 1 ID Docente Nome Cognome 1 Mario Cadillo ID Studente Nome Cognome ID Docente 1 Roberto Palumbo 1 2 Caterina Sola 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. 19 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. 20 Parte 5: LE BASI DATI Immaginiamo che il nostro archivio sia formato dalla tabella “esami” e la tabella “studenti”: 1 ID Esame Materia Docente 1 Geografia Rossi 2 Storia Verdi ID Esame ID Studente 1 1 2 1 1 2 2 2 1 ID Studente Nome Cognome 1 Gaetano Vitaliano 2 Anna Crespo 21 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. 22 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. 23