mthlr

Analyse des facteurs influant sur la chance de survie sur le Titanic

Création d'une base de données et utilisation de celle-ci pour recueillir des informations

Langage utilisé : SQL

En binôme avec : Lucas Maillet

Travail commun

Dans le cadre d'un travail en binôme lors de ma première année de BUT informatique, nous avons, en trois jalons, créé et utilisé une base de données contenant des informations sur les passagers (survivants ou non) du Titanic afin de répondre à la problématique suivante : Quels sont les potentiels facteurs ayant influé sur la survie des passagers du Titanic ?

Au début de chaque jalon, la correction du jalon précédent était rendue publique.

Jalon 1 : Production de règles de gestion et création d'un SEA

Lors de cette partie, nous avons dû rédiger un certain nombre de règles de gestion par rapport à l'aide d'un texte donné au préalable.

RG1 : Un port est identifié par son numéro d'identification, et est qualifié par son nom et le pays où il est basé ;

RG2 : Un passager est identifié par son numéro d'identification, et est qualifié par son nom, son sexe, son âge et s'il a survécu au naufrage ;

[...]

Figure 1 : Extrait des règles de gestion que nous avons produites


Grâce à ces règles de gestion, nous avons pu par la suite concevoir un SEA (Schéma Entité Association), modélisant graphiquement notre base de données.

SEA conçu grâce aux règles de gestion

Figure 2 : SEA conçu grâce aux règles de gestion


Jalon 2 : Transposition d'un SLR en SQL et création de tests de conformité

Le SEA attendu et son SLR ont donc été rendus publics. Il nous a été demandé de transposer ce SLR en SQL en créant toutes les tables associées en respectant toutes les différentes contraintes du SLR et celles énoncées par les règles de gestion.

Après avoir créé ces différentes tables, nous avons dû concevoir des tests de conformité (donnés en bas de page) afin de vérifier que nos tables respectaient bien toutes ces contraintes.

Finalement, nous avons dû remplir nos différentes tables avec des données préalablement publiées par nos encadrants également.

Jalon 3 : Utilisation d'un jeu de données pour répondre à la problématique

Le plus intéressant arrive donc ici, nous avons donc regroupé l'ensemble des passagers entre 3 catégories :

  • Enfants : avec un âge < à 12 ans ;
  • Homme : avec un âge >= 12 ans et de sexe masculin ;
  • Femme : avec un âge >= 12 ans et de sexe féminin.
Nous avons donc opté pour la réalisation d'une table temporaire Passenger_Cat reprenant l'ensemble des attributs de notre table Passenger, mais rajoutant un attribut Categorie.

CREATE TEMP TABLE PASSENGER_CAT
AS SELECT *,
    'enfant' as Categorie
FROM PASSENGER
WHERE Age < 12
UNION
SELECT *,
    'femme' as Categorie
FROM PASSENGER
WHERE Age >= 12
    AND Sex = 'female'
UNION
SELECT *,
    'homme' as Categorie
FROM PASSENGER
WHERE Age >= 12
    AND Sex = 'male';

Figure 3 : Requête de création de notre table Passenger_Cat


Cela nous a permis de nous faciliter ensuite la tâche pour récupérer différentes statistiques globales par catégorie de passagers.

Graphique représentant la répartition des passagers par côté du bateau lors du sauvetage selon leur catégorie

Figure 4 : Exemple de graphique qui a nécessité cette table temporaire (représentant la répartition des catégories de passagers par côté du bateau)


Travail personnel

Lors de ce projet, j'ai élaboré les règles de gestion, le SEA ainsi que les tests de conformité.

J'ai également participé à la rédaction des comptes-rendus de la plupart des jalons.