Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha...

41
Progettazione concettuale A. Ferrari

Transcript of Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha...

Page 1: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Progettazione concettualeA. Ferrari

Page 2: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Le fasi

Definizione dei bisogni degli utenti

Definizione dei requisiti

Progettazione concettuale

Progettazione logico/fisica

Page 3: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Obiettivo

La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione dei requisiti” per produrre un modello astratto della base di dati.

Page 4: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Il modello concettuale

Il modello concettuale è un documento ufficialedi riferimento per i committenti

di comunicazione verso i progettisti della fase successiva di progettazione logica.

Page 5: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Linguaggi

Per realizzare il modello concettuale sono utilizzati vari linguaggi, per lo più di natura grafica

UML (Unified Modeling Language)

Diagrammi E/R(Entity Relationship) (Entità Associazioni)

Page 6: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Diagrammi E/R

1976 Peter P. Chen.

Modello grafico per descrizione dei dati e delle loro relazioni.

Modello concettuale indipendente dalla realizzazione.

Page 7: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Gli elementi del diagramma

EntitàRappresentano classi di oggetti (fatti, cose, persone, ...) che hanno proprietà comuni ed esistenza autonoma ai fini dell'applicazione di interesse

AssociazioniLe associazioni (dette anche relazioni) rappresentano un legame tra due o più entità

AttributiLe entità e le associazioni possono essere descritte usando una serie di attributi. Tutti gli oggetti della stessa classe entità (associazione) hanno gli stessi attributi

Page 8: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Entità

Le entità corrispondono a classi di oggetti del mondo reale e vengono rappresentate graficamente con un riquadro che contiene il nome.

In uno schema, ogni entità ha un nome che la identifica univocamente.

<nome entità> Studente

Page 9: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Attributi

Proprietà elementari delle entità:

Nome

Formato (tipo di dato)

Dimensione

Valore

Opzionalità(obbligatorio/facoltativo)

La scelta degli attributi riflette il livello di dettaglio con il quale vogliamo rappresentare le informazioni sulle entità e sulle associazioni

<attributo 1>

<attributo 2>

<attributo 3>

<nome entità>

Nome

ClasseStudente

Page 10: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Attributi composti

Gli attributi composti o aggregati sono costituiti dall’aggregazione di altri attributi.

Esempio:Dati anagrafici

Indirizzo

Page 11: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Attributi multipli

Elenco di lunghezza variabili di attributi dello stesso tipo.

Esempio:Sport praticati

Voti ottenuti

Page 12: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Chiave

Insieme di attributi che identificano in modo univoco un’entità

Possono esistere più chiavi.

Esiste sempre almeno una chiave(al limite costituita da tutti gli attributi).

È opportuno scegliere come chiave un sottoinsieme il più ridotto possibile degli attributi.

Possono esistere chiavi artificiali.

Gli attributi chiave vengono rappresentati sottolineati

Page 13: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni

L’associazione (relationship) è un legame fra due entità

Un’associazione fra due entità ha due versi

Normalmente si utilizzano sostantivi per le entità e verbi per le associazioni

Viene rappresentata graficamente da un rombo contenente il nome dell'associazione

Page 14: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazione: esempio

Page 15: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni binarie

<associazione> <entità 1><entità 2>

Page 16: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni binarie esempio

Appartiene ClasseStudente

Page 17: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni multiple

<associazione>

<entità 1><entità 2>

<entità 1>

Page 18: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni multipleesempio

Fa lezione

ClasseDocente

Aula

Page 19: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni unarie

<associazione> <entità>

Page 20: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni unarieesempio

E’ genitore Persona

Page 21: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Esempio sul libro

Page 22: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Più associazioni fra entità

Risiede

CittàPersona

E’ nata

Page 23: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni 1:1

Una istanza dell’entità A corrisponde a una sola istanza dell’entità B e viceversa.

Possiede TastieraComputer1 1

Page 24: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni 1:n

Uno a molti

Una istanza dell’entità A corrisponde a più istanze dell’entità B e una istanza dell’entità B corrisponde a una sola istanza dell’entità A .

Possiede DiscoFissoComputer1 n

Page 25: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Associazioni n:n

Molti a molti

Una istanza dell’entità A corrisponde a più istanze dell’entità B e una istanza dell’entità B corrisponde a più istanze dell’entità A .

StampaSu StampanteDiReteComputern n

Page 26: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Esempio sul libro

Page 27: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Altra Notazione (non è uno schema concettuale)

Page 28: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Altro esempio

Page 29: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Altra notazione

Page 30: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Totale/Parziale

Totale se ogni elemento fa parte dell’associazioneLinea continua

Parziale se alcuni elementi non ne fanno parteLinea tratteggiata

Possiede MonitorComputer

Page 31: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Regole di lettura (1)

Possiede TastieraComputer1 1

Un computer possiede un monitor, un monitor è collegato a un computer

Possiede TastieraComputer1 1

Un computer può possedere un monitor, un monitor è collegato a un computer

Page 32: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Regole di lettura (2)

Possiede DiscoFissoComputer1 n

Un computer possiede uno o più dischi fissi, un disco è collegato a un computer

Possiede DiscoFissoComputer1 n

Un computer può possedere uno o più dischi fissi, un disco è collegato a un computer

Page 33: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Regole di lettura (3)

Stampa StampanteDiReteComputern n

Un computer stampa su una o più stampanti, una stampante riceve stampeda uno o più computer

Stampa StampanteDiReteComputern n

Un computer può stampare su una o più stampanti, una stampante riceve stampeda uno o più computer

Page 34: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

esempio errato

Stampa StampanteDiReteComputer1 n

Un computer può stampare su una o più stampanti di rete, una stampante di rete riceve stampe da un computer (uno solo!)

La lettura dello schema evidenzia l’errore di progettazione

Page 35: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Gerarchie ISA

Astrazione per generalizzazione

ISA (is a) (è un)

Nell’esempio un Mac è un Computer

Computer

PC Mac

Page 36: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Vincoli d’integrità

Asserzioni che devono essere soddisfatte.

Vincoli impliciti (imposti dalla struttura dei dati):Univocità di chiave primaria

Vincoli sulla totalità delle associazioni

Vincoli espliciti:V1: 0<Età<120

V2: anno(Dipendente.DataAssunzione -Dipendente.DataNascita)>16

Page 37: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione
Page 38: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Esempio sul libro

Page 39: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Software per diagrammi E/R

On linehttps://www.draw.io/

http://creately.com/

http://my.lovelycharts.com/

Da scaricarehttp://dia-installer.de/

http://www.ballini.it/Software/ProgER/

Page 40: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Esercizio sul libro

Un albergo di una grande città intende gestire in modo automatizzato le prenotazioni e realizzare una base di dati. Ogni cliente viene individuato, tra l'altro con i dati anagrafici, il numero di telefono e l'eventuale e-mail. Per quanto riguarda le prenotazioni occorre indicare il periodo, i dati relativi alle persone che soggiorneranno, il numero di camera assegnato, l'eventuale disdetta, il tipo di trattamento: mezza pensione (Half Board, HB),pensione completa (Full Board, FB), pernottamento e prima colazione (Bed & Breakfast, B&B).

Realizzare lo schema concettuale con le relative regole di lettura

Page 41: Progettazione concettuale - Alberto Ferrari · Obiettivo La “progettazione concettuale” ha l’obiettivo di riorganizzare tutti gli elementi risultanti dalla fase di “definizione

Esercizio sul libro

L'ufficio centrale della Motorizzazione civile mantiene un registro di tutte le automobili italiane coni relativi proprietari (una persona può possedere più automobili, ma una singola automobile può anche appartenere a più persone) e un registro storico delle patenti rilasciate nel quale sono comprese anche le patenti ormai scadute ed eventualmente rinnovate con altro codice.

Realizzare lo schema concettuale con le relative regole di lettura