Upload
beverly-cain
View
214
Download
0
Embed Size (px)
Citation preview
Why and How UMBC Publishes Its Most Active Bb
Courses Report
Jeffrey Berman
Graduate Assistant, Instructional Technology and New Media
University of Maryland, Baltimore County
Agenda
• What The Databases Are Used For
• Process For Running Reports
• Methods We Used
• Sample Queries
• Future of UMBC Reporting
What The Database Is Used For
• Blackboard Reports– Most Active Courses/Communities
(Hits Per User)– Number of Active Courses Per Discipline– Tool Usage (System Wide and Per Course)– Most Active Users
• myUMBC What’s New– Checks for recent activity in
announcements/discussion boards
Process For Running Reports
• Connect to a Data Source
• PHP Script
• Uses PDO (PHP Data Objects)– Data-access abstraction layer
• Data is written to an array in PHP
• Array is parsed, and formatted into a table
• Table is then cached as an html page
First Method (Production Queries)
Blackboard(Production) Queries
(PHP Scripts)
Cached Reports
First Method (Production Queries)
• Pros– Contained current semester data
• As opposed to 6 month gap with the Stats Db
– Data was guaranteed to be up-to-date.
• Cons– Large queries could take down Blackboard
Blackboard(Clone) Queries
(PHP Scripts)
Cached Reports
Second Method (Cloned Database)
Blackboard(Production)
Updated with changed
transactions every 4 minutes
Second Method (Cloned Database)
• Pros– Could query current semester data with
minimal impact on production– Data was close to up-to-date (no more than 4
minute delay)
• Cons– Cloning process inserted extra columns– Replication service broke numerous times
limiting query accuracy
Third Method (Static Replica)
Blackboard(Static Replica) Queries
(PHP Scripts)
Cached ReportsBlackboard(Production)
Complete copy of database made
infrequently, but as needed for reports
Third Method (Static Replica)
• Pros– Can query current semester data with no
impact on production– Data is up-to-date (at time of the static copy)
• Cons– Requires a manual process to make the static
copy– Need to know in advance when we want to
run queries– Will not allow myUMBC What’s New to run as
it needs continually up-to-date data
Most Active CoursesSELECT TOP 50 count(a.event_type) as Hits,
count(DISTINCT a.USER_PK1) as Users,count(a.event_type) / count(DISTINCT a.USER_PK1) as HitsPerUser,
c.course_id as CourseID, c.course_name as CourseNameFROM activity_accumulator a, course_main c, course_users d, users uWHERE c.course_id LIKE '%FA2007' AND a.event_type = 'COURSE_ACCESS' AND a.course_pk1 = c.pk1 AND a.user_pk1 = u.pk1 AND c.pk1 = d.crsmain_pk1 AND d.users_pk1 = u.pk1 AND d.role = 'S'GROUP BY c.course_name, c.course_idORDER BY count(a.event_type) / count(DISTINCT a.USER_PK1) DESC
System Tool UsageSELECT
count(*) as Hits,a.internal_handle as Tool
FROMactivity_accumulator a, course_main c, users u, course_users d
WHEREa.event_type = 'COURSE_ACCESS‘ ANDa.course_pk1 = c.pk1 ANDa.user_pk1 = u.pk1 ANDd.crsmain_pk1 = c.pk1 ANDd.users_pk1 = u.pk1 ANDc.course_id LIKE '%FA2007'
GROUP BYa.internal_handle
ORDER BYcount(*) DESC
Recent Updates
• Use of Delivered Stats Database– (on replica)
• Live (Self-Service) Queries– Tool Usage Per Course– Grade Distribution Per Course
• Deep Link Generator
Future of UMBC Reporting
• Tool Usage for All Courses
• Tool Usage for 3rd Party Tools– Learning Objects, Wimba
• Fully Implement myUMBC Blackboard Integration