Interface de programmation

Introduction

Un système de gestion de bases de données (SGBD) se présente sous la forme d’un logiciel installé sur un ordinateur ordinaire ou sur un serveur. Dans le premier cas, le SGBD ne peut en principe que répondre aux requêtes lui étant adressées par les utilisateurs de l'ordinateur sur lequel il est installé. Dans le second cas, le SGBD est capable de répondre aux requêtes que lui envoient des clients, à savoir des ordinateurs connectés à un réseau. Les clients sont reliés au serveur, en permanence ou non, par divers procédés et protocoles, éventuellement par l'intermédiaire de l'Internet. Chacun d'entre eux peut accéder à une partie plus ou moins importante des données, avec autorisation ou non de modifier certaines d'entre elles, d'en ajouter ou d'en supprimer, en fonction des règles d'accès bien déterminées, définies par l'administrateur de la base de données.

Afin de donner des ordres à un SGBD, une interface est nécessaire. En effet, un SGBD est un système encapsulé auquel les utilisateurs d'une base de données n'ont pas accès directement, de la même manière qu'un conducteur de voiture ne manipule ni n'a un accès direct au moteur équipant son véhicule pour conduire ce dernier. Tout comme un conducteur dispose d'un volant et de pédales pour donner des ordres à un moteur afin de piloter sa voiture, l'utilisateur d'un SGBD doit passer par le biais d'une interface standard. Comme deux catégories d'utilisateurs peuvent être appelés à piloter un SGBD, il existe deux types d'interfaces de SGBD, l'un dédié aux utilisateurs ordinaires et l'autre conçu pour les développeurs d'applications:

api1.jpg

Types d'interface avec un SGBD

On pourrait craindre qu'étant donné la grande diversité des SGBD existants, il soit nécessaire de faire usage de protocoles différents pour accéder à l'API de chacun d'eux. Heureusement, en ce qui concerne le langage Python, de gros efforts de standardisation ont été accomplis pour uniformiser les procédures d'accès aux SGBD, sous la forme d'une interface commune, appelée DB-API. Cette API définit un ensemble de règles de conduite pour les développeurs de modules d'accès aux divers SGBD présents et à venir, afin que ces modules soient autant que possible interchangeables. L'idée est de permettre à une même application Python de pouvoir accéder à un SGBD ou à un autre, au prix d'un simple échange de modules.

Pour des raisons techniques et didactiques, cette section concentrera son étude sur le module sqlite3 offert par la bibliothèque standard Python.

api2.jpg

Ce module inclut un moteur de base de données relationnelles très performant, nommé SQLite, comparable à MySQL sur bien des points mais plus simple d'utilisation. Pouvant également être administrées à l'aide de SQLite Studio, outil graphique de gestion de bases de données SQLite, les bases de données SQLite sont utilisées dans de nombreux logiciels grand public comme Firefox, Skype, Google Gears ainsi que dans certains produits d'Apple, d'Adobe et de McAfee.

Entièrement gratuit et libre de droits, le moteur de base de données SQLite est très populaire sur les systèmes embarqués, notamment dans la plupart des smartphone modernes. De plus amples informations peuvent être trouvées à l'adresse www.sqlite.org.