TP1 : Présentation B.D. , S.G.B.D. …. . Construire des tables….

Introduction : présentation des TPs BDD (objectifs)

Définitions importantes : B.D.D. et S.G.B.D.

BDD : (ou BD) Base De Données : Stock d’informations organisé et structuré de manière à :


SGBD :Les SGBD (Systèmes de Gestion de Bases de Données) permettent de naviguer dans les données et d’extraire (ou de mettre à jour) les informations souhaitées à l’aide de requêtes. C’est le logiciel qui gère les données.


Remarque : SGBDR : le R vient de relationnel, notion difficile à comprendre en début de formation, mais l’idée est :


Un classement des différents SGBD

Étapes avant de commencer à travailler sur un SGBD comme MySql

exemple de démarche pour étudier et réaliser une Base de Données

Exemple de cours

Modèle relationnel dans une base de données : Création des tables

Une table : c’est un objet abstrait , qui regroupe des données qui ont un rapport très précis entre elles.
Terminologie dans les Bases De Données

Une table est composée d’un nom, et d’un ensemble de propriétés (que l’on appelle champs). Parmi ces champs, un (ou plusieurs) a (ont) le caractère d’identifiant : la clé primaire.

Table, Champs, Clé primaire, Enregistrements

Note : Il est fortement conseillé d’écrire le nom des champs et de la table sans espace, sans caractère spécifique (lettres accentuées, espaces, virgules, …). Le code SQL est ainsi plus facilement portable d’une base de données à une autre. (faire comme pour les noms de variables en programmation Java … ).

article : différence entre une colonne et un champ ? entre une ligne et un enregistrement ?

Modèle Entité-Association
cours Modèle Entité-Association


Dans une table, le premier champ (celui qui est souligné) est la clé primaire de la table :

introduction et présentation du SQL

Le SQL :

Définition :

SQL (Structured Query Language) est un langage informatique normalisé qui permet de réaliser des opérations sur des bases de données.
La partie langage de manipulation de données de SQL permet de rechercher, d’ajouter, de modifier ou de supprimer des données dans les bases de données.

Voici quelques commandes SQL et aspects du langage , mais toutes ces commandes ne seront pas abordées ce semestre :

Installation et présentation des outils

cd
code .bashrc

Ajouter dans le fichier .bashrc de votre HOME

alias looping='wine /opt/looping-mcd/Looping.exe'
alias datagrip='/opt/DataGrip/bin/datagrip.sh'
alias pycharm='/opt/pycharm/bin/pycharm.sh'

Découverte du SGBDR MySQL

Remarque : l’objectif n’est pas de connaître toutes les fonctionnalités et subtilités du logiciel MySQL, mais d’utiliser les fonctionnalités les plus courantes que l’on retrouve dans les logiciels du même type.

Votre première Table sur MySQL :

mkdir S1
cd S1
mkdir BDD
cd BDD
touch tp1.sql
code tp1.sql &
mysql --user=login --password=mdp --host=serveurmysql --database=BDD_login
## mot de passe: mdp  et login à l'IUT

documentation connexion à mariadb - et sur MySQL

mysql --version
mysql --help
-- Usage: mysql [OPTIONS] [database]
-- commande pour se connecter à mysql :
mysql --user=login --password=mdp --host=serveurmysql  BDD_login

mysql --user=login --password=mdp  --host=serveurmysql.iut-bm.univ-fcomte.fr --database=BDD_login 
-- autre solution  pour se connecter à mysql :
-- mysql -u login -h serveurmysql -p BDD_login
-- mot de passe: mdp
-- solution plus rapide
mysql -u login -h serveurmysql -pmotdepasse BDD_login
mysql --user="login" --password="mdp"  --host="serveurmysql.iut-bm.univ-fcomte.fr" --database="BDD_login" 

Il est possible d’utiliser la commande ci-dessous pour changer le mot de passe de votre compte sur le serveur MySQL serveurmysql ou serveurmysql2

-- pour changer de mot de passe
ALTER USER 'login' IDENTIFIED BY 'secret';  

Vous pouvez changer de mot de passe, mais attention, n’utilisez pas votre mot de passe pour vous connecter sur les machines de l’IUT. Utilisez un mot de passe simple comme votre jour et mois de naissance. Ce mot de passe sera écrit dans votre code python dans quelques mois et parfois partagé avec d’autres camarades.


Les commentaires en SQL commencent par -- suivi d’un espace qui est normalisé. L’utilisation du symbole “#” pour les commentaires est également couramment admise dans certains systèmes de gestion de bases de données. Penser à utiliser CTRL+MAJ+/ sur les éditeurs.


Il est possible de mettre des " autour des valeurs des paramètres de la commande mysql.



Prenez des Notes (en commentaires) dans vos fichiers SQL (tp1.sql) pour garder une trace des TP, vous pourrez utiliser ces TPs lors du contrôle devant machine.

Commande pour utiliser (changer) la base de données utilisée par défaut : USE uneBaseDeDonnees;


Testez la commande SHOW DATABASES; pour afficher les bases de données disponibles, puis utilisez la commande USE pour changer la base de données utilisée par défaut.


Commandes du S.G.B.D.R. MYSQL

help
source tp1.sql
exit
show tables; 
system ls
script SQL : exemple de commentaires


Ajoutez dans le fichier tp1.sql les instructions ci-dessous pour créer la table etudiant et exécuter ces instructions (source tp1.sql)


Premières commandes SQL

Les commandes SQL se terminent par un point-virgule ;.

Une erreur classique est d’oublier le point-virgule (;), ce qui entraîne l’attente de l’interpréteur SQL de MySQL pour la fin de l’instruction SQL.

Exercice :
Tapez la commande : systeme 'ls puis terminez la commande pour que le logiciel MySQL puisse l’interpréter.


  1. Créer une table « etudiant »
script SQL
  1. Afficher la structure d’une table :
DESCRIBE etudiant;
  1. Insérez des enregistrements dans une table :
script SQL

NULL : non renseigné (absence de valeur : NO VALUE , N/A) (différent de espace, 0 ou la chaîne de caractères vide ““)
Il est possible de définir les champs que l’on veut remplir (ligne 1 et 5), à défaut il faut donner une valeur à chaque champ.

  1. Afficher tous les enregistrements d’une table
SELECT * FROM etudiant;

Remarque : Faire la différence entre « afficher les enregistrements d’une table » et « afficher la structure d’une table » dans un énoncé de contrôle.

  1. Supprimez la table en début de script
DROP TABLE etudiant;

Placez cette instruction en début de script pour que vos modifications sur la table soient prises en compte à chaque rechargement du script SQL.

Modifiez votre script dans votre fichier à chaque étape, l’objectif est de bien saisir les différences et les points communs entre « NOT NULL » « UNIQUE » et « PRIMARY KEY »

Pour ne plus autoriser un enregistrement avec un identifiant de l’étudiant avec comme valeur NULL :

script SQL
  1. Modifiez la table en ajoutant la contrainte NOT NULL

  2. Insérez les enregistrements précédents dans la table

  1. Supprimez la table


Clé Primaire, champ unique, champ non “NULL”

  1. Modifiez la table en ajoutant la contrainte UNIQUE, puis insérez les champs précédents
script SQL

  1. Modifiez la table et insérez les champs précédents avec une clé primaire sur l’identifiant



clé primaire : bonne pratique

Définir de préférence les clés primaires à l’aide d’une instruction séparée en fin de table car :

script SQL : solution à utiliser par la suite
  1. Affichez comment créer la table à l’aide de la commande ci-dessous
SHOW CREATE TABLE  etudiant;


  1. Terminez votre script en supprimant la table si elle existe.
script SQL : supprimer une table si elle existe


Pour les plus rapides :

  1. Ajoutez un champ dans la table etudiant avec la date de naissance de chaque étudiant (nom du champ : date_naissance) et insérer quelques valeurs en vous aidant d’internet.