Files
sql/banque.md
2025-11-02 14:36:58 +01:00

65 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Modélisation d'un système bancaire
## Objectifs
- Concevoir un **modèle relationnel** à partir dun scénario réaliste.
- Utiliser les **contraintes dintégrité** pour garantir la cohérence des données.
- Manipuler des **jointures** et des **relations nn**.
- Comprendre la notion d**héritage logique** en base de données.
## Contexte
Une banque locale souhaite informatiser la gestion de ses comptes et de leurs titulaires.
Chaque compte peut appartenir à une ou plusieurs personnes physiques ou morales.
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, appelés titulaires (_holders_),
2. Les comptes bancaires (_accounts_),
3. Le lien entre les titulaires et les comptes.
## 1. Les titulaires
Un titulaire (_holder_) peut être une personne physique (_person_) ou une entreprise (_company_).
### 1.1 Exemple de données
- une personne nommée _Françoise Zanetti_, née le 12 avril 1995.
- une entreprise nommée _Boulangerie de Valorgue_, créée le 19/08/2014, numéro dimmatriculation FR19803269968.
### 1.2 Analyse
- Quelles informations faut-il conserver pour tous les titulaires ?
- Quelles informations sont spécifiques à chaque type de titulaire ?
- Comment représenter cette distinction en base relationnelle ?
> [!TIP]
> Indice : on peut utiliser une table abstraite `holder`, puis des tables `person` et `company` qui héritent logiquement de celle-ci.
### 1.3 Contraintes à respecter
- Chaque `person` ou `company` doit correspondre à exactement un seul `holder`.
- La suppression dun `holder` doit supprimer automatiquement la ligne correspondante dans `person` ou `company`.
- Le type doit être contraint à `'PERSON'` ou `'COMPANY'`.
### 1.4 Vérifications
Lister tous les titulaires.
Supprimer un titulaire, vérifier que cela supprime l'individu ou la société correspondante.
### 1.5 Réflexion
- 1. Pourquoi séparer `person` et `company` ?
- 2. Pourquoi ne pas tout mettre dans une seule table holder ?
- 3. Quelle contrainte empêche dinsérer une person sans holder ?
### 1.6 Pour aller plus loin
La banque souhaite désormais que toute personne titulaire dun compte ait au moins 15 ans à la date de création de sa fiche.
## 2. Les comptes
- Un compte bancaire appartient à un ou plusieurs titulaires (_holders_).
- Chaque compte dispose dun numéro de compte (_account number_) unique et dun solde.