Information Engineering diagrams are an extension to the existing
Class Diagrams.
This extension adds:
- Additional relations for the Information Engineering notation;
- An
entity
alias that maps to the class diagram class
; - An additional visibility modifier
*
to identify mandatory attributes.
Otherwise, the syntax for drawing diagrams is the same as for class diagrams. All other features of
class diagrams are also supported.
See also Chen Entity Relationship Diagrams.[Ref. GH-31] Type | Symbol |
Zero or One | |o-- |
Exactly One | ||-- |
Zero or Many | }o-- |
One or Many | }|-- |
Examples:
🎉 Copied! ![Copy to clipboard](https://plantuml.com/clipboard1.svg)
![Edit online](https://plantuml.com/edit1.svg) | @startuml
Entity01 }|..|| Entity02
Entity03 }o..o| Entity04
Entity05 ||--o{ Entity06
Entity07 |o--|| Entity08
@enduml
|
🎉 Copied! ![Copy to clipboard](https://plantuml.com/clipboard1.svg)
![Edit online](https://plantuml.com/edit1.svg) | @startuml
entity Entity01 {
* identifying_attribute
--
* mandatory_attribute
optional_attribute
}
@enduml
|
Again, this is the normal class diagram syntax (aside from use of
entity
instead of
class
). Anything that you can do in a class diagram can be done here.
The
*
visibility modifier can be used to identify mandatory attributes. A space can be used after the modifier character to avoid conflicts with the creole bold:
🎉 Copied! ![Copy to clipboard](https://plantuml.com/clipboard1.svg)
![Edit online](https://plantuml.com/edit1.svg) | @startuml
entity Entity01 {
optional attribute
**optional bold attribute**
* **mandatory bold attribute**
}
@enduml
|
Currently the crows feet do not look very good when the relationship is drawn at an angle to the entity. This can be avoided by using the
linetype ortho
skinparam.