Problème
On considère une population d'individus sur laquelle on souhaite représenter différentes relations. On souhaite, entre autres, modéliser des relations classiques de type : "Mariage", "Enfant de" ... Le système à développer devra prendre en compte la modélisation le stockage et le traitement des relations de parentés dans la population de référence.
Dictionnaire des données
Mnémonique | Libellé |
Numind | Numéro de l'individu |
Nom | Nom de l'individu |
Sexe | Sexe de l'individu : M ou F |
Dtnaiss | Date de naissance de l'individu |
Nation | Nationalité de l'individu |
Dept | Département de résidence de l'individu |
Dtmariage | Date du mariage des individus |
Pour modéliser les relations "Mariage" et "Enfant de", l'attribut Numind sera amené à jouer plusieurs rôles :
1- Si l'individu est de sexe masculin celui du "mari" (NumindMari) ou du "père" (NumindPère)
2- Si l'individu est de sexe féminin celui de la "femme" (NumindFemme) ou de la "mère" (NumindMère)
3- Quelque soit le sexe de l'individu, celui "d'enfant de" (Numindenfant)
Schéma des données
Pour plus d'informations sur la démarche de construction du schéma des données se reporter, dans ces pages, à la rubrique Conception BD.
1-DF simples
Numind -> Nom, Sexe, Dtnaiss, Nation, Dept
NumindEnfant -> NumindPère, NumindMère, Nom, Sexe, Dtnaiss, Nation, Dept
2-Attributs non classés et DF composées
Les attributs NumindMari, NumindFemme, Dtmariage n'ont pas été classés dans l'étape précédente, ils interviennent dans une DF composée qui est la suivante :
NumindMari, NumindFemme -> Dtmariage, Nom, Sexe, Dtnaiss, Nation, Dept
3-Elimination des transitivités
Numind -> Nom, Sexe, Dtnaiss, Nation, Dept
NumindEnfant -> NumindPère, NumindMère
NumindMari, NumindFemme -> Dtmariage
4-Construction des entités et associations
INDIVIDU(Numind, Nom, Sexe, Dtnaiss, Nation, Dept)
MARIAGE(NumindMari, NumindFemme, Dtmariage)
ENFANT(NumindEnfant, NumindPère, NumindMère)
5-Mise en relation des entités et associations
Entité source | Entité but | Relation sur l'attribut | Type de relation |
INDIVIDU | MARIAGE | Numind / NumindMari | 1-n |
INDIVIDU | MARIAGE | Numind / NumindFemme | 1-n |
INDIVIDU | ENFANT | Numind / NumindEnfant | 1-1 |
ENFANT | MARIAGE | NumindEnfant / NumindMari | 1-n |
ENFANT | MARIAGE | NumindEnfant / NumindFemme | 1-n |
6-Schéma des données
La structure de données "optimale" est la suivante (les clés sont en caractères gras) :
Dans ce schéma, pour simplifier la lecture, les relations entre tables n'ont pas été représentées. Elles dépendent des traitements, et donc des différents rôles que va jouer l'attribut Numind, en fonction des questions posées.
Interrogations
Pour visualiser le contenu de chaque table de la base de données, taper la commande :
SELECT * FROM Nom_de_ table;
dans un cadre comportant le bouton "Exécuter".
Donner, pour chaque individu, combien ce dernier à de frères et de soeurs. (Réponse)
Donner, pour chaque individu, le nom de ses grands-parents du côté paternel. (Réponse)
Afficher l'âge moyen des femmes à la date de leur mariage. (Réponse)
Afficher le numéro d'individu et le nom des enfants dont les parents n'ont pas la même nationalité. (Réponse)
Afficher les familles (nom du père et nom de la mère) qui ont plus de 2 enfants. (Réponse)
Afficher le rang (aîné, 2e enfant ...) de l'individu dont le numéro est égal à 11. (Réponse)