This document was created using the >e-novative> DocBook Environment (eDE)

Icodeon SCORM Player - Database Guide

Guide for Icodeon SCORM Player Version 2.00 Database

Icodeon Ltd, Cambridge, UK


                Icodeon Ltd
                St Johns Innovation Centre
                Cowley Road
                Cambridge
                Cambs
                CB4 0WS
                United Kingdom
                +44 (0)870 950 6582
                
              

February 2008


Table of Contents

1. Introduction
1.1. Welcome
2. Database Schema
2.1. Overview
3. Important Database Tables, Relationships and Queries
3.1. Selected Tables
3.2. Learner
3.3. Course
3.4. Organization
3.5. Activity
3.6. Activity Progress Information
3.7. Attempt Progress Information
3.8. Objective Progress Information
4. Queries that Report Whole Course Status
4.1. Reporting Whole Course Status
4.2. Using Rollup

List of Tables

3.1. Learner Table Data Model Names and Types
3.2. Course Table Data Model Names and Types
3.3. Organization Table Data Model Names and Types
3.4. Activity Table Data Model Names and Types
3.5. Activity Progress Information Table Data Model Names and Types
3.6. Attempt Progress Information Table Data Model Names and Types
3.7. Objective Progress Information Table Data Model Names and Types

Chapter 1. Introduction

Table of Contents

1.1. Welcome

1.1. Welcome

Chapter 2. Database Schema

Table of Contents

2.1. Overview

2.1. Overview

The database schema inherits semantics from the specifications used within the SCORM 2004 specification.

In particular, the table names and field names are based on the following specifications:

  • IMS Simple Sequencing 1.0

  • IMS Content Packaging 1.1

  • Computer Managed Instruction (CMI) Data Model

  • IEEE 1484.11.3 Content Object Communication Data Model

Developers and system integrators are advised to look up the relevant public documentation for the definitions of terms used.

The full database schema is illustrated below:


          
        

Complete Database Schema

Complete Database Schema [click for full size].


          
        

A number of the tables and their relationships are required for the internal maitenance of state by the application and are not normally used for creating reports. The section below outlines the important tables normally used for reporting.

Chapter 3. Important Database Tables, Relationships and Queries

3.1. Selected Tables

A number of the tables and their relationships are required for the internal maitenance of state by the application and are not normally used for creating reports. This section focusses on some selected tables and thier relationships that are important for generating reports for host applications.


          
        

Selected Tables from the Database Schema

Selected Tables from the Database Schema [click for full size].


          
        

3.2. Learner

The Learner table has fields that relate to the identity of a user of the application.

The host LMS is responsible for setting a unique, mandatory learnerID parameter during the launch request for the Icodeon SCORM Player. The value of the learnerID parameter is inserted into the LEARNER table as the LEARNER_ID field. The host LMS may also optionally add a learnerName parameter, which is inserted into the LEARNER table as the LEARNER_NAME field.

3.2.1. Data Model Names and Types

Launch ParameterMandatoryDatabase FieldSCORM MappingData Type
  PK bigint(20)
learnerIDRequiredLEARNER_IDcmi.learner_idvarchar(255)
learnerNameOptionalLEARNER_NAMEcmi.learner_namevarchar(255)

Table 3.1. Learner Table Data Model Names and Types

3.2.2. Relationships

Learner Table

Learner Table

3.2.3. Queries

3.3. Course

The Course table has fields that relate to the identity of a (SCORM) content package.

The host LMS is responsible for setting a unique, mandatory courseID parameter during the launch request for the Icodeon SCORM Player. The courseID corresponds to a unique identifier for the decompressed SCORM Package Interchange File (PIF), usually distributed as a .zip file. The value of the courseID parameter is inserted into the COURSE table as the COURSE_ID field.

3.3.1. Data Model Names and Types

Launch ParameterMandatoryDatabase FieldSCORM MappingData Type
  PK bigint(20)
courseIDRequiredCOURSE_ID[None]varchar(255)

Table 3.2. Course Table Data Model Names and Types

3.3.2. Relationships

Course Table

Course Table

3.3.3. Queries

3.4. Organization

The Organization table has fields that relate to the identity of one group of activities within a(SCORM) content package.

The SCORM Package Interchange File (PIF) will contain an imsmanifest.xml file that will contain one or more organization elements:

          
  <organizations 
    default="ORG-D6257D46-F4BF-B282-732C-8412E21AC988">
    <organization 
      identifier="ORG-D6257D46-F4BF-B282-732C-8412E21AC988" 
      structure="hierarchical">
      <title>Summer Pictures</title>
    ...
    </organization>
  </organizations>
          
        
The value of the identifier attribute is inserted into the ORGANIZATION table as the ORG_ID field. The value of the title child element is inserted into the ORGANIZATION table as the TITLE field. The organization element is used to build the root activity in the table of contents in the Player user interface, and one item in the multiple organizations drop down box:


          
        

Organization title and the root activity

Organization title and the root activity


          
        

3.4.1. Data Model Names and Types

Launch ParameterMandatoryDatabase FieldSCORM MappingData Type
  PK bigint(20)
  COURSE_PK bigint(20)
orgIDOptionalORG_IDRoot Activity Identifiervarchar(255)
  TITLERoot Activity Titlevarchar(255)
  DEFAULT_ORGANIZATION tinyint(1)
  SCHEMA_VERSIONVersion tokenvarchar(255)

Table 3.3. Organization Table Data Model Names and Types

3.4.2. Relationships

Organization Table

Organization Table

3.5. Activity

The Activity table has fields that relate to the identity of an activity within a(SCORM) content package.

The SCORM Package Interchange File (PIF) will contain an imsmanifest.xml file that will contain one or more item elements as descendents of an organization element:

          
    <organization 
      identifier="ORG-D6257D46-F4BF-B282-732C-8412E21AC988" 
      structure="hierarchical">
      <title>Summer Pictures</title>
      <item 
        identifier="ITEM-BEBD6D04-5C98-58C8-A967-907D01BF9D08" 
        isvisible="true" 
        identifierref="RES-42D808C8-431A-D55E-E941-211BDDE5DF02">
        <title>Bridges Sunset</title>
      </item>
      <item 
        identifier="ITEM-A69B52E2-C70D-9099-6E63-EDB81BC81E80" 
        isvisible="true" 
        identifierref="RES-99863A93-02C8-8996-2FD1-6042124014FD">
        <title>Castle Sunset</title>
      </item>
      ...
    </organization>
          
        
The value of the identifier attribute is inserted into the ACTIVITY table as the ACTIVITY_ID field. The value of the title child element is inserted into the ACTIVITY table as the TITLE field. The activity element is used to build the an activity in the table of contents in the Player user interface. Leaf activities are related to web pages that are displayed in the Player:


          
        

Activity title and an activity

Activity title and an activity


          
        

3.5.1. Data Model Names and Types

Database FieldSCORM MappingData Type
PK bigint(20)
ORGANIZATION_PK bigint(20)
ACTIVITY_IDActivity Identifiervarchar(255)
TITLEActivity Titlevarchar(255)
LEAFCluster or leaf activitytinyint(1)
SCORM_TYPE"sco" or "asset"varchar(8)

Table 3.4. Activity Table Data Model Names and Types

3.5.2. Relationships

Activity Table

Activity Table

3.5.3. Queries

Normally we are only interested in the leaf activities, as these represent the web pages seen by the learner in the Icodeon SCORM Player.

3.6. Activity Progress Information

The Activity Progress Information table has fields that relate to visits of a learner to an activity.

Each activity has one set of activity progress information per learner that is a record of all visits of a learner to an activity. The activity progress information record is inserted into the ACTIVITY_PROGRESS_INFO table.

3.6.1. Data Model Names and Types

Database FieldSCORM MappingData Type
PK bigint(20)
LEARNER_PK bigint(20)
ACTIVITY_PK bigint(20)
START_DATE_TIME datetime
ACTIVESequencing Activity State Information: Activity Is Activetinyint(1)
SUSPENDEDSequencing Activity State Information: Activity Is Suspendedtinyint(1)
ATTEMPT_COUNTSequencing Tracking Model Activity Progress Information: Activity Attempt Countint(11)
PROGRESS_STATUSSequencing Tracking Model Activity Progress Information: Activity Progress Statustinyint(1)

Table 3.5. Activity Progress Information Table Data Model Names and Types

3.6.2. Relationships

Activity Progress Information Table

Activity Progress Information Table

3.7. Attempt Progress Information

The attempt progress information table has fields that relate to the "completion" status following a unique visit of a learner to an activity.

Each activity progress information record has one to many sets of attempt progress information that is a record of each visit of a learner to an activity. Each attempt progress information record is inserted into the ATTEMPT_PROGRESS_INFO table.

NOTE Attempt progress information recording is optional. To enable recoding of attempt progress information, the tracking level configuration parameter must be set to 2 (default) or higher:

          
  <context-param>
    <param-name>trackingLevel</param-name>
    <param-value>2</param-value>
  </context-param>
          
        

3.7.1. Data Model Names and Types

Database FieldSCORM MappingData Type
PK bigint(20)
ACTIVITY_PROGRESS_INFO_PK  bigint(20)
ATTEMPT_NUMBER  int(11)
DATE_TIME datetime
END_DATE_TIME  datetime
ENDED tinyint(1)
PROGRESS_STATUSSequencing Tracking Model Attempt Progress Information: Attempt Progress Statustinyint(1)
COMPLETION_AMOUNTSequencing Tracking Model Attempt Progress Information: Attempt Completion Amountdecimal(19,5)
COMPLETION_STATUS Sequencing Tracking Model Attempt Progress Information: Attempt Completion Statustinyint(1)

Table 3.6. Attempt Progress Information Table Data Model Names and Types

3.7.2. Relationships

Attempt Progress Information Table

Attempt Progress Information Table

3.8. Objective Progress Information

The objective progress information table has fields that relate to the "satisfied" status and "score" following a unique visit of a learner to an activity.

Each activity progress information record has one to many sets of objective progress information that is a record of each visit of a learner to an activity. Each objective progress information record is inserted into the OBJECTIVE_PROGRESS_INFO table.

NOTE Objective progress information recording is optional. To enable recoding of objective progress information, the tracking level configuration parameter must be set to 3 or higher:

          
  <context-param>
    <param-name>trackingLevel</param-name>
    <param-value>3</param-value>
  </context-param>
          
        

3.8.1. Data Model Names and Types

Database FieldSCORM MappingData Type
PK bigint(20)
ACTIVITY_PROGRESS_INFO_PK  bigint(20)
DATE_TIME datetime
OBJECTIVE_ID varchar(255)
PRIMARY_OBJECTIVE tinyint(1)
PROGRESS_STATUSSequencing Tracking Model Objective Progress Information: Progress Statustinyint(1)
SATISFIED_STATUSSequencing Tracking Model Objective Progress Information: Satisfied Statustinyint(1)
MEASURE_STATUSSequencing Tracking Model Objective Progress Information: Measure Statustinyint(1)
NORMALIZED_MEASURESequencing Tracking Model Objective Progress Information: Normalized Measuredecimal(19,2)

Table 3.7. Objective Progress Information Table Data Model Names and Types

3.8.2. Relationships

Objective Progress Information Table

Objective Progress Information Table

Chapter 4. Queries that Report Whole Course Status

4.1. Reporting Whole Course Status

The SCORM specification has emphasised the individual "content objects" rather than the whole "course". Currently SCORM does not support any API that returns a measure of whole course "completion" status or "score".

Integrators are free to develop any concept of whole "course" status that is meaningful within thier learning application.

However, SCORM 2004 introduced a behaviour called "rollup" where status of individual activities is aggregated and applied to the status of a parent activity. If the aggregation is followed all the way up to the "root" activity, then the status of the "root" is a summary of the status of all descedent activities:


      

Rollup of status from descendent activities to the root activity

Rollup of status from descendent activities to the root activity

 
      

The Icodeon SCORM Player applies this "rollup" behaviour to all packages - SCORM 2004, SCORM 1.2 and even non-SCORM IMS Content Packages. This allows "whole course" report queries based on "rollup" to be constructed irrepective of SCORM version or package type.

4.2. Using Rollup

In SCORM 2004, ADL SCORM introduced a behaviour called "rollup" where status of individual activities is aggregated and applied to the status of a parent activity.

Rollup behaviour is managed by "rollup rules" that may be added to the XML in the imsmanifest.xml file. If no rollup rules are present in the imsmanifest.xml, the default rules are applied:

  • If all completed, Then completed

  • If all (attempted or incomplete), Then incomplete

  • If all satisfied, Then satisfied

  • If all (attempted or not satisfied), Then not satisfied

The rollup behaviour is useful because, the status of all activities is rolled up on to the status of the root activity.

4.2.1. Queries

To determine the overall, rolled up, completion status, use the attempt progress information of the root activity:

To determine the overall, rolled up, satisfied status, use the objective progress information of the root activity:

This document was created using the >e-novative> DocBook Environment (eDE)