All pastes #199332 Raw Edit

Someone

public text v1 · immutable
#199332 ·published 2006-10-12 13:22 UTC
rendered paste body
SCHEMA UniversitySystem;
   TYPE level = INTEGER;
   WHERE
      level_min: SELF>= 1;
      level_max: SELF<= 3;
   END_TYPE;
   
   TYPE credits = INTEGER;
   WHERE
      credits: SELF>= 0;
   END_TYPE;
   
   ENTITY university;
      university_name:   STRING;
      degrees:   LIST[10:10] OF degree_programme;
      students:   SET[0:?] OF student;
   END_ENTITY;
   
   ENTITY degree_programme;
      degree_title:   STRING;
      compulsory_course_modules:   SET[1:?] OF course_module;
      optional_course_modules:   SET[0:?] OF course_module;
   UNIQUE
      unique_title:   degree_title;
   END_ENTITY;
   
   ENTITY course_module;
      course_title:   STRING;
      credits:   INTEGER;
      course_level:   level;
      students:   SET[0:?] OF student;
   UNIQUE
      unique_title:   course_title;
   END_ENTITY;

   ENTITY student;
      year:   level;
      surname:   STRING;
      forename:   STRING;
      belongs_to:   university;
      studies:   degree_programme;
      takes:   SET[1:?] OF course_module;
   INVERSE
      course_module_level : course_module FOR course_level;
   WHERE
      valid: year = course_module_level;
   END_ENTITY;
   
END_SCHEMA;