5.7. Data definitions (data.rsl)

module Data;

from tutorial import Tutorial;
from Page import Page;
export all;

(*****************************************************************************)

object ServerFilespace is
   components:
      authorFolders:AuthorFolder*;
   description: (*
      Represents the physical filespace on the server where tutorial
      information is saved.
   *);
end ServerFilespace;

object AuthorFolder is
   components:
      userID:UserID and
      tutorials:Tutorial* and
      pages:Page*;
   description: (*
      The server contains a folder for each author who uploads anything to the
      database. Inside each folder are the uploaded tutorials and pages
      (including quizzes).
   *);
end AuthorFolder;

object UserID is string
   description: (*
      A string containing the server login name of the tutorial's author.
   *);
end UserID;

(*****************************************************************************)

object TutorialDB is
   components:
      tutorialRecords:TutorialRecord*;
   description: (*
      The highest-level data object for tutorials, this holds all tutorials in
      the database.
   *);
end TutorialDB;

object TutorialRecord is
   components:
      authorID:UserID and
      tutorialID:TutorialID and
      class:Class and
      folderPathname:FolderPathname and
      tutorial:Tutorial and
      pageIDs:PageID*;
   description: (*
      A wrapper object for a tutorial when it is stored in the database. In
      addition to the tutorial contents, it also contains identifying
      information and information as to which database folder the tutorial has
      been uploaded.
   *);
end TutorialRecord;

object TutorialID is integer
   description: (*
      An integer that uniquely identifies a tutorial in the database.
   *);
end TutorialID;

object Class is
   components:
      departmentName:DepartmentName and
      courseNumber:CourseNumber;
   description: (*
      Identifying information for a class. Consists of a department name and a
      course number.
   *);
end Class;

object DepartmentName is string
   description: (*
      A short text string that uniquely identifies a department.
   *);
end DepartmentName;

object CourseNumber is integer
   description: (*
      An integer that identifies a course in a particular department.
   *);
end CourseNumber;

object FolderPathname is string
   description: (*
      The virtual pathname of the tutorial in the author's class folder. Used
      by the author to subdivide his/her tutorials into additional sections.
   *);
end FolderPathname;

(*****************************************************************************)

object PageDB is
   components:
      pageRecords:PageRecord*;
   description: (*
      The highest-level data object for pages, this holds all pages and quizzes
      in the database.
   *);
end PageDB;

object PageRecord is
   components:
      pageID:PageID and
      authorID:UserID and
      page:Page;
   description: (*
      A wrapper object for a page when it is stored in the database. In
      addition to the page contents, it contains identifying information.
   *);
end PageRecord;

object PageID is integer
   description: (*
      An integer that uniquely identifies a page in the database.
   *);
end PageID;

(*****************************************************************************)

end Data;





Prev: Communication systems | Next: Administrative details | Up: spec | Top: index