Académique Documents
Professionnel Documents
Culture Documents
3-Fonctionnalités de 6-Conclusion
base
Introduction
Une base de données ( data base en anglais) est un conteneur dans lequel
il est possible de stocker des données de façon structurée . Cette structure
permet au programme informatique connectée à celle-ci de faire des
recherches complexes .
Un langage standardisé -SQL- est dédié à cette structure et permet aussi
bien de faire des recherches mais aussi des modifications ou des
suppressions.
3
Introduction
4
Introduction
les Bases De Données (BDD) s’imposent comme une forme efficace de stockage. Il est alors
plutôt aisé d’interagir avec celles-ci en utilisant un Système de Gestion de Base de Données
(SGBD), un logiciel spécialement conçu pour les gérer et les manipuler à l’aide d’un langage
normalisé tel que le Structured Query Language (SQL).
Parmi les SGBD, nous pouvons trouver SQLite qui utilise un sous-ensemble de SQL. Sa légèreté
et le fait que les données se trouvent sur le terminal du client et non sur un serveur distant, en font
un outil apprécié pour des applications personnelles
5
Introduction
SQLite fait partie de la famille des SGBD dits« Relationnelles », car les données sont alors
placées dans des tables et traitées comme des ensembles.
MySQL est l’un des SGBDR les plus utilisés au monde. Il est gratuit et très puissant et répond à
une logique client/serveur : c’est à dire que plusieurs clients (ordinateurs distants) peuvent se
connecter sur un seul serveur qui héberge les données.
6
les SGBDR les plus connus
Ies SGBBR les plus connues
MySQL est l'un des SGBDR les plus utilisés au monde. Il est gratuit et très puissant. Il possède la double licence GPL et
propriétaire depuis son rachat par Sun Microsystem eux-mêmes racheté par Oracle (concurrent direct de MySQL). Le
logiciel reste cependant entièrement gratuit et libre. Il répond à une logique client/serveur , c'est à dire que plusieurs
clients (ordinateurs distants) peuvent se connecter sur un seul serveur qui héberge les données.
SQLite est une bibliothèque écrite en C . SQLite est parfait pour les petits projets. Sa particularité est d'être intégré
directement à un programme et ne répond donc pas à la logique client-serveur. Il est le moteur de base de données le
plus distribué au monde puisqu'il est intégré à de nombreux logiciels grand public comme Firefox, Skype, Adobe, etc. Le
logiciel pèse moins de 300 ko et peut donc être intégré à des projets tournant sur de petites supports comme les
smartphones. Souvent aucune installation n'est nécessaire pour l'utiliser.
8
Ies SGBBR les plus connues
Oracle Database est sous licence propriétaire, c'est à dire payant. Il est souvent utilisé pour les projets à
gros budget nécessitant de réaliser des actions complexes.
Microsoft SQL ServerProduit ne tourne que sur un OS Windows, payant n'apporte rien de plus que les
logiciels concurrents libre de droit. Si vous avez trop d'argent à la limite...
PostgreSQL est la base de données à utiliser pour les gros projets. Stable et très puissant, il permet de gérer
des Gigabytes de données sans problème.
MariaDB Le créateur de MySQL a crée MariaDB suite au rachat de MySQL pour continuer le projet en open
source
9
Fonctionnalités de base
Fonctionnalités de base
• À travers cette partie nous allons nous familiariser avec les bases de sqlite3/MySQL : comment créer une base de
données, exécuter une requête ou encore utiliser des clefs étrangères
11
Fonctionnalités de base
1. Connexion
Cela fait, nous pouvons nous connecter à une BDD en utilisant la méthode connect et en lui passant l’emplacement du
fichier de stockage en paramètre. Si ce dernier n’existe pas, il est alors créé :
12
Fonctionnalités de base
1. Connexion
Nous récupérons un objet retourné par la fonction. Celui-ci est de type Connection et il nous permettra de travailler
sur la base. Par ailleurs, il est aussi possible de stocker la BDD directement dans la RAM en utilisant la chaîne clef
":memory:". Dans ce cas, il n’y aura donc pas de persistance des données après la déconnexion.
13
Fonctionnalités de base
2. Déconnexion
Il ne faut pas oublier de se déconnecter. Pour cela, il su ffit de faire appel à la méthode close de notre objet
Connection
14
Les types de champs
Les types de champs
Il est important de connaître les types disponibles, avec leur correspondance en Python.
Dans le sens inverse, les types Python du tableau seront utilisables avec leur correspondance SQLite. Il est vrai que
la liste peut s’avérer restreignant. Alors, il est possible d’ajouter nos propres types de données.
16
Exécuter une requête
Exécuter une requête
Pour exécuter nos requêtes, nous allons nous servir d’un objet Cursor, récupéré en faisant appel à la
méthode cursor de notre objet de type Connection
18
Exécuter une requête
• Une fois le curseur crée, il peut être utilisé pour exécuter une requête
• Fonction cursor.execute()
19
Exécuter plusieurs requêtes
Pour exécuter plusieurs requêtes, comme pour ajouter des éléments à une table par exemple, nous pouvons
faire appel plusieurs fois à la méthode execute :
20
Exécuter plusieurs requêtes
Ou nous pouvons aussi passer par la méthode executemany
Nous utilisons ici, l’opérateur ? couplé à des tuples pour passer des paramètres aux requêtes, mais nous pouvons aussi
utiliser des dictionnaires et l’opérateur : avec le nom des clefs :
21
Exécuter un script
Il est possible d’exécuter un script directement à l’aide de la méthode executescript(). Si celui-ci contient plusieurs
requêtes, celles ci doivent être séparées par des points virgules:
22
Valider ou annuler une modification
Lorsque nous effectuons des modifications sur une table (insertion, modification ou encore suppression
d’éléments), celles-ci ne sont pas automatiquement validées. Ainsi, sans validation, les modifications ne sont
pas effectuées dans la base et ne sont donc pas visibles par les autres connexions. Pour résoudre cela, il nous
faut donc utiliser la méthode commit de notre objet de type Connection. En outre, si nous effectuons des
modifications puis nous souhaitons finalement revenir à l’état du dernier commit, il su ffit de faire appel à la
méthode rollback, toujours de notre objet de type Connection.
23
Valider ou annuler une modification
Nous appelons conn.commit() pour valider la transaction en attente dans la base de données. Sans appeler
24
Création de tables
Pour créer une table dans SQLite3, on peut utiliser la requête Create Table dans
la méthode execute().
25
Suppression des tables
Pour supprimer une table dans SQLite3, on peut utiliser la requête DROP
TABLE dans la méthode execute().
26
Insérer des données
Il existe plusieurs manières d’insérer des données, la plus simple est celle-ci:
27
Récupérer des données
Pour parcourir un résultat à la fois, il suffit d’utiliser la méthode fetchone qui retourne un résultat sous forme de
tuple, ou None, s’il n’y en a pas.
28
Récupérer des données
Pour récupérer directement tous les résultats d’une requête, nous pouvons faire appel à la
méthode fetchall.
29
Récupérer des données
30
Modifier des données
31
Les clefs étrangères
Dès que le nombre de tables augmente, il est souvent primordial de les lier à l’aide de clefs étrangères.
Avec sqlite3, les clefs étrangères ne sont pas activées de base. Il nous faut donc y remédier avec la requête adéquate :
PK FK
32
Les clefs étrangères
33
Les clefs étrangères
34
Tableau Récapulatif
Méthodes
Close() se déconnecter
35
Tableau Récapulatif
Méthodes
Executescript() pour exécuter un script
Comit() valider la transaction en attente dans la
BD
Rollback() annuler une transaction pour une session
ouverte
Fetchone() récupérer la première ligne
Fetchall() peut tout les lignes
36