SED Degree Navigator
Sakai External Database Degree Navigator Data
Degree Navigator is an application that allows students to track and plan their path toward degree achievement within the University. It also has the property of being populated with up-to-date course description information from the CAF (Course Approval Form) application. Access to CAF is not possible, so the next best source for course description data is Degree Navigator.
Degree Navigator Data Architecture
The Degree Navigator system stores all of its course description data in a single table called COURSEDESCRIPTION_DAG.
COURSEDESCRIPTION_DAG |
|
---|---|
Column |
Description |
coursecode_dag |
An encoded course id, the encoding is a direct concatenation of Subject Code and Course Number |
description_dag |
The course description, which always starts with the coursecode and a space. Course descriptions generally tun into the hundreds and thousands of characters. |
startterm_dag |
The first term in which this course description applies. This field is never null. |
endterm_dag |
The last term in which this course description applies. If this field is null the course description is considered to be the active course description. |
Data Inconsistencies
The Degree Navigator data is plagued by an inconsistency of the start and end term data. Specifically, there are some cases in which there are multiple coursecodes for which the endterm_dag field is null. Functionally, this makes it harder to distinguish which is the active course description. Our code will perform a max on the starttterm field combined with the check for a null endterm field, this will have the effect of isolating out the newest course description.
Requirements
- Availability: The Degree Navigator data used by Sakai must be available on a 24x7 basis.
- Refresh: While course descriptions are rarely updated in Degree Navigator, Sakai will need to have any updates as soon as they are available. In practice, a nightly feed will be sufficient.
Design
Degree Navigator is not yet a 24x7 application. Therefore, in order to avoid periods of downtime due to database maintenance, a combination of a local table and a pl/sql feed procedure will be created to retrieve any and all updated data each time it is run.
Implementation
The Degree Navigator pl/sql procedure and table have been copied following the model used by MyUCDavis CourseManagement. The feed procedure performs a simple insert of all records from degree navigator and then deletes all records created before the last insert.
create or replace PROCEDURE DN4_EXTRACT IS BEGIN declare v_timestamp_current date; begin select sysdate into v_timestamp_current from dual; begin insert into sakai_external.degree_nav_desc( coursecode, description, start_term, end_term, subj_code, crse_numb, activity_date) select coursecode_dag, description_dag, startterm_dag, endterm_dag, substr(coursecode_dag,1,3), substr(coursecode_dag,4,6), v_timestamp_current from navigate.coursedescription_dag@DN4.UCDAVIS.EDU; end; commit; begin delete from degree_nav_desc where activity_date <> v_timestamp_current; end; commit; end; END; -- Procedure DN4_EXTRACT