Deze pagina bevat SQL-query's voor het verzamelen van activiteiten voor de Blackboard Learn-database, zodat je activiteitinformatie over het mobiele gebruik van Blackboard kunt opvragen. In deze informatie wordt aangenomen dat je al toegang hebt tot je database en de bevoegdheid hebt om informatie op te vragen. Deze query's zijn ontworpen met het oog op rapportages. Je hoeft dus geen schrijfbevoegdheid te hebben.

We raden aan om een account met alleen-lezentoegang te gebruiken om te voorkomen dat er per ongeluk iets wordt gewijzigd. Als je wijzigingen in de database van een complex systeem aanbrengt, kan dit aanzienlijke problemen opleveren, zoals uitval. De query's die op deze pagina in dit document worden vermeld, hebben geen wijzigingen in het systeem tot gevolg.

Op deze pagina vind je voorbeelden van SQL-querycodes. Deze query's geven je een idee van hoe ze werken. Er gelden enkele beperkingen voor de manier waarop gegevens worden vastgelegd. We kunnen momenteel niet bepalen vanuit welke app of vanaf welk platform een bepaalde gebeurtenis is uitgevoerd. Dit wil zeggen dat de gegevens van de Blackboard-app en van Blackboard Instructor er allemaal hetzelfde uitzien.

In de voorbeelden van SQL-query's wordt het databaseschema bblearn als voorbeeld gebruikt. In de Blackboard Learn-database kunnen de gegevens in verscheidene alternatieve schema's zijn opgeslagen, zoals bb_bb60 of bblearn_stats voor gearchiveerde gegevens. Het eerste deel van de query moet mogelijk worden aangepast met het oog op variaties van het schema.

Het totale aantal mobiele aanmeldingen gedurende een bepaalde periode tellen

Met deze query wordt het aantal keren aangegeven dat een gebruiker zich vanuit elke willekeurige app op welk apparaat dan ook heeft aangemeld bij Blackboard Learn. Elke keer dat een gebruiker zich aanmeldt, wordt als één keer geteld. Als de verbinding van een gebruiker herhaaldelijk wordt verbroken vanwege slechte ontvangst, kunnen er veel aanmeldingen worden gerapporteerd, ook al ziet een gebruiker die automatisch wordt aangemeld het als één sessie op het apparaat. In dit voorbeeld zien we de gegevens van één maand.

select Count(*) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'

De activity accumulator-tabel in de Blackboard Learn database registreert meerdere pogingen tot mobiel aanmelden voor elke gebruikersaanmelding in de mobiele app met FTW-verificatie. Meer informatie over dit bekende probleem.

Het aantal unieke gebruikers in een bepaalde periode tellen

Met deze query wordt het aantal unieke gebruikers aangegeven dat zich in een bepaalde periode heeft aangemeld. Omdat de database-ID wordt gebruikt in combinatie met een aanmelding, wordt de gebruiker als één gebruiker weergegeven, ongeacht hoeveel verschillende apps of apparaten er in deze periode zijn gebruikt. Als je deze query bijvoorbeeld herhaaldelijk gebruikt om maandelijkse rapporten te maken, is de gebruiker bij elke query uniek. Dit wil zeggen dat elke gebruiker elke keer dat je de query uitvoert als één gebruiker wordt geteld. Elke gebruiker wordt voor elke maand waarin hij of zij zich heeft aangemeld meegeteld, maar slechts één keer per maand. In dit voorbeeld zien we de gegevens van één maand.

select Count(Distinct(user_pk1)) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'

Het aantal unieke gebruikersaanmeldingen per cursusrol tellen

Met deze query wordt het aantal unieke gebruikers aangegeven dat zich met een cursusrol heeft aangemeld. De tabel activity_accumulator wordt samengevoegd met de tabel course_users (inschrijvingen). Door de tabel course_users, die de cursus- of organisatierol van elke gebruiker bevat, samen te voegen, kan er een ruwe schatting worden gegeven van het aantal gebruikers met toegang tot de Blackboard- en Blackboard Instructor-apps. Op deze query zijn dezelfde richtlijnen van toepassing als op 'het aantal unieke gebruikers in een bepaalde periode tellen'. Dit voorbeeld retourneert het aantal unieke mobiele aanmeldingen van cursusleiders in één maand.

select Count(Distinct(user_pk1)) from bblearn.activity_accumulator aa
join bblearn.course_users cu on
aa.user_pk1 = cu.users_pk1
where cu.role = 'P'
and timestamp > '01-NOV-2018'
and timestamp < '30-NOV-2018'
and aa.data like '%Mobile Login%';

Voor cu.role moet de 'ROL-ID' van de cursus of organisatie worden gebruikt. Daarnaast melden sommige gebruikers zich mogelijk aan bij de verkeerde app. Een cursusleider kan zich bijvoorbeeld per ongeluk aanmelden bij de Blackboard-app. Houd hier rekening mee bij de analyse van de resultaten.

Alle individuele aanmeldingen in een bepaalde periode weergeven

Deze query is in feite hetzelfde als de query waarbij het totale aantal mobiele aanmeldingen gedurende een bepaalde periode wordt geteld, maar in dit geval worden alle onbewerkte gegevens weergegeven, niet alleen het aantal rijen. Dit kan handig zijn als je patronen wilt ontdekken of de gegevens wilt exporteren om voor uitgebreidere rapporten te gebruiken. Het teken '*' in de eerste regel betekent dat alle kolommen uit de tabel worden weergegeven.

select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'

Alle individuele keren dat gebruikers discussielijnen hebben bekeken in een bepaalde periode

In plaats van dat er naar de aanmeldingsgegevens gekeken wordt, zoals de pagina Mobiele analyse, wordt er voor deze query gekeken naar wat studenten doen in de app. Wanneer iemand de Blackboard-app gebruikt om een discussielijn op een forum te bekijken, wordt er in het Building Block een item 'mobile.view.thread' vastgelegd in de tabel activity_accumulator. Deze query laat zien wanneer een student een discussielijn in een forum heeft bekeken. Als deze gegevens worden gecombineerd met gegevens uit andere tabellen of worden bewerkt in een programma zoals Microsoft Excel, is het mogelijk om informatie over specifieke studenten, cursussen en gebruikspatronen vast te stellen.

select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data = 'mobile.view.thread'

Al het mobiele gebruik weergeven

Met de volgende query worden alle mobiel-items voor een bepaalde maand opgehaald. De query kan echter ook resultaten bevatten voor pagina's waarin het woord 'mobiel' voorkomt. Dit is nuttige informatie, maar het kan beter zijn om de gegevens naar een andere indeling te converteren om gebruikspatronen te kunnen ontdekken. Je kunt bijvoorbeeld bekijken welke gebruikte items het vaakst worden geopend vanaf mobiele apparaten.

select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile%'

Geavanceerde query's

De volgende query's bevatten enkele van de basiselementen die hierboven zijn beschreven en laten manieren zien om nauwkeurigere gegevens te krijgen of gegevens te combineren om ze beter leesbaar te maken.

Query's op Blackboard-gebruikers uitvoeren

Deze query omvat alle gegevens in de gebruikerstabel, waaronder de gebruikersnaam en bijbehorende PK-waarde van elke gebruiker. Alle gebruikers in Blackboard Learn worden hierin opgenomen, ongeacht of ze mobiele producten van Blackboard gebruiken.

select *
from bblearn.users

De query beperken tot specifieke kolommen

Voor alle query's op deze pagina is de aanduiding '*' gebruikt in het deel van de query waarin je kolommen kunt opgeven. Hierdoor worden alle kolommen in de tabel door SQL geretourneerd, of ze nu van waarde zijn of niet. Met de volgende query worden alle regels uit de tabel activity_accumulator geretourneerd, maar er worden slechts 5 kolommen geretourneerd. Hiermee kunnen we niet alleen de gebruiker, de cursus en het inhoudsitem identificeren, maar zien we ook de informatie in het gegevensveld en de tijdstempel van het moment dat de activiteit plaatsvond. De andere kolommen worden niet weergegeven.

select user_pk1, course_pk1, content_pk1, data, timestamp
from bblearn.activity_accumulator

Meerdere tabellen samenvoegen

Als je de resultaten van twee tabellen combineert, kan dit je helpen de gegevens te filteren, waardoor je deze beperkt tot de relevante gebruikers. Je kunt ook de gebruikersnaam ophalen om gebruikers direct aan activiteiten te koppelen, waardoor je dit niet handmatig hoeft op te zoeken. SQL gebruikt koppelingen om de resultaten van meerdere tabellen te combineren. Een koppeling laat SQL weten dat de waarde van de ene tabel gelijk is aan dezelfde waarde in een andere tabel.

De volgende query is een voorbeeld van een SQL-koppeling die naar onze tabellen verwijst. Koppelingen kunnen ingewikkeld zijn en vergen veel oefening. Als je ingewikkeldere query's wilt uitvoeren, is het raadzaam om je te verdiepen in hoe koppelingen werken. Ingewikkeldere query's vereisen mogelijk meer werk van de databaseserver voor de verwerking ervan en er kan meer mis gaan met deze query's.

In het volgende voorbeeld zie je het regel voor regel. Dit kun je gebruiken voor het bouwen van andere query's. In deze query worden meerdere stukken, waar je al over hebt gelezen, gecombineerd in één query, waarin alleen specifieke kolommen uit meerdere tabellen worden weergegeven aan de hand van meerdere ingestelde beperkingen.

  1. Geef de kolommen uit twee verschillende tabellen op. De tabelnamen staan achter de kolommen.
  2. Kies twee tabellen en geef ze een bijnaam die uit één letter bestaat.
  3. Where is waar je de voorwaarden opgeeft. In SQL wordt de uitleg van hoe de tabellen aan elkaar verwant zijn als voorwaarde gezien. Je moet dus opgeven welke kolommen gelijkwaardig zijn, zodat SQL weet welke gegevens bij elkaar horen.
  4. Aanvullende voorwaarde: tijdstempel begindatum
  5. Aanvullende voorwaarde: tijdstempel einddatum
  6. Aanvullende voorwaarde: scheidingsteken voor gegevenskolom

select u.user_id, a.data, a.timestamp
from bblearn.activity_accumulator a, bblearn.users u
where u.pk1=a.user_pk1
and a.TIMESTAMP > '01-MAR-2016'
and a.TIMESTAMP < '01-APR-2016'
and a.data like '%Mobile Login%'

Net als de query kan er een voorwaarde aan de gebruikerstabel worden toegevoegd, zoals u.user_id = 'StudentLogin'. Hiermee kan een query worden uitgevoerd voor de tabel activity_accumulator zonder dat de PK1-waarde van de gebruikers bekend is. Alleen de gebruikersnaam van de student moet zijn opgehaald.

Andere tabellen kunnen worden gekoppeld. Hoe meer voorwaarden en koppelingen er zijn toegevoegd, hoe meer tijd er voor de query nodig is, maar dit resulteert mogelijk wel in betere gegevens. Standaard worden er veel database-ID's door de activity_accumulator uitgevoerd, maar het is ook mogelijk om de naam van de inhoud en de namen van de cursussen in de query in te vullen.

Referentiegegevens

Mobiele gebeurtenissen

De volgende gebeurtenissen worden vastgelegd door het Building Block Mobile Web Services in de tabel activity_accumulator. Deze lijst kan in de loop van de tijd veranderen. De gebeurtenissen worden vastgelegd door het Building Block, niet de apps zelf. Daarom is de indeling van de gegevens hetzelfde, welke app er ook voor de functie is gebruikt. In de vorige query voor de weergave van discussielijnen kan de parameter 'mobile.view.thread' worden vervangen door een van de vermeldingen uit de onderstaande tabel, als de vermelding extra tekst bevat afgezien van de vermelding van mobiel zelf. Er zijn gevallen waarbij er verschillende vermeldingen voor dezelfde actie zijn. Dit komt doordat de indeling op een gegeven moment is gewijzigd. Mogelijk moet je dus beide vermeldingstypen zoeken om resultaten van een langere periode te krijgen.

Ondersteunde inhoudstypen in de Blackboard-app
Gebeurtenis Vermelding in het veld 'Gegevens' in de tabel activity_accumulator
bloglijst weergeven mobile.list.blogs
berichtenlijst weergeven mobile.list.blog.entries
berichtopmerkingen weergeven mobile.list.blog.comments
dagboekopmerking toevoegen mobile.list.journal.add.entry.comment
blogopmerking toevoegen mobile.list.blog.add.entry.comment
dagboekvermelding toevoegen mobile.list.journal.add.entry
blogvermelding toevoegen mobile.list.blog.add.entry
dagboeklijst weergeven mobile.list.journals
berichtenlijst weergeven mobile.list.journal.entries
berichtopmerkingen weergeven mobile.list.journal.comments
forums weergeven mobile.list.forums
discussielijnen weergeven mobile.list.threads
discussielijn weergeven mobile.view.thread
discussielijnberichten weergeven mobile.view.thread.post
aankondigingen weergeven mobile.view.announcements
Naamlijst weergeven mobile.view.roster
cijfers weergeven mobile.view.grades
dagboekvermelding toevoegen mobile.add.journal.entry
db-bericht toevoegen mobile.add.thread.post
db-berichtopmerking toevoegen mobile.add.thread.post.comment
inhoudsitem weergeven Mobiele weergave van inhoud