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.
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 :
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…