Fondamenti di Informatica
Introduzione ai Sistemi Informativi
Prof. Christian Esposito
Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18
OUTLINE
◦ Argomenti:
◦ Introduzione ai sistemi informativi;
◦ Il modello relazione;
◦ L’algebra relazionale.
Introduzione ai Sistemi Informativi 02/89
Introduzione ai Sistemi Informativi (1/8)
Un sistema informativo è uno strumento responsabile della raccolta, organizzazione e conservazione persistente di dati. Ogni organizzazione ha un sistema informativo, che organizza e gestisce le informazioni necessarie per perseguire gli scopi dell’organizzazione stessa.
03/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (1/8)
Un sistema informativo è uno strumento responsabile della raccolta, organizzazione e conservazione persistente di dati. Ogni organizzazione ha un sistema informativo, che organizza e gestisce le informazioni necessarie per perseguire gli scopi dell’organizzazione stessa.
04/89
Introduzione ai Sistemi Informativi
L’archivio reale di Ebla comprende 17.000 tra tavolette intere e frammenti, scritti in eblaita, contenenti testi amministrativi, economici, storici, giuridici, religiosi.
Introduzione ai Sistemi Informativi (2/8)
L’archivio storico del Banco di Napoli, il più grande archivio storico bancario del mondo, nelle sue 330 stanze su 14mila metri quadrati, ospita un numero enorme di documenti dal Cinquecento ad oggi, inerenti l’attività del Banco.
05/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (3/8)
06/89
Introduzione ai Sistemi Informativi
Inizialmente i sistemi informativi erano direttamente scritti da operatori umani su supporti persistenti, ma scarsamente riusabili e con processi non automatizzabili. La stampa ha aiutato a consentire la possibilità di scambio dati.
Introduzione ai Sistemi Informativi (3/8)
07/89
Introduzione ai Sistemi Informativi
A partire dagli anni 50, si è verificata l’informatizzazione dei sistemi informativi e dematerializzazione dei contenuti, con gli operatori umani sempre coinvolti nella produzione e consultazione di dati.
Introduzione ai Sistemi Informativi (3/8)
08/89
Introduzione ai Sistemi Informativi
Attualmente, i dati sono generati e consultati sempre più da altri programmi, con un minore intervento umano. Inoltre, sono distribuiti tra varie locazioni.
Introduzione ai Sistemi Informativi (4/8)
Un’organizzazione è una struttura di comando, descrivibile con organi- grammi o schemi equivalenti, che governa processi operativi.
I sistemi informativi supportano sia i processi di governo dell’organiz- zazione, sia i processi operativi ed amministrativi, rispettivamente con
◦ sistemi informativi direzionali;
◦ sistemi informativi operativi;
◦ sistemi informativi istituzionali.
09/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (5/8)
I sistemi informativi operativi informatizzano processi volti alla esecuzione di attività o alla loro programmazione. Il ruolo dei sistemi informativi nelle aziende è molto variabile. In generale si assume il loro ruolo potenziale come proporzione della
“intensità informativa” delle aziende, ovvero al livello e alla complessità delle informazioni usate nel business aziendale per la gestione delle attività legate al processo produttivo.
I sistemi informativi sono definiti come una tecnologia di processo, quando il prodotto è materiale. In questo caso, si limitano a supportare il coordinamento delle attività.
10/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (6/8)
Possiamo assumere che il fabbisogno informativo (I) si sistemi informativi operativi sia proporzionale all’intensità informativa del prodotto (IO) e del processo (IP):
I = f(IO, IP), indicando il ruolo dei sistemi informativi.
I sistemi informativi istituzionali comprendono le applicazioni di supporto al sotto-insieme di attività infrastrutturali che rappresentano i compiti di natura amministrativo-burocratica, finanziaria e gestionale, che non fanno direttamente parte dei processi produttivi ma sono indispensabili per la loro esecuzione.
11/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (7/8)
Queste attività istituzionali hanno lo scopo di eseguire adempimenti di legge, e in generale sono abbastanza invarianti rispetto al settore industriale entro cui l’azienda opera.
◦ amministrazione (contabilità generale, fatture passive, fatture clienti e crediti);
◦ finanza (pagamenti, banche, pratiche finanziarie e programmazione risorse);
◦ controllo (bilanci per prodotto ed unità, reportistica &
budget, analisi investimenti o costo del prodotto).
Le attività istituzionale sono state la prima area informatizzata dalle aziende, perché le loro procedure sono particolarmente adatte all’automazione.
12/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informativi (8/8)
Il livello direzionale di una azienda è responsabile di tutte quelle attività necessarie alla definizione degli obbiettivi da raggiungere ed alle azioni, eventualmente correttive, da intraprendere per perseguirli. I sistemi informativi direzionali hanno lo scopo di supportare la direzione aziendale
1. fornendo informazioni per decidere;
2. supportando il processo decisionale.
Il modello primario di questi sistemi informativi deriva da quello di controllo aziendale, che in alcune aziende è esemplificato in controllo budgetario.
13/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (1/11)
Per indicare la porzione automatizzata del sistema informativo viene di solito utilizzato il termina di sistema informatico. La diffusione dell’informatica in maniera pervasiva ha fatto sì che gran parte dei sistemi informativi siano, in buona parte, anche dei sistemi informatici.
Per ragioni tecnologiche e di semplicità nella gestione, le informazioni vengono rappresentate per mezzo di dati. I dati da soli non hanno alcun significato, ma una volta interpretati e correlati opportunamente, forniscono le informazioni richieste.
14/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (2/11)
Una base di dati è una collezione di dati, utilizzati per rappresentare le informazioni di interesse per un sistema informativo.
L’approccio “convenzionale” alla gestione dei dati sfrutta la presenza di archivi o file per memorizzare i dati in modo persistente su memoria di massa. Un file consente di memorizzare e ricercare i dati, ma fornisce solo semplici meccanismi di accesso e di condivisione.
Secondo questo approccio, le procedure scritte in un linguaggio di programmazione sono completamente “autonome”: ciascuna definisce i propri file per i dati di interesse, e dati per più programmi sono memorizzati in tanti file distinti quanto sono i programmi. Le basi di dati sono state concepite per superare questo inconveniente.
15/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (3/11)
Un sistema di gestione di basi di dati (Data Base Management System – DBMS) è un sistema software in grado di gestire collezioni di dati, che siano grandi, condivise e persistenti, assicurando la loro affidabilità e riservatezza.
Le caratteristiche dei DBMS e delle basi di dati su cui essi si fondano sono:
◦ Le basi di dati possono essere di grandi dimensioni, superando talvolta la memoria disponibile in memoria centrale. Di conseguenza, i DBMS devono prevedere la gestione dei dati in memoria secondaria, da portare in quella principale all’evenienza.
16/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (4/11)
◦ Le basi di dati sono condivise tra applicazioni ed utenti diversi, che devono poter accedere all’occorrenza ai dati comuni. Ciò evita inutili ridondanza, con il relativo spreco di memoria e l’insorgenza di possibili inconsistenze tra i dati replicati.
◦ Le basi di dati sono persistenti, tollerando possibili malfunzionamenti hardware e software grazie a meccanismi di salvataggio e ripristino.
◦ I DBMS garantiscono la riservatezza dei dati, caratterizzando ogni utente con un identificativo e password e autenticando chi sottopone al DBMS ogni richiesta.
17/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (5/11)
Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che risulti comprensibile ad un elaboratore. Il modello relazionale dei dati permette di organizzare i dati in insiemi di record a struttura fissa. Una relazione viene spesso rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne corrispondono ai campi di un record.
18/89
Introduzione ai Sistemi Informativi
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi
Docenza CdLII MateriaBasi di Dati Anno5
II Impianti 5
II Linguaggi 4
IE Basi di Dati 5
IE Impianti 5
Manifesto
Introduzione ai Sistemi Informatici (5/11)
Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che risulti comprensibile ad un elaboratore. Il modello relazionale dei dati permette di organizzare i dati in insiemi di record a struttura fissa. Una relazione viene spesso rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne corrispondono ai campi di un record.
19/89
Introduzione ai Sistemi Informativi
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi
Docenza CdLII MateriaBasi di Dati Anno5
II Impianti 5
II Linguaggi 4
IE Basi di Dati 5
IE Impianti 5
Manifesto Relazioni Relazioni
Introduzione ai Sistemi Informatici (6/11)
Oltre al modello relazionale sono stati definiti altri tipi di modelli:
◦ Il modello gerarchico, basato sull’uso di strutture ad albero;
◦ Il modello reticolare, basato sull’uso di grafi;
◦ Il modello ad oggetti, che estende alle basi di dati il paradigma di programmazione ad oggetti.
◦ Il modello XML, dove i dati sono abbinati a tag XML per fornirne la loro descrizione;
◦ I modelli semi-strutturati e flessibili (alla base dei sistemi NoSQL), caratterizzati dal fatto di non utilizzare il modello relazionale.
Questi modelli sono detti logici, per sottolineare il fatto che pur essendo astratti, riflettono una particolare organizzazione. Più recentemente sono stati introdotti dei modelli concettuali, utilizzati per descrivere i concetti, piuttosto che i dati utili a rappresentarli.
20/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (7/11)
Esiste una parte invariante nel tempo, detta schema, costituita dalle caratteristiche dei dati, e una parte variabile, detta istanza o stato della base di dati, costituita dai valori effettivi.
Lo schema di una relazione è costituito dalla sua intestazione, cioè dal nome della relazione seguito dai nomi dei suoi attributi:
21/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (7/11)
Esiste una parte invariante nel tempo, detta schema, costituita dalle caratteristiche dei dati, e una parte variabile, detta istanza o stato della base di dati, costituita dai valori effettivi.
Lo schema di una relazione è costituito dalla sua intestazione, cioè dal nome della relazione seguito dai nomi dei suoi attributi:
22/89
Introduzione ai Sistemi Informativi
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi
Docenza CdLII MateriaBasi di Dati Anno5
II Impianti 5
II Linguaggi 4
IE Basi di Dati 5
IE Impianti 5
Manifesto
Introduzione ai Sistemi Informatici (7/11)
Esiste una parte invariante nel tempo, detta schema, costituita dalle caratteristiche dei dati, e una parte variabile, detta istanza o stato della base di dati, costituita dai valori effettivi.
Lo schema di una relazione è costituito dalla sua intestazione, cioè dal nome della relazione seguito dai nomi dei suoi attributi:
23/89
Introduzione ai Sistemi Informativi
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi
Docenza CdLII MateriaBasi di Dati Anno5
II Impianti 5
II Linguaggi 4
IE Basi di Dati 5
IE Impianti 5
Manifesto
Docenza(Corso, NomeDocente) Manifesto(CdL, Materia, Anno)
Introduzione ai Sistemi Informatici (8/11)
L’istanza di una relazione è l’insieme, variante nel tempo, delle sue righe o tuple. Si dice che lo schema è la componente intensionale della base di dati, mentre l’istanza è la componente estensionale.
Esiste una proposta di architettura standardizzata per DBMS articolata su tre livelli:
◦ Lo schema logico costituisce una descrizione dell’intera base di dati per mezzo del modello logico adottato dal DBMS;
◦ Lo schema interno costituisce la rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione;
◦ Lo schema esterno costituisce la descrizione di una porzione della base di dati di interesse, per mezzo del modello logico.
24/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (9/11)
Lo schema esterno può prevedere delle organizzazioni dei dati diverse rispetto a quelle utilizzate nello schema logico, che riflettono il punto di vista di un particolare utente o insieme di utenti. Nei sistemi più moderni il livello esterno non è esplicitamente presente, ma è possibile definire relazioni derivate (o viste).
25/89
Introduzione ai Sistemi Informativi
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi
Elettronica
Corso NomeDocente
Basi di Dati Rossi
Impianti Neri
Linguaggi Verdi Informatica Esposito
Docenza
vista
Introduzione ai Sistemi Informatici (10/11)
L’architettura a livelli garantisce l’indipendenza dei dati, così da permettere a utenti e programmi applicativi di interagire ad un elevato livello di astrazione, che prescinde dai dettagli realizzativi utilizzati nella costruzione della base di dati.
Sussistono due tipi di indipendenza dei dati:
◦ Indipendenza Fisica – consente di interagire con il DBMS indipendentemente dalla struttura fisica dei dati;
◦ Indipendenza logica – consente di interagire con il livello esterno della base di dati indipendentemente dal livello logico.
Gli accessi alla base di dati avviene solo per mezzo del livello esterno.
26/89
Introduzione ai Sistemi Informativi
Introduzione ai Sistemi Informatici (11/11)
I vantaggi di impiegare un DBMS sono i seguenti:
◦ Permette di considerare i dati come una risorsa comune di un’organizzazione, a disposizione dei tutte le sue componenti;
◦ Fornisce un modello unificato e preciso dei dati di interesse utilizzabile nelle applicazioni attuali, e con poche estensione in quelle future;
◦ Offre un controllo centralizzato dei dati, arricchito da vari strumenti standard e beneficiare di “economie di scala”;
◦ Riduce ridondanze ed inconsistenze;
◦ Favorisce lo sviluppo di applicazioni più flessibili.
Gli svantaggi sono i seguenti:
◦ Sono prodotti costosi, complessi e diversi da altri strumenti informatici;
◦ Forniscono una serie di servizi, associati ad un costo.
27/89
Introduzione ai Sistemi Informativi
Il Modello Relazionale (1/10)
Il modello relazionale si basa su due concetti: relazione e tabella. La prima nozione proviene dalla matematica, in particolare dalla teoria degli insiemi. Dati due insiemi D1 e D2, si chiama prodotto cartesiano di D1 e D2, in simboli D1 x D2, l’insieme delle coppie ordinate (v1,v2), tali che v1 è un elemento di D1 e v2 è un elemento di D2. Una relazione matematica sugli insiemi D1 e D2, è un sottoinsieme di D1 x D2, e può essere rappresentata graficamente sotto forma tabellare.
Nell’ambito delle base di dati, una relazione è sostanzialmente un insieme di record omogenei, cioè definiti sugli stessi campi, che sono caratterizzati da un nome e rappresentano gli attributi di una relazione. Tali attributi descrivono il “ruolo” che l’elemento gioca nel contesto del record.
28/89
Introduzione ai Sistemi Informativi
Il Modello Relazionale (2/10)
Una relazione è utilizzata per organizzare dati rilevanti nell’ambito di un’applicazione di interesse; solitamente non è presente una sola relazione, ma più relazioni con le righe contenenti valori comuni per stabilire delle corrispondenze.
29/89
Introduzione ai Sistemi Informativi
Studente Voto Corso
276545 28 01
276545 27 04
937653 25 01
200768 24 04
Esami
Matricola Cognome Nome Data di Nascita 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
Il Modello Relazionale (3/10)
Solitamente sono presenti più relazioni tra di loro collegate.
30/89
Introduzione ai Sistemi Informativi
Matricola Cognome Nome Data di Nascita
276545 Rossi Maria 25/11/1971
485745 Neri Anna 23/04/1972
200768 Verdi Fabio 12/02/1972
587614 Rossi Luca 10/10/1971
937653 Bruni Mario 01/12/1971
Studenti
Corsi
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso 28
27 25 24
Esami
Il Modello Relazionale (4/10)
31/89
Introduzione ai Sistemi Informativi
Matricola Cognome Nome Data di Nascita
276545 Rossi Maria 25/11/1971
485745 Neri Anna 23/04/1972
200768 Verdi Fabio 12/02/1972
587614 Rossi Luca 10/10/1971
937653 Bruni Mario 01/12/1971
Studenti
Corsi
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso
A16 28 B21
A16 27 B47
A80 25 B21
A48 24 B47
Esami INDIRIZZO A16
INDIRIZZO A32 INDIRIZZO A48 INDIRIZZO A64 INDIRIZZO A80
INDIRIZZO B21 INDIRIZZO B34 INDIRIZZO B47
Approccio a puntatori: indicando l’indirizzo della tupla di interesse.
Il Modello Relazionale (5/10)
32/89
Introduzione ai Sistemi Informativi
Matricola Cognome Nome Data di Nascita
276545 Rossi Maria 25/11/1971
485745 Neri Anna 23/04/1972
200768 Verdi Fabio 12/02/1972
587614 Rossi Luca 10/10/1971
937653 Bruni Mario 01/12/1971
Studenti
Corsi
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso
276545 28 01
276545 27 03
937653 25 01
200768 24 03
Esami
Approccio relazionale: valori comuni per stabilire delle corrispondenze.
Il Modello Relazionale (6/10)
Il modello relazione basato su valori ha i seguenti vantaggi:
◦ Si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione, mentre i puntatori sono qualcosa di aggiuntivo;
◦ La rappresentazione logica dei dati non fa alcun riferimento a quella fisica, che può cambiare nel tempo;
◦ È relativamente semplice trasferire dati da un contesto ad un altro, mentre i puntatori hanno un significato locale e non sono immediati da esportare.
Il modello relazione ha un certa rigidità, visto che le istanze di una relazione devono avere tutte la stessa struttura, ma spesso i dati disponibili non corrispondono esattamente al formato richiesto. In questo caso, è prevista la presenza di un valore di default per colmare la non disponibilità di dati per un attributo oppure un valore nullo.
33/89
Introduzione ai Sistemi Informativi
Il Modello Relazionale (7/10)
Le strutture del modello relazionale consentono l’organizzazione delle informazioni, ma non sempre sono consentite ogni possibile insieme di tuple sullo schema, perché possono non rappresentare informazioni corrette per un’applicazione.
34/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
Esami
Studenti
Corsi
Il Modello Relazionale (7/10)
Le strutture del modello relazionale consentono l’organizzazione delle informazioni, ma non sempre sono consentite ogni possibile insieme di tuple sullo schema, perché possono non rappresentare informazioni corrette per un’applicazione.
35/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Voto pari a 36 non ammissibile dato che i voti dovrebbero essere compresi tra 0 e 30 (o in caso di superamento dell’esame fra 18 e 30.
Esami
Studenti
Corsi
Il Modello Relazionale (7/10)
Le strutture del modello relazionale consentono l’organizzazione delle informazioni, ma non sempre sono consentite ogni possibile insieme di tuple sullo schema, perché possono non rappresentare informazioni corrette per un’applicazione.
36/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
È stata assegnata una lode ad un voto pari a 28, non è possibile dato che la lode è assegnabile solo quando voto è pari a 30.
Il Modello Relazionale (7/10)
Le strutture del modello relazionale consentono l’organizzazione delle informazioni, ma non sempre sono consentite ogni possibile insieme di tuple sullo schema, perché possono non rappresentare informazioni corrette per un’applicazione.
37/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Due studenti hanno associato la stessa matricola, cosa non ammissibile visto che ogni studente è univocamente identificato dalla matricola.
Esami
Studenti
Corsi
Esami
Studenti
Corsi
Il Modello Relazionale (7/10)
Le strutture del modello relazionale consentono l’organizzazione delle informazioni, ma non sempre sono consentite ogni possibile insieme di tuple sullo schema, perché possono non rappresentare informazioni corrette per un’applicazione.
38/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
La matricola indicata per un esame non associata a nessun studente presente nella tabella Studenti.
Il Modello Relazionale (8/10)
Per evitare queste situazioni, è stato introdotto il concetto di vincolo di integrità, ovvero una proprietà soddisfatta dalle istanze con informazioni corrette per l’applicazione. Ogni vincolo è espresso come un predicato. In generale, ad uno schema sono associati un insieme di vincoli, e le tuple lecite sono solo quelle che soddisfano tutti i vincoli. I vincoli sono classificati a seconda di quali elementi coinvolgono:
◦ Un vincolo intrarelazionale è applicato ad elementi di una data relazione:
• un vincolo di tupla viene valutata su ciascuna tupla, indipendentemente dalle altre;
• un vincolo su valori o di dominio è una restrizione sui valori assumibili da un attributo;
◦ Un vincolo interrelazionale coinvolge elementi di più relazioni.
39/89
Introduzione ai Sistemi Informativi
Il Modello Relazionale (9/10)
L’insieme degli attributi impiegati per identificare univocamente una tupla all’interno di una relazione viene chiamata chiave.
Quando gli attributi di una chiave non possono assumere un valore nullo, allora la chiave è definita primaria, e sono spesso evidenziati da una sottolineatura. La maggior parte dei riferimenti tra relazioni vengono realizzati attraverso i valori della chiave primaria.
40/89
Introduzione ai Sistemi Informativi
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 276545 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
Il Modello Relazionale (9/10)
L’insieme degli attributi impiegati per identificare univocamente una tupla all’interno di una relazione viene chiamata chiave.
Quando gli attributi di una chiave non possono assumere un valore nullo, allora la chiave è definita primaria, e sono spesso evidenziati da una sottolineatura. La maggior parte dei riferimenti tra relazioni vengono realizzati attraverso i valori della chiave primaria.
41/89
Introduzione ai Sistemi Informativi
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 276545 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
Il Modello Relazionale (10/10)
Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 verso un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla di R1 compaiono come chiave (primaria) di R2.
42/89
Introduzione ai Sistemi Informativi
Il Modello Relazionale (10/10)
Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 verso un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla di R1 compaiono come chiave (primaria) di R2.
43/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 276545 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
In questo esempio, sussistono due vincoli di integrità referenziale:
Il Modello Relazionale (10/10)
Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 verso un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla di R1 compaiono come chiave (primaria) di R2.
44/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 276545 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
In questo esempio, sussistono due vincoli di integrità referenziale:
• Tra l’attributo Studente in Esami e la chiave Matricola di Studenti;
Il Modello Relazionale (10/10)
Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 verso un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla di R1 compaiono come chiave (primaria) di R2.
45/89
Introduzione ai Sistemi Informativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 276545 Bruni Mario 01/12/1971
Studenti
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Corsi
In questo esempio, sussistono due vincoli di integrità referenziale:
• Tra l’attributo Corso in esami e Codice in Corsi.
Algebra Relazionale (1/14)
L’algebra relazione è un linguaggio procedurale, basato su concetti di tipo algebrico al fine di determinare interrogazioni da effettuare nell'ambito della gestione di una base di dati. è costituito da un insieme di operatori, definiti su relazioni e generando ancora relazioni come risultati. In tal modo, è possibile concatenare operatori al fine di scrivere espressioni complesse.
Operatori Insiemistici: dato che le relazioni sono insiemi, ovvero un insieme di tuple omogenee (definite sugli stessi attributi), ha senso definirne i tradizionali operatori insiemistici.
46/89
Introduzione ai Sistemi Informativi
Algebra Relazionale (2/14)
◦ Unione – date due relazioni R1 e R2, definite sullo stesso insieme di attributi X, la loro unione, indicata con R1 U R2, è una relazione su X contente tutte le tuple delle due relazioni.
◦ Intersezione – date due relazioni R1 e R2, definite sullo stesso insieme di attributi X, la loro intersezione, indicata con R1 R2, è una relazione su X contente tutte le tuple presenti in entrambe le relazioni.
◦ Differenza – date due relazioni R1 e R2, definite sullo stesso insieme di attributi X, la loro differenza, indicata con R1 - R2, è una relazione su X contente tutte le tuple in R1 ma non in R2.
47/89
Introduzione ai Sistemi Informativi
Algebra Relazionale (3/14)
48/89
Introduzione ai Sistemi Informativi
Matricola Cognome Età
7275 Rossi 37
7432 Neri 39
9824 Verdi 38
Laureati
Matricola Cognome Età
9297 Neri 56
7432 Neri 39
9824 Verdi 38
Dirigenti
Algebra Relazionale (3/14)
49/89
Introduzione ai Sistemi Informativi
Matricola Cognome Età
7275 Rossi 37
7432 Neri 39
9824 Verdi 38
Laureati
Matricola Cognome Età
9297 Neri 56
7432 Neri 39
9824 Verdi 38
Dirigenti
Matricola Cognome Età
7275 Rossi 37
7432 Neri 39
9824 Verdi 38
9297 Neri 56
Laureati U Dirigenti
Algebra Relazionale (3/14)
50/89
Introduzione ai Sistemi Informativi
Matricola Cognome Età
7275 Rossi 37
7432 Neri 39
9824 Verdi 38
Laureati
Matricola Cognome Età
9297 Neri 56
7432 Neri 39
9824 Verdi 38
Dirigenti
Matricola Cognome Età
7432 Neri 39
9824 Verdi 38
Laureati DirigentiU
Algebra Relazionale (3/14)
51/89
Introduzione ai Sistemi Informativi
Matricola Cognome Età
7275 Rossi 37
7432 Neri 39
9824 Verdi 38
Laureati
Matricola Cognome Età
9297 Neri 56
7432 Neri 39
9824 Verdi 38
Dirigenti Matricola7275 CognomeRossi Età37
Laureati - Dirigenti
Algebra Relazionale (4/14)
La limitazione degli operatori insiemistici è che l’insieme degli attributi sia uguale nelle due relazione a cui sono applicate. Ciò però rende tali operatori inapplicabili in contesti in cui potrebbero essere sensati:
52/89
Introduzione ai Sistemi Informativi
Padre Figlio
Adamo Caino
Adamo Abele
Abramo Isacco Abramo Ismaele
Paternità
Madre Figlio
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
Maternità
Paternità U Maternità ??
Algebra Relazionale (5/14)
Per risolvere il problema, si introduce uno specifico operatore che ha come unico obbiettivo quello di adeguare i nomi degli attributi, a seconda delle necessità, così da facilitare le operazioni insiemistiche. Tale operatore è detto ridenominazione, perché altera il nome degli attributi, lasciando alterato il contenuto delle tuple.
53/89
Introduzione ai Sistemi Informativi
Padre Figlio
Adamo Caino
Adamo Abele
Abramo Isacco Abramo Ismaele
Paternità
Madre Figlio
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
Maternità
Algebra Relazionale (5/14)
Per risolvere il problema, si introduce uno specifico operatore che ha come unico obbiettivo quello di adeguare i nomi degli attributi, a seconda delle necessità, così da facilitare le operazioni insiemistiche. Tale operatore è detto ridenominazione, perché altera il nome degli attributi, lasciando alterato il contenuto delle tuple.
54/89
Introduzione ai Sistemi Informativi
Genitore Figlio
Adamo Caino
Adamo Abele
Abramo Isacco Abramo Ismaele
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
Genitore Figlio
Adamo Caino
Adamo Abele
Abramo Isacco Abramo Ismaele
ρGenitoreçPadre(Paternità)
Genitore Figlio
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
ρGenitoreçMadre(Maternità)
ρGenitoreçPadre(Paternità) U ρGenitoreçMadre(Maternità)
Algebra Relazionale (5/14)
◦ La selezione ha come risultato una porzione orizzontale della relazione a cui è applicata, ovvero un sottoinsieme delle tuple su tutti gli attributi.
◦ La proiezione è l’operazione duale della selezione, che produce una porzione verticale della relazione a cui è applicata, restituendo tutte le tuple della relazione ma su un sottoinsieme degli attributi.
55/89
Introduzione ai Sistemi Informativi
Algebra Relazionale (6/14)
56/89
Introduzione ai Sistemi Informativi
Cognome Nome Età Stipendio
Rossi Mario 25 2000
Neri Luca 40 3000
Verdi Nico 36 4500
Rossi Marco 40 3900
Impiegati
Algebra Relazionale (6/14)
57/89
Introduzione ai Sistemi Informativi
Cognome Nome Età Stipendio
Verdi Nico 36 4500
σEtà>30∧Stipendio>4000(Impiegati)
Cognome Nome Età Stipendio
Rossi Mario 25 2000
Neri Luca 40 3000
Verdi Nico 36 4500
Rossi Marco 40 3900
Impiegati
Tale formula è ottenuta combinando, con i logici connettivi ∨,∧ e ¬, condizioni atomiche del tipo AθB e Aθc, dove A e B sono attributi della relazione, c è una costante compatibile con l’attributo A e θ è un operatore di confronto.
La selezione si effettua per
mezzo di una formula
proposizionale F su X attributi della relazione a cui è applicata r.
πCognome,Nome(Impiegati)
Cognome Nome
Rossi Mario
Neri Luca
Verdi Nico
Rossi Marco
Algebra Relazionale (6/14)
58/89
Introduzione ai Sistemi Informativi
Cognome Nome Età Stipendio
Rossi Mario 25 2000
Neri Luca 40 3000
Verdi Nico 36 4500
Rossi Marco 40 3900
Impiegati
La proiezione restituisce tutte le tuple della relazione di partenza se queste sono significative, ovvero non si hanno valori ridondanti.
Algebra Relazionale (7/14)
L’operatore di join permette di correlare dati contenuti in relazioni diverse, confrontandone i valori e utilizzando la caratteristica del modello relazionale di essere basato su valori.
Esistono due versioni di tale operando:
◦ Il join naturale correla tuple in relazioni diverse restituendo una relazione sull’unione degli insiemi di attributi degli operandi e le sue tuple sono ottenute combinando le tuple degli operandi con valori uguali sugli attributi comuni.
59/89
Introduzione ai Sistemi Informativi
Impiegato Reparto Rossi vendite Neri produzione Bianchi produzione
R1 Impiegato Reparto Capo
Rossi vendite Mori
Neri produzione Bruni Bianchi produzione Bruni
R1 ⋈R2
Reparto Capo
vendite Mori
produzione Bruni
R2
Algebra Relazionale (8/14)
Ciascuna tupla di ciascun operando del join naturale contribuisce ad almeno una tupla nel risultato del join, in tal caso si dice che il join è completo. Questa proprietà non è sempre verificata, perché presuppone che le due relazioni contengano tuple con gli stessi valori nell’attributo comune.
60/89
Introduzione ai Sistemi Informativi
Impiegato Reparto Capo Neri produzione Mori Bianchi produzione Mori Impiegato Reparto
Rossi vendite Neri produzione Bianchi produzione
R1
R1 ⋈R2
Reparto Capo produzione Mori acquisti Bruni
R2
Ciascuna tupla di ciascun operando del join naturale contribuisce ad almeno una tupla nel risultato del join, in tal caso si dice che il join è completo. Questa proprietà non è sempre verificata, perché presuppone che le due relazioni contengano tuple con gli stessi valori nell’attributo comune.
Impiegato Reparto Capo Neri produzione Mori Bianchi produzione Mori Impiegato Reparto
Rossi vendite Neri produzione Bianchi produzione
R1
R1 ⋈R2
Reparto Capo produzione Mori acquisti Bruni
R2
Algebra Relazionale (8/14)
61/89
Introduzione ai Sistemi Informativi
Queste tuple non si ritrovano nel risultato del join, e sono definite dangling.
Queste tuple non si ritrovano nel risultato del join, e sono definite dangling.
Algebra Relazionale (8/14)
Ciascuna tupla di ciascun operando del join naturale contribuisce ad almeno una tupla nel risultato del join, in tal caso si dice che il join è completo. Questa proprietà non è sempre verificata, perché presuppone che le due relazioni contengano tuple con gli stessi valori nell’attributo comune.
Possiamo avere che le due relazioni abbiamo tutte tuple dangling e il join restituisce una relazione vuota. Nel caso opposto, ciascuna tupla di R1 corrisponde con tutte quelle di R2.
62/89
Introduzione ai Sistemi Informativi
Impiegato Reparto Capo Neri produzione Mori Bianchi produzione Mori Impiegato Reparto
Rossi vendite Neri produzione Bianchi produzione
R1
R1 ⋈R2
Reparto Capo produzione Mori acquisti Bruni
R2
Algebra Relazionale (9/14)
La caratteristica dell’operatore di join naturale di tralasciare le tuple di una relazione che non hanno una controparte nell’altra può essere utile in alcuni casi, pericoloso in altri. Per questo esiste una variante detta join esterno:
◦ tutte le tuple partecipano la risultato, eventualmente estese con valori nulli in caso di mancanza di corrispondenze.
Esistono tre differenti varianti di questa soluzione:
◦ join esterno sinistro: estende solo le tuple del primo operando;
◦ join esterno destro: estende solo le tuple del secondo operando;
◦ join esterno completo: estende tutte le tuple.
63/89
Introduzione ai Sistemi Informativi
Algebra Relazionale (10/14)
64/89
Introduzione ai Sistemi Informativi
Impiegato Reparto Rossi vendite Neri produzione Bianchi produzione
Reparto Capo produzione Mori acquisti Bruni
R1 R2
Impiegato Reparto Capo
Rossi vendite NULL
Neri produzione Mori Bianchi produzione Mori
R1 ⋈LEFT R2
Impiegato Reparto Capo Neri produzione Mori Bianchi produzione Mori
NULL acquisti Bruni
R1 ⋈RIGHT R2
Impiegato Reparto Capo
Rossi vendite null
Neri produzione Mori Bianchi produzione Mori
NULL acquisti Bruni
R1 ⋈FULL R2
Algebra Relazionale (11/14)
Il join naturale gode di diverse proprietà:
◦ è commutativo: R1 ⋈ R2 = R2 ⋈R1
◦ è transitivo: R1 ⋈ (R2 ⋈ R3) = (R1 ⋈ R2) ⋈ R3)
◦ Se l’insieme degli attributi delle relazioni coincide, allora il join corrisponde all’intersezione:
R1(X1) ⋈ R2(X1) = R1(X1) ∩R2(X1)
◦ Se l’insieme degli attributi delle relazioni non ha nulla in comune, allora il join restituisce una relazione con tuple che sono tutte le possibile combinazioni delle tuple delle due relazioni, e ciò prende il nome di prodotto cartesiano.
65/89
Introduzione ai Sistemi Informativi