Esempio di analisi

La traccia propone la realizzazione di un sistema per la gestione dei percorsi Alternanza Scuola-Lavoro. Per l’analisi della realtà si utilizza il modello Entità- Relazioni che produce un diagramma UML.
Ipotesi sulla struttura del sistema
Per gestire tutte le informazioni necessarie il sistema dovrà essere costituito da un database formato da diverse tabelle relazionate tra di loro. Un percorso di Alternanza è caratterizzato da un partecipante, che appunto la svolgerà; da un Azienda che si offre volontaria per la realizzazione della formazione degli studenti; da un tutor aziendale che presterà le proprie lezioni al partecipante e da un docente referente di una classe a cui lo studente appartiene. Essa quindi prevedrà un corso, con rispettiva descrizione, modalità di svolgimento, inizio, durata e fine; a fine corso l’azienda rilascerà un attestato con la rispettiva valutazione. Tutto questa organizzazione è messa a disposizione per ogni alunno di ogni classe per i relativi anni partendo dall’anno 2011/2012.

Analisi delle realtà
Per la realizzazione di questi sistema potremmo utilizzare diverse modellazioni, per comodità useremo la modellazione Entità- Relazione.

Individualizzazione delle entità

Entità ‘Alternanza’: questa entità racchiude le informazioni relative ad un corso. Quindi le istanze saranno: l’azienda presso la quale lo studente effettuerà il corso; la classe a cui appartiene lo stesso; lo studente stesso; il docente referente della classe e l’anno in cui si svolgerà (o si è svolta) l’alternanza. Questi campi sono tutte chiavi esterne poiché, attraverso queste, ci collegheremo alle rispettive tabelle contenenti informazioni più dettagliate.
Tutti i campi sono obbligatori.
Entità ‘Azienda’: questa entità racchiude le informazioni riguardanti l’azienda tra cui il nome; la zona in cui essa è situata; il tutor referente; lo studente presso la quale presterà il tirocinio ed infine l’alternanza. Il tutor referente, lo studente e l’alternanza sono delle chiavi esterne. Il campo ‘Zona’ è opzionale, i campi rimanenti invece sono obbligatori.

Entità ‘Studenti’: è l’anagrafica di uno studente che parteciperà ad un corso di formazione alternanza scuola-lavoro. Risulterà essere un catalogo di tutti gli alunni che vorranno frequentare il corso.
Si memorizzeranno i dati anagrafici; successivamente:
• La classe a cui appartiene;

• L’azienda presso la quale effettuerà l’alternanza;
• Le riprese del corso;
• Il tutor aziendale;
• I dati riguardanti l’alternanza;
• L’attestato;
• La specializzazione.
Questi campi contengono tutti delle chiavi esterne. Tutti i campi sono obbligatori.
Entità ‘Classe’: è costituita dal nome; dal docente referente; dagli studenti e infine dall’Alternanza in cui una classe è coinvolta. Tutti i campi sono obbligatori.
Entità ‘Tutor aziendale’: questo tutor sarà identificato in un Nome; un Incarico; l’Azienda per cui lavora ed infine gli studenti a lui assegnati. Tutti i campi, eccetto ‘Incarico’, sono obbligatori.

Entità ‘Docente referente’: anch’egli avrà un Nome e la classe di cui è stato votato referente.
Per una gestione più precisa e dettagliata di queste informazioni si avrà bisogno di altre entità come per esempio l’entità ‘Anno’ che appunto sarà un catalogo di tutti gli anni in cui si sono svolte le alternanze.
Ogni alunno inoltre può effettuare più di una ripresa in azienda e quindi sarà necessaria la creazione di una tabella riguardante le informazioni di queste ‘riprese’. Si avrà quindi lo Studente; l’Azienda; l’Anno; N° ripresa (un identificativo della ripresa); un Periodo. Sono tutti campi obbligatori.

Come si è visto precedentemente, una ripresa è caratterizzata da un ‘Periodo’ dunque è necessario creare un entità che racchiude le informazioni relative al singolo periodo di un alunno. Anche questa entità è costituita da:

• Azienda;

• Studenti;
• Inizio;
• Durata;
• Fine;
• Ripresa;
• Descrizione;
• Argomento;
• Modalità di svolgimento;
• Valutazione;
I campi Azienda, Studenti, Ripresa, Valutazione sono caratterizzati da chiavi esterne. Tutti i campi sono obbligatori.
A fine ripresa o corso di Alternanza, ogni alunno avrà una ‘Valutazione’, dunque una Valutazione numerica; questa verrà inserita in un Attestato riguardante un Periodo. I campi ‘Attestato’ e ‘Periodo’ sono identificati in chiavi esterne. Sono tutti campi obbligatori.
Infine, l’‘Attestato’ di ogni alunno sarà rilasciato dal Tutor al Docente referente e riguarderà lo Studente, presenterà una descrizione delle Attività svolte ed avrà una Valutazione. I campi Valutazione, Tutor, Docente e Studente sono identificati in chiavi esterne. Ogni campo è obbligatorio.

Entità ‘Alternanza'

Nome Tipo Grandezza Obbligatorio
Azienda Numerico 50 Si
Classe Numerico 50 Si
Docente Numerico 50 Si
Studenti Numerico 50 Si
Anno Numerico 50 Si


Entità ‘Studenti’

Nome Tipo Grandezza Obbligatorio
Nome Testo breve 100 No
Cognome Testo breve 100 Si
Data di nascita Data/ora 100 No
Id_Classe Numerico 100 Si
Id_Azienda Numerico 100 Si
Id_Riprese Numerico 100 Si
Id_Tutor Numerico 100 Si
Id_Alternanza Numerico 100 Si
Id_Attestato Numerico 100 Si
Specializzazione Testo lungo 100 Si

Entità ‘Azienda’

Nome Tipo Grandezza Obbligatorio

Nome Testo breve 50 Si
Zona Testo lungo 200 No
Tutor Numerico 30 Si
Studenti Numerico 30 Si
Id_Alternanza Numerico 30 Si

Entità ‘Tutor aziendale’

Nome Tipo Grandezza Obbligatorio
Nome Testo breve 100 Si
Incarico Testo lungo 200 No
Azienda Numerico 100 Si
Studenti Numerico 100 Si

Entità ‘Docente referente’

Nome Tipo Grandezza Obbligatorio
Nome Testo breve 100 Si
Classe Numerico 50 Si

Entità ‘Classe’

Nome Tipo Grandezza Obbligatorio
Nome classe Testo breve 50 Si
Docente Numerico 30 Si
Studenti Numerico 30 Si
Id_Alternanza Numerico 30 Si

Entità ‘Anno’

Nome Tipo Grandezza Obbligatorio
Anno Testo breve 4 Si

Entità ‘Riprese’

Nome Tipo Grandezza Obbligatorio
Studenti Numerico 50 Si
Azienda Numerico 50 Si
Anno Numerico 50 Si
N° ripresa Numerico 50 Si
Id_Periodo Numerico 50 Si

Entità ‘Periodo’

Nome Tipo Grandezza Obbligatorio
Azienda Numerico 50 Si
Id_Azienda Numerico 50 Si
Studenti Numerico 50 Si
Inizio Data/Ora 8 Si
Durata Numerico 50 Si
Fine Data/Ora 8 Si
Id_Studenti Numerico 50 Si
Id_Riprese Numerico 50 Si
Descrizione Testo lungo 100 Si
Argomento Testo lungo 100 No
Modalità di svolgimento Testo lungo 100 No
Valutazione Numerico 50 Si
Id_Valutazione Numerico 50 Si
N° studenti Numerico 50 Si

Entità ‘Valutazione’

Nome Tipo Grandezza Obbligatorio
Attestato Numerico 50 Si
Periodo Numerico 50 Si
Valutazione Numerico 50 Si

Entità ‘Attestato’

Nome Tipo Grandezza Obbligatorio
Studenti Numerico 50 Si
Attività svolte Testo lungo 200 No
Valutazione Numerico 50 Si
Id_Tutor Numerico 50 Si
Id_Docente Numerico 50 Si

Individuazione delle associazioni

Associazione Alternanza/Anno ‘svolta durante’: 1:N Si possono avere più alternanze in un anno. Questa relazione rende possibile il collegamento tra alternanze e i vari anni dunque si avrà uno storico di tutti i percorsi avvenuti.
Associazione Alternanza/Azienda ‘svolta presso ’1:N Un azienda può avere più alternanze. Attraverso questa associazione si abbineranno al percorso tutti i dati riguardanti l’azienda presso la quale l’alunno si recherà.
Associazione Alternanza/Studenti ‘Frequenta’: 1:N TOTALE. Un’alternanza può avere più studenti e più studenti possono frequentare più alternanze. Si abbinerà lo studente all’alternanza con i relativi campi e informazioni.
Associazione Alternanza/Periodo ‘Dura’: 1:1 Ogni alternanza può durare un solo periodo. Ogni corso dura un periodo dunque con questa associazione sarà associato un periodo con le rispettive informazioni all’alternanza.
Associazione Azienda/Tutor aziendale ‘Nomina’: 1:1 Ogni azienda nomina un tutor e ogni tutor è responsabile di un azienda. Ogni azienda nomina un tutor aziendale che andrà ad insegnare il mestiere allo studente dunque con questa associazione verrà assegnato all’azienda un tutor.
Associazione Tutor/Studenti ‘Insegna’: 1:N Un tutor può insegnare a più studenti. Ogni tutor dunque ha il compito di mostrare tutto ciò che uno studente dovrebbe imparare. Con questa associazione viene associato un tutor ad un alunno e di conseguenza degli alunni ad un tutor.
Associazione Studenti/Classe ‘Riguardanti’: 1:N Una classe può essere costituita da più studenti ma non viceversa. Ogni studente fa parte di una classe quindi attraverso questa associazione verranno assegnati gli alunni alle classi.
Associazione Classe/Docente ‘Responsabile’: 1:N Una classe può avere un docente referente ma un docente può essere responsabile di più classi. Ogni docente, nominato dal Consiglio di Classe, sarà responsabile del percorso di una o più classi, grazie a questa associazione ogni classe avrà un docente referente.
Associazione Studente/Riprese ‘Può frequentare’: 1:N TOTALE Uno studente può frequentare più riprese di alternanza e una ripresa la possono frequentare più studenti. Ciascun alunno potrebbe intraprendere, nel corso degli studi, più di un percorso di alternanza così si assocerà ogni ripresa ad ogni alunno.
Associazione Ripresa/Periodo ‘Dura’: 1:1 Una ripresa dura un periodo e un periodo è riferito ad una ripresa. Ogni ripresa, come un singolo percorso, dura un periodo stabilito da un inizio, una fine, ecc. Con questa relazione quindi ad ogni ripresa si abbineranno le informazioni del periodo riguardante.
Associazione Periodo/Valutazione ‘Ne consegue’: 1:1 Un periodo ne consegue una valutazione. Ogni percorso che un alunno intraprende consegue una valutazione. Abbinando queste due entità si avrà dunque una valutazione riferita al singolo periodo.
Associazione Valutazione/Attestato ‘Inserito in un’: 1:1 Una valutazione è inserita in un attestato. Ogni valutazione è inserita poi, alla fine del corso, in un attestato che l’azienda rilascerà al docente referente; mediante questa associazione nell’ attestato sarà inserita la valutazione e tutte le informazioni relative.

Schema logico

Si utilizza il modello relazionale. Ogni associazione 1:N tra due entità viene sostituita dall’esportazione della chiave primaria del lato 1 come chiave esterna del lato N.
Relazioni
Alternanza (ID: numerico;
Azienda: Numerico;
Classe: Numerico;
Docente: Numerico;
Studenti: Numerico;
Anno: Numerico. )
Studenti ( ID: numerico;
Nome: Testo breve;
Cognome: Testo breve;
Data di nascita: Data/ora;
Id_Classe: Numerico;
Id_Azienda: Numerico;
Id_Riprese: Numerico;
Id_Tutor: Numerico;
Id_Alternanza: Numerico;
Id_Attestato: Numerico;
Specializzazione: Testo lungo.)
Azienda ( ID: Numerico;
Nome: Testo breve;
Zona: Testo breve;
Tutor: Numerico;
Studenti: Numerico;
Id_Alternanza: Numerico.)
Tutor aziendale (ID: Numerico;
Nome: Testo breve;
Incarico: Testo lungo;
Azienda: Numerico;
Studenti: Numerico. )

Docente referente ( ID: Numerico;
Nome: Testo breve;
Classe: Numerico.)
Classe ( ID: Numerico;
Nome classe: Testo breve;
Docente: Numerico;
Studenti: Numerico;
Id_Alternanza: Numerico. )
Anno ( ID: Numerico;
Anno: Testo breve,)
Riprese ( ID: Numerico;
Studenti: Numerico;
Azienda: Numerico;
Anno: Numerico;
N° ripresa: Numerico;
Id_Periodo: Numerico.)
Periodo ( ID: Numerico;
Azienda: Numerico;
Studenti: Numerico;
Inizio: Data/ORA;
Durata: Numerico;
Fine: Data/Ora;
Id_Studenti: Numerico;
Id_Riprese: Numerico;
Descrizione: Testo lungo;
Argomento: Testo lungo;
Modalità di svolgimento: Testo lungo;
Valutazione: Numerico;
N° studenti: Numerico.)
Valutazione ( ID: Numerico;
Attestato: Numerico;
Periodo: Numerico;
Valutazione: Numerico.)
Attestato ( ID: Numerico;
Studenti: Numerico;
Attività svolte: Testo lungo;
Valutazione: Numerico;
Id_Tutor: Numerico;
Id_Docente: Numerico.)


Modello fisico

CREATE TABLE Alternanza (
ID VARCHAR (10) NOT NULL,
Azienda VARCHAR (50) NOT NULL,
Classe VARCHAR (50) NOT NULL,
Docente VARCHAR (50) NOT NULL,
Studenti VARCHAR (50) NOT NULL,
Anno VARCHAR (50) NOT NULL,
PRIMARY KEY (ID)
FOREIGN KEY (Azienda) REFERENCES Azienda(Id_Alternanza)
FOREIGN KEY (Classe) REFERENCES Classe(ID)
FOREIGN KEY (Docente) REFERENCES Docente(ID)
FOREIGN KEY (Studenti) REFERENCES Studenti(Id_Alternanza)
FOREIGN KEY (Anno) REFERENCES Anno(ID)
);


CREATE TABLE Studenti (
ID VARCHAR (10) NOT NULL,
Nome TEXT (50) NOT NULL,
Cognome TEXT (50) NOT NULL,
Data di nascita DATE (10) NOT NULL,
Id_Classe VARCHAR (50) NOT NULL,
Id_Azienda VARCHAR (50) NOT NULL,
Id_Riprese VARCHAR (50) NOT NULL,
Id_Tutor VARCHAR (50) NOT NULL,
Id_Alternanza VARCHAR (50) NOT NULL,
Id_Attestato VARCHAR (50) NOT NULL,
Specializzazione MEDIUMTEXT (100) NOT NULL,
PRIMARY KEY (ID)
FOREIGN KEY (Id_Classe) REFERENCES Classe(ID)
FOREIGN KEY (Id_Azienda) REFERENCES Azienda(ID)
FOREIGN KEY (ID) REFERENCES Riprese(Studenti)
FOREIGN KEY (Id_Tutor) REFERENCES Tutor(ID)
FOREIGN KEY (Id_Alternanza) REFERENCES Alternanza(ID)
FOREIGN KEY (ID) REFERENCES Attestato(Studente)
);
CREATE TABLE Azienda (
ID VARCHAR (10) NOT NULL,
Nome TEXT (50) NOT NULL,
Zona TEXT (100) NOT NULL,
Tutor VARCHAR (30) NOT NULL,
Studenti VARCHAR (30) NOT NULL,
Id_Alternanza VARCHAR (30) NOT NULL
PRIMARY KEY (ID)
FOREIGN KEY (Tutor) REFERENCES Tutor(ID)
FOREIGN KEY (ID) REFERENCES Studenti(Id_Azienda)
FOREIGN KEY (Id_Alternanza) REFERENCES Alternanza(ID)
);
CREATE TABLE Tutor aziendale (
ID VARCHAR (10) NOT NULL,
Nome: TEXT (50) NOT NULL,
Incarico: TEXT (100) NOT NULL,
Azienda VARCHAR (30) NOT NULL,
Studenti VARCHAR (30) NOT NULL,
PRIMARY KEY (ID)
FOREIGN KEY (Azienda) REFERENCES Azienda(Tutor),
FOREIGN KEY (Studenti) REFERENCES Studenti(Id_Tutor),
);
CREATE TABLE Docente referente (
ID VARCHAR (10) NOT NULL,
Nome TEXT (50) NOT NULL,
Classe VARCHAR (30) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (ID) REFERENCES Classe ( Docente referente)
);
CREATE TABLE Classe (
ID VARCHAR (10) NOT NULL,
Nome classe TEXT (8) NOT NULL,
Docente VARCHAR (30) NOT NULL,
Studenti VARCHAR (30) NOT NULL,
Id_Alternanza VARCHAR (30) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (Docente) REFERENCES Docente(ID),
FOREIGN KEY (ID) REFERENCES Studenti(Id_Classe),
FOREIGN KEY (ID) REFERENCES Alternanza(Classe),
);
CREATE TABLE Anno (
ID VARCHAR (10) NOT NULL,
Anno DATE (10) NOT NULL,
PRIMARY KEY (ID),
);
CREATE TABLE Riprese (
ID VARCHAR (10) NOT NULL,
Studenti VARCHAR (30) NOT NULL,
Azienda VARCHAR (30) NOT NULL,
Anno VARCHAR (30) NOT NULL,
N° ripresa VARCHAR (100) NOT NULL,
Id_Periodo VARCHAR (30) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (Studenti) REFERENCES Studenti(ID),
FOREIGN KEY (Azienda) REFERENCES Azienda(ID),
FOREIGN KEY (Anno) REFERENCES Anno(ID),
FOREIGN KEY (Id_Periodo) REFERENCES Periodo(ID),
);
CREATE TABLE Periodo (
ID VARCHAR (10) NOT NULL,
Azienda VARCHAR (30) NOT NULL,
Inizio DATE (10) NOT NULL,
Durata CHAR (100) NOT NULL,
Fine DATE (10) NOT NULL,
Id_Studenti VARCHAR (30) NOT NULL,
Id_Riprese VARCHAR (30) NOT NULL,
Descrizione MEDIUMTEXT (100) NOT NULL,
Argomento MEDIUMTEXT (100) NOT NULL,
Modalità di svolgimento MEDIUMTEXT (100) NOT NULL,
Valutazione VARCHAR (30) NOT NULL,
N° studenti: CHAR (200) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (Azienda) REFERENCES Azienda(ID),
FOREIGN KEY (Id_Studenti) REFERENCES Studenti(ID),
FOREIGN KEY (Id_Riprese) REFERENCES Riprese(ID),
FOREIGN KEY (Valutazione) REFERENCES Valutazione(ID),
);
CREATE TABLE Valutazione (
ID VARCHAR (10) NOT NULL,
Attestato VARCHAR (30) NOT NULL,
Periodo VARCHAR (30) NOT NULL,
Valutazione CHAR (100) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (Attestato) REFERENCES Attestato(ID),
FOREIGN KEY (Periodo) REFERENCES Periodo(ID),
);
CREATE TABLE Attestato (
ID VARCHAR (10) NOT NULL,
Studenti VARCHAR (30) NOT NULL,
Attività svolte TEXT (100) NOT NULL,
Valutazione VARCHAR (30) NOT NULL,
Id_Tutor VARCHAR (30) NOT NULL,
Id_Docente VARCHAR (30) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (Studenti) REFERENCES Studenti(ID),
FOREIGN KEY (Valutazione) REFERENCES Valutazione(ID),
FOREIGN KEY (Id_Tutor) REFERENCES Tutor(ID),
FOREIGN KEY (Id_Docente) REFERENCES Docente(ID),
);

Interrogazioni

A. Elencare le aziende ed i relative tutor.
Per effettuare questa interrogazione in linguaggio SQL utilizzeremo dei comandi come Select, che selezionerà i campi richiesti, From li selezionerà dalle tabelle che scriveremo dopo il comando, Where la condizione. La nostra condizione per selezionare tutti i campi delle aziende e tutor (tutti i campi li abbiamo selezionati con un asterisco) è se l’ID dell’azienda risulta essere uguale all’id dell’azienda inserito nella tabella dei tutor.
SELECT *
FROM Azienda, Tutor
WHERE Azienda.id=tutor.Id_Azienda
B. Elencare gli studenti delle classi quinte che partecipano all’attività di alternanza, suddivisi per specializzazione.
Questa interrogazione richiede la stampa in output degli studenti che partecipano al percorso di alternanza, che frequentano le classi 5. Successivamente saranno suddivisi per specializzazione. Quindi con SELECT si selezioneranno tutti i campi dalla tabella Studenti, dove l’ID dello studente è uguale al campo Studenti della tabella Alternanza. Successivamente si sceglieranno quegli studenti in cui il contenuto del campo Classe è uguale a ‘5’ e si suddivideranno per ‘Specializzazione’.

SELECT *
FROM Studenti
WHERE Studenti.Id=Alternanza.Studenti
AND Classe LIKE ‘5’ ORDER BY Specializzazione

C. Determinare il numero di studenti che ciascuna azienda ha accolto nell’anno scolastico 2013/2014
Per determinare il numero degli studenti che si sono recati in aziende nell’anno 2013/2014 si utilizzerà una semplice SELECT sull’Id dell’azienda. Contiamo l’id degli studenti con il nome NumeroStudenti. L’id dell’azienda la si prenderà dalle tabelle Studenti e Alternanza quando L’id dello studente è uguale allo studente nella tabella dell’alternanza. Tutto questo durante l’anno 2013/2014.

SELECT Id.Azienda COUNT (Studenti.ID) AS NumeroStudenti
FROM Studenti,Alternanza
WHERE Studenti.ID=Alternanza.Studenti
AND Alternanza.Anno= 2013/2014


D. Stabilire la classe con il maggior numero di studenti che, nell’anno scolastico 2012/2013, hanno frequentato i percorsi di alternanza.
Per effettuare la ricerca della classe con il maggior numero di studenti si realizzerà una SELECT COUNT che conterà gli ID degli studenti con il nome NumeroStudenti; dalle tabelle Studenti e Alternanza quando l’ID degli studenti è uguale agli studenti della tabella alternanza raggruppati per l’anno di alternanza 2012/2013.
SELECT COUNT (Studenti.ID) AS NumeroStudenti
From Studenti,Alternanza
Where Studenti.ID=Alternanza.Studenti
GROUP BY Alternanza.Anno=2012/2013
E. Stampare gli attestati relative ai periodi di formazione a cui ha partecipato un singolo studenti.
Per questa richiesta facciamo una semplice SELECT su tutti i campi della tabella Attestati quando l’id studente è uguale allo studente della tabella Alternanza.
SELECT *
FROM Attestati
WHERE Studenti.ID=Alternanza.Studenti

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email