Cours 7 Création d`une base de données avec phpMyAdmin

Transcription

Cours 7 Création d`une base de données avec phpMyAdmin
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
École de bibliothéconomie et des sciences de l’information
SCI6306 Bases de données documentaires
Cours 7
Création d’une base de
données avec phpMyAdmin
Faculté des arts et des sciences
14 octobre 2016
14 octobre 2016
© Christine Dufour, 2016
SCI6306
1 / 11
2 / 11
Au programme aujourd’hui
Création d’une BD avec phpMyAdmin
Création d’une table de données
Définition des propriétés des champs
Définition des index
Définition des relations entre les tables
Saisie des données
Projet de session
Remise du volet A
Présentation du volet B
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
1
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
14 octobre 2016
SCI6306
3 / 11
phpMyAdmin
Création d’une table de données
Principaux éléments génériques à définir
Nom de la table
Commentaires sur la table
 Description succincte du contenu de la table (complément au nom)
Interclassement
 Jeu de caractères + caractéristiques du classement
• Par exemple : utf8_general_ci = Unicode (multilingue), insensible à la casse
• À définir si on ne veut pas retenir l’interclassement défini au niveau de la base de données
Moteur de stockage
 Selon les besoins au niveau de la performance et de la protection de
l’intégrité des données entre autres
 Le plus fréquemment utilisé : InnoDB (celui utilisé par défaut lorsque l’on
crée une table)
https://www.thinglink.com/card/693904910051180544
14 octobre 2016
SCI6306
4 / 11
phpMyAdmin
Définition des champs
Principales propriétés à définir
Nom du champ
Type de données (voir Documentation, p. 9
http://cours.ebsi.umontreal.ca/sci6306/docs/sci6306_documentation.pdf)
Taille du champ ou valeurs prédéfinies (selon le type de données)
Valeur par défaut (s’il y a lieu)
Interclassement (s’il diffère de celui de la table)
Attributs particuliers (en particulier « unsigned » pour les champs numériques qui
n’acceptent que les valeurs positives)
Acceptation ou non de la valeur nulle (acceptation = champ facultatif)
Index (s’il y a lieu; voir acétate suivante)
Champ dont la valeur s’incrémente automatiquement (A_I)
Commentaires (pour rappeler, par exemple, les principales règles d’écriture)
https://www.thinglink.com/card/693904910051180544
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
2
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
14 octobre 2016
SCI6306
5 / 11
phpMyAdmin
Définition des index
Peuvent être créés lors de la création des champs ou après
Rappel : les champs sont cherchables même s’ils ne sont pas indexés;
l’indexation permet d’accélérer la recherche
Principes de base
Champs obligatoirement indexés
 Clé primaire : index de type Primary
 Clé externe : index de type Index
 Champ avec valeurs uniques : index de type Unique
Champs pour recherches fréquentes : index de type Index ou Unique
Remarque : Index de type Fulltext
Pour les champs contenant du texte et pour lesquels on veut utiliser des fonctions de
recherche textuelle plus avancées comme match() against() (non couvert dans
le cours)
Présence d’un antidictionnaire ainsi que de différentes règles pour décider de ce qui
est indexé ou non
https://www.thinglink.com/card/693911561177137152
14 octobre 2016
SCI6306
6 / 11
phpMyAdmin
Définition des relations
Peut se faire à partir de l’onglet Structure d’une table en cliquant sur Vue
relationnelle ou en utilisant le Concepteur (interface graphique plus simple*)
Définition du type d’action à effectuer lorsque l’on met à jour ou que l’on
supprime un enregistrement dans une table liée
CASCADE : les actions sur la table principale se répercutent sur la table liée
 Par exemple, si on supprime un cours, toutes les inscriptions vont être effacées
 Permet de préserver l’intégrité référentielle des données en s’assurant que chacune des valeurs de la
clé externe dans la table liée correspond à un enregistrement dans la table principale
 Souvent le comportement recherché
SET NULL : si on supprime un enregistrement de la table principale, les enregistrements
correspondant dans la table liée ne sont pas effacés, mais la valeur de la clé externe est
changée pour NULL
RESTRICT : on ne peut modifier la clé primaire ou effacer un enregistrement de la table
principale s’il existe un enregistrement correspondant dans la table liée
*https://www.thinglink.com/card/689640535597514754
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
3
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
14 octobre 2016
SCI6306
7 / 11
phpMyAdmin
Dictionnaire de données
Possibilité de générer, à partir de l’onglet Structure d’une base
de données, un « dictionnaire de données » où on retrouve,
pour chaque table, le détail sur les champs et ses index
Extrait pour INSCRIP
14 octobre 2016
SCI6306
8 / 11
phpMyAdmin
Saisie des données [1/2]
Saisie directe des données dans phpMyAdmin
Nouveaux enregistrements
 En cliquant sur une table et ensuite sur Insérer
 Affiche un formulaire avec deux enregistrements à remplir
 Contrôles du formulaire en fonction du type de données des
champs
Enregistrements existants
 En affichant la table et en cliquant directement la valeur que
l’on veut modifier; avantage : permet de voir le rappel des
règles d’écriture
 En affichant la table et en cliquant sur Modifier à gauche de
l’enregistrement à modifier
https://www.thinglink.com/card/689561855126929410
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
4
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
14 octobre 2016
SCI6306
9 / 11
phpMyAdmin
Saisie des données [2/2]
Importation de données
Permet l’importation en lot de données (par exemple, s’il
s’agit d’une migration d’une base de données existante vers
MySQL)
Peut se faire dans une table existante ou dans une nouvelle
table
Plusieurs formats supportés : SQL, CSV, XML, ODS, etc.
Exemple d’ODS (opendocument spreadsheet)




Nom de la feuille correspond au nom de la table
Noms des champs dans la première ligne
Enregistrements dans les lignes suivantes
Si importation dans une table existante, données doivent correspondre
aux caractéristiques des champs définis sinon erreur à l’importation
https://www.thinglink.com/card/693896319500025857
14 octobre 2016
SCI6306
10 / 11
phpMyAdmin
Exporter des données / la BD
Possibilité d’exporter les données d’une table
sous différents formats (CSV, PDF, SQL, …)
Cliquez sur la table et ensuite sur Exporter
https://www.thinglink.com/card/693897182910087169
Possibilité d’exporter toute la BD, entre autres en
format SQL pour pouvoir la réimporter dans
phpMyAdmin
Cliquez sur la base de données et ensuite sur Exporter
https://www.thinglink.com/card/693899008556400641
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
5
Cours 7 ‐ Création d'une BD dans phpMyAdmin
14 octobre 2016
14 octobre 2016
SCI6306
11 / 11
Projet de session – Volet B
Protocole déposé sur StudiUM à la pause du cours (si toutes les
équipes ont remis le volet A)
Objectifs
Développer la base de données correspondant au schéma fourni
Saisir des informations dans les tables
Livrables
Base de données MySQL correspondant au schéma fourni et contenant les
données demandées
Rapport où sont consignés les différents éléments demandés
 Justification des choix
 Réflexion sur la qualité de la base de données
 Etc.
Travail en équipe, donc dans le compte partagé sur phpMyAdmin
Vous pouvez aussi utiliser l’espace sur GIN-EBSI de l’équipe pour conserver une
copie de sauvegarde du rapport
SCI6306 (A2016) / Christine Dufour (EBSI, UdeM)
6