Le Basi di Dati per i Beni culturali Fabio Cavulli • Database: “Una base di dati è una collezione di dati correlati creata con lo scopo specifico di rappresentare adeguatamente e memorizzare le informazioni relative a una realtà di interesse” • Dato: “La descrizione di una caratteristica della realtà costituita da simboli, che ne garantiscono la comprensione, e registrata su un supporto, che ne garantisce la conservazione” • Informazione: interpretazione di un dato in grado di arricchire la nostra conoscenza (p. 2) DBMS • Database Management System software per la definizione e la manipolazione della base di dati. Offre: – Visione ad alto livello (nascondendo il basso livello) – Sicurezza dei dati – Assicura coerenza dei dati – Visioni personalizzate – Salvataggio e ripristino – Accessi contemporanei Associazioni (relazioni tra tabelle) Insiemi di oggetti (tabelle) oggetti (records) Domini (attributi) modelli di DATABASE Alcuni tipi di DB: · gerarchico: i record sono strutturati per livelli gerarchici di accesso. Gli ordini superiori sono definiti "parents", mentre quelli inferiori "children". Il record posto all'inizio è definito "root". Ogni record può avere parecchie relazioni con gli elementi gerarchici inferiori, ma uno solo con quello superiore. Sono di facile creazione e gestione. È una struttura di database adatta a relazioni del tipo "uno a molti" · reticolare: ogni record può avere più di un “genitore”. Consentono di gestire relazioni plurime che comportano relazioni fra record dello stesso livello. Sono di difficile creazione e gestione perché richiedono un elenco di "puntatori" per collegare tra di loro i diversi record, impegnando una maggiore quantità di memoria. · relazionale: i dati sono organizzati in serie di matrici bidimensionali, strutturate in modo da evitare ridondanza di dati. Le diverse tabelle sono tra loro collegate da "chiavi" comuni. Sono molto flessibili, si basano su files ad accesso sequenziale che rendono agevoli le operazioni di inserimento, cancellazione ed aggiornamento dei dati. Consentono di gestire anche relazioni di tipo plurimo. Le tabelle di un DB relazionale comprendono per riga l'insieme dei diversi records e per colonna i vari campi. Modello di dati Descrive la struttura dei dati che caratterizza la realtà di interesse a cui si riferisce la BD – Schema della base di dati - struttura dei dati (componente intensionale) – Stato corrente - dati inseriti (componente estensionale) Livelli di astrazione (p. 4) • Schema logico: descrive l’intera BD • Schema fisico: record che descrivono gli oggetti sottoforma di files sequenziali • Schemi esterni: viste esterne come sottoinsieme di dati Esempio di tabella in un DB relazionale Esempio di relazioni tra le tabelle in un DB relazionale Gerarchie di generalizzazione (p. 20) Rappresentano un particolare tipo di legame che intercorre fra entità legame di specializzazione Insieme sottoinsieme Entità padre entità figlio Gerarchie di generalizzazione Totale - sovrapposta Donna Distributore Uomo Persone produttore Società cinematografiche Parziale - esclusiva Auto Distributore e produttore Totale esclusiva Moto Parziale - sovrapposta velocista v. & f. fondista Né auto né moto né velocista né fondista Veicoli Atletica Modello relazionale (p. 25) tabella/relazione: nome schema della relazione campo riga/ record/ tupla Vincoli Vincoli di dominio: il campo accetta solo certi attributi (txt, #, data, … , # caratteri, duplicati, indice, …) Vincoli di chiave: IDentificativo univoco, Chiave primaria (primary key) ed esterna (foreign key), chiave semplice o condivisa (superchiave), chiavi primarie naturali (cod. fiscale, # di matricola, …) Vincoli di integrità referenziale: Riguardano le associazioni di tabelle e garantiscono che i valori logici fra righe di tabelle diverse siano coerenti UNIONE: TUTTI DATI DI X e Y x Y X+Y id # id id B 1 A A D 2 B B F 3 C C D D E E = F CHIAVE PRIMARIA = A, B, C, … # 1 2 3 INTERSEZIONE: SOLO DATI DI X CORRISPONDENTI A Y X X=Y Y B 1 A D 2 B F 3 C DATI DI Y + CORRISPONDENTI IN X X Y B 1 B 1 A D 2 D 2 B F 3 C C D D D E E E = A = B 1 2 DIFFERENZA: DATI DI X X NON CORRISPONDENTI IN Y Y X-Y B 1 D 2 F 3 A - B C D E = DIVERSO DA Y-X !!!! F 3 Base di Dati relazionale = insieme di relazioni (relazioni tra attributi) Associazioni (relazioni) tra tabelle permettono di archiviare una sola volta una serie di attributi (tabella) e richiamarla n volte in altre tabelle orientamento ai valori Cardinalità: relazione 1/n relazione n/1 relazione n/n Uno a molti (1/n) Manuf. litico + Tipo di ritocco Autore + Pubblicazione Descrizione del Manufatto e di tutti i tipi di ritocco Pubblicazioni dell’autore X Pubblicazione + Autore Pubblicazione X con gli autori Molti a molti (n/n) Attore Film Partecipazione Autore Pubblicazione Film dell’attore X rapporto Film X con lista degli attori Pubblicazioni dell’autore X Pubblicazione X con gli autori Comando Descrizione Between #01/01/2000# and #31/12/2000# Restituisce i dati compresi tra il 01/01/2000 ed 31/12/2000 inclusi In (“Roberto”, “Mario”, Restituisce i record che contengono le “Marco”) parole tra virgolette IsNull Restituisce i record vuoti ????? Cinque caratteri qualsiasi < 100 Inferiore a 100 100 Uguale a 100 Like “r*” Restituisce i record che iniziano per r (seguita da qualunque altro carattere) Like “*r” Restituisce i record che finiscono per r Like “[a – d]*” Restituisce I record che iniziano per a – b – c – d seguiti da qualunque altro carattere Like “[a – d]?” Restituisce I record che iniziano per a – b – c – d seguiti da un solo carattere Like “Ma?co” Restituisce I record che cominciano per Ma seguiti da un solo carattere e finiscono per co