This commit is contained in:
2025-11-05 07:43:14 +01:00
parent 4d32f73a4d
commit b75bd48062
3 changed files with 49 additions and 20 deletions

9
banque.glossaire.md Normal file
View File

@@ -0,0 +1,9 @@
# Glossaire
Français | Anglais
--- |---
compte | account
titulaire de compte | account holder
solde | balance
Source : Glossaire bilingue des termes de la microfinance par le CGAP (Consultative Group to Assist the Poor) - Cercle de réflexion de Washington, D.C. https://www.cgap.org/research/publication/cgap-glossary-of-microfinance-terms-english-to-french

View File

@@ -1,21 +1,27 @@
# Modélisation d'un système bancaire # Modélisation d'un système bancaire
Une banque locale souhaite informatiser la gestion de ses titulaires et de leurs comptes.
Vous êtes chargé(e) de concevoir et dimplémenter le schéma relationnel de base permettant de gérer :
1. Les clients de la banque,
2. Les comptes bancaires,
3. Le lien entre les titulaires et les comptes.
L'objectif de ces travaux pratiques est de :
- Concevoir un **modèle relationnel** à partir dun scénario réaliste. - Concevoir un **modèle relationnel** à partir dun scénario réaliste.
- Utiliser les **contraintes dintégrité** pour garantir la cohérence des données. - Utiliser les **contraintes dintégrité** pour garantir la cohérence des données.
- Manipuler des **jointures** et des **relations nn**. - Manipuler des **jointures** et des **relations nn**.
- Comprendre la notion d**héritage logique** en base de données. - Comprendre la notion d**héritage logique** en base de données.
Une banque locale souhaite informatiser la gestion de ses titulaires et de leurs comptes. La diffusion de cette application est internationale, vous vous efforcerez d'utiliser des termes anglais pour nommer les entités et les propriétés. Réferrez pour cela vous au [glossaire](banque.glossaire.md)
Vous êtes chargé(e) de concevoir et dimplémenter le schéma relationnel de base permettant de gérer : Pour les entités vous utiliserez le singuler et écrirez le tout en minuscule.
1. Les clients de la banque, appelés titulaires (_holders_),
2. Les comptes bancaires (_accounts_),
3. Le lien entre les titulaires et les comptes.
## 1. Les titulaires ## 1. Les titulaires
Un titulaire (_holder_) peut être une personne physique (_person_) ou une entreprise (_company_). Un clients de la banque est appelé un titulaire. Il peut être une personne physique ou une entreprise.
### 1.1 Exemple de données ### 1.1 Exemple de données
@@ -61,7 +67,7 @@ La clé étrangère `references holder(id)` dans `person`.
- Chaque titulaire peut détenir un ou plusieurs compte. - Chaque titulaire peut détenir un ou plusieurs compte.
- Un compte bancaire doit pouvoir appartenir à un ou plusieurs titulaires (compte individuel / compte joint). - Un compte bancaire doit pouvoir appartenir à un ou plusieurs titulaires (compte individuel / compte joint).
- Chaque compte dispose dun numéro de compte (_account number_) unique, dun solde, d'une date d'ouverture et une date de clôture. - Chaque compte dispose dun numéro de compte (_account number_) unique, dun solde (_balance_) et d'une date d'ouverture.
- Le solde des comptes ne peuvent être négatifs. - Le solde des comptes ne peuvent être négatifs.
- Dans le cas d'un compte joint, les parts (_share_) de propriété d'un compte doivent pouvoir être précisées. - Dans le cas d'un compte joint, les parts (_share_) de propriété d'un compte doivent pouvoir être précisées.
@@ -112,17 +118,17 @@ Cette procédure doit :
En PL/pgSQL les **procédures** sécrivent : En PL/pgSQL les **procédures** sécrivent :
```sql ```sql
create or replace procedure nom_procedure(paramètres) create or replace procedure nom_procedure(paramètres)
language plpgsql language plpgsql
as $$ as $$
declare declare
-- variables locales -- variables locales
begin begin
-- instructions SQL -- instructions SQL
end; end;
$$; $$;
``` ```
Pour afficher un message de réussite : Pour afficher un message de réussite :
@@ -234,3 +240,13 @@ Doit refuser la création avec une erreur claire :
``` ```
ERROR: La somme des parts (1.1000) doit être égale à 1.0000 ERROR: La somme des parts (1.1000) doit être égale à 1.0000
``` ```
## La double écriture comptable
Jusquà présent, les dépôts et retraits modifiaient directement le solde dun compte.
Mais dans un vrai système bancaire ou comptable, chaque opération financière doit être enregistrée en double :
Un débit sur un compte (celui qui reçoit)
Un crédit sur un autre (celui qui cède)
La somme des débits doit toujours être égale à la somme des crédits.

View File

@@ -134,7 +134,11 @@ RUN set -eux; \
# ca-certificates: for accessing remote raster files; # ca-certificates: for accessing remote raster files;
# fix: https://github.com/postgis/docker-postgis/issues/307 # fix: https://github.com/postgis/docker-postgis/issues/307
ca-certificates \ ca-certificates \
postgresql-postgis; \ postgresql-postgis
RUN set -eux; \
apt-get install -y --no-install-recommends \
postgresql-18-pglogical; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# Copier uniquement les fichiers installés depuis le builder # Copier uniquement les fichiers installés depuis le builder