Vous êtes sur la page 1sur 10

Plan

Plan
1 Modèle Logique de Données
Modèle Logique de Données & Introduction à Type d’une association binaire
Principe d’établissement du MLD
MySQL
Règles de traduction du MCD en MLD
2 Outils de développement
Dr Abdou Wahidi BELLO Sur ANDROID : ”SQLite Editor Master”
Sur ordinateur avec windows : WAMP, XAMPP
Université d’Abomey-Calavi 3 Introduction au SQL
Création/manipulations d’une base de données
Création/manipulations d’une Table
Contraintes d’intégrité
Les index
Modification de Tables : ALTER TABLE
Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 2

Modèle Logique de Données Type d’une association binaire Modèle Logique de Données Type d’une association binaire
Outils de développement Principe d’établissement du MLD Outils de développement Principe d’établissement du MLD
Introduction au SQL Règles de traduction du MCD en MLD Introduction au SQL Règles de traduction du MCD en MLD

Type d’une association binaire Modèle Logique de Données

Définition
Le type d’une association binaire est un couple de la forme Architecture d’un MLDR
max1 : max2 (max1 ≤ max2) où max1 et max2 représentent L’établissement du Modèle Logique des Données (MLD) permet
les deux cardinatilités maximales entourant l’association. de se rapprocher au plus près du Modèle Physique.
Le principe est de traduire le MCD en Structures de table de la
Exercice
BDD après respect de certaines règles.
A partir de la leçon sur le Modèle Conceptuel de Données,
élaborer et illustrer tous les types d’association binaire.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 4 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 5
Modèle Logique de Données Type d’une association binaire Modèle Logique de Données Type d’une association binaire
Outils de développement Principe d’établissement du MLD Outils de développement Principe d’établissement du MLD
Introduction au SQL Règles de traduction du MCD en MLD Introduction au SQL Règles de traduction du MCD en MLD

Règles de traduction du MCD en MLD


Règle 1 (Association binaire de type 1 :n)
L’entité ayant la cardinalité de type 1,1 ou 0,1 absorbe l’identi-
fiant de l’entité la plus forte (0, n ; 1, n ou n,n).
Cet identifiant mis dans l’entité la plus faible est alors appelé la
Règle 0 clé étrangère.
Toute entité devient une table dans laquelle les attributs de-
De plus la clé étrangère ne peut pas recevoir la valeur vide si la
viennent les colonnes et l’identifiant constitue la clé primaire de
cardinalité faible est 1,1
la table.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 6 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 7

Modèle Logique de Données Type d’une association binaire Modèle Logique de Données Type d’une association binaire
Outils de développement Principe d’établissement du MLD Outils de développement Principe d’établissement du MLD
Introduction au SQL Règles de traduction du MCD en MLD Introduction au SQL Règles de traduction du MCD en MLD

Règle 3 : (Association binaire de type n : n)


Règle 2 : (Association binaire de type 1 : 1) Une association binaire de type n : n devient une table
Une association binaire de type 1 : 1 est traduite comme une supplémentaire (table de jonction) dont la clé primaire est com-
association binaire de type 1 :n sauf que la clé étrangère se posée des deux clés étrangères.
voit imposer une contrainte d’unicité (cette contrainte d’unicité
impose à la colonne correspondante de ne prendre que des va-
leurs distinctes).

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 8 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 9
Modèle Logique de Données Type d’une association binaire Modèle Logique de Données Type d’une association binaire
Outils de développement Principe d’établissement du MLD Outils de développement Principe d’établissement du MLD
Introduction au SQL Règles de traduction du MCD en MLD Introduction au SQL Règles de traduction du MCD en MLD

Règle 4 : Association non binaire


MLD
Une association non binaire est traduite par une table
supplémentaire dont la clé primaire est composée d’autant de
clés étrangères que d’entité en assocation. Les attributs de l’as-
sociation deviennent les colonnes de cette nouvelle table.

Exercice
Traduire le MCD l’exercice 2 / TD1 en MLD.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 10 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 11

Modèle Logique de Données Modèle Logique de Données


Sur ANDROID : ”SQLite Editor Master” Sur ANDROID : ”SQLite Editor Master”
Outils de développement Outils de développement
Sur ordinateur avec windows : WAMP, XAMPP Sur ordinateur avec windows : WAMP, XAMPP
Introduction au SQL Introduction au SQL

Le Package Android (APK) ”SQLite Editor Master” Le Package Android (APK) ”SQLite Editor Master”

SQLite Editor Master SQLite Editor Master


SQLite Editor Master est un éditeur de base de données Sqlite SQLite Editor Master est un éditeur de base de données Sqlite
pour les utilisateurs d’Android. pour les utilisateurs d’Android.
En utilisant SQLite Editor Master, vous pouvez faire presque En utilisant SQLite Editor Master, vous pouvez faire presque
n’importe quoi dans une base de données Sqlite. n’importe quoi dans une base de données Sqlite.
La fonctionnalité comprend le navigateur/éditeur/modification de La fonctionnalité comprend le navigateur/éditeur/modification de
données de table, l’éditeur de requêtes, l’exportation de table, données de table, l’éditeur de requêtes, l’exportation de table,
l’importation CSV, etc. l’importation CSV, etc.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 13 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 14
Création/manipulations d’une base de données
Modèle Logique de Données Modèle Logique de Données Création/manipulations d’une Table
Sur ANDROID : ”SQLite Editor Master”
Outils de développement Outils de développement Contraintes d’intégrité
Sur ordinateur avec windows : WAMP, XAMPP
Introduction au SQL Introduction au SQL Les index
Modification de Tables : ALTER TABLE

WAMP ou XAMPP

WAMP ou XAMPP Définition


WAMP (Windows, Apache, MySQL, PHP) et XAMPP (cross- SQL (”Structured Query Language” ou ”Langage de
platform, Apache, MariaDB/MySQL, PHP, Perl) fournissent cha- requêtes structuré”) est un langage informatique destiné à
cun un ensemble complet de serveurs web et de bases de interroger ou piloter une base de données.
données pour le développement local. MySQL (My Structured Query Language) est un système
1 Téléchargement sur les sites officiels de gestion de bases de données relationnelles.
http ://www.wampserver.com/fr/ pour WAMP
SQLite est un système autonome léger de gestion de bases
https ://www.apachefriends.org/fr/index.html pour XAMPP
de données relationnelles, sans serveur et ne nécessitant
2 Installation : Exécutez le programme d’installation aucune configuration.
téléchargé et suivre les étapes d’installation en cliquant sur
”Next” ou ”Suivant” selon les instructions.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 15 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 17

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

MySql : Connexion au serveur


Définition
SQL est à la fois :
un Langage de Définition de Données (LDD) : création, modification
ou suppression des tables dans une base de données relationnelle. MySql : Connexion au serveur
un Langage de Manipulation de Données (LMD) : insertion, modifica-
Si pas mot de passe
tion ou suppression des données dans une table d’une base de données
relationnelle. mysql -u utilisateur
un Langage d’Intérogation de Données (LID) : sélection des données, Si mot de passe nécessaire
interrogation d’une base de données relationnelle en vue d’avoir une
liste de résultats. mysql -u utilisateur -p
un Langage de Contrôle de Données (LCD) : protection de l’accès aux
données grâce à la définition des permissions au niveau des utilisateurs
d’une base de données relationnelle.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 18 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 19
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Fichier .sql
Création/manipulations d’une base de données
Créer une base de données
Fihier .sql CREATE DATABASE [IF NOT EXISTS] mabase;
Une fois connecté au server MySQL, on peut : (mabase existe déjà) et (IF NOT EXISTS non spécifié) ⇒ erreur.
Supprimer une base de données
soit directement exécuter des instrustions SQL dans le
DROP DATABASE [IF EXISTS] mabase;
terminal ;
(mabase n’existe pas encore) et (IF EXISTS non spécifié) ⇒ erreur.
soit exécuter un fichier préalablement édité (.sql) et Voir la liste des bases de données
contenant des instrustions SQL : SHOW DATABASES;
$mysql> source fichier.sql; Spécifier la base base de données à utiliser :
USE mabase;

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 20 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 21

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Création d’une Table Création d’une Table

La création d’une table implique :


Syntaxe
Définition des données CREATE TABLE [IF NOT EXISTS] matable(
lui donner un nom (dans une base de données) attribut1 type [NOT NULL] [AUTO INCREMENT] [DEFAULT],
......
définir des colonnes : type [, taille, valeurs par défaut, . . .] [[CONSTRAINT <nomcontrainte>] <contrainte table>],
rajouter des contraı̂ntes pour les colonnes ......
);
donner éventuellement des permissions (grants)

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 22 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 23
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Création d’une Table Création d’une Table

Exemples
1 CREATE TABLE Bus(
idBus INT UNSIGNED AUTO INCREMENT,
marqueBus VARCHAR(20) NOT NULL,
SHOW TABLES & DESCRIBE
etatBus VARCHAR(10),
PRIMARY KEY(idBus) Voir toutes les tables de la base : SHOW TABLES ;
);
2 CREATE TABLE IF NOT EXISTS Livre( Voir la structure de la table ’matable’ : DESC[RIBE] matable ;
idLivre INT,
ISBN VARCHAR(7),
dateEdition TIMESTAMP ,
CONSTRAINT pk Livre PRIMARY KEY(idLivre),
CONSTRAINT uniq isbn UNIQUE(ISBN)
);

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 24 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 25

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Destruction d’une table

Types des données


(Optimiser la place mémoire prise par les données) et (la
rapidité de traitement) ⇒ choix judicieux des types de données.
Syntaxe
option UNSIGNED : permettre en économisant de la place (on
DROP TABLE [IF EXISTS] matable ;
ne stocke plus le bit de signe) de stocker des nombres plus
✖ Il faut d’abord détruire les “fils“ puis les “pères“.
grands (positifs).
L’attribut [n] d’un champ définit le nombre de caractères
maximum que le champ pourra contenir.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 26 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 27
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Types numériques
Types alphanumériques
Entier
TINYINT [n][UNSIGNED] 1 octet CHAR (n) Chaı̂ne de n caractère, taille fixe
SMALLINT [n][UNSIGNED] 2 octets VARCHAR(n) Chaı̂ne de caractères, taille va-
riable.
MEDIUM INT [n][UNSIGNED] 3 octets ENUM(’valeur’,’valeur2’,...) Une valeur parmi plusieurs. Ob-
INT [n][UNSIGNED] 4 octets jet texte qui ne peut avoir qu’une
BIGINT [n][UNSIGNED] 8 octets des valeurs ’valeur’,’valeur2’,. . .
SET(’valeur’,’valeur2’,...) Une ou plusieurs valeurs parmi
Réel plusieurs. Objet texte qui peut
FLOAT flottant simple précision avoir une ou plusieurs des va-
DOUBLE flottant double précision leurs ’valeur’,’valeur2’,. . .
NUMERIC(n,d) flottant de longueur ’n’ avec ’d’ décimaux

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 28 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 29

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Contraintes d’intégrité
Clause permettant de contraindre la modification de tables (faite par
Types Temporels l’intermédiaire de requêtes d’utilisateurs) afin que les données saisies
dans la base soient conformes aux données attendues.
DATE Dates au format ’YYYY-MM-DD’
Ces contraintes doivent être exprimées grâce aux mots clés suivants :
TIME Heures au format ’HHH :MM :SS’
DATETIME Dates et heures au format ’YYYY-MM-DD HHH :MM :SS’ CONSTRAINT DEFAULT
YEAR Années au format ’YYYY’ NOT NULL UNIQUE
TIMESTAMP Dates sous forme numérique : ’AAAAMMJJHHMMSS’
PRIMARY KEY REFERENCES

Syntaxe
CONSTRAINT nomContrainte définitionContrainte

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 30 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 31
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Indication de l’identifiant d’une table Interdiction de doublon


CONSTRAINT pk id PRIMARY KEY(attr1, attr2, . . .) CONSTRAINT uniq 1 UNIQUE(attr1, attr2, . . .)

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 32 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 33

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Contrainte référentielle : Erreur de logique Mysql

Indication de clés étrangères


MyISAM & INNODB
CONSTRAINT fk id FOREIGN KEY(iddest) REFERENCES table ref(idsource)
En fait, par défaut les tables mysql sont de Type MyISAM et ne gèrent pas les
contraintes de clés étrangères !
Exemple
Pour y remédier, mettre en type innodb, les tables père et fils des CONSTRAINT fk Bus FOREIGN KEY(refBus) REFERENCES Bus(idBus)
contraintes clé étrangère.
iddest et idsource doivent être de même type ! ! ! !
CREATE TABLE matable (. . .,. . .)ENGINE=INNODB ;

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 34 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 35
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Contrainte référentielle

ON DELETE CASCADE — ON DELETE SET NULL


1 Si la colonne référencée est supprimée alors toutes les colonnes qui le Suppression des contraintes
référencent sont supprimées également.
CONSTRAINT fk id FOREIGN KEY(iddest) REFERENCES ALTER TABLE nomtable DROP TYPEdeCONSTRAINT
table ref(idsource)) ON DELETE CASCADE nomcontrainte ;

2 Si la colonne référencée est supprimée alors toutes les colonnes qui le


référencent prennent la valeur NULL.
CONSTRAINT fk id FOREIGN KEY(iddest) REFERENCES
table ref(idsource)) ON DELETE SET NULL

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 36 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 37

Création/manipulations d’une base de données Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Les index Les index

Définition & Propriétés


1 Structure de données qui reprend la liste ordonnée des valeurs aux-
quelles elle se rapporte. Ajout & Suppression
2 Un index stocke les valeurs triées et permet d’accéder à chacune d’elles,
AJOUT
de manière accélérée, efficace et rapide.
INDEX nomIndex (colIndex [, col2Index,...]);
3 Intérêt : accélérent les requêtes qui utilisent des colonnes indexées
comme critères de recherche.
SUPPRESSION
4 Désavantages :
ALTER TABLE nomTable DROP INDEX nomIndex ;
prennent de la place en mémoire ;
ralentissent les requêtes d’insertion, de modification et de
suppression, puisqu’à chaque fois, il faut remettre l’index à
jour en plus de la table.

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 38 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 39
Création/manipulations d’une base de données Création/manipulations d’une base de données
Modèle Logique de Données Création/manipulations d’une Table Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité Outils de développement Contraintes d’intégrité
Introduction au SQL Les index Introduction au SQL Les index
Modification de Tables : ALTER TABLE Modification de Tables : ALTER TABLE

Modification de Tables : ALTER TABLE


ALTER TABLE permet de : Exercice
supprimer une colonne : Donnez les commandes MySQL permettant de créer les tables ci-dessous
ALTER TABLE table DROP COLUMN nomcolonne d’une base de données Bibliotheque :
Livre (idLivre, nomLivre, ISBN, etatLivre, nombrePages)
ajouter une colonne : Pret (idPret, datePret, dateRetour, duree)
ALTER TABLE table ADD COLUMN nomcolonne typecolonne DetailPret (♯idPret, ♯idLivre)
changer le nom et le type d’une colonne : Note : Prenez en considération les informations suivantes lors de la création
ALTER TABLE table CHANGE COLUMN colonne nouveau nom des tables :
nouveau type ISBN doit être formé de 6 chiffres ; il est unique.
L’état du livre peut être bon, moyen ou mauvais.
renommer une table : La date du prêt par défaut est la date du jour.
ALTER TABLE table RENAME AS nouveau nom L’information sur le nombre de pages d’un livre n’est pas obligatoire.
ajouter une clé unique :
ALTER TABLE table ADD UNIQUE (colonnes)

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 40 Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 41

Création/manipulations d’une base de données


Modèle Logique de Données Création/manipulations d’une Table
Outils de développement Contraintes d’intégrité
Introduction au SQL Les index
Modification de Tables : ALTER TABLE

FIN de la leçon

Dr A.W. BELLO, solfath@yahoo.fr (FAST/UAC) MLD-MySQL 42

Vous aimerez peut-être aussi