Se creo un diagramma di classe concettuale in modo tale che ogni classe acquisisca 'nome' e 'attributi' ma non 'operazioni', non ho praticamente creato quello che altrimenti sarebbe considerato un ERD? Sto cercando di capire quali sono le differenze tra la creazione di un diagramma di classe concettuale come ho descritto contro il fatto di chiamarlo ERD? Se questi sono ancora due animali diversi, qualcuno può spiegare quali sono le differenze?Differenze tra un diagramma di classe UML concettuale e un ERD?
risposta
Theres poca differenza nella espressività di entrambi (se solo concentrarsi sulla parte attributi, classi e associazioni) se uso prolungato diagrammi entità-relazione (il caso più comune al giorno d'oggi)
vero, sembrano molto diversi a livello grafico dal momento che usano simboli diversi per gli elementi ma la "semantica" è abbastanza simile. Entrambi consentono l'ereditarietà (di nuovo, sto parlando di EER), le associazioni n-ary, le classi di associazione, ...
Il diagramma delle classi contiene solo le classi nel modello a oggetti con eventuali collegamenti/relazioni che collegano gli elementi del diagramma. Tuttavia questi collegamenti non corrispondono necessariamente a relazioni fisiche come in un diagramma ERD, ma rappresentano invece connessioni logiche.
Il diagramma di classe è solo il modello a oggetti della vostra applicazione e non contiene alcuna informazione specifica di persistenza. Quando pensi al diagramma delle classi, dimentica il database o qualsiasi altra memoria che puoi usare.
Il diagramma ERD sull'altro lato, è un diagramma specifico della persistenza che visualizza le entità (tabelle) esistenti in un database relazionale (il più delle volte). Mostra anche le relazioni fisiche (e le cardinalità) tra quelle tabelle e tutte le altre informazioni specifiche del database. Il diagramma ERD a volte può sembrare simile al diagramma di classe, ma ciò non significa che sia lo stesso di un diagramma di classe.
Capisco cosa stai dicendo sul diagramma ERD che è specifico della persistenza e il diagramma di classe non contiene informazioni specifiche sulla persistenza, tuttavia considererei questo un fatto dedotto piuttosto che visivo quando si visualizzano i diagrammi fianco a fianco. Inoltre, si menziona che il diagramma di classe non contiene alcun tipo di relazioni esplicite tra gli elementi del diagramma, tuttavia se sto mostrando entrambe le associazioni e la molteplicità tra gli elementi nel diagramma delle classi, in che modo differisce dalle relazioni e dalle cardinalità mostrate tra le entità sul ERD diagramma? – Adam
La relazione sul diagramma delle classi è logica, ma dall'altra parte una relazione ERD è un vero vincolo fisico tra le tabelle. Hai ragione che i diagrammi possono sembrare molto simili in scenari semplici, ma in quelli più complessi la differenza è evidente. Il diagramma di classe supporta molto più astrazione rispetto all'ERD. Se si disegna il diagramma ERD usando la notazione classica di Chen, la differenza visiva rispetto a un diagramma di classe UML è enorme anche in scenari semplici. –
OK, grazie per la spiegazione e quello che dici di una logica rispetto a una fonte fisica ha senso per me. Dato che un diagramma di classe supporta molto più astrazione di un diagramma ERD, è corretto dire che in uno scenario più complesso: – Adam
Dipende dalla situazione in cui potrebbe non piacerti fare l'ER-D. Ma immagina se hai un livello dati separato in cui viene gestita la logica dei dati. In questo caso molti dettagli dei dati non devono essere condivisi con il livello dell'applicazione. E il tuo diagramma di classe non deve andare oltre il livello dell'applicazione. Devo sottolineare che entrambi i diagrammi non sono uguali. E ci sono situazioni in cui devi fare entrambe le cose, principalmente nell'architettura multilivello, e ci sono situazioni in cui potresti essere in grado di usare solo il diagramma delle classi; per esempio. applicazione a livello singolo.
Sono fermamente convinto che il diagramma di classe non abroghi il diagramma E-R.
I diagrammi delle classi di progettazione sono costituiti da schemi concettuali e diagrammi di collaborazione. diagrammi delle classi di disegno includono:
- classi, associazioni e attributi
- Metodi
- Tipi di attributi
- Navigabilità
- Dipendenze
I diagrammi ER che ho visto (più frequentemente la notazione di ERWin IE) si sono concentrati sulla progettazione di un database. Si occupano di chiavi primarie, chiavi esterne, hanno relazioni senza nome e di solito non hanno generalizzazione/specializzazione.
Un buon diagramma UML classe concettuale, d'altra parte, non è interessato con le chiavi, riflette il dominio del problema, e ha proprietà di associazione di fascia che almeno accenno presso la semantica del perché le cose sono correlate. Questo aiuta a comunicare il dominio agli sviluppatori più giovani, quindi non devono indovinare.
In che modo ERD consente l'ereditarietà ?! – Trix
Come ho detto, ER ha iniziato con una proposta iniziale di Peter Cheng, ma si è rapidamente evoluto in una famiglia completa di linguaggi ER (estesi) che hanno aggiunto nuove funzionalità al linguaggio come ereditarietà. Quindi, sì, alcune versioni (E) ER consentono l'ereditarietà –