Esercizio 1 – Modello ER

Si vuole realizzare uno schema ER per gestire i dati dei dipendenti, dei dipartimenti e dei progetti di un’azienda. I requisiti che sono stati raccolti sono i seguenti:

L’azienda è organizzata in dipartimenti. Ogni dipartimento ha un nome, un codice numerico e un numero di telefono.

Ogni dipendente può afferire ad un unico dipartimento (se è stato appena assunto non fa parte di nessun dipartimento) ed è contraddistinto da un codice interno, un codice fiscale, un nominativo (nome, cognome), un indirizzo (via, numero civico, città), uno stipendio, un sesso, una data di nascita, un’età, dagli sport praticati (facoltativo), un indirizzo e-mail (facoltativo) e da almeno due numeri telefonici. Ogni dipartimento può avere più sedi. Ogni sede è identificata dalla città (non possono esistere due sedi nella stessa città) e ha come caratteristiche l’indirizzo (via, numero civico e cap) e la regione.

Ogni dipartimento è diretto da uno specifico dipendente (il direttore di dipartimento) e quest’ultimo può dirigere al più un dipartimento. Si vuole tener traccia della data in cui tale dipendente ha assunto tale ruolo.

Un dipartimento controllata un certo numero di progetti, ognuno dei quali è contraddistinto da un nome, un codice numero, un budget, una data di consegna e una singola sede.

Ogni dipendente può lavorare a più progetti, non necessariamente controllati dallo stesso dipartimento. Si vuole tener traccia del numero di ore per settimana che un dipendente dedica ad ogni progetto. Infine, si voglia tener traccia del supervisore diretto di ogni dipendente. Ogni supervisore può supervisionare più dipendenti.

Si vuole tener traccia, per motivi assicurativi, delle persone (parenti) a carico di ogni dipendente. Di ogni persona a carico siamo interessati al nominativo (nome, cognome), al sesso, alla data di nascita e al legame con l’impiegato (figlio, coniuge, genitore, etc.).

 

Ipotesi aggiuntive

L’azienda è una Software House. I progetti sono progetti software. Ogni progetto può disporre di diverse release. Ad ogni release di un progetto è associato un numero progressivo e una data.

I dipendenti possono essere tecnici o sviluppatori. Di ogni sviluppatore si vuole tenere traccia delle skill specifiche. Gli sviluppatori sono ulteriormente suddivisi in Programmatori e Analisti. Di ogni programmatore occorre riportare i linguaggi di programmazione conosciuti.

Alcuni progetti sono parti di altri progetti e sono detti sottoprogetti.

 

Soluzione Esercizio