- The webinar introduced Blackboard's Open Database, which provides client access to Blackboard Learn database structures and data to enable system tool and module development, reporting, diagnostics, and more.
- Documentation on the Open Database requires acceptance of a license addendum outlining allowed activities like using Blackboard APIs but not direct database alterations.
- The webinar provided examples of how to obtain usage data like logins, content, discussions, enrollments and tools from database tables, and introduced tools to help like ASTRO and UMBC Reports.
4. Driven by the need that System Administrator need to rely upon each other to get insights and helpful tips
5. Feb. 2011 – Teamed up with the Developer Community leaders to deliver a broader scope of content to both groups: developers as well as system administrators
17. Assess PerformanceAccessing the Open Database Documentation requires acceptance of a license addendum which states the allowed activities pertaining to the client’s Blackboard Learn™ database. In short altering of the database beyond using Blackboard Building Block™ APIs is not allowed; Read access using external tools is now allowed. http://bit.ly/cFXPcb
22. Embedded Comments SQL Server select t.name, c.name, p.value from sys.extended_properties p left outer join sys.tables t on p.major_id = t.object_id left outer join sys.columns c on p.major_id = c.object_id and p.minor_id = c.column_id where t.name like 'activity%' and p.name = 'MS_Description' Oracle select * from user_tab_comments where table_name = 'MY_TABLE'
25. Schema installation uses the same definitions as core code – schema.xml, etc.http://bit.ly/hYpSvf
26. 3 - Reporting Built In Reports Course and Tool Level Track views and activities at the course and tool level View usage at a course by course basis Content Level Grade book System Reports Textbook Reports
28. Common Use Cases and Needs Explore Usage and Adoption Tool Usage Performance Management and Planning Instructor and Student Adoption Assess Programs and Performance Blackboard Outcomes Assessment Data Diagnostics – e.g. what is going on with my data Forensics / Reconstruction –e.g. what did this user do
33. Activity streams More difficult, but more interesting Who logs in the most Who access the most pages Who teaches the most courses Who adds or accesses the most content Who uses the most available tools
34. Examples: Logins Content Discussion forums Enrollments Tools Page hits Questions: bb_bb60 vs BBLEARN? _stats (eg: bb_bb60_stats) is populated when you run PurgeAccumulator.sh/.bat Activity_accumulator_queue (flushed every 10 mins)
36. Logins & Page Hits (examples) Obtain total logins for a given time period SELECT count(*) FROM activity_accumulatorWHERE event_type = 'LOGIN_ATTEMPT' ANDtimestamp BETWEEN convert(datetime, '2011-01-01', 120) AND convert(datetime, '2011-02-28', 120) SELECT count(*) FROM activity_accumulator WHERE event_type = 'LOGIN_ATTEMPT' AND timestamp BETWEEN to_date('2011-01-01','YYYY-MM-DD HH24:MI:SS') AND to_date(‘2011-02-28','YYYY-MM-DD HH24:MI:SS') MS SQL Oracle
37.
38. Content content_handlers pk1 handle Name course_content_handlers crsmain_pk1 content_handlers_pk1 available_ind course_contents pk1 cnthndlr_handle dtcreated dtmodified crsmain_pk1 available_ind title parent_pk1 course_contents_files links course_contents to files files storage_type (CS or LOCAL) file_name link_name file_size course_main pk1 ...
39. Content Obtain total content count by type SELECT count (*) FROM course_contentsWHERE cnthndlr_handle = 'resource/x-bb-document' Obtain content added in the past day SELECT count(*) FROM course_contents WHERE dtcreated BETWEEN convert(datetime, '2011-02-27', 120) ANDconvert(datetime, '2011-02-28', 120)
40. Discussion forums Conference_main Forum_main (course-level, group-level) Msg_main (parent-child relationship for replies) Example: Obtain total messages SELECT count(*) FROM msg_main
41. Enrollments users course_main course_users Links pk1 of users and courses tables course_roles Example (enabled instructor enrollments) SELECT COUNT(DISTINCT users.pk1) FROM course_users, users WHERE course_users.row_status = 0 AND course_users.available_ind = 'Y' AND course_users.role IN ('B', 'G', 'P', 'T') AND users.pk1 = course_users.users_pk1 AND users.row_status = 0 AND users.available_ind = 'Y'
42. Tools navigation_item application (indicator of product subsystem) internal_handle course_navigation_item internal_handle enabled_ind application presence of plugins_pk1 indicates a Building Block Blogs, journals, groups Others have relevant data beyond on/off – but in their own tables
43. Activity Streams (example) User streams SELECT pk1, event_type, user_pk1, course_pk1, timestamp, data FROM activity_accumulator WHERE user_pk1 IS NOT NULL ORDER BY user_pk1, timestamp Course streams SELECT pk1, event_type, user_pk1, course_pk1, timestamp, data FROM activity_accumulator WHERE course_pk1 IS NOT NULL ORDER BY course_pk1, timestamp DO NOT run in production without limiting query STOP
44. Tools to help (pick the right one) SQL Server Management Studio Oracle SQL Developer Aqua Data Studio Blackboard-specific development