graph{
  start=42

  // Entities
  node [
    shape=box
    style=filled
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  1 [label="PÉRIODE"]
  6 [label="ENCLOS"]
  5 [label="ANIMAL",peripheries=2]
  16 [label="ESPÈCE"]

  // Associative entities
  13 [label="CARNIVORE",shape=Mdiamond]
  22 [label="HERBIVORE",shape=Mdiamond]

  // Normal entity attributes
  node [
    shape=oval
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  10 [label="sexe"]
  12 [label="date\ndécès"]
  19 [label="nom\nlatin"]
  20 [label="nom\nvernaculaire"]

  // Weak and strong entity attributes
  2 [label=<<u>date<br/>début</u>>]
  3 [label=<<u>date fin</u>>]
  7 [label=<<u>num.<br/>enclos</u>>]
  9 [label=<<u>nom</u>> style="dashed,filled"]
  11 [label=<<u>date<br/>naissance</u>> style="dashed,filled"]
  14 [label=<<u>quantité<br/>viande</u>>]
  18 [label=<<u>code<br/>espèce</u>>]
  23 [label=<<u>plante<br/>préférée</u>>]

  // Relationship attributes
  node [
    fillcolor="#FFFFFF"
  ]
  17 [label="nb. max.\ncongénères"]
  25 [label="nb. max.\ncommensaux"]

  // Relationships
  node [
    shape=diamond
    height=0.7
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  4 [label="A MÈRE"]
  8 [label="OCCUPE"]
  15 [label="PEUT VIVRE\nDANS"]
  21 [label="DF",peripheries=2]
  24 [label="PEUT\nCOHABITER\nAVEC"]

  // Edges between entities and attributes
  edge [
    penwidth=1.5
  ]
  1 -- 2
  1 -- 3
  5 -- 9
  5 -- 10
  5 -- 11
  5 -- 12
  6 -- 7
  13 -- 14
  16 -- 18
  16 -- 19
  16 -- 20
  22 -- 23

  // Edges between relationships and attributes
  edge [color="#000000"]
  15 -- 17
  24 -- 25

  // Edges between entities and relationships
  edge [
    penwidth=1
    color="#000000:#000000"
    labeldistance=2
    headlabel=1
  ]
  1 -- 8
  5 -- 4 [color="#000000"]
  16 -- 21 [color="#000000"]
  edge [headlabel=M]
  6 -- 15
  16 -- 24 [color="#000000"]
  edge [headlabel=N]
  5 -- 8
  5 -- 21
  6 -- 8
  16 -- 15
  4 -- 5 [color="#000000"]
  24 -- 16 [color="#000000"]
}