Exam
  course CourseId
  name (CI Text)
  gradingKey [Points] -- [n1,n2,n3,...] means 0 <= p < n1 -> p ~= 5, n1 <= p < n2 -> p ~ 4.7, n2 <= p < n3 -> p ~ 4.3, ...
  bonusRule ExamBonusRule
  occurrenceRule ExamOccurenceRule
  registerFrom UTCTime Maybe
  registerTo UTCTime Maybe
  deregisterUntil UTCTime Maybe
  start UTCTime
  end UTCTime Maybe
  finished UTCTime Maybe -- Grades shown to students, `ExamCorrector`s locked out
  closed Bool -- Prüfungsamt hat Einsicht (notification)
  publicStatistics Bool
  description Html Maybe
  UniqueExam course name
ExamPart
  exam ExamId
  name (CI Text)
  maxPoints Points Maybe
  weight Rational
  UniqueExamPart exam name
ExamOccurence
  exam ExamId
  room Text
  capacity Natural
ExamRegistration
  exam ExamId
  user UserId
  occurance ExamOccurenceId Maybe
  UniqueExamRegistration exam user
ExamResult
  examPart ExamPartId
  user UserId
  result ExamPartResult
  UniqueExamResult examPart user
ExamCorrector
  examPart ExamPartId
  user UserId
  UniqueExamCorrector examPart user