Vous êtes sur la page 1sur 36

Base de données

Réalisé par : Encadré par :


 LAAGUILI Nada • Prof RIFAI AMAL
 EDDIYANE Fatima Ezzahraa
PLAN
1-Introduction 4-Les types de champs

2-Les types de BD 5-Les requêtes

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

 Les logiciels de gestion de bases de données les plus utilisées aujourd'hui


sont des SGBDR - Système de gestion de base de données relationnelles -,
c'est à dire que les données sont liées les unes aux autres, par exemple on
peut définir que si on supprime une information, d'autres informations
dépendantes de cette dernière soient elles-aussi automatiquement
supprimées. Cela garantit une cohérence de données .
Il ne faut donc pas confondre une base de données qui est un conteneur et
le SGBDR qui est un logiciel de gestion de bases de données.

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

Avant de commencer, il convient d’importer le module, comme il est coutume de faire


avec Python :

sqlite3 : Permet l'utilisation d'une base SQLite

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

• Avant d’exécuter une requête, créer un objet cursor


• L’objet cursor permet ensuite d’exécuter des requêtes
• Fonction: connection.cursor()
• Obtenu avec l’objet connection renvoyé lors de la connexion à la base

L'objet cursor qui récupère le résultat d'une requête sélection.

18
Exécuter une requête

Pour exécuter une requête il suffit de passer celle-ci à la méthode execute()

• 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

le commit() méthode, toute modification en attente de la base de données sera perdue.


  Le rollback sert à annuler une transaction pour une session ouverte. La commande opposée au rollback est
le commit.

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:

 On peut passer par un dictionnaire:

 On peut récupérer l'id de la ligne qu’on vient d'insérer de cette manière:

27
Récupérer des données

 On peut récupérer la première ligne correspondant à notre recherche à l'aide de la fonction fetchone .

 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.

 Le résultat est un tuple:

28
Récupérer des données

 On peut récupérer plusieurs données de la même recherche en utilisant la


fonction fetchall .

 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

 L'objet curseur fonctionne comme un itérateur, invoquant la méthode fetchall automatiquement:

 Pour la recherche spécifique, on utilise la même logique vu précédemment:

30
Modifier des données

 Pour 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 :

les clefs étrangères permettent de lier deux tables entre eux :

PK FK

32
Les clefs étrangères

33
Les clefs étrangères

34
Tableau Récapulatif

Méthodes

sqlite3 Permet l'utilisation d'une base sqlite

connect se connecter à une BDD

:memory: stocker la BDD directement dans la RAM

Close() se déconnecter

Cursor() exécuter les requêtes

Execute() pour exécuter une requête

Executemany() pour exécuter plusieurs requêtes

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

Vous aimerez peut-être aussi