Bases de données

nora.nckm.eu

Illustration

Modélisation

Le langage UML permet la modélisation d'un projet tout au long de son cycle de vie. Il définit 14 types de diagrammes particulièrement utiles dans le domaine du développement orienté objet. Le diagramme de classes peut être utilisé pour modéliser une base de données.

Diagrammes UML

timeline
    title Diagrammes UML
    Diagrammes de Structure
        : Diagramme de Classes
        : Diagramme d'Objets
        : Diagramme de Paquetage
        : Diagramme de Composants
        : Diagramme de Structure composite
        : Diagramme de Déploiement
        : Diagramme de Profils
    Diagrammes de Comportement
        : Diagramme de Cas d'utilisation
        : Diagramme d'Etats Transitions
        : Diagramme d'Activités
    Diagrammes d'Interaction
        : Diagramme de Séquences
        : Diagramme de Communication
        : Diagramme de Temps
        : Diagramme Global d'Interaction

Exemple de diagramme de classes :

Diagramme de classes

classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +String gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
        +String beakColor
        +swim()
        +quack()
    }
    class Fish{
        -int sizeInFeet
        -canEat()
    }
    class Zebra{
        +bool is_wild
        +run()
    }

Mermaid permet de générer des diagrammes à partir d'une description textuelle en Markdown. Il existe un éditeur en ligne.

Systèmes

Les systèmes de gestion de base de données relationnelle (SGBDR) implémentent le langage de requêtes SQL. Cette implémentation est plus ou moins proche de la norme selon les systèmes.

PostgreSQL Exercises propose des exercices en guise d'introduction au langage SQL.

PostgreSQL

PostgreSQL est le SGBDR libre le plus avancé (voir la documentation). Basé sur un modèle client/serveur, il s'efforce de fournir un référentiel de données partagé en mettant l'accent sur la scalabilité, la concurrence, la centralisation et le contrôle.

L'extension PostGIS gère les données géographiques.

Il existe un client en ligne de commandes : psql et un client graphique : pgAdmin. Le driver Python est disponible sur PyPI : module psycopg.

SQLite

SQLite est un SGBDR léger et portable (voir la documentation). Basé sur un modèle fichier, il s'efforce de fournir un stockage local de données pour les applications individuelles en mettant l'accent sur l'économie, l'efficacité, l'autonomie et la simplicité (Appropriate Uses For SQLite).

L'extension SpatiaLite gère les données géographiques. FTS5 apporte la recherche plein texte (full-text search).

Il existe un client en ligne de commandes : sqlite3 (version en ligne) et un client graphique : sqlitebrowser. Le driver Python est inclus dans la bibliothèque standard : module sqlite3.

SQLPage permet de développer des applications web complètes entièrement en SQL.

Requêtes

Window functions :

select count(*) over(partition by date_trunc('month', joindate) order by joindate), firstname, surname
from members
order by joindate

select row_number() over(order by joindate), firstname, surname
from members
order by joindate

select facid, sum(slots) total, rank() over (order by sum(slots) desc) rank
from bookings
group by facid

select f.name as name, ntile(3) over (order by sum(slots * membercost) desc) as class
from bookings b
    inner join facilities f on b.facid = f.facid
group by f.name

Partie en cours de rédaction…

Emojis

Un commentaire sur un de mes articles ? Commencez une discussion sur ma liste de diffusion en envoyant un email à ~nora/public-inbox@lists.sr.ht [règles]