graph{
  start=42

  // Entities
  node [
    shape=box
    style=filled
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  3 [label="VACATAIRE"]
  2 [label="CONTRAT",peripheries=2]

  // Associative entities
  7 [label="SALARIÉ",shape=Mdiamond]
  11 [label="PROFESSEUR",shape=Mdiamond]

  // Normal entity attributes
  node [
    shape=oval
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  6 [label="salaire\nhoraire\ncontrat"]
  9 [label="échelon\nsalarié"]
  10 [label="salaire\nsalarié"]
  13 [label="nom prof"]
  14 [label="prénom\nprof"]
  15 [label="téléphone\nprof"]

  // Weak and strong entity attributes
  4 [label=<<u>statut<br/>vacataire</u>>]
  5 [label=<<u>date<br/>contrat</u>> style="dashed,filled"]
  8 [label=<<u>date<br/>embauche<br/>salarié</u>>]
  12 [label=<<u>num prof</u>>]

  // Relationships
  node [
    shape=diamond
    height=0.7
    penwidth=1.5
    fillcolor="#FFFFFF"
  ]
  1 [label="DF",peripheries=2]

  // Edges between entities and attributes
  edge [
    penwidth=1.5
  ]
  2 -- 5
  2 -- 6
  3 -- 4
  7 -- 8
  7 -- 9
  7 -- 10
  11 -- 12
  11 -- 13
  11 -- 14
  11 -- 15

  // Edges between entities and relationships
  edge [
    penwidth=1
    color="#000000:#000000"
    labeldistance=2
    headlabel=1
  ]
  3 -- 1
  edge [headlabel=N]
  2 -- 1
}