Database Relazionali Appunti informatica- prof. Orlando De Pietro Definizione Un Database può essere definito come una raccolta di informazioni o un insieme di dati attinenti a un unico argomento o ad argomenti diversi, ma tra loro correlati. Appunti informatica- prof. Orlando De Pietro In pratica un D. può essere visto come un armadioraccoglitore, nei cassetti del quale vengono archiviati i documenti riguardanti lo stesso argomento. I dati che in esso sono archiviati, vengono organizzati e strutturati secondo una impostazione logica fornita dall’utente. Esempio - Archivio cartaceo: - Scheda (dati/campi) - File di schede Appunti informatica- prof. Orlando De Pietro Database Computerizzato A differenza di un archivio cartaceo, un Database computerizzato offre notevoli vantaggi (sui dati contenuti): - ricerca - filtro - selezione - possibilità di calcolo - verifica di condizioni. Software In termini di efficienza nell’elaborare i dati: minor tempo nelle ricerche, nei calcoli, nei filtri, ecc. dei dati memorizzati nel DB. E’ considerato più uno strumento di ricerca e previsione che un semplice visualizzatore di dati. Appunti informatica- prof. Orlando De Pietro DBMS DataBase Management System Alla base di un DBMS vi è il linguaggio SQL (Structured Query Language) – linguaggio standard per i RDBMS. Appunti informatica- prof. Orlando De Pietro Modello Relazionale Tutti i moderni Database si fondano sulla possibilità di poter rappresentare le informazioni per mezzo di una struttura chiamata relazione (o tabella) e per questo motivo sono anche definiti: Database Relazionali Nel passato, in particolare prima del 1970, erano in uso altri modelli di rappresentazione dei dati, fra i più importanti citiamo Modello gerarchico Modello Reticolare Appunti informatica- prof. Orlando De Pietro Database Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi grandi quanto sugli elaboratori personali. Colonne Attributi (campi) La nozione fondamentale che è alla sua base è la RELAZIONE (o tabella) Matricola Insegn. Voto 54402 InfICT 28 Riga o Tupla (record) Appunti informatica- prof. Orlando De Pietro Esempio di relazione Dominio delle Matricole: D1= N, ins. numeri naturali Dominio degli Insegnamenti: D2={InfTur,InfICT,Diritto,…} Dominio dei voti: D3={n N: n>=0 ^ n<=30} Appunti informatica- prof. Orlando De Pietro Una relazione matematica è un sottoinsieme del prodotto cartesiano di più insiemi (domini) e viene rappresentato con una struttura tabellare in cui: - le intestazioni delle colonne (dette anche attributi) si riferiscono ai domini - mentre l’insieme dei valori presenti su una riga (tupla) rappresenta un elemento del prodotto cartesiano. - il numero delle tuple di una relazione è detto cardinalità della relazione. Appunti informatica- prof. Orlando De Pietro Esempio di relazione Dominio delle Matricole: D1= N, ins. numeri naturali Dominio degli Insegnamenti: D2={InfTur,InfICT,Diritto,…} Dominio dei voti: D3={n N: n>=18 ^ n<=31} Attributi Prodotto cartesiano D1 x D2 x D3 Matricola Insegn 54402 InfICT Tupla o Riga (record) Appunti informatica- prof. Orlando De Pietro Valori degli attributi Voto 28 Schema ed Istanza Schema = Nomi delle Tabelle + Nomi degli Attributi Esempio: Tabella Studente (Matr intero, Cognome stringa, Nome stringa, Data_Nascita data) Istanza = Tuple riferite ad uno schema Appunti informatica- prof. Orlando De Pietro Chiave Primaria E’ un attributo K che individua univocamente un elemento (tupla) della relazione. - Due tuple diverse non possono avere gli stessi valori negli attributi di K. Appunti informatica- prof. Orlando De Pietro Inserimento altri dati Esempio: Cognome + Nome + D.N. + Residenza di ogni Matr. Appunti informatica- prof. Orlando De Pietro Super-Chiavi Si definisce super-chiave un sottoinsieme degli attributi della relazione che identifica univocamente ogni tupla. Esempio 1 Super-chiave Coincide con la Chiave Primaria Codice Fiscale Cognome Nome Data di nascita Appunti informatica- prof. Orlando De Pietro Esempio 2 Super-chiave Università Esempio 3 Matricola Laurea Voto di laurea Super-chiave Titolo Libro Autore Codice Data Pubbl. Appunti informatica- prof. Orlando De Pietro Chiavi Fra tutte le super-chiavi esistenti particolare importanza hanno poi quelle con cardinalità minima, che vengono denominate chiavi candidate; fra queste ultime in genere si sceglie la cosiddetta chiave primaria Super-Chiave Titolo Libro Chiave primaria Autore Codice Data Pubbl. Appunti informatica- prof. Orlando De Pietro Integrità referenziale Altro aspetto importante del modello relazionale è costituito dai vincoli di integrità referenziale (detti anche chiavi esterne o foreign key). Quando si crea una relazione tra due tabelle è possibile impostare l’integrità referenziale. L’integrità referenziale è un insieme predefinito di vincoli o regole che il programma (ad es. MS Access) utilizza per accettarsi che la relazione sia valida: - il campo correlato nella tabella primaria deve essere chiave primaria; - i campi correlati devono avere lo stesso tipo di dati; - le tabelle devono appartenere allo stesso database. Appunti informatica- prof. Orlando De Pietro Inoltre L’integrità referenziale: - consente di prevenire modifiche o cancellazioni accidentali dei dati. - non consente di inserire tuple nella tabella secondaria se il valore attribuito alla chiave esterna non è uguale ad un valore della chiave della tabella primaria (… ad essa collegata). Appunti informatica- prof. Orlando De Pietro Vincoli d’integrità referenziale (definizione matematica) Definizione. Dato un insieme di attributi X di una relazione R1, un vincolo di chiave esterna tra X ed una relazione R2 è soddisfatto se i valori su X di ciascuna tupla di un’istanza di R1 compaiono come valori di chiave primaria nell’istanza di R2. Appunti informatica- prof. Orlando De Pietro Esempio di foreign key Multe Non può esistere una tupla di Multe in cui ID Vigile non sia presente nella tabella dei Vigili ID Vigile Targa auto Codice Infrazione Vigili ID Vigile … Appunti informatica- prof. Orlando De Pietro Data Multe ID Vigile Targa auto Codice Infrazione Infrazioni Automobili Targa … Data Codice Infr. Appunti informatica- prof. Orlando De Pietro … DBMS Database Management System Relational Database Management System Appunti informatica- prof. Orlando De Pietro Vantaggi nell’uso di un DBMS (1/2) Controllo della ridondanza (i dati vengono memorizzati una sola volta e condivisi tra tutti gli utenti). Controllo degli accessi (sottosistema di sicurezza e di autorizzazione – ogni utente è dotato di un account personale e di precisi privilegi di accesso e di modifica dei dati). Persistenza dei dati (i dati vengono memorizzati in modo permanente e strutturato) Controllo della Concorrenza ( i DBMS possono gestire accessi concorrenti -contemporanei- supportando quindi il multi-tasking). Appunti informatica- prof. Orlando De Pietro Vantaggi nell’uso di un DBMS Controllo della ridondanza (i dati vengono memorizzati una sola volta e condivisi tra tutti gli utenti; se si utilizzasse invece un normale file system ogni utente avrebbe la sua copia dei dati, con evidenti problemi sia di duplicazione dell’informazione che di aggiornamento sulle diverse versioni esistenti). Controllo degli accessi (i DBMS implementano un sottosistema di sicurezza e di autorizzazione attraverso il quale ogni utente è dotato di un account personale e di precisi privilegi di accesso e di modifica dei dati). Appunti informatica- prof. Orlando De Pietro Persistenza dei dati (i dati vengono memorizzati in modo permanente e strutturato e sono resi disponibili agli utenti ed alle applicazioni tramite opportune interfacce; i DBMS sono anche dotati di alcune funzioni di recupero e di ripristino dei dati a seguito di errori nelle procedure di interrogazione e modifica –abort-). Controllo della Concorrenza ( i DBMS possono gestire accessi concorrenti -contemporanei- supportando quindi il multi-tasking). Appunti informatica- prof. Orlando De Pietro Progettazione di un Database relazionale Appunti informatica- prof. Orlando De Pietro Gestori e utenti Amministratori (Autorizzano l’accesso alla base di dati, coordinano il suo uso, vigilano sull’efficienza del sistema, acquisiscono risorse hardware e software quando necessario). Progettisti e Sviluppatori (individuano i dati da memorizzare e le strutture che devono accoglierli, operando soprattutto prima che la base di dati sia implementata) Utenti finali (utenti occasionali, utenti finali parametrici – cui sono associate procedure e funzioni standard -, utenti finali non parametrici – che richiedono ed ottengono interfacce e funzioni specializzate per particolari analisi Appunti informatica- prof. Orlando De Pietro