Connexion via ORM et bibliothèques Python

Dans le domaine de la data science, la manipulation et l’analyse des données passent inévitablement par l’accès à des bases de données. Que ce soit pour interroger des jeux de données, stocker des résultats ou orchestrer des pipelines complexes, l’interfaçage avec des systèmes de gestion de bases de données (SGBD) est une compétence essentielle. Python, grâce à son écosystème riche et mature, offre de nombreuses bibliothèques pour interagir avec les bases de données, que ce soit via des requêtes directes (SQL brut) ou via des ORM (Object Relational Mappers), qui simplifient considérablement l’écriture du code en adoptant une approche orientée objet.

 

Qu’est-ce qu’un ORM ?

 

Un ORM (Object-Relational Mapping) est un outil qui permet de manipuler des bases de données relationnelles en utilisant des objets Python…

 

SQLAlchemy : Le standard incontournable

 

SQLAlchemy est la bibliothèque ORM la plus utilisée en Python…

from sqlalchemy import create_engine
engine = create_engine('postgresql://user:password@localhost:5432/mydatabase')
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class Utilisateur(Base):
    __tablename__ = 'utilisateurs'
    id = Column(Integer, primary_key=True)
    nom = Column(String)
    age = Column(Integer)
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

nouvel_utilisateur = Utilisateur(nom="Alice", age=30)
session.add(nouvel_utilisateur)
session.commit()

 

Django ORM : Simplicité et intégration

 

from django.db import models

class Client(models.Model):
    nom = models.CharField(max_length=100)
    email = models.EmailField()
Client.objects.create(nom="Jean Dupont", email="jean@exemple.com")
clients = Client.objects.all()

 

Peewee : L’alternative légère

 

from peewee import *

db = SqliteDatabase('ma_base.db')

class Personne(Model):
    nom = CharField()
    age = IntegerField()

    class Meta:
        database = db

db.connect()
db.create_tables([Personne])

Personne.create(nom="Paul", age=29)

 

Pourquoi utiliser un ORM en Data Science ?

 

 

Connexion via bibliothèques spécialisées

 

import psycopg2

conn = psycopg2.connect(
    dbname="ma_base",
    user="utilisateur",
    password="motdepasse",
    host="localhost"
)

cur = conn.cursor()
cur.execute("SELECT * FROM utilisateurs;")
print(cur.fetchall())
conn.close()

 

Intégration avec Pandas

 

import pandas as pd

df = pd.read_sql("SELECT * FROM utilisateurs", con=engine)

 

Conclusion

 

Choisir entre un ORM ou une bibliothèque plus bas niveau dépend de la complexité de votre projet, du volume de données, et de vos préférences. Pour les projets structurés et collaboratifs, les ORM comme SQLAlchemy ou Django ORM apportent beaucoup de clarté et de robustesse. Pour des scripts rapides ou des prototypes, une connexion directe avec sqlite3 ou pymysql peut suffire.

Dans tous les cas, la maîtrise des outils de connexion aux bases de données en Python est une compétence essentielle pour tout data scientist. Elle permet d’intégrer les modèles aux systèmes d’information existants et de travailler de manière fluide avec des données réelles, souvent dispersées et volumineuses.