1 / 31

EER

EER. Vogliamo aumentare l’espressività degli Entity Model EER: Entity Model Esteso. Concetti fondamentali. Specializzazione/generalizzazione Categorie Associazioni ternarie. Specializzazione/generalizzazione. Specializzazione/generalizzazione Categorie Associazioni ternarie.

dewey
Download Presentation

EER

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EER Vogliamo aumentare l’espressività degli Entity Model EER: Entity Model Esteso

  2. Concetti fondamentali • Specializzazione/generalizzazione • Categorie • Associazioni ternarie

  3. Specializzazione/generalizzazione • Specializzazione/generalizzazione • Categorie • Associazioni ternarie

  4. Specializzazione/generalizzazione:gerarchia is-a Sottoclassi Matricola impiegato Nome Impiegato SUPERCLASSE Data assunzione Pilota Meccanico Amministrativo N. Licenza N. Ore in pista

  5. Specializzazione/generalizzazione: Specializzazione di un ruolo Matricola impiegato Nome Impiegato Data assunzione d d Segretario Ingegnere Stipendiato Tecnico Pagato ad ore Direttore Dirige appartiene Progetto Sindacato

  6. Specializzazione/generalizzazione: La notazione d significa: sottoclassi disgiunte Matricola impiegato Nome Impiegato Data assunzione d d Segretario Ingegnere Stipendiato Tecnico Pagato ad ore Direttore Dirige appartiene Progetto Sindacato

  7. Specializzazione/generalizzazione: La specializzazione può essere totale o parziale Matricola impiegato Nome Impiegato Data assunzione d d Segretario Ingegnere Stipendiato Tecnico Pagato ad ore Direttore Dirige appartiene Progetto Sindacato

  8. Definizione delle specializzazioni Ciascuna delle tabelle delle specializzazioni ha la stessa chiave primaria della generalizzazione più il proprio set di attributi specifici Matricola impiegato Nome Impiegato Data assunzione Matricola impiegato Matricola impiegato Matricola impiegato Pilota Meccanico Amministrativo N. Licenza N. Ore in pista

  9. Definizione delle specializzazioni Questa soluzione va bene qualunque siano i vincoli della specializzazione Matricola impiegato Nome Impiegato Data assunzione Matricola impiegato Matricola impiegato Matricola impiegato Pilota Meccanico Amministrativo N. Licenza N. Ore in pista

  10. Definizione delle specializzazioni Oppure la specializzazione si può definire tramite un attributo Matricola impiegato • Questa soluzione va bene se esistono pochi attributi specifici e se la specializzazione è disgiunta • (avere una sola tabella migliora le prestazioni) Nome Impiegato Data assunzione Tipo lavoro Velocità battitura livello Specializzazione

  11. Definizione delle specializzazioni Se la specializzazione non è disgiunta si possono usare più campi di tipo booleano Matricola impiegato Nome Impiegato Data assunzione Ingegnere (si/no) Specializzazione Consulente (si/no) Tariffa giornaliera

  12. Reticoli di Specializzazione Direttore_ingegnere è una sottoclasse condivisa Matricola impiegato Nome Impiegato Data assunzione d d Segretario Ingegnere Pagato ad ore Tecnico Stipendiato Direttore Direttore ingegnere

  13. Categorie L’esigenza nasce quando in una singola associazione superclasse sottoclasse nella superclasse intervengono più entità distinte Azienda Persona U Titolare conto Ha conto BAnca

  14. Categorie Se la categoria è totale, è equivalente usare una rappresentazione in termini di specializzazione Ciò è opportuno se le due entità condividono molti attributi Edificio Lotto U Proprietà Proprietà d Edificio Lotto

  15. Associazioni ternarie fornitura 1 N Fornitore Progetto quantità Id fornitore Parte codparte idprogetto

  16. Associazioni ternarie L’associazione ternaria è dalla situazione mostrata in figura: Le varie istanze possono esistere indipendentemente fornitura M N Fornitore Progetto quantità idprogetto usa può fornire Id fornitore Parte codparte

  17. Associazioni ternarie In genere si specificano anche le associazioni binarie aggiuntive fornitura M N Fornitore Progetto N quantità N idprogetto usa può fornire Id fornitore Parte M M codparte

  18. Vincoli sui tipi di associazione • I vincoli di una associazione consentono di esprimere efficacemente alcune regole dell’organizzazione che stiamo analizzando • Tuttavia alcune regole non possono essere espresse: • ES: lo studente deve svolgere 60 ore di laboratorio prima di potersi iscrivere al corso X • E’ compito del software applicativo tenere conto di queste regole (in genere questa funzionalità non è supportata direttamente nei DBMS)

  19. Esercizio: base di dati per un piccolo aeroporto • Ogni aeroplano ha n matr, è di un certo tipo, e di un certo modello, ha una capacità ed è posto in un determinato hangar • hangar ha numero, capacità e ubicazione • Occorre tenere traccia dei proprietari e degli impiegati che effettuano il servizio di manutenzione, che comprende data, tipo di lavoro, n ore impiegate • Un proprietario può essere una persona o una azienda, le aziende hanno nome, ind. tel • I piloti e impiegati hanno cf, nome, ind, tel. Piloti hanno n. licenza, limitazion, sono autorizzati a fare volare solo certi tipi di aeroplani. Gli impiegati hanno stipendio e turno, e sono abilitati a lavorare su certi tipi di aeroplani.

  20. Esercizio:AGENZIA IMMOBILIARE Tali informazioni riguardano: - gli immobili oggetto degli affitti. Di tali immobili interessa ricordare: l'indirizzo, il prezzo richiesto dal proprietario per la vendita o per l'affitto annuo, i metri quadri. Gli immobili possono essere di due tipi: abitazioni ed uffici. Per le abitazioni si vuole anche memorizzare il numero di vani. - Coloro che prendono in affitto gli immobili, che possono essere persone fisiche o società/enti. Di questi si vogliono memorizzare informazioni sul codice fiscale, la partita iva (se applicabile), il nome e cognome, se persone fisiche, o la denominazione societaria (se società/enti). - Coloro che danno in affitto gli immobili. Anche questi possono essere persone fisiche o società/enti, e si vogliono memorizzare informazioni sul codice fiscale, la partita iva (seapplicabile), il nome e cognome, se persone fisiche, o la denominazione societaria (se società/enti). - I contratti di affitto. Di questi interessa sapere: data, numero di registrazione, nome ecognome del notaio che ha stipulato, prezzo di vendita dell'immobile (se venduto) o di affitto (seaffittato). Ovviamente, per ogni contratto deve essere possibile sapere quale immobile riguarda e tra chi è stato stipulato.

  21. Esercizio: agenzia immobiliaresoluzione 1 affitta immobile cliente stipula riguarda contratto

  22. Esercizio: agenzia immobiliaresoluzione 1 affitta immobile cliente Relazione ternaria O Contratto affitto proprietario affittuario

  23. Esercizio: agenzia immobiliaresoluzione 1 Specifichiamo meglio immobile cliente N N affitta O M Contratto affitto proprietario affittuario 1 mette in affitto

  24. Esercizio: agenzia immobiliaresoluzione 1 Affitta e contratto di affitto potrebbero essere conglobate in un’unica tabella immobile cliente N N affitta O M Contratto affitto proprietario affittuario 1 mette in affitto

  25. Esercizio: agenzia immobiliare ufficio casa cliente D immobile D N N società persona affitta O M Contratto affitto proprietario affittuario 1 mette in affitto

  26. Esercizio: agenzia immobiliare ufficio casa cliente D immobile D N N società persona affitta O M Contratto affitto proprietario affittuario 1 mette in affitto

  27. Scelte progettualiRuolo proprietario /affittuario Creare due tabelle: una per proprietari e una per affittuari Hanno struttura identica Alcuni clienti possono trovarsi in entrambe le tabelle Può essere immediato fare alcuni tipi di query: es: genera la lista dei proprietari degli immobili. Oppure: Creare un’unica tabella per i clienti Si può aggiungere un campo che indica se quel cliente è anche un proprietario. E’ ridondante però facilita le query (altrimenti si dovrebbe fare una join con la tabella degli immobili sul campo Id proprietario)

  28. Scelte progettualiRuolo ente /persona • I due ruoli si differenziano solo per un attributo (PIVA) • Conviene quindi lasciare la superclasse aggiungendo un campo sul tipo di cliente e un campo per l’eventuale partita IVA. • Considerazioni analoghe valgono per la specializzazione IMMOBILE  casa ufficio

  29. Scelte progettualiassociazione affitto e contratto • Dall’associazione ternaria nasce la tabella dei contratti: • Contratto id affittuario, id immobile, data inizio locazione, id proprietario ,data fine, canone, notaio, data firma contratto) • In realtà id immobile determina id proprietario, ma conviene metterlo se voglio generare più efficientemente informazioni complete sui contratti.

  30. Scelte progettualiassociazione affitto e contratto • L’associazione mette in affitto determina una chiave esterna nella tabella immobile • Immobile (id immobile, id proprietario, ufficio si/no, mq, nvani, canone mensile, disponibile si/no)

  31. Scelte progettualiassociazione affitto e contratto • L’associazione affitta, di tipo N a M da luogo ad una tabella con i dettagli dell’affitto. • Affitti (id immobile, id locatario, data inizio locazione, data fine, canone mensile) • Notare che a meno di due attributi è la stessa struttura di contratti. Le due tabelle si potrebbero unificare

More Related