Vous êtes sur la page 1sur 2

AU : 2020-2021

Section : Mastère Bigdata

Projet Python
Date : Semestre 1 - 2020 Durée : Deux semaines Nombre de pages : 2
Responsable du cours : Yousfi Souhaib Accès Internet autorisé

Exercice
Votre projet s’articule autour de deux parties : La première partie est celle de l’authentifi-
cation et la deuxième partie est celle d’accès aux différents fichiers et leur interrogation. sous
forme de dataframe
1. Partie 1 :
Écrire un programme python qui permet d’utiliser une base de données afin de vérifier
l’authentification des utilisateurs. Soient la table TEtudiant(id,Login,pwd,idEtab) et la
table TEtablissement (idEtab, LibelleEtab, File). L’attribut idEtab est une clé étran-
gère dans la table TEtudiant et id, idEtab sont respectivement les clés primaires de
TEtudiant et TEtablissement. Exemple des tables TEtudiant et TEtablissement.

id Login pwd IdEtab


1 Slim@gmail.com b436f4f507dc 1
2 Med@hotmail.fr p4hcbcu50opc 1
3 Sarra@gmail.com dc88lcbnu584 2
4 Ichrak@gmail.com 45RTYlcbnu58 1

IdEtab LibelleEtab File


1 Centrale logCentralepdf.txt
2 INSAT logINSATpdf

(a) Écrivez la fonction createtable qui permet de créer ces deux tables, en prenant en
considération leurs contraintes d’intégrité. Et l’autoincrémentation de leur clé pri-
maire.
(b) Écrivez une fonction Insérerdonnées qui permet d’insérer des données de votre choix
dans les tables de votre base de données. Le pwd est le résultat du haché (SHA256)
du mot de passe inséré par l’utilisateur.
(c) Écrivez une fonction qui assure la phase d’authentification et d’accès au fichier dédie
à l’établissement scolaire qui ne se font que suite à :
— Une comparaison du blindpwd saisie par un utilisateur et le haché enregistré
dans la base.
— Le idEtab de l’utilisateur authentifié et le idEtab de l’établissement. Par exemple :
Slim, Med, et Ichrak peuvent accéder au fichier logCentralepdf.txt contrairement
à Sarra que malgré elle s’est authentifiée (son pwd correspond à celui de la base)
n’a pas le droit d’accéder au fichier logCentralepdf.txt Sarra ne peut accéder
qu’au fichier logINSATpdf.txt
2. Partie 2 : Une fois authentifié, chaque étudiant aura accès au fichier dédié à son éta-
blissement. Par exemple, Le fichier logCentralepdf.txt (avec lequel Slim, Med, et Ichrak
peuvent y accéder) se compose d’adresse IP d’accès, l’heure et la date de connexion
ainsi que la page ou le fichier qu’un utilisateur interroge. Sauvegardez sur votre bu-
reau les deux fichiers logCentralepdf.txt et logINSATpdf.txt qui recensent les quatre
informations séparées par des espaces.
(a) La première étape consiste à charger les informations depuis les fichiers texte logCen-
tralepdf.txt et logINSATpdf.txt dans une matrice (liste de listes) ”def list fichier(file)”.
Pour tester votre code, afficher les 8 premières lignes de votre matrice pour chaque
établissement.

Exemple :
(b) On souhaite dans un premier temps faire des statistiques sur les dates : on veut
compter le nombre de fichiers téléchargés pour chaque date présente dans les données.
On pourra pour cela utiliser un dictionnaire dont la clé est la date. Le résultat devra
être inséré dans une fonction prenant comme entrée une matrice et retournant un
dictionnaire comme résultat ”def compte date(mat)”.
Exemple :
(c) On désire maintenant connaı̂tre les 10 dates pour lesquelles il y a eu le plus de té-
léchargements ces jours-là. L’inconvénient est que le dictionnaire élaboré à la ques-
tion précédente ne retourne pas les réponses dans l’ordre souhaité : il faut classer
les dates par nombre de téléchargements croissants. Il faut ici imaginer une fonc-
tion qui retourne ces dix meilleures dates et des dix fréquentations correspondantes
”def dix meilleures(dico)”. Une indication : Utiliser la fonction ”liste.sort (reverse =
True)”. Exemple :

(d) Effectuez le même travail pour déterminer les dix documents (dernière colonne) les
plus téléchargés. Exemple :

(e) Écrire une fonction qui retourne l’heure sous forme d’entier à partir d’une date définie
par une chaı̂ne de caractères au format ”hh : mm : ss”. Par exemple, pour ”14 : 55 :
34”, la fonction doit retourner 14 sous forme d’entier. L’instruction int(”14”) convertit
une chaı̂ne de caractères en un entier. Exemple : t=heure(’19/Sep/2020’) print(t) ⇒
19
(f) Calculer le nombre de documents téléchargés pour chaque heure de la journée. Le
site est-il consulté plutôt le matin ou le soir ?
Exemple :

♣ S.Y. ♣
Bon travail