next up previous contents
Next: BNF Syntax for Up: OPM Schema Translator Previous: Error Messages

Input File

For illustration purposes, we use the OPM schema represented below:

FOREIGN_DATABASES { ("PUBLICATIONS", "database for course references") }
CONTROLLED VALUE CLASS DepartmentNames { ("Computer Science", 1), ("Engineering", 2) }
CONTROLLED VALUE CLASS Rank { "Professor", "Associate Professor", "Assistant Professor" }
CONTROLLED VALUE CLASS Salary { 30000-150000 }
OBJECT CLASS PERSON
   ID: ssn
   ATTRIBUTE ssn: [1,1] INTEGER
   ATTRIBUTE name: [0,1] VARCHAR(50)                 
OBJECT CLASS FACULTY
             isa* PERSON
   ATTRIBUTE teaches (course, inDepartment):
                        set-of [0,] ([0,1] COURSE, [0,1] DEPARTMENT)
                        course inverse of COURSE.taughtBy
                        DELETE CASCADES
   ATTRIBUTE department: [0,1] DEPARTMENT     inverse of DEPARTMENT.faculty 
                      DELETE NULLIFIES 
   ATTRIBUTE rank: [0,1] Rank
   VERSIONED
       ATTRIBUTE salary: [0,1] Salary
DERIVED OBJECT CLASS PROFESSOR
   DERIVATION: subclass of FACULTY
   CONDITION: [FACULTY] rank = "Professor";
OBJECT CLASS STUDENT 
             isa* PERSON
   VERSIONED
       ATTRIBUTE attends (course, inDepartment):
                         set-of [0,] ([0,1] specific COURSE,
                                      [0,1] DEPARTMENT)
OBJECT CLASS COURSE 
   ID: courseNumber 
   ATTRIBUTE courseNumber: [1,1] CHAR(10)
   ATTRIBUTE name: [0,1] VARCHAR(80)
   ATTRIBUTE taughtBy: [0,1] FACULTY
   VERSIONED
       ATTRIBUTE references: set-of [0,] REFERENCE
OBJECT CLASS DEPARTMENT 
   ID: name 
   ATTRIBUTE name: [1,1] DepartmentNames
   ATTRIBUTE faculty: set-of [0,] FACULTY       inverse of FACULTY.department 
FOREIGN OBJECT CLASS REFERENCE
   DESCRIPTION: "References in PUBLICATIONS database"
   DATABASE: "PUBLICATIONS"
   ALIAS: "Publication"