MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE REPUBLIQUE DU SENEGAL
MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE REPUBLIQUE DU SENEGAL UN PEUBLE - UN BUT - UNE FOI BASES DE DONNÉES AVANCÉES Télécommunications Réseaux Licence 2 RAPPORT DU COURS: ELHADJI FARBA TOURE SOUS LA DIRECTION DE M. DIOKH ANNÉE ACADÉMIQUE : 2017-2018 BASES DE DONNÉES AVANCÉS Permettre a chaque machine d'acceder a notre base de données : Il suffit d'editer le fichier my.cnf pour pointer bindadress : 0.0.0.0 et verifier que le port est 3306 . Permettre a ROOT d'acceder a la base de données d'une autre machine : Une fois ceci fait il suffira tout juste de se connecter a la base de données voulue tout en indiquant le mot de passe que nous avons défini ci-dessus. Pour reinstreindre l'acces de ROOT a la base de donnés de l'autre machine : avant de quitter taper la requete sql : flush privileges ; Sauvegarde par archivage : Preciser la date de l'archivage : Sauvegarde de la base EC2LT en conservant les requetes sql dans un fichier a préciser (EC2LT.sql) : Une fois la base de données (EC2LT) sauvegardée , on peut se connecter pour supprimer une table dans le but de pouvoir la restaurer vu qu'elle a été sauvegardée : Restaurattion de notre table puis verification dans notre base de données : Éxécution d 'une commande a une date voulue : CREATION D’UN SCRIPT SHELL : Pour créer un script , il suffit de créer un fichier , de l’éditer et d’y mettre les commandes voulues . Ici nous avons créer le fichier script1.sh . On édite ce fichier pour y mettre nos commandes : on tape nano script1.sh cal est la commande qui permet de voir le calendrier . Df -h permet de voir l’étendu de la partition . Pour éxécuter ce fichier on tape : ./script1.sh . Il faudra au préalable donner les droits d’éxécution de ce fichier . A l’éxécution de ce script , ces deux commandes s’éxécuteront automatiquement : Maintenant éssayons de mettre dans notre script la commande mysqldump qui permet de sauvegarder une base données (dbec2lt) dans un fichier (/opt/sauve-23052018.sql) : A l’éxécution du script , la sauvegarde de la base de données indiquée (dbec2lt) sera alors réalisée en meme temps que l’exécution des autres commandes dans notre script . Avant d’éxécuter ce script , il faudra d’abord supprimer le fichier contenant la sauvegarde de la base dbec2lt qui a été généré lorsqu’on a tapé la commande mysqldump . Éxécutons a présent le script : Nous voulons a present éxécuter notre script (script1.sh) a une date bien précise . Pour se faire il suffit juste de faire un nouveau cront: on tape crontab -e et faire l’ajout du cront . Dans ce cront , nous souhaitons l’éxécution du script a 9h 25 min . Il faut nécéssairement mettre le chemin absolue du fichier script1.sh . Juste apres il faudra supprimer le fichier qui sauvegarde la base dbec2lt avant la date indiquée dans le cront pour que la vérification de la sauvegarde soit fiable apres l’éxécution du script . Avant l’heure d’éxécution , listons /opt pour s’assurer que le fichier est supprimé. A l’heure indiquée dans le cront il faudra lister le répértoire /opt dans lequel se trouve le fichier de sauvegarde . NB : Dans le fichier (script1.sh) on devra mettre le mot de pass de la base de données dans la commande mysqldump sinon la sauvegarde n’aura pas lieu . Nous voulons maintenant faire une sauvegarde avec mysqldump sans indiquer le mot de pass sur la meme ligne de commande car c’est pas sur . Nous devons d’abord créer un fichier (passfarba) et y mettre le mot de pass de la base de données ensuite dans la commande mysqldump juste apres le parametre -p on met [$(cat /etc/phpmyadmin/passfarba)] . On y précise ainsi le chemin absolu du fichier (passfarba) contenant le mot de pass de notre server mysql . Méttons une erreur dans le mot de pass du fichier passfarba et voyons : On remarque bien que la commande refuse de s’éxécuter car le mot de pass indiqué dans le fichier passfarba n’est pas le bon . View ou tables virtuelles Créeons une base de données ec2lt dans laquelle on inscrit deux tables etudiants et classe : champs etudiants (id, matricule, nom, prenom, idclass, adresse, numero, mdp ) . champs classe (id, nom) . Ensuite on tape : use ec2lt ; Pour inscrire nos tables dans la base ec2lt : Insertions dans les tables de la base ec2lt : *etudiants : *classe : Sauvegardons notre base ec2lt avec MYSQLDUMP : Lecture table etudiants : Nous voulons maintenant lire quelques champs de étudiants et classe en un seul coup . Pour ce faire on procéde comme suit : La commande saisie nous a permi de lire les champs nom, prenom et numero de la table etudiants et le champs nom de classe en un seul coup . NB : La condition etudiants.idclass=classe.id permet de mettre sur la meme ligne le champ nom de la table classe et le champ idclass de la classe etudiants . La tache serait un peu fastidieuse si , pour lire les champs précédents , on devait retaper la commande précédente ou bien taper une autre commande pour selectionner d’autres champs d’ou l’idée de mettre en place une table virtuelle (VIEW) . Un view ou table virtuelle permet de recuperer des champs de tables créés dans une base de données pour une lecture selective ou bien cacher des informations . Par exemple si l’administrateur ne souhaite pas qu ‘une secretaire ait l’acces sur certains champs , ces derniers peuvent etre recupérés dans un view . Il se peut aussi que l’admin souhaite regrouper certains champs appartenant a des tables differentes dans une table virtuelle . Si on a plusieurs champs dans une table et que l’on souhaite lire que certains , on peut aussi créér un view . Exemple : Créeons un view (contacts) qui recupére seulement les champs nom, prenom et numero de la classe etudiants . Créeons une table virtuelle ou view (EC2LT) qui recupére les champs nom, prenom et numero de etudiants et le champs nom de classe: On a créée le view EC2LT . En tapant la commande show tables , on remarquera que les view (EC2LT et contacts) seront affichés aussi : Maintenant on va faire une insertion dans la table etudiants et voir si on peut la lire dans la table virtuelle contacts . Tout d’abord nous allons lire la table etudiants afin que la vérification soit fiable : On a inséré Penda DIAGNE dans la table etudiants et puis ensuite on le retrouve dans la table virtuelle contacts a la lecture . On remarque bien qu’une fois la table virtuelle créée ,elle recupére de facon dynamique les champs nécéssaires ; c’est comme si on avait créé un lien entre les deux tables . Pour connaître le nombre d’étudiant inscrit dans chaque classe : Afficher les classes par ordre croissant du nombre d’inscrit : Créeons une table virtuelle effectif qui recupére les classes et leur effectif repectifs : LECTURES DES CHAMPS D’UNE TABLE ET CREATION ALIAS Veuillons lire les enregistrements des champs de la table etudiants : Maintenant on souhaite afficher seulement le nombre d’enregistrements dans notre table etudiants ; on fera comme nous le montre la capture suivante : A la place de count(*) qui désigne le nombre d’enregistrement sur la figure précédente , on peut créer un ALIAS qui nous permettra de bien comprendre que le chiffre 6 signifie nombre d’enregistrements ; on tape la commande suivante : Ici notre ALIAS c’est nbrecords . Pour mieux connaître les differentes lectures des champs d’une table , on va créer une nouvelle table (notes) : NB : Pour le champs idmatiere on a : idmatiere matieres 1 RESEAUX 2 TELEPHONIE 3 BASES DE DONNÉES AVANCÉES Insertions au niveau de la table notes : On remarque bien qu’avant de faire les insertions on a lu les enregistrements des champs de etudiants afin de voir les id des étudiants . En réalité le idetudiant de notes doit correspondre avec le id de etudiants . Maintenant lisons les enregistrements de notre nouvelle table (notes) : Ici on remarque que les notes sont données par ordre des id . Essayons de faire la lecture par ordre croissant des notes : Lecture par ordre décroissant des notes : Lecture de la plus petite notes : Lecture de la plus grande note : Lecture de la note moyenne : Lecture de la somme des notes : Une autre méthode pour lire la note moyenne : Ici on voit bien pour lire la note moyenne , on a fait une requéte nous permettant d’afficher le rapport de la somme des notes sur le nombre d’enregistrement de la table notes . Maintenant on se propose de lire seulement les notes qui sont superieur a la moyenne : Nous voulons a présent lire le nom , le prenom et la note des étudiants qui ont eu la moyenne ou plus . Il y’a uploads/Industriel/ bases-de-donnees-avances.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 03, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 1.4548MB