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