Un insieme di officine

Produrre lo schema ER e lo schema relazionale corrispondente ad un’applicazione riguardante un insieme di officine, facendo riferimento alla seguenti specifiche:

Delle officine interessano: nome, indirizzo, numero di dipendenti, dipendenti (con l’informazione su quanti anni di servizio), e direttore. Si noti che ogni officina ha uno ed un solo direttore.

Dei dipendenti e dei direttori interessano:

codice fiscale, indirizzo, numeri di telefono.

Ogni riparazione è effettuata da una ed una sola officina, e riguarda uno ed un solo veicolo. Di ogni riparazione interessano:

codice (univoco nell’ambito dell’officina), ora e data di accettazione del veicolo, e, nel caso di riparazione terminata, ora e data di riconsegna del veicolo.

Dei veicoli interessano:

modello, tipo, targa, anno di immatricolazione, e proprietario. Ogni veicolo ha uno ed un solo proprietario.

Dei proprietari di veicoli interessano: codice fiscale, indirizzo, e numeri di telefono.

NB: per completezza si considera interessante anche il dato che riguarda gli anni di lavoro del direttore relativi al periodo di direzione di un’officina.

Soluzione

Modello concettuale

Identifichiamo  le entità e le relazioni coinvolte.

Entità (attributi)

Officina (nome, indirizzo, numero di dipendenti)

Dipendente (codice fiscale, indirizzo, numero di telefono)

Riparazione (codice, ora e data di accettazione)

Riparazione terminata (ora e data di riconsegna)

Veicolo (modello, tipo, targa, anno di immatricolazione)

Proprietario (codice fiscale, indirizzo, numero di telefono)

Relazione (attributi)

Lavora in: dipendente – officina (anni di servizio)

Dirige: dipendente – officina (anni di servizio)

Effettua: officina- riparazione

Riguarda: riparazione – veicolo

Possiede: proprietario – veicolo

Progetto concettuale

Le entità:

Proprietario Dipendente e Direttore hanno attributi comuni quindi possiamo vederle come  specializzazioni d’entità Persona  

 

L’entità dipendente rappresenta l’insieme dei dipendenti di tutte le officine, la relazione lavora in rappresenta per ogni lavoratore l’officina in cui lavora, ovvero per ogni officina i dipendenti che ci lavorano.

Un dipendente per essere considerato tale deve lavorare in almeno un’officina e al massimo in una sola officina mentre in ogni officina lavora almeno un dipendente e al massimo N dipendenti.

Un direttore  può dirigere al massimo un’officina. Ogni officina è diretta da uno e un solo  direttore.

 Entrambe le relazioni lavora e dirige possiedono un attributo che fornisce il dato sugli “anni di servizio”.

La relazione possiede tra veicolo e proprietario rappresenta per ogni veicolo l’informazione in merito al suo proprietario, ovvero per ogni proprietario i veicoli che lo stesso possiede, Ogni veicolo ha uno e un solo proprietario mentre un proprietario, che per essere un’istanza deve possedere almeno un veicolo, potrebbe possederne N.

La relazione effettua tra officina e riparazione rappresenta per ogni officina le riparazioni che ha effettuato oppure che sta effettuando, viceversa rappresenta per ogni riparazione l’officina che l’ha effettuata. L’entità riparazione, che rappresenta l’insieme delle riparazioni in corso e di quelle già effettuate, il sottoinsieme riparazione effettuata possiede un ulteriore attributo che è “ora e la data di riconsegna”.

 

La distinzione tra riparazioni in corso e riparazioni effettuate è stata ottenuta mediante una generalizzazione, in pratica la riparazione effettuata è una specializzazione, ossia un caso particolare, dell’entità riparazione. Tutte le proprietà dell’entità riparazione vengono ereditate dall’entità riparazione effettuata e non rappresentate esplicitamente. In questo caso, poiché vi è solo un’entità figlia (riparazione effettuata) si tratta di un sottoinsieme. Un’officina per essere considerata un’istanza deve aver effettuato almeno una riparazione ma può averne effettuate N, mentre una riparazione viene effettuata in una e una sola officina.

La relazione riguarda tra riparazione e veicolo rappresenta per ogni riparazione il veicolo su cui e stata effettuata, inoltre rappresenta per ogni veicolo le riparazioni che sono state eseguite.

 

Lo schema complessivo è rappresentato:

Ristrutturazione

Prima di procedere alla realizzazione dello schema logico si deve effettuare la ristrutturazione dello schema concettuale andando a guardare:

Ridondanze:

L’attributo numero di dipendenti dell’entità officina è un valore calcolabile quindi possiamo eliminarlo e ricavare il suo valore al”occorrenza.

Attributo composto

L’attributo indirizzo è un attributo composto si può dividere nelle su componenti, oppure creare un’entità separata con chiave artificiale e collegarla alle entità persona.

Attributo multivalore

L’attributo telefono è un attributo multivalore ma per non complicare lo schema si suppone di memorizzare un solo numero di telefono

Gerarchie:

Nel nostro schema sono presenti due gerarchie:

  1. Riparazione ->Riparazioni Terminate
  2. Persona -> Dipendente direttore

Non potendole rappresentare direttamente ne modello relazionale si devono eliminare

L’attributo dell’entità figlia riparazioni terminate lo inseriamo nell’entità madre.

L’entità persona l’associamo con le entità figlie

Lo schema completo diventa:

Modello Relazionale

Ogni entità diventa una relazione

Persona(CodFis,via,civico, città,telefono)

Direttore(CodFis, matricola)

Dipendente(CodFis, matricola)

Le entità DIRETTORE e DIPENDENTE hanno l’dentificatore primario esterno tramite le associazioni ISA, pertanto ereditano quello di PERSONA

Quindi le corrispondenti relazioni hanno tutte come chiave primaria CodFisc

Officina(Nome, via,civico, città)

Riparazione(Codice,  OraDataAcc,OraDataRic)

Veicolo(Targa, Modello, Tipo, AnnoImm)

Ora esaminiamo le associazioni:

Direttore->Officina 1 a 1

la chiave primaria di Direttore diventa chiave esterna in officina e l’attributo anni di servizio viene assorbito dall’entità Direttore. 

Officina(nome(PK),direttore(FK), via,civico, città) direttore(codf)

Direttore(CodFis, matricola, annidiservizio)

Tra Officina->Dipendente 1 a N  la chiave primaria di officina diventa chiave esterna di Dipendente e anni di servizio diventa un attributo di Dipendente.

Dipendente(CodFis(PK),Officina(FK) matricola,annidiservizio) Officina(Nome)

Tra Persona->Veicolo 1 a N  la chiave primaria di persona diventa chiave esterna di veicolo

Veicolo(Targa(PK), proprietario(FK),Modello, Tipo, AnnoImm) proprietario(codf)

Tra Officina->Riparazione 1 a N  la chiave primaria di officina diventa chiave esterna di Riparazione.  E tra Veicolo->Riparazione 1 a N  la chiave primaria di Veicolo diventa chiave esterna di Riparazione

Riparazione(Codice(PK), Officina(FK),Veicolo(FK), OraDataAcc,OraDataRic) Veicolo(targa),Officina(nome)

Relazione Attributi Chiave Formato Dimensione Null Vincolo
Persona CodF pk testo 16 no di chiave
cognome   testo 20 no  
nome   testo 20 no  
via   testo 20    
numero   Numerico      
citta   testo 20    
Dipendenti Codf pk testo 16 no chiave a codf Persona
matricola   testo 16 no UNICA
Anni di servizio   numero   no  
Officina FK testo 16 no officina.nome
Direttore Codf PK testo 16 no persona.codf
matricola   testo 16 no unico
annidiservizio   numerico   no  
Veicolo targa PK testo 7 no chiave
modello   testo 20    
tipo   testo 20    
AnnoImmatri   data   no minore data attuale
proprietario   testo 16 no persona.codf
Riparazione codice PK numerico ai      
officina FK testo 16 no Officina.nome
veicolo FK testo 7 no Veicolo.targa
OraDataAcc   data e ora   defaultat data attuale  
OraDataRic   data e ora     maggiore OraDataAcc
Officina nome pk testo 16 no chiave
  via   testo 20 no  
  civico   numerico      
  citta   testo 20 no  
  direttore FK testo 16   Direttore.codf

 

 

 

Please follow and like us:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Commenti recenti

Working Hours

  • Monday9am - 6pm
  • Tuesday9am - 6pm
  • Wednesday9am - 6pm
  • Thursday9am - 6pm
  • Friday9am - 6pm
  • SaturdayClosed
  • SundayClosed
Latest Posts

Teachers

Facebook
Twitter
LinkedIn
Contatti

Commenti recenti

Wordpress Social Share Plugin powered by Ultimatelysocial
error

Enjoy this blog? Please spread the word :)

%d blogger hanno fatto clic su Mi Piace per questo: