Vous êtes sur la page 1sur 26

PROJET BASE DE

DONNEÉ DE
STEAM

réalisé par :
Brahim Ben Lamine Ghouma
Mouhamed amine abderrazek

INDP1A
Table des matiéres:
I.Introduction

II.Modélisation De Base De Données

III.Modéle Conceptuel

IV. Implementation De La Base De Données

V.Exploitation de la base de données


I. Introduction:
Steam est une plateforme en ligne qui sert de bibliothèque virtuelle de
jeux vidéo. Les utilisateurs peuvent y acheter, télécharger et jouer à des jeux
sur leur ordinateur, offrant ainsi une expérience similaire à celle d'un
magasin physique, mais avec le confort de chez soi. La plateforme permet
également de communiquer avec des amis, de suivre leurs activités de jeu et
de les rejoindre dans des parties en ligne. Les amis peuvent être en statut
"en attente" avant d'être acceptés ou peuvent être bloqués. Les jeux sur
Steam sont régulièrement mis à jour, et des soldes fréquentes permettent
d'acquérir des jeux à prix réduit.
II. Modélisation De Base De
Données:

Au cœur de Steam se trouve une structure de données qui stocke et


gère les informations relative's aux utilisateurs, aux jeux et aux transactions.

Chaque utilisateur dispose d'un profil contenant des informations telles


que l'identifiant, le nom d'utilisateur, le mot de passe et l'adresse
électronique. Les préférences de jeu et les paramètres de confidentialité sont
également enregistrés. L'historique des jeux d'un utilisateur comprend la
date de début et la dernière fois que l'utilisateur a joué à chaque jeu, ainsi
que la durée totale de jeu. De plus, chaque utilisateur dispose d'une icône de
profil.

La relation entre les utilisateurs et les jeux de leur collection est suivie grâce
à une "Bibliothèque", qui enregistre des données telles que la date d'achat,
le temps total de jeu, le statut de téléchargement, si le jeu est favori et les
réglages personnalisés.

Steam offre également un système d'évaluation où les joueurs peuvent


partager leurs opinions sur les jeux qu'ils ont joués, aidant ainsi les autres à
prendre des décisions d'achat éclairées.

Les détails des jeux disponibles sur Steam sont stockés, y compris
l'identifiant unique, le titre, la description, le genre, le prix, et la date de
sortie. Les exigences système sont également incluses pour aider les
utilisateurs à déterminer si leur matériel est compatible. De plus, chaque jeu
dispose d'une ou plusieurs icônes pour une identification visuelle rapide. Les
jeux sont pris en charge dans une ou plusieurs langues, permettant aux
utilisateurs de choisir leur langue préférée. Ils peuvent également être
disponibles sur plusieurs systèmes d'exploitation, telles que Windows, Linux
ou macOS. Enfin, un jeu peut être développé par une entreprise ou un
utilisateur régulier.

Les transactions d'achat sont enregistrées, comprenant les détails des jeux
achetés, la date d'achat et le montant payé. Un système de panier d'achat
permet aux utilisateurs de parcourir la boutique, d'ajouter des jeux à leur
panier et de revoir leur sélection avant de procéder au paiement. Une fois
l'achat confirmé, les jeux sont ajoutés à la collection de l'utilisateur sur le
système d'exploitation

Les succès sur Steam sont des récompenses virtuelles obtenues en


accomplissant des tâches spécifiques ou en atteignant certains jalons dans
les jeux. La progression et les réalisations liées à ces succès sont stockées
dans la Bibliothèque et sont affichées sur le profil de l'utilisateur, mettant en
valeur sa progression et ses réalisations dans les jeux.

Enfin, les jeux sont organisés avec leurs catégories, système

d'exploitation et langues disponibles, permettant aux utilisateurs de


rechercher et de filtrer les jeux en fonction de leurs préférences, facilitant
ainsi la découverte de nouveaux titres.
III. Modéle Conceptuel:
1. Schéma entité association:
2. Liste des entités:
1. langue(Codelangue, langue, region)
2. Societe(ID_societe, Nom)
3. systeme_exploitation(ID_SysExploit, Nom)
4. Jeux(Jeux_ID, Titre, Decription, dateSortie, AgeMinimum, ExigencesSysteme,
prix, url_Icon, #ID_societe)
5. utilisateur(ID_utilisateur, Email, Nom, password, dateNaissance, dateInscript,
Paramètres_Confidentialité, #CodeLangue, url_Icon, #ID_panier)
6. panier(ID_panier, DateDeCreation, DerniereMiseAJour, Status)
7. Bibliotheque(ID_Bibliotheque, Date_Achat, temps_joue,
Statut_Téléchargement, Favori, Réglages_Personnalisés, progression,
#ID_utilisateur, #Jeux_ID)
8. evaluation(ID_evaluation, evaluation, dateCreation, commenter,
#ID_utilisateur, #Jeux_ID)
9. Transaction(ID_Transaction, couponRabaisPourcentage, Date_Achat,
methodePayment, Status, currancy, #ID_utilisateur, #Jeux_ID)
10. Categorie(ID_Categorie, Nom_Categorie, Description, url_Icon)
11. Historique(#ID_utilisateur, Date_Debut, Date_Derniere_Jouee, Duree_Totale,
#Jeux_ID)
12. donnees_sauvegarder(Donnees, DateDerniereSauvegarde, #ID_utilisateur,
#Jeux_ID)
13. LangueJeux(#CodeLangue, #Jeux_ID)
14. JeuxCategorie(#Jeux_ID, #ID_Categorie)
15. PanierTransaction(#ID_panier, #ID_Transaction)
16. Ami_Avec(ID_utilisateur, ID_ami, status)
17. DisponibleSur (#Jeux_ID, #ID_Plateforme)
3. Dictionnaire De Données:
Tableau utilisateur

• ID_utilisateur (NUMBER): Identifiant unique attribué à chaque utilisateur inscrit sur


la plateforme Steam.
• Email (VARCHAR2(255)): Adresse e-mail associée au compte de l'utilisateur, utilisée
pour la communication et la récupération du compte.
• Nom (VARCHAR2(255)): Nom d'affichage choisi par l'utilisateur pour son profil
Steam.
• password (VARCHAR2(255)): Mot de passe crypté de l'utilisateur pour sécuriser
l'accès à son compte Steam.
• dateNaissance (DATE): Date de naissance de l'utilisateur, utilisée pour vérifier l'âge
et restreindre l'accès à certains jeux.
• dateInscript (DATE): Date à laquelle l'utilisateur s'est inscrit sur Steam, utile pour
suivre l'ancienneté du compte.
• Paramètres_Confidentialité (VARCHAR2(255)): Préférences de l'utilisateur
concernant la visibilité de son profil et de ses activités de jeu sur Steam.

Tableau panier

• ID_panier (NUMBER): Identifiant unique du panier d'achat de l'utilisateur,


permettant de regrouper les jeux sélectionnés avant l'achat.
• MontantTotale (NUMBER): Montant total à payer pour les jeux dans le panier, tenant
compte des remises et des promotions.
• quantite (NUMBER): Nombre total de jeux ajoutés au panier par l'utilisateur.
• Status (VARCHAR2(255)): Nombre total de jeux ajoutés au panier par l'utilisateur.

Tableau Bibliothèque

• ID_Bibliothèque (NUMBER): Identifiant unique de la bibliothèque de jeux de


l'utilisateur, regroupant tous les jeux achetés sur Steam.
• Date_Achat (DATE): Date à laquelle un jeu a été acheté et ajouté à la bibliothèque
de l'utilisateur.
• temps_joue (NUMBER): Temps total passé par l'utilisateur à jouer à un jeu
spécifique dans sa bibliothèque.
• Statut_Téléchargement (VARCHAR2(255)): État actuel du téléchargement d'un
jeu, par exemple "Téléchargé" ou "En attente".
• Favori (VARCHAR2(1)): Indicateur permettant à l'utilisateur de marquer un jeu
comme favori pour un accès rapide.
• Réglages_Personnalisés (VARCHAR2(255)): Paramètres de jeu personnalisés par
l'utilisateur, tels que les commandes ou les options graphiques.
• progression (NUMBER): Pourcentage de progression dans les succès et objectifs du
jeu.

Tableau evaluation

• ID_evaluation (NUMBER): Identifiant unique de l'évaluation laissée par un utilisateur


sur un jeu.
• evaluation (NUMBER): l'évaluation laissée par un utilisateur sur un jeu(une note
enter 0 et 5).
• dateCreation (DATE): Date à laquelle l'évaluation a été publiée par l'utilisateur.
• commenter (VARCHAR2(255)): Commentaire détaillé de l'utilisateur sur son
expérience de jeu et son avis sur le jeu.

Tableau données_sauvegarder

• ID_Données (NUMBER): Identifiant unique des données de sauvegarde associées à


un jeu dans la bibliothèque de l'utilisateur.
• Données (VARCHAR2(4000)): Fichier de sauvegarde du jeu contenant l'état de
progression de l'utilisateur.
• DateDernièreSauvegarde (DATE): Date de la dernière mise à jour des données de
sauvegarde du jeu.

Tableau langue

• CodeLangue (VARCHAR2(10)): Code standardisé représentant une langue prise en


charge par un jeu sur Steam.
• langue (VARCHAR2(255)): Nom complet de la langue correspondant au code de
langue.
• region (VARCHAR2(255)): Région géographique où la langue est principalement
parlée.

Tableau Jeux

• Jeux_ID (NUMBER): Identifiant unique attribué à chaque jeu disponible sur la


plateforme Steam.
• Titre (VARCHAR2(255)): Titre officiel du jeu tel qu'il apparaît sur la page du magasin
Steam.
• Description (VARCHAR2(255)): Résumé du contenu et des caractéristiques du jeu
pour informer les utilisateurs potentiels.
• dateSortie (DATE): Date de sortie officielle du jeu sur la plateforme Steam.
• ÂgeMinimum (NUMBER): Âge minimum recommandé pour jouer au jeu, basé sur le
contenu et les thèmes du jeu.
• ExigencesSysteme (VARCHAR2(255)): Spécifications techniques requises pour
exécuter le jeu sur un ordinateur.
• prix (NUMBER): Prix de vente du jeu sur Steam, susceptible de varier en fonction des
promotions et des remises.

Tableau Categorie

• ID_Categorie (NUMBER): Identifiant unique de la catégorie à laquelle un jeu peut


être associé, tel que "Action" ou "Aventure".
• Nom_Categorie (VARCHAR2(255)): Nom de la catégorie utilisée pour classer et
filtrer les jeux sur Steam.
• Description (VARCHAR2(255)): Description de la catégorie, expliquant les
caractéristiques communes des jeux qui y sont inclus.

Tableau Transaction

• ID_Transaction (NUMBER): Identifiant unique de la transaction d'achat effectuée


par un utilisateur sur Steam.
• couponRabaisPourcentage (NUMBER): Représente le pourcentage de réduction
appliqué à une transaction lors de l'achat d'un jeu.
• Date_Achat (DATE): Date à laquelle la transaction d'achat a été réalisée.
• methodePayment (VARCHAR2(255)): Méthode de paiement utilisée pour effectuer
l'achat, telle que carte de crédit ou PayPal.
• Status (VARCHAR2(255)): Statut de la transaction, indiquant si l'achat a été réussi,
en attente ou annulé.

Tableau Societe

• ID_societe (NUMBER): Identifiant unique de la société ou du développeur qui a créé


le jeu.
• Nom (VARCHAR2(255)): Nom officiel de la société ou du développeur.

Tableau systeme d’exploitation

• ID_SysExploit (NUMBER): Identifiant unique de la plateforme sur laquelle le jeu est


disponible, comme Windows, Linux ou macOS.
• Nom (VARCHAR2(255)): Nom de la plateforme, utilisé pour indiquer la compatibilité
du jeu avec différents systèmes d'exploitation.

Tableau Historique_Jeu

• ID_historique (NUMBER): Identifiant unique de l'historique de jeu d'un utilisateur


pour un jeu spécifique.
• ID_utilisateur (NUMBER): Identifiant de l'utilisateur qui a joué au jeu.
• Jeux_ID (NUMBER): Identifiant du jeu auquel l'utilisateur a joué.
• Date_Début (DATE): Date à laquelle l'utilisateur a commencé à jouer au jeu pour la
première fois.
• Date_Dernière_Jouée (DATE): Date à laquelle l'utilisateur a joué au jeu pour la
dernière fois.
• Durée_Totale (NUMBER): Durée totale passée par l'utilisateur à jouer au jeu,
généralement en heures.
IV. Implementation De La Base De
Données
CREATE TABLE langue(
CodeIangue INT,
region VARCHAR(50),
langue VARCHAR(50),
PRIMARY KEY(CodeIangue)
);

CREATE TABLE PANIER(


ID_panier INT,
DateDeCreation DATE,
DernierMiseAJour DATE,
Status VARCHAR(50),
PRIMARY KEY(ID_panier)
);

CREATE TABLE Categorie(


ID_Categorie INT,
Nom_Categorie VARCHAR(50),
Description VARCHAR(1500),
url_icon VARCHAR(50),
PRIMARY KEY(ID_Categorie)
);

CREATE TABLE Societe(


ID_societe INT,
Nom VARCHAR(50),
PRIMARY KEY(ID_societe)
);

CREATE TABLE SysExploit (


ID_SysExploit INT,
Nom VARCHAR(50),
PRIMARY KEY(ID_SysExploit)
);

CREATE TABLE utilisateur(


ID_utilisateur INT,
Email VARCHAR(50),
Nom VARCHAR(50),
password VARCHAR(50),
dateNaissance DATE,
dateInscript DATE,
Paramètres_Confidentialité VARCHAR(50),
url_icon VARCHAR(50),
CodeIangue INT NOT NULL,
ID_panier INT NOT NULL,
PRIMARY KEY(ID_utilisateur),
UNIQUE(ID_panier),
UNIQUE(Email),
FOREIGN KEY(CodeIangue) REFERENCES langue(CodeIangue),
FOREIGN KEY(ID_panier) REFERENCES PANIER(ID_panier)
);

CREATE TABLE Jeux(


Jeux_ID INT,
Titre VARCHAR(50),
Description VARCHAR(1500),
dateSortie DATE,
AgeMimimum INT,
ExgencesSysteme VARCHAR(500),
prix INT,
url_icon VARCHAR(150),
ID_societe INT,
PRIMARY KEY(Jeux_ID),
FOREIGN KEY(ID_societe) REFERENCES Societe(ID_societe)
);

CREATE TABLE Bibliotheque(


ID_Bibliotheque INT,
temps_joue TIME,
Statut_Téléchargement VARCHAR(50),
Favori VARCHAR(50),
Réglages_Personnalisés VARCHAR(50),
progression VARCHAR(50),
Date_Achat DATE,
Jeux_ID INT NOT NULL,
ID_utilisateur INT NOT NULL,
PRIMARY KEY(ID_Bibliotheque),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur)
);

CREATE TABLE evaluation(


ID_evaluation INT,
dateCreation DATE,
commenter VARCHAR(50),
evaluation INT,
Jeux_ID INT NOT NULL,
ID_utilisateur INT NOT NULL,
PRIMARY KEY(ID_evaluation),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur)
);
CREATE TABLE Transaction(
ID_Transaction INT,
CouponRabaisPourcentage INT,
Date_Achet DATE,
methodePayment VARCHAR(50),
Status VARCHAR(50),
currency VARCHAR(50),
Jeux_ID INT NOT NULL,
ID_utilisateur INT NOT NULL,
PRIMARY KEY(ID_Transaction),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur)
);

CREATE TABLE Ami_Avec(


ID_utilisateur INT,
status VARCHAR(50),
ID_utilisateur_1 INT NOT NULL,
PRIMARY KEY(ID_utilisateur),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur),
FOREIGN KEY(ID_utilisateur_1) REFERENCES utilisateur(ID_utilisateur)
);

CREATE TABLE PanierTransaction(


ID_Transaction INT,
ID_panier INT,
PRIMARY KEY(ID_Transaction, ID_panier),
FOREIGN KEY(ID_Transaction) REFERENCES Transaction(ID_Transaction),
FOREIGN KEY(ID_panier) REFERENCES PANIER(ID_panier)
);

CREATE TABLE Donnees_sauvegarder(


ID_utilisateur INT,
Jeux_ID INT,
DateDerniereSauvegarde DATE,
Données VARCHAR(5000),
PRIMARY KEY(ID_utilisateur, Jeux_ID),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID)
);

CREATE TABLE Historique(


ID_utilisateur INT,
Jeux_ID INT,
Date_Début DATE,
Date_Dernière_Jouée DATE,
Durée_Totale TIME,
PRIMARY KEY(ID_utilisateur, Jeux_ID),
FOREIGN KEY(ID_utilisateur) REFERENCES utilisateur(ID_utilisateur),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID)
);
CREATE TABLE langueJeux(
CodeIangue INT,
Jeux_ID INT,
PRIMARY KEY(CodeIangue, Jeux_ID),
FOREIGN KEY(CodeIangue) REFERENCES langue(CodeIangue),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID)
);

CREATE TABLE JeucCategorie(


Jeux_ID INT,
ID_Categorie INT,
PRIMARY KEY(Jeux_ID, ID_Categorie),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID),
FOREIGN KEY(ID_Categorie) REFERENCES Categorie(ID_Categorie)
);

CREATE TABLE DisponibleSur(


Jeux_ID INT,
ID_Plateforme INT,
PRIMARY KEY(Jeux_ID, ID_Plateforme),
FOREIGN KEY(Jeux_ID) REFERENCES Jeux(Jeux_ID),
FOREIGN KEY(ID_Plateforme) REFERENCES platforme(ID_Plateforme)
);
V.Exploitation de la base de données
1) Lister les utilisateurs ayant accumulé plus de 10 heures de jeu:

2) Déterminer le nombre de jeux par catégorie:

3) Déterminez le nombre total de jeux achetés par chaque utilisateur:


4) Quels sont les utilisateurs qui ont réalisé les dépenses les plus
élevées en jeux:

5) Identifiez les sociétés dont les jeux ont reçu les évaluations
moyennes les plus élevées de la part des utilisateurs. Affichez le nom de
la société, le nombre de jeux développés et l'évaluation moyenne de leurs
jeux:
6) Identifiez les utilisateurs qui ont exclusivement joué à des jeux
gratuits:
7) Identifier les amis de l'utilisateur ayant l'ID 20:

8) Quels sont les jeux favoris partagés entre l'utilisateur ayant l'ID 20 et chacun de
ses amis:
9) Quel est le revenu total engendré par les catégories de jeux,
organisés en ordre décroissant :

10) Trouvez les sociétés dont les jeux sont les plus populaires parmi les
utilisateurs parlant français. Affichez le nom de la société, le nombre de jeux
développés et le nombre d'utilisateurs parlant français qui ont acheté les jeux:
11) Quel est le jeu associé au coupon ayant la plus grande valeur:

12) Identifiez les paires d'utilisateurs qui sont amis et qui ont joué
ensemble à au moins trois jeux différents:

13) Identifiez les sociétés ayant développé des jeux dans trois
catégories ou plus :
14) Quel est le nombre moyen de jeux par catégorie, en proportion du
total des jeux:

15) Trouver les utilisateurs qui ont acheté des jeux mais n'ont pas
encore laissé d'évaluation:
16) Trouvez les jeux qui sont disponibles sur toutes les systèmes de
exploitation:

17) Identifiez les plateformes sur lesquelles les jeux développés par
'Advanced Technologies Corp' sont les plus populaires, en fonction du
nombre d'utilisateurs:

18) Quelle est la société qui a développé le jeu le moins téléchargé:


19) Quelles sont les paires de jeux ayant accumulé un temps de jeu total
identique parmi tous les utilisateurs:

20) Identifiez l'utilisateur ayant le réseau d'amis le plus étendu :

21) Quel est le jeu le plus populaire en termes de nombre d'utilisateurs qui l'ont acheté:
22)Trouvez les systèmes d'exploitation la plus populaire en fonction du
nombre de jeux disponibles sur celle-ci:

23) Identifier le jeu qui, ayant des évaluations inférieures à la moyenne,


possède le plus grand nombre d'utilisateurs l'ayant défini comme favori
('Y'):
24)Sélectionner les systèmes d'exploitation les plus populaires en
fonction du nombre total d'heures jouées pour tous les jeux :

25) Trouver l'utilisateur ayant effectué le plus de dépenses en


transactions durant l'année écoulée:

26) Identifiez l'utilisateur ayant le plus bénéficié de réductions via


l'utilisation de coupons:
27) Trouver le jeu ayant reçu la meilleure évaluation moyenne le mois
dernier :

Vous aimerez peut-être aussi