Banque
This commit is contained in:
9
banque.glossaire.md
Normal file
9
banque.glossaire.md
Normal 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
|
||||
54
banque.md
54
banque.md
@@ -1,21 +1,27 @@
|
||||
# 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 d’implé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 d’un scénario réaliste.
|
||||
- Utiliser les **contraintes d’intégrité** pour garantir la cohérence des données.
|
||||
- Manipuler des **jointures** et des **relations n–n**.
|
||||
- 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 d’implémenter le schéma relationnel de base permettant de gérer :
|
||||
|
||||
1. Les clients de la banque, appelés titulaires (_holders_),
|
||||
2. Les comptes bancaires (_accounts_),
|
||||
3. Le lien entre les titulaires et les comptes.
|
||||
Pour les entités vous utiliserez le singuler et écrirez le tout en minuscule.
|
||||
|
||||
## 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
|
||||
|
||||
@@ -61,7 +67,7 @@ La clé étrangère `references holder(id)` dans `person`.
|
||||
|
||||
- Chaque titulaire peut détenir un ou plusieurs compte.
|
||||
- Un compte bancaire doit pouvoir appartenir à un ou plusieurs titulaires (compte individuel / compte joint).
|
||||
- Chaque compte dispose d’un numéro de compte (_account number_) unique, d’un solde, d'une date d'ouverture et une date de clôture.
|
||||
- Chaque compte dispose d’un numéro de compte (_account number_) unique, d’un solde (_balance_) et d'une date d'ouverture.
|
||||
- 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.
|
||||
|
||||
@@ -112,17 +118,17 @@ Cette procédure doit :
|
||||
|
||||
En PL/pgSQL les **procédures** s’écrivent :
|
||||
|
||||
```sql
|
||||
create or replace procedure nom_procedure(paramètres)
|
||||
language plpgsql
|
||||
as $$
|
||||
declare
|
||||
-- variables locales
|
||||
begin
|
||||
-- instructions SQL
|
||||
end;
|
||||
$$;
|
||||
```
|
||||
```sql
|
||||
create or replace procedure nom_procedure(paramètres)
|
||||
language plpgsql
|
||||
as $$
|
||||
declare
|
||||
-- variables locales
|
||||
begin
|
||||
-- instructions SQL
|
||||
end;
|
||||
$$;
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
## La double écriture comptable
|
||||
|
||||
Jusqu’à présent, les dépôts et retraits modifiaient directement le solde d’un 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.
|
||||
|
||||
@@ -134,7 +134,11 @@ RUN set -eux; \
|
||||
# ca-certificates: for accessing remote raster files;
|
||||
# fix: https://github.com/postgis/docker-postgis/issues/307
|
||||
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/*
|
||||
|
||||
# Copier uniquement les fichiers installés depuis le builder
|
||||
|
||||
Reference in New Issue
Block a user