Upload
haxuyen
View
214
Download
0
Embed Size (px)
Citation preview
FondamentidiInformaticaIntroduz ionea i S i stemi Informat iv i
Prof. Chr i st ian Espos i to
Corso d i Laurea in Ingegner ia Meccanica e Gest iona le (C lasse I )A .A . 2017/18
OUTLINE◦ Argomenti:◦ Introduzioneaisistemiinformativi;◦ Ilmodellorelazione;◦ L’algebrarelazionale.
IntroduzioneaiSistemiInformativi 02/89
IntroduzioneaiSistemiInformativi(1/8)
Un sistema informativo è uno strumento responsabile dellaraccolta, organizzazione e conservazione persistente didati. Ogni organizzazione ha un sistema informativo, cheorganizza e gestisce le informazioni necessarie perperseguire gli scopi dell’organizzazione stessa.
03/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(1/8)
Un sistema informativo è uno strumento responsabile dellaraccolta, organizzazione e conservazione persistente didati. Ogni organizzazione ha un sistema informativo, cheorganizza e gestisce le informazioni necessarie perperseguire gli scopi dell’organizzazione stessa.
04/89IntroduzioneaiSistemiInformativi
L’archivio reale di Eblacomprende 17.000 tra tavolette intere eframmenti, scritti in eblaita, contenentitesti amministrativi, economici, storici,giuridici, religiosi.
IntroduzioneaiSistemiInformativi(2/8)
L’archivio storico del Banco di Napoli, il più grande archiviostorico bancario del mondo, nelle sue 330 stanze su 14milametri quadrati, ospita un numero enorme di documenti dalCinquecento ad oggi, inerenti l’attività del Banco.
05/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(3/8)
06/89IntroduzioneaiSistemiInformativi
Inizialmente i sistemi informativi erano direttamente scrittida operatori umani su supporti persistenti, ma scarsamenteriusabili e con processi non automatizzabili. La stampa haaiutato a consentire la possibilità di scambio dati.
IntroduzioneaiSistemiInformativi(3/8)
07/89IntroduzioneaiSistemiInformativi
A partire dagli anni 50, si è verificatal’informatizzazione dei sistemi informativie dematerializzazione dei contenuti, congli operatori umani sempre coinvolti nellaproduzione e consultazione di dati.
IntroduzioneaiSistemiInformativi(3/8)
08/89IntroduzioneaiSistemiInformativi
Attualmente, i dati sono generatie consultati sempre più da altriprogrammi, con un minoreintervento umano. Inoltre, sonodistribuiti tra varie locazioni.
IntroduzioneaiSistemiInformativi(4/8)
Un’organizzazione è una struttura dicomando, descrivibile con organi-grammi o schemi equivalenti, chegoverna processi operativi.
I sistemi informativi supportano sia iprocessi di governo dell’organiz-zazione, sia i processi operativi edamministrativi, rispettivamente con◦ sistemi informativi direzionali;◦ sistemi informativi operativi;◦ sistemi informativi istituzionali.
09/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(5/8)
I sistemi informativi operativi informatizzano processi volti allaesecuzione di attività o alla loro programmazione. Il ruolo deisistemi informativi nelle aziende è molto variabile. In generale siassume il loro ruolo potenziale come proporzione della“intensità informativa” delle aziende, ovvero al livello e allacomplessità delle informazioni usate nel business aziendale perla gestione delle attività legate al processo produttivo.
I sistemi informativi sono definiti come una tecnologia diprocesso, quando il prodotto è materiale. In questo caso, silimitano a supportare il coordinamento delle attività.
10/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(6/8)
Possiamo assumere che il fabbisogno informativo (I) si sistemiinformativi operativi sia proporzionale all’intensità informativadel prodotto (IO) e del processo (IP):
I=f(IO,IP),indicando il ruolo dei sistemi informativi.
I sistemi informativi istituzionali comprendono le applicazioni disupporto al sotto-insieme di attività infrastrutturali cherappresentano i compiti di natura amministrativo-burocratica,finanziaria e gestionale, che non fanno direttamente parte deiprocessi produttivi ma sono indispensabili per la loroesecuzione.
11/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(7/8)
Queste attività istituzionali hanno lo scopo di eseguireadempimenti di legge, e in generale sono abbastanza invariantirispetto 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 informatizzatadalle aziende, perché le loro procedure sono particolarmenteadatte all’automazione.
12/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformativi(8/8)
Il livello direzionale di una azienda è responsabile di tutte quelleattività necessarie alla definizione degli obbiettivi daraggiungere ed alle azioni, eventualmente correttive, daintraprendere per perseguirli. I sistemi informativi direzionalihanno lo scopo di supportare la direzione aziendale1. fornendo informazioni per decidere;2. supportando il processo decisionale.
Il modello primario di questi sistemiinformativi deriva da quello dicontrollo aziendale, che in alcuneaziende è esemplificato in controllobudgetario.
13/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(1/11)
Per indicare la porzione automatizzata del sistema informativo vienedi solito utilizzato il termina di sistema informatico. La diffusionedell’informatica in maniera pervasiva ha fatto sì che gran parte deisistemi informativi siano, in buona parte, anche dei sistemiinformatici.Per ragioni tecnologiche e di semplicità nella gestione, le informazionivengono rappresentate per mezzo di dati. I dati da soli non hannoalcun significato, ma una volta interpretati e correlatiopportunamente, forniscono le informazioni richieste.
14/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(2/11)
Una base di dati è una collezione di dati, utilizzati per rappresentare leinformazioni di interesse per un sistema informativo.
L’approccio “convenzionale” alla gestione dei dati sfrutta la presenzadi archivi o file per memorizzare i dati in modo persistente sumemoria 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 diprogrammazione sono completamente “autonome”: ciascunadefinisce i propri file per i dati di interesse, e dati per più programmisono memorizzati in tanti file distinti quanto sono i programmi. Lebasi di dati sono state concepite per superare questo inconveniente.
15/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(3/11)
Un sistema di gestione di basi di dati (Data Base ManagementSystem – DBMS) è un sistema software in grado di gestirecollezioni 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 sifondano sono:◦ Le basi di dati possono essere di grandi dimensioni,
superando talvolta la memoria disponibile in memoriacentrale. Di conseguenza, i DBMS devono prevedere lagestione dei dati in memoria secondaria, da portare inquella principale all’evenienza.
16/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(4/11)
◦ Le basi di dati sono condivise tra applicazioni ed utentidiversi, che devono poter accedere all’occorrenza ai daticomuni. Ciò evita inutili ridondanza, con il relativo spreco dimemoria e l’insorgenza di possibili inconsistenze tra i datireplicati.
◦ Le basi di dati sono persistenti, tollerando possibilimalfunzionamenti hardware e software grazie a meccanismidi salvataggio e ripristino.
◦ I DBMS garantiscono la riservatezza dei dati, caratterizzandoogni utente con un identificativo e password e autenticandochi sottopone al DBMS ogni richiesta.
17/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(5/11)
Un modello dei dati è un insieme di concetti utilizzati perorganizzare i dati di interesse e descriverne la struttura in modoche risulti comprensibile ad un elaboratore. Il modellorelazionale dei dati permette di organizzare i dati in insiemi direcord a struttura fissa. Una relazione viene spessorappresentata per mezzo di una tabella, le cui righerappresentano specifici record e le cui colonne corrispondono aicampi di un record.
18/89IntroduzioneaiSistemiInformativi
Corso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
DocenzaCdL Materia Anno
II Basi diDati 5
II Impianti 5
II Linguaggi 4
IE Basi diDati 5
IE Impianti 5Manifesto
IntroduzioneaiSistemiInformatici(5/11)
Un modello dei dati è un insieme di concetti utilizzati perorganizzare i dati di interesse e descriverne la struttura in modoche risulti comprensibile ad un elaboratore. Il modellorelazionale dei dati permette di organizzare i dati in insiemi direcord a struttura fissa. Una relazione viene spessorappresentata per mezzo di una tabella, le cui righerappresentano specifici record e le cui colonne corrispondono aicampi di un record.
19/89IntroduzioneaiSistemiInformativi
Corso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
DocenzaCdL Materia Anno
II Basi diDati 5
II Impianti 5
II Linguaggi 4
IE Basi diDati 5
IE Impianti 5Manifesto
RelazioniRelazioni
IntroduzioneaiSistemiInformatici(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 puressendo astratti, riflettono una particolare organizzazione. Piùrecentemente sono stati introdotti dei modelli concettuali, utilizzatiper descrivere i concetti, piuttosto che i dati utili a rappresentarli.
20/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(7/11)
Esiste una parte invariante nel tempo, detta schema, costituitadalle caratteristiche dei dati, e una parte variabile, detta istanzao 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/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(7/11)
Esiste una parte invariante nel tempo, detta schema, costituitadalle caratteristiche dei dati, e una parte variabile, detta istanzao 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/89IntroduzioneaiSistemiInformativi
Corso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
DocenzaCdL Materia Anno
II Basi diDati 5
II Impianti 5
II Linguaggi 4
IE Basi diDati 5
IE Impianti 5
Manifesto
IntroduzioneaiSistemiInformatici(7/11)
Esiste una parte invariante nel tempo, detta schema, costituitadalle caratteristiche dei dati, e una parte variabile, detta istanzao 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/89IntroduzioneaiSistemiInformativi
Corso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
DocenzaCdL Materia Anno
II Basi diDati 5
II Impianti 5
II Linguaggi 4
IE Basi diDati 5
IE Impianti 5
Manifesto
Docenza(Corso, NomeDocente) Manifesto(CdL, Materia, Anno)
IntroduzioneaiSistemiInformatici(8/11)
L’istanza di una relazione è l’insieme, variante nel tempo, delle suerighe o tuple. Si dice che lo schema è la componente intensionaledella base di dati, mentre l’istanza è la componente estensionale.
Esiste una proposta di architettura standardizzata per DBMS articolatasu 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/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(9/11)
Lo schema esterno può prevedere delle organizzazioni dei datidiverse rispetto a quelle utilizzate nello schema logico, cheriflettono il punto di vista di un particolare utente o insieme diutenti. Nei sistemi più moderni il livello esterno non èesplicitamente presente, ma è possibile definire relazioniderivate (o viste).
25/89IntroduzioneaiSistemiInformativi
Corso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
ElettronicaCorso NomeDocente
Basi diDati Rossi
Impianti Neri
Linguaggi Verdi
Informatica Esposito
Docenza
vista
IntroduzioneaiSistemiInformatici(10/11)
L’architettura a livelli garantisce l’indipendenza dei dati, così dapermettere a utenti e programmi applicativi di interagire ad unelevato livello di astrazione, che prescinde dai dettaglirealizzativi 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 livellologico.
Gli accessi alla base di dati avviene solo per mezzo del livelloesterno.
26/89IntroduzioneaiSistemiInformativi
IntroduzioneaiSistemiInformatici(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 inquelle future;
◦ Offre un controllo centralizzato dei dati, arricchito da varistrumenti 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/89IntroduzioneaiSistemiInformativi
IlModelloRelazionale(1/10)Il modello relazionale si basa su due concetti: relazione etabella. La prima nozione proviene dalla matematica, inparticolare dalla teoria degli insiemi. Dati due insiemi D1 e D2, sichiama prodotto cartesiano di D1 e D2, in simboli D1 x D2,l’insieme delle coppie ordinate (v1,v2), tali che v1 è unelemento di D1 e v2 è un elemento di D2. Una relazionematematica 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 è sostanzialmenteun insieme di record omogenei, cioè definiti sugli stessi campi,che sono caratterizzati da un nome e rappresentano gli attributidi una relazione. Tali attributi descrivono il “ruolo” chel’elemento gioca nel contesto del record.
28/89IntroduzioneaiSistemiInformativi
IlModelloRelazionale(2/10)Una relazione è utilizzata per organizzare dati rilevantinell’ambito di un’applicazione di interesse; solitamente non èpresente una sola relazione, ma più relazioni con le righecontenenti valori comuni per stabilire delle corrispondenze.
29/89IntroduzioneaiSistemiInformativi
Studente Voto Corso
276545 28 01
276545 27 04
937653 25 01
200768 24 04Esami
Matricola Cognome Nome DatadiNascita
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 BelliCorsi
IlModelloRelazionale(3/10)Solitamente sono presenti più relazioni tra di loro collegate.
30/89IntroduzioneaiSistemiInformativi
Matricola Cognome Nome DatadiNascita
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
CorsiCodice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso
28
27
25
24
Esami
IlModelloRelazionale(4/10)
31/89IntroduzioneaiSistemiInformativi
Matricola Cognome Nome DatadiNascita
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
CorsiCodice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso
A16 28 B21A16 27 B47A80 25 B21A48 24 B47
Esami
INDIRIZZOA16INDIRIZZOA32INDIRIZZOA48INDIRIZZOA64INDIRIZZOA80
INDIRIZZOB21INDIRIZZOB34INDIRIZZOB47
Approccio a puntatori: indicando l’indirizzo della tupla diinteresse.
IlModelloRelazionale(5/10)
32/89IntroduzioneaiSistemiInformativi
Matricola Cognome Nome DatadiNascita
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
CorsiCodice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
Studente Voto Corso
276545 28 01276545 27 03937653 25 01200768 24 03
Esami
Approccio relazionale: valori comuni per stabilire dellecorrispondenze.
IlModelloRelazionale(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 sonoimmediati da esportare.
Il modello relazione ha un certa rigidità, visto che le istanze di unarelazione devono avere tutte la stessa struttura, ma spesso i datidisponibili non corrispondono esattamente al formato richiesto. Inquesto caso, è prevista la presenza di un valore di default per colmarela non disponibilità di dati per un attributo oppure un valore nullo.
33/89IntroduzioneaiSistemiInformativi
IlModelloRelazionale(7/10)Le strutture del modello relazionale consentono l’organizzazionedelle informazioni, ma non sempre sono consentite ognipossibile insieme di tuple sullo schema, perché possono nonrappresentare informazioni corrette per un’applicazione.
34/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome DatadiNascita
200768 Verdi Fabio 12/02/1972
937653 Rossi Luca 10/10/1971
937653 Bruni Mario 01/12/1971
StudentiCodice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica BelliCorsi
Esami
Studenti
Corsi
IlModelloRelazionale(7/10)Le strutture del modello relazionale consentono l’organizzazionedelle informazioni, ma non sempre sono consentite ognipossibile insieme di tuple sullo schema, perché possono nonrappresentare informazioni corrette per un’applicazione.
35/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome DatadiNascita
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 ivoti dovrebbero essere compresi tra 0 e 30(o in caso di superamento dell’esame fra 18 e30.
Esami
Studenti
Corsi
IlModelloRelazionale(7/10)Le strutture del modello relazionale consentono l’organizzazionedelle informazioni, ma non sempre sono consentite ognipossibile insieme di tuple sullo schema, perché possono nonrappresentare informazioni corrette per un’applicazione.
36/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome DatadiNascita
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 a28, non è possibile dato che la lode èassegnabile solo quando voto è pari a 30.
IlModelloRelazionale(7/10)Le strutture del modello relazionale consentono l’organizzazionedelle informazioni, ma non sempre sono consentite ognipossibile insieme di tuple sullo schema, perché possono nonrappresentare informazioni corrette per un’applicazione.
37/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome DatadiNascita
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 stessamatricola, cosa non ammissibile visto cheogni studente è univocamente identificatodalla matricola.
Esami
Studenti
Corsi
Esami
Studenti
Corsi
IlModelloRelazionale(7/10)Le strutture del modello relazionale consentono l’organizzazionedelle informazioni, ma non sempre sono consentite ognipossibile insieme di tuple sullo schema, perché possono nonrappresentare informazioni corrette per un’applicazione.
38/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Matricola Cognome Nome DatadiNascita
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 nonassociata a nessun studente presente nellatabella Studenti.
IlModelloRelazionale(8/10)Per evitare queste situazioni, è stato introdotto il concetto di vincolodi integrità, ovvero una proprietà soddisfatta dalle istanze coninformazioni corrette per l’applicazione. Ogni vincolo è espresso comeun predicato. In generale, ad uno schema sono associati un insieme divincoli, e le tuple lecite sono solo quelle che soddisfano tutti i vincoli. Ivincoli 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/89IntroduzioneaiSistemiInformativi
IlModelloRelazionale(9/10)L’insieme degli attributi impiegati per identificare univocamenteuna tupla all’interno di una relazione viene chiamata chiave.Quando gli attributi di una chiave non possono assumere unvalore nullo, allora la chiave è definita primaria, e sono spessoevidenziati da una sottolineatura. La maggior parte deiriferimenti tra relazioni vengono realizzati attraverso i valoridella chiave primaria.
40/89IntroduzioneaiSistemiInformativi
Matricola Cognome Nome DatadiNascita
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
IlModelloRelazionale(9/10)L’insieme degli attributi impiegati per identificare univocamenteuna tupla all’interno di una relazione viene chiamata chiave.Quando gli attributi di una chiave non possono assumere unvalore nullo, allora la chiave è definita primaria, e sono spessoevidenziati da una sottolineatura. La maggior parte deiriferimenti tra relazioni vengono realizzati attraverso i valoridella chiave primaria.
41/89IntroduzioneaiSistemiInformativi
Matricola Cognome Nome DatadiNascita
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
IlModelloRelazionale(10/10)Un vincolo di integrità referenziale fra un insieme di attributi Xdi una relazione R1 verso un’altra relazione R2 è soddisfatto se ivalori su X di ciascuna tupla di R1 compaiono come chiave(primaria) di R2.
42/89IntroduzioneaiSistemiInformativi
IlModelloRelazionale(10/10)Un vincolo di integrità referenziale fra un insieme di attributi Xdi una relazione R1 verso un’altra relazione R2 è soddisfatto se ivalori su X di ciascuna tupla di R1 compaiono come chiave(primaria) di R2.
43/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome DatadiNascita
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 duevincoli di integrità referenziale:
IlModelloRelazionale(10/10)Un vincolo di integrità referenziale fra un insieme di attributi Xdi una relazione R1 verso un’altra relazione R2 è soddisfatto se ivalori su X di ciascuna tupla di R1 compaiono come chiave(primaria) di R2.
44/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome DatadiNascita
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 duevincoli di integrità referenziale:• Tra l’attributo Studente in Esami
e la chiave Matricola di Studenti;
IlModelloRelazionale(10/10)Un vincolo di integrità referenziale fra un insieme di attributi Xdi una relazione R1 verso un’altra relazione R2 è soddisfatto se ivalori su X di ciascuna tupla di R1 compaiono come chiave(primaria) di R2.
45/89IntroduzioneaiSistemiInformativi
Studente Voto Lode Corso
200768 36 05
937653 28 Lode 01
937653 30 Lode 04
276545 25 01
Esami
Matricola Cognome Nome DatadiNascita
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 duevincoli di integrità referenziale:• Tra l’attributo Corso in esami e
Codice in Corsi.
AlgebraRelazionale(1/14)L’algebra relazione è un linguaggio procedurale, basato suconcetti di tipo algebrico al fine di determinare interrogazioni daeffettuare nell'ambito della gestione di una base di dati. ècostituito da un insieme di operatori, definiti su relazioni egenerando ancora relazioni come risultati. In tal modo, èpossibile concatenare operatori al fine di scrivere espressionicomplesse.
Operatori Insiemistici: dato che le relazioni sono insiemi, ovveroun insieme di tuple omogenee (definite sugli stessi attributi), hasenso definirne i tradizionali operatori insiemistici.
46/89IntroduzioneaiSistemiInformativi
AlgebraRelazionale(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 stessoinsieme di attributi X, la loro intersezione, indicata con R1 R2,è una relazione su X contente tutte le tuple presenti inentrambe le relazioni.
◦ Differenza – date due relazioni R1 e R2, definite sullo stessoinsieme 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/89IntroduzioneaiSistemiInformativi
AlgebraRelazionale(3/14)
48/89IntroduzioneaiSistemiInformativi
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
AlgebraRelazionale(3/14)
49/89IntroduzioneaiSistemiInformativi
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 UDirigenti
AlgebraRelazionale(3/14)
50/89IntroduzioneaiSistemiInformativi
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
AlgebraRelazionale(3/14)
51/89IntroduzioneaiSistemiInformativi
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
DirigentiMatricola Cognome Età
7275 Rossi 37
Laureati - Dirigenti
AlgebraRelazionale(4/14)La limitazione degli operatori insiemistici è che l’insieme degliattributi sia uguale nelle due relazione a cui sono applicate. Ciòperò rende tali operatori inapplicabili in contesti in cuipotrebbero essere sensati:
52/89IntroduzioneaiSistemiInformativi
Padre Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
PaternitàMadre Figlio
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
Maternità
Paternità UMaternità ??
AlgebraRelazionale(5/14)Per risolvere il problema, si introduce uno specifico operatoreche ha come unico obbiettivo quello di adeguare i nomi degliattributi, a seconda delle necessità, così da facilitare leoperazioni insiemistiche. Tale operatore è dettoridenominazione, perché altera il nome degli attributi, lasciandoalterato il contenuto delle tuple.
53/89IntroduzioneaiSistemiInformativi
Padre Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
PaternitàMadre Figlio
Eva Caino
Eva Set
Sara Isacco
Agar Ismaele
Maternità
AlgebraRelazionale(5/14)Per risolvere il problema, si introduce uno specifico operatoreche ha come unico obbiettivo quello di adeguare i nomi degliattributi, a seconda delle necessità, così da facilitare leoperazioni insiemistiche. Tale operatore è dettoridenominazione, perché altera il nome degli attributi, lasciandoalterato il contenuto delle tuple.
54/89IntroduzioneaiSistemiInformativi
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à)
AlgebraRelazionale(5/14)◦ La selezione ha come risultato una porzione orizzontale della
relazione a cui è applicata, ovvero un sottoinsieme delle tuplesu tutti gli attributi.
◦ La proiezione è l’operazione duale della selezione,che produce una porzione verticale della relazione acui è applicata, restituendo tutte le tuple dellarelazione ma su un sottoinsieme degli attributi.
55/89IntroduzioneaiSistemiInformativi
AlgebraRelazionale(6/14)
56/89IntroduzioneaiSistemiInformativi
Cognome Nome Età Stipendio
Rossi Mario 25 2000
Neri Luca 40 3000
Verdi Nico 36 4500
Rossi Marco 40 3900
Impiegati
AlgebraRelazionale(6/14)
57/89IntroduzioneaiSistemiInformativi
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 dellarelazione, c è una costante compatibile con l’attributo A e θ è unoperatore di confronto.
La selezione si effettua permezzo di una formulaproposizionale F su X attributidella relazione a cui è applicatar.
πCognome,Nome(Impiegati)Cognome Nome
Rossi Mario
Neri Luca
Verdi Nico
Rossi Marco
AlgebraRelazionale(6/14)
58/89IntroduzioneaiSistemiInformativi
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 letuple della relazione di partenza sequeste sono significative, ovveronon si hanno valori ridondanti.
AlgebraRelazionale(7/14)L’operatore di join permette di correlare dati contenuti inrelazioni diverse, confrontandone i valori e utilizzando lacaratteristica 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 deglioperandi e le sue tuple sono ottenute combinando le tupledegli operandi con valori uguali sugli attributi comuni.
59/89IntroduzioneaiSistemiInformativi
Impiegato Reparto
Rossi vendite
Neri produzione
Bianchi produzione
R1Impiegato Reparto Capo
Rossi vendite Mori
Neri produzione Bruni
Bianchi produzione Bruni
R1 ⋈R2Reparto Capo
vendite Mori
produzione Bruni
R2
AlgebraRelazionale(8/14)Ciascuna tupla di ciascun operando del join naturalecontribuisce ad almeno una tupla nel risultato del join, in talcaso si dice che il join è completo. Questa proprietà non èsempre verificata, perché presuppone che le due relazionicontengano tuple con gli stessi valori nell’attributo comune.
60/89IntroduzioneaiSistemiInformativi
Impiegato Reparto Capo
Neri produzione Mori
Bianchi produzione Mori
Impiegato Reparto
Rossi vendite
Neri produzione
Bianchi produzione
R1R1 ⋈R2
Reparto Capo
produzione Mori
acquisti Bruni
R2
Ciascuna tupla di ciascun operando del join naturalecontribuisce ad almeno una tupla nel risultato del join, in talcaso si dice che il join è completo. Questa proprietà non èsempre verificata, perché presuppone che le due relazionicontengano 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
R1R1 ⋈R2
Reparto Capo
produzione Mori
acquisti Bruni
R2
AlgebraRelazionale(8/14)
61/89IntroduzioneaiSistemiInformativi
Queste tuple non si ritrovano nel risultatodel join, e sono definite dangling.Queste tuple non si ritrovano nel risultatodel join, e sono definite dangling.
AlgebraRelazionale(8/14)Ciascuna tupla di ciascun operando del join naturalecontribuisce ad almeno una tupla nel risultato del join, in talcaso si dice che il join è completo. Questa proprietà non èsempre verificata, perché presuppone che le due relazionicontengano tuple con gli stessi valori nell’attributo comune.
Possiamo avere che le due relazioni abbiamo tutte tupledangling e il join restituisce una relazione vuota. Nel casoopposto, ciascuna tupla di R1 corrisponde con tutte quelle di R2.
62/89IntroduzioneaiSistemiInformativi
Impiegato Reparto Capo
Neri produzione Mori
Bianchi produzione Mori
Impiegato Reparto
Rossi vendite
Neri produzione
Bianchi produzione
R1R1 ⋈R2
Reparto Capo
produzione Mori
acquisti Bruni
R2
AlgebraRelazionale(9/14)La caratteristica dell’operatore di join naturale di tralasciare letuple di una relazione che non hanno una controparte nell’altrapuò essere utile in alcuni casi, pericoloso in altri. Per questoesiste 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/89IntroduzioneaiSistemiInformativi
AlgebraRelazionale(10/14)
64/89IntroduzioneaiSistemiInformativi
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⋈LEFTR2
Impiegato Reparto Capo
Neri produzione Mori
Bianchi produzione Mori
NULL acquisti Bruni
R1 ⋈RIGHTR2
Impiegato Reparto Capo
Rossi vendite null
Neri produzione Mori
Bianchi produzione Mori
NULL acquisti BruniR1⋈FULLR2
AlgebraRelazionale(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 incomune, allora il join restituisce una relazione con tuple chesono tutte le possibile combinazioni delle tuple delle duerelazioni, e ciò prende il nome di prodotto cartesiano.
65/89IntroduzioneaiSistemiInformativi
AlgebraRelazionale(12/14)
66/89IntroduzioneaiSistemiInformativi
Impiegato Progetto
Rossi A
Neri A
Neri B
Codice Nome
A Venere
B Marte
Impiegati Progetti
Impiegato Progetto Codice Nome
Rossi A A Venere
Neri A A Venere
Neri B A Venere
Rossi A B Marte
Neri A B Marte
Neri B B Marte
Impiegati ⋈ Progetti
AlgebraRelazionale(13/14)Un prodotto cartesiano ha di solito poca utilità, in quantoconcatena tuple non necessariamente correlate dal punto divista semantico e viene spesso seguito da una selezione, checentra l’attenzione su tuple correlate secondo esigenze.
67/89IntroduzioneaiSistemiInformativi
Impiegato Progetto
Rossi A
Neri A
Neri B
Codice Nome
A Venere
B Marte
Impiegati Progetti
Impiegato Progetto Codice Nome
Rossi A A Venere
Neri A A Venere
Neri B B Marte
σProgetto=Codice(Impiegati ⋈ Progetti)
AlgebraRelazionale(14/14)Per questa ragione, viene spesso definito un operatore derivato,espresso per mezzo di altri operatori, chiamato il theta-join,come prodotto cartesiano seguito da una selezione:
R1 ⋈F R2 = σF(R1 ⋈R2 )Un theta-join in cui la condizione di selezione F sia unacongiunzione di atomi di uguaglianza, con un attributo dellaprima relazione ed uno della seconda, viene chiamato equi-join.
Questi join hanno una grande importanza, in quanto la maggiorparte dei sistemi di basi di dati non utilizzano i nomi di attributoper correlare le relazioni, quindi non utilizzano il join naturale,ma il theta-join e l’equi-join.
68/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(1/4)
In generale, un’interrogazione può essere definita come unafunzione che, applicata a istanze di basi di dati, producerelazioni. Più precisamente, dato uno schema R di base di dati,un’interrogazione è una funzione che, per ogni istanza r di R,produce una relazione su un dato insieme di attributi X. Leespressioni dei vari linguaggi di interrogazione “rappresentano”o “realizzano” interrogazioni: ogni espressione definisce unafunzione. Indichiamo con E(R) il risultato dell’applicazionedell’espressione E alla base di dati con schema R.
In algebra relazionale, le interrogazioni su uno schema di base didati R vengono formulate con espressioni i cui atomi sono (orappresentano porzioni di) relazioni in R.
69/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(2/4)
Consideriamo due relazioni:Impiegati(Matr.,Nome,Età,Stipendio)
Supervisione(Capo,Impiegato)
70/89IntroduzioneaiSistemiInformativi
Matr. Nome Età Stipendio
101 MarioRossi 34 40
103 MarioBianchi 23 35
104 LuigiNeri 38 61
105 Nico Bini 44 38
210 MarcoCelli 49 60
231 Siro Bisi 50 60
252 Nico Bini 44 70
301 SergioRossi 34 70
375 MarioRossi 50 65
Capo Impiegato
210 101
210 103
210 104
231 105
301 210
301 231
375 252
Impiegati Supervisione
InterrogazioniinAlgebraRelazionale(3/4)
Prima interrogazione: trovare Matricola, Nome ed età degliimpiegati che guadagnano più di 40 mila euro:
71/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(3/4)
Prima interrogazione: trovare Matricola, Nome ed età degliimpiegati che guadagnano più di 40 mila euro:
πMatr.,Nome,Età(σStipendio>40(Impiegati))
Seconda interrogazione: trovare le matricole dei capi per gliimpiegati che guadagnano più di 40 mila euro:
72/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(3/4)
Prima interrogazione: trovare Matricola, Nome ed età degliimpiegati che guadagnano più di 40 mila euro:
πMatr.,Nome,Età(σStipendio>40(Impiegati))
Seconda interrogazione: trovare le matricole dei capi per gliimpiegati che guadagnano più di 40 mila euro:
πCapo(Supervisione⋈Impiegato=Matr.(σStipendio>40(Impiegati)))
Terza interrogazione: trovare nome e stipendio dei capi per gliimpiegati che guadagnano più di 40 mila euro:
73/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(3/4)
Prima interrogazione: trovare Matricola, Nome ed età degliimpiegati che guadagnano più di 40 mila euro:
πMatr.,Nome,Età(σStipendio>40(Impiegati))
Seconda interrogazione: trovare le matricole dei capi per gliimpiegati che guadagnano più di 40 mila euro:
πCapo(Supervisione⋈Impiegato=Matr.(σStipendio>40(Impiegati)))
Terza interrogazione: trovare nome e stipendio dei capi per gliimpiegati che guadagnano più di 40 mila euro:
πNomeC,StipC(ρMatr.C,NomeC,EtàC,StipCçMatr.,Nome,Età,Stipendio(Impiegati)⋈Matr.C =CapoSupervisione ⋈ Impiegato=Matr.(σStipendio>40(Impiegati)))
74/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(4/4)
Quarta interrogazione: trovare gli impiegati che guadagnano piùdel corrispettivo capo, mostrando matricola, nome e stipendiodi ciascuno di essi e del capo:
75/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(4/4)
Quarta interrogazione: trovare gli impiegati che guadagnano piùdel corrispettivo capo, mostrando matricola, nome e stipendiodi ciascuno di essi e del capo:
πMatr.,Nome,Stip,Matr.C,NomeC,StipC(σStip>StipC(ρMatr.C,NomeC,EtàC,StpCç
Matr.,Nome,Età,Stipendio(Impiegati) ⋈Matr.C =Capo Supervisione⋈Impiegato=Matr.(σStipendio>40(Impiegati))))
Quinta interrogazione: trovare matricola e nome dei capi i cuiimpiegati guadagnano più di 40 mila euro:
76/89IntroduzioneaiSistemiInformativi
InterrogazioniinAlgebraRelazionale(4/4)
Quarta interrogazione: trovare gli impiegati che guadagnano piùdel corrispettivo capo, mostrando matricola, nome e stipendiodi ciascuno di essi e del capo:
πMatr.,Nome,Stip,Matr.C,NomeC,StipC(σStip>StipC(ρMatr.C,NomeC,EtàC,StpCç
Matr.,Nome,Età,Stipendio(Impiegati) ⋈Matr.C =Capo Supervisione⋈Impiegato=Matr.(σStipendio>40(Impiegati))))
Quinta interrogazione: trovare matricola e nome dei capi i cuiimpiegati guadagnano più di 40 mila euro:
πMatr.,Nome(Impiegati ⋈Matr.=Capo(πCapo(Supervisione)–πCapo(Supervisione⋈Imp=Matr.(σStipendio>40(Impiegati)))))
77/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (1/9)RelaX è un’applicazione on-live per la valutazione diinterrogazioni in algebra relazionale, sviluppato dal gruppo diricerca sui database dell’Università di Innsbruck e disponibile suhttps://dbis-uibk.github.io/relax/.
Cliccare su get started per iniziare.
78/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (2/9)Selezionare una base di dati su cui lavorare, nel nostro caso:
79/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (3/9)Questa base di dati ha il seguente schema:
80/89IntroduzioneaiSistemiInformativi
NomeColonna Tipo didati
employee_id numero
name string
expertice string
boss number
assistantNomeColonna Tipo didati
employee_id numero
name string
type string
room number
professor
NomeColonna Tipo didati
student_id numero
name string
semester number
studentNomeColonna Tipo didati
lecture_id numero
title string
credits number
lectured_by number
lectureNomeColonna Tipo didati
student_id numero
lecture_id numero
employee_id numero
grade numero
grade
NomeColonna Tipo didati
student_id numero
lecture_id numero
attends
NomeColonna Tipo didati
predecessor numero
successor numero
requires
Esercitazione:RelaX (4/9)Questa base di dati è popolata come segue:
81/89IntroduzioneaiSistemiInformativi
employee_id
name expertice boss
3002 Platon Ideenlehre 2125
3003 Aristoteles Syllogistik 2125
3004 Wittgenstein Sprachtheorie 2126
3005 Rhetikus Planetenbewegung 2127
3006 Newton KeplerscheGesetze 2127
3007 Spinoza GottundNatur 2134
assistantemployee_id name type room
2125 Sokrates C4 226
2126 Russel C4 232
2127 Kopernikus C3 310
2133 Popper C3 52
2134 Augustinus C3 309
2136 Curie C4 36
2137 Kant C4 7
professor
Esercitazione:RelaX (5/9)
82/89IntroduzioneaiSistemiInformativi
student_id name semester
24002 Xenokrates 18
25403 Jonas 12
26120 Fichte 10
26830 Aristoxenos 8
27550 Schopenhauer 6
28106 Carnap 3
29120 Theophrastos 2
29555 Feuerbach 2
student lecture_id title credits lectured_by
4052 Logik 4 2125
4630 Die3Kritiken 4 2137
5001 Grundzuege 4 2137
5022 GlaubeundWissen 2 2134
5041 Ethik 4 2125
5043 Erkenntnistheorie 3 2126
5049 Maeeutik 2 2125
5052 Wissenschaftstheorie 3 2126
5216 Bioethik 2 2126
5259 DerWienerKreis 2 2133
lecture
Esercitazione:RelaX (6/9)
83/89IntroduzioneaiSistemiInformativi
student_id lecture_id
27550 4052
26120 5001
27550 5001
29120 5001
29555 5001
25403 5022
29555 5022
28106 5041
29120 5041
29120 5049
28106 5052
28106 5216
28106 5259
attends
studente_id lecture_id employee_id grade
25403 5041 2125 2
27550 4630 2137 2
28106 5001 2126 1
grade
predecessor successor
5001 5041
5001 5043
5001 5049
5041 5052
5043 5052
5041 5216
5052 5259
requires
Esercitazione:RelaX (7/9)L’applicazione consente di digitare interrogazioni in algebrarelazionale ed eseguirle sulla base di dati scelta. Ad esempio,determiniamo il nome degli studenti che seguono le lezioni delprof. Sokrates:πname(student ⋈((σname=“Sokrates”(professor)⋈employee_id=lectured_bylecture)⋈attends))
84/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (7/9)L’applicazione consente di digitare interrogazioni in algebrarelazionale ed eseguirle sulla base di dati scelta. Ad esempio,determiniamo il nome degli studenti che seguono le lezioni delprof. Sokrates:πname(student ⋈((σname=“Sokrates”(professor)⋈employee_id=lectured_bylecture)⋈attends))
85/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (8/9)
86/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (8/9)
87/89IntroduzioneaiSistemiInformativi
Esercitazione:RelaX (9/9)Utilizzare l’applicazione per formulare le seguenti interrogazioni:◦ I nomi dei professori e dei relativi studenti che hanno
ottenuto dei voti superiori a 2;◦ Il titolo delle lezioni, e i nomi dei professori che le tengono,
seguiti da studenti appartenenti a semestri con numeroidentificativo superiore o pari a 8;
◦ I crediti conseguiti dagli studenti con un voto maggiore opari a 2 con il titolo del corso e il nome degli studenti;
◦ Il nome dei professori e i titoli dei corsi per cui alcunistudenti hanno ottenuto una votazione.
88/89IntroduzioneaiSistemiInformativi
Riferimenti• Capitolo1• Paragrafi1[Introduzione:lagestionedell’Informazione],e2[EsempidiSistemiInformativi].
• Capitolo2• Paragrafi1[Introduzionealmodellorelazionale],e2[BasidiDatievincolidiintegrità].
• Capitolo5• Paragrafi1[Introduzione],e2[OperazioniInsiemistiche],4[OperazioniRelazionali],e5[Ridenominazione].
89/89IntroduzioneaiSistemiInformativi