S'initier aux statistiques

Ceci est une traduction d'un billet d'Owen Leonard sur Koha Blog.

Koha 3 proposait déjà une sélection de rapports préconçus, et Koha 3 ajoute des rapports additionnels et un nouveau système de "Rapports Guidés" (sponsorisés partiellement par cette bibliothèque [NdT : Ahtens County Public Library]). Le système de Rapports Guidés n'est pas encore bien rodé, mais certains en ont déjà une utilisation intéressante, en particulier grâce à la possibilité d'exécuter des requêtes SQL personnalisées via l'interface de Koha.

J'aimerais vous montrer comment nous commençons à exploiter les données que Koha collecte pour constuire des rapports significatifs quant à l'utilisation de la bibliothèque. Commençons par les statistiques de circulation.

La table statistics

La santé de la bibliothèque est le reflet de ses statistiques de circulation, nous commencerons donc par là. Dans Koha, chaque prêt, retour et renouvellement est enregistré dans une table de la base de donnée appellée statistics. Voici à quoi elle ressemble :

Field Type Collation Null Key Default
datetime datetime Yes MUL NULL
branch varchar(10) utf8_general_ci Yes NULL
proccode varchar(4) utf8_general_ci Yes NULL
value double(16,4) Yes NULL
type varchar(16) utf8_general_ci Yes NULL
other mediumtext utf8_general_ci Yes NULL
usercode varchar(10) utf8_general_ci Yes NULL
itemnumber int(11) Yes NULL
itemtype varchar(10) utf8_general_ci Yes NULL
borrowernumber int(11) Yes NULL
associatedborrower int(11) Yes NULL

Certaines de ces colonnes ne sont pas utilisées; j'ignore si elles l'ont été par le passé, ou si elles le seront dans le futur. other, usercode, et associatedborrower don’t ne semblent pas être utilisées.

  • datetime représente la date et l'heure de la transaction.
  • branch est le site de la transaction.
  • proccode est lié au suivi des amendes, paiements etc.
  • value représente une somme d'argent (pour les amendes, les paiements, etc).
  • type représente le type de transaction: issue [prêt], return [retour], renew[renouvellement], payment[paiement], ou writeoff.
  • itemnumber est l'identifiant unique (defini dans la table items) de l'exemplaire concerné par la transaction.
  • itemtype est la catégorie assignée à l'exemplaire comme défini dans la gestion des types de documents de Koha.
  • borrowernumber est l'identifiant uniquer (defini dans la table borrowers) de l'adhérant concerné par la transaction.

Quand vous effectuez un prêt avec Koha, une ligne est ajoutée dans la table statistics (SELECTing datetime,branch,type,itemnumber,itemtype, and borrowernumber):

datetime branch type itemnumber itemtype borrowernumber
2008-10-07 14:07:31 CPL issue 40235 CIRC 20351

Pour vous faire une idée rapide de votre circulation du jour, vous pouvez exécuter ce qui suit :

select count(*) from statistics where year(datetime) = year(curdate()) AND month(datetime) = month(curdate()) AND DAY(datetime) = day(curdate()) and (type='issue' OR type='renew');

SQL trouvera l'année, le mois, et le jour des transactions correspondant au jour courrant et limitera les résultats aux prêts et renouvellements. Voici notre total le 16 mars 2009 :

count(*)
2190

1 row in set (36.76 sec)

Remarquez le temps qu'à mis le requête pour s'exécuter. La table statistics deviens vraiment lourde : la notre contiens des données datant de Mai 2003, et contiens 7,581,248 entrées. Celà suffit à ralentir les requêtes.

Obtenir ce genre de compte rapide est une bonne façon de coller un chiffre à votre journée. A la fin du mois, vous voudrez certainement obtenir des données significatives pour montrer quel genre de travail à été accompli. Nous allons donc séparer les résultats selon le code de collection pour voir quel genre de matériel nos adhérants ont emprûnté. Jettons un coup d'oeil à la circulation du mois dernier pour notre site d'Athens :

SELECT items.ccode, COUNT( statistics.itemnumber ) AS count
FROM items, statistics
WHERE statistics.branch = 'APL'
AND statistics.itemnumber = items.itemnumber
AND year( statistics.datetime ) =2009
AND month( statistics.datetime ) =02
AND (
statistics.type = 'issue'
OR statistics.type = 'renew'
)
GROUP BY items.ccode

Nous obtenons une belle comparaison de la popularité de chaque catégorie (dans cet exemple, il s'agit plutôt d'une sélection) pendant le mois :

ccode count
AB 427
AF 1355
AV 1002
CDM 681
DVD 1006
EASY 1754
JF 519
JNF 1028
LP 667
MYS 770
NF 1994

Vous devriez maintenant être capable de tester ces exemples chez vous en utilisant le système de Rapports Guidés Guided de Koha (ou directement dans MySQL si vous avez accès à votre base de donnée).

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options