Bases de Données et Développement Web
1
Hiba Chougrad
Année-universitaire: 2024-2025
La méthode Merise
• Merise est une méthode d’analyse informatique et une démarche
de construction des systèmes d’information(SI).
• Elle se base sur un ensemble de signes graphique pour
représenter un modèle.
• Elle permet de faire un lien de communication entre les différents
acteurs d’un projet.
2
La méthode Merise
• La conception du système d'information se fait par étapes
pour aboutir à un SI fonctionnel et réaliste.
• Chaque étape est validée en s'appuyant sur les résultats
de la précédente.
• Cette succession d'étapes est appelée cycle
d'abstraction pour la conception des systèmes
d'information :
3
L'expression des besoins
• L'expression des besoins est une étape consistant à définir ce que
l'on attend du système d'information automatisé, il faut pour cela :
faire l'inventaire des éléments nécessaires au système
d'information
délimiter le système en s'informant auprès des futurs utilisateurs
4
Le Modèle Conceptuel de données (MCD)
• Après avoir collecté l’ensemble des données (du système à informatiser) à
partir des documents et des fichiers existants, on doit étudier les liens qui
existent entre ces données afin de proposer une représentation schématique
appelée Modèle Conceptuel de Données (MCD).
• Le modèle conceptuel de données (MCD) est une représentation stable de
l’ensemble des données manipulées par l’entreprise ainsi que des relations
entre ces données.
5
Le Modèle Conceptuel de données (MCD)
On réalise le MCD en quatre phases :
1) Etablir le dictionnaire des données
2) Repérer les entités du problèmes
3) Construire les entités, en choisissant leurs propriétés
4) Établir les associations entre les différentes entités
5) Trouver les cardinalités de chaque relation
6
Le Modèle Logique des données (MLD)
Le modèle logique de Données est un passage du Modèle Conceptuel de
Données (MCD) validé vers le Modèle Physique des Données (MPD).
Plus proche du modèle physique.
Ne contient que des tables qui possèdent des propriétés et une clé
primaire.
Toutes les tables ont un nom unique.
7
Passage MCD vers MLD
• La traduction du MCD en modèle logique relationnel s’effectue directement
par transformation des entités conceptuelles en relations, en fonction des
règles de passage précises.
8
Le Modèle Physique de Données (MPD)
• Le Modèle Physique de Données est l’implantation de la base sur un
ordinateur, il existe plusieurs moyens pour effectuer cela. Nous, on va créer la
base de données sur le SGBD MySQL/ phpMyAdmin.
• Un Modèle Physique de Données relationnel MySQL est une extension
du Modèle Logique de Données relationnel intégrant les spécificités des
systèmes de gestion de base de données relationnelles MySQL.
• Pour créer la base de données, on doit d’abord définir le modèle relationnel et
puis choisir un SGBD.
9
SGBD
• Un système de gestion de base de données (SGBD) est un logiciel qui
permet de décrire, modifier, interroger et administrer les données d'une base
de données.
• Le SGBD peut être vu comme le logiciel qui prend en charge la structuration,
le stockage, la mise à jour et la maintenance des données ;
• C'est, en fait, l'interface entre la BD et les utilisateurs ou leurs programmes.
• Un SGBD comprend:
Un système de gestion de fichiers pour la gestion du stockage physique.
Un système interne pour le placement et l’accès aux données
Et un système externe comme pour le langage de requête élaboré.
10
SGBD
• Un logiciel SGBD permet de stocker des informations dans une base de
données.
• Un SGBD permet d’inscrire, de retrouver, de modifier, de trier, de transformer
ou d’afficher les informations de la base de données.
• Il existe de nombreux systèmes de gestion de base de données.
• Ils sont utilisés pour de nombreuses applications informatiques: Les guichets
automatique bancaires, les logiciels de réservation, les bibliothèques
numériques, les logiciels d’inventaire, les progiciels de gestion intégrés, les
blogs les sites web, ...
11
Les SGBD les Plus Utilisés
12
Les SGBD les Plus Utilisés
Ces systèmes peuvent être catégorisés selon leur fonctionnement:
• Système propriétaire : Oracle Database, Microsoft SQL Server, DB2, MaxDB,
4D, dBase, Informix, Sybase
• Système libre : MySQL, PostgreSQL, MariaDB, Firebird, Ingres, HSQLDB,
Derby, Apache Derby
• Orienté objet: ZODB, db4o
• Embarqué: SQLite, Berkeley DB
• NoSQL :Cassandra, Redis, MongoDB, SimpleDB, BigTable, CouchDB,
Couchbase, HBase, LevelDB, RethinkDB, Memcached
• Autre système: Access, OpenOffice.org Base, FileMaker, HyperFileSQL,
Paradox, Neo4j, Riak, Voldemort
13
SGBD: MYSQL
• MySQL dérive directement de SQL (Structured Query Language)
• L’outil phpMyAdmin est développé en PHP et offre une interface pour
l’administration des base de données phpMyAdmin est téléchargeable ici :
https://www.phpmyadmin.net/downloads/
• Cet outil permet de :
créer de nouvelles bases
créer/modifier/supprimer des tables
afficher/ajouter/modifier/supprimer des tuples dans des tables
effectuer des sauvegardes de la structure et/ou des données
effectuer des requêtes
gérer les privilèges des utilisateurs
14
Pré-requis phpMyAdmin
Les conditions nécessaires pour installer phpMyAdmin sont:
• Un serveur web de n’importe quel type
• MySQL ou MariaDB 5.5 ou plus récent
• Un navigateur web prenant en charge Javascript, les cookies et Bootstrap 4.5
(pour accéder à phpMyAdmin)
• PHP 7.2.5 ou plus récent
Une fois que vous avez installé phpMyAdmin, accédez à l’espace en
utilisant l’adresse de votre serveur web: http://localhost/phpMyAdmin
15
Serveur Web
• Le serveur web est un logiciel qui traite les requêtes HTTP/HTTPS et fournit
des pages web aux utilisateurs via un navigateur. Par exemple Apache (utilisé
par WAMP, XAMPP)
• Le serveur web (Apache) héberge phpMyAdmin pour qu'il soit accessible via
un navigateur (exemple : http://localhost/phpmyadmin ).
• phpMyAdmin agit comme une interface, le serveur web (Apache) relie cette
interface au SGBD MySQL.
• Installez WAMP ou XAMPP pour accéder à phpMyAdmin
16
Définir le modèle relationnel
• On doit définir le schéma des relations de la base de données.
Démarche:
Pour chaque relation :
• Définir les différents attributs
• Définir la clé primaire
Pour chaque attribut de chaque relation
• Définir le type et le domaine
• Préciser les propriétés (taille, format, etc.)
Quand il y a plusieurs relations : définir les clés étrangères
17
Définir le modèle relationnel
20
21
21
Clé primaire
Les attributs
Nuplet
Clé étrangère
Associations
22
Créer une base de données
23
Créer une table
24
Créer une table
Clé primaire
Attributs
Clé primaire
auto-increment
Types d’attributs
Sauvegarde
Types des attributs MySQL
• Nombre entier signé ou non
• Nombre à virgule
• Chaîne de caractères
• Date et heure
• Enumération
• Ensemble
25
Entiers
26
Flottants
27
Chaînes
28
Dates et heures
29
Passage du MLD au MPD
• On va créer le MPD de l’exemple suivant sur PhpMyAdmin
• On crée la Base de données test et puis les tables, les champs et les clés
30
PhpMyAdmin
31
Champs/Attributs Types
Clé primaire ?
InnoDB
• Moteur de tables (licence GNU GLP)
• Gestionnaire de tables transactionnelles
• Maximisation de performances (grands volumes de données)
• Support clé étrangère
• Stockage des tables et index : espace de tables (un ou plusieurs fichiers)
MyISAM : un fichier par table
32
PhpMyAdmin
33
Modifier
Supprimer
Définir la clé
étrangère
PhpMyAdmin
34
Définir la clé
étrangère
PhpMyAdmin
35
Définir la clé
étrangère
PhpMyAdmin
36
Cliquez sur la BD test à gauche puis
sur concepteur pour voir le Schéma
de la base de données
Intégrité référentielle
ON UPDATE et ON DELETE
Si l’utilisateur tente de supprimer une ligne d’une table parente, alors qu’il y a plusieurs
lignes dépendantes dans une table enfant, il y a plusieurs possibilités:
 CASCADE efface la ligne de la table parente et supprime automatiquement les lignes
correspondent dans la table enfante
 SET NULL supprime la ligne de la table parente et met la (ou les) valeur(s) de la clé
étrangère à NULL
 SET DEFAULT supprime la ligne de la table parente et met tous les composants de la
clé étrangère à leur valeur par défaut dans la table enfante
 RESTRICT rejette l’opération de suppression dans la table parente immédiatement
 NO ACTION rejette l’opération de suppression dans la table parente à la fin de la
transaction
37
Les contraintes d’intégrité
Contrainte de DOMAINE
Contrainte de
RELATION
Contrainte de
REFERENCE
38
Les contraintes d’intégrité
39
• La contrainte de domaine n’est pas respectée quand on essaye
par exemple d’entrer une valeur texte dans un champ entier.
• La contrainte de relation n’est pas respectée si un champ index
n’admettant pas de doublons, dans une association se voit affecté
une valeur existante.
• La contrainte de référence n’est pas respectée quand on fait
référence à une valeur qui n’existe pas.
Les Contraintes d’intégrité
Prise en compte des contraintes d’intégrité
• Saisir en premier les données des tables qui ne contiennent pas
de clé étrangère
• Bien définir les types de données lors de la création de la structure
40
PhpMyAdmin
41
Afficher, Rechercher,
Insérer, Vider
PhpMyAdmin
42
PhpMyAdmin
43
Rechercher :
Résultat et requête correspondante
PhpMyAdmin
44
Insérer :
Résultat et requête correspondante
PhpMyAdmin
45
La console SQL
Le Langage SQL
• SQL est une abbreviation de structured query language.
• Il est issu de SEQUEL : Structured English Query Language.
• C’est le premier langage pour les S.G.B.D. Relationnels, Il a été développé
par IBM en 1970
• S.Q.L. a été reconnu par l’ANSI (Association de Normalisation des Systèmes
d’Information) puis s’est imposé comme norme.
• Il n’existe pas de S.G.B.D. Relationnel sans S.Q.L.
46
Operations de SQL
S.Q.L est un langage relationnel qui permet d’effectuer les tâches
suivantes:
Définition et modification de la structure de la base de données
Interrogation et modification de la base de données
Contrôle de sécurité et d’intégrité de la base
Sauvegarde et restauration des bases
47
SQL Composants
Il est compose de deux langages:
• LDD: Langage de définition de données
• LMD: Langage de manipulation de données
48
LDD: Langage de Définition de Donnée
• Créer une base de données
• Principaux objets d'une base de données
• Créer une table
• Types de données des colonnes
• Modifier la définition d’une table
• Supprimer une table
49
LDD: Langage de Définition de Donnée
• LDD est le sous-ensemble du langage SQL, pour créer et
modifier des objets de base de données, en particulier les tables.
• Le LDD nous permet de :
Créer des tables
Décrire les différents types de données utilisables pour les définitions de
colonne
Modifier la définition des tables
Supprimer, renommer une table
50
Création d’une Base de Données
• Elle se fait par la requête:
Create database nom-de-la base-de-donnees
• Exemple: Create database Etissalat
• Une fois la base de données est crée on peut accéder à la base pour effectuer
des opérations avec la commande use:
Use nom-de-la base-de-donnees
• Exemple: use Etissalat
51
Création des Tables
• Pour créer une table, l'utilisateur doit disposer du privilège CREATE TABLE
• Syntaxe :
CREATE TABLE Nom_table
(column1 datatype [DEFAULT expr], column2 datatype, ...)
• DEFAULT expr spécifie une valeur par défaut
52
Types de Données des Colonnes
Type de données Syntaxe Description
Alphanumérique CHAR(n) Chaîne de caractères de longueur fixe n
(n<16383)
VARCHAR(n) Chaîne de caractères de n caractères
maximum (n<16383)
Numérique NUMBER(n [,d]) Nombre de n chiffres [optionnellement d
après la virgule]
SMALLINT Entier signé de 16 bits (-32768 à 32767)
INT Entier signé de 32 bits (-2E31 à 2E31-1)
FLOAT Nombre à virgule flottante
Horaire DATE Date sous la forme 16/07/99
TIME Heure sous la forme 12:54:24.85
TIMESTAMP Date et Heure
53
L’option Default
• On peut déclarer une valeur par défaut pour une colonne en
utilisant l'option DEFAULT
• Cette option empêche l'insertion de valeurs NULL dans une
colonne lors de l'ajout d'une ligne
• La valeur par défaut peut être un littéral, une expression ou une
fonction SQL telle que NOW()
54
Création d’une Table en Spécifiant sa Clé Primaire
• Syntaxe:
CREATE TABLE ‘nom_de_la_table’ ( id INT PRIMARY KEY, … );
• Exemple:
Create table Client (id_Client int primary key, …)
55
Modifier la Définition d’une Table
• Il est possible modifier la structure d’une table pour ajouter, par exemple, une
colonne oubliée ou changer une définition de colonne existante
• Cela est possible grâce à la commande ALTER TABLE
• La commande ALTER vous permet d’accéder à la table pour:
ajouter des colonnes à une table existante
Modifier le type d’une colonne existante dans une table
Supprimer une colonne dans une table
56
Ordre Alter Table: Ajout d’une Colonne
• Utilisez l'ordre ALTER TABLE pour : Ajouter une colonne
ALTER TABLE ntable
ADD ncolumn datatype [DEFAULT expr ]
• Exemple:
ALTER TABLE Client
ADD Nom varchar(20)
La nouvelle colonne Nom est créée et placée à la fin de la table client.
57
Ordre Alter Table: Modifier une Colonne Existante
• Utilisez l'ordre ALTER TABLE pour : Modifier une colonne existante
ALTER TABLE ntable
ALTER COLUMN ncolumn datatype [DEFAULT expr]
• Exemple:
ALTER TABLE Client
ALTER COLUMN Nom varchar(30)
58
Ordre Alter Table: Supprimer une Colonne
• Utilisez l'ordre ALTER TABLE pour : Supprimer une colonne
ALTER TABLE ntable
DROP COLUMN nColonne
• Exemple:
ALTER TABLE client
DROP column ville
59
Supprimer une Table
• Pour supprimer une table, on utilise la commande :
DROP TABLE <nom de la table>
• Exemple : suppression de la table Client:
DROP TABLE Client
Attention: La commande DROP permet de supprimer la table définitivement de
la base de données
60
Vider une Table des Informations Enregistrées
• On utilise la commande TRUNCATE pour supprimer toutes les données d’une
table sans supprimer la table en elle-même.
• Syntaxe:
TRUNCATE TABLE nom_table
• Exemple:
TRUNCATE TABLE client
61
Les commandes de manipulation des données (LMD)
Les requêtes de sélection
• Recherche d’information : clause select, where
• Alias de Colonne
• Utilisation des opérateurs : IN, Like, between
• Tri du résultat
• Utilisation des opérateurs arithmétiques et logiques
• Clause: Top, Distinct
62
Commande de Mise à Jour: Insertion
• Insertion: L’insertion s’effectue avec la commande INSERT dont la syntaxe
est la suivante :
INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...)
Remarque: bien entendu le nombre d’attributs et le type de ces derniers
doivent être cohérents.
63
Exemples d’insertions
• Exemple : insertion simple
INSERT INTO Client VALUES (40, ’MOUAAOUINE’, ’DRISS)
• Exemple: Insertion multiple
INSERT INTO Client VALUES (40, ’MOUAAOUINE’, ’DRISS),
(50, ‘Alami,’ ‘Salim’),……, (100, ‘Idrissi,’ ‘Yassine’)
64
Commande de Mise à Jour: Modification
• La Modification d’une colonne s’effectue avec la clause UPDATE.
• La syntaxe :
UPDATE nom_table SET A1=v1, A2=v2, ... An=vn
• Exemple :
UPDATE Payement SET montant_a_payer= montant_a_payer*0.1
65
Ajoutez une Condition
• La clause Where permet d’ajouter des conditions sur les requêtes:
• Exemple:
UPDATE Payement SET montant_a_payer= montant_a_payer*0.1 where id=1
66
Commande de Mise à Jour: Suppression
• La Suppression d’une ligne/lignes de table s’effectue avec la clause
DELETE en ajoutant une condition sur les données supprimées.
• Syntaxe:
DELETE FROM table [WHERE condition]
• Exemple : destruction de tous les clients Ali
DELETE FROM Client WHERE nom=‘Ali’
67
La Commande Select
• L’utilisation la plus courante de SQL consiste à lire des données
issues de la base de données.
• Cela s’effectue grâce à la commande SELECT, qui retourne des
enregistrements dans un tableau de résultat.
• Cette commande peut sélectionner une ou plusieurs colonnes
d’une table.
68
La Commande Select
• L’utilisation basique de cette commande s’effectue de la manière suivante:
SELECT nom_du_champ FROM nom_de_table
• Cette requête SQL va sélectionner (SELECT) le champ “nom_du_champ”
provenant (FROM) de la tablle “nom_de_table”.
• Exemple
SELECT ville FROM client
• Cette requête va sélectionner les villes de la table client.
69
La Commande Select
• Pour obtenir plusieurs colonne:
SELECT nom_du_champ1, nom_du_champ2, nom_du_champ2,… FROM
nom_de_table
• Exemple:
SELECT prenom, nom FROM client
• Pour obtenir toutes les colonnes d’une table:
SELECT * FROM nom_de_table
70
SQL WHERE
• La commande WHERE dans une requête SQL permet d’extraire les lignes
d’une base de données qui respectent une condition.
• Cela permet d’obtenir uniquement les informations désirées.
• Syntaxe
SELECT nom_colonnes FROM nom_table WHERE condition
• Exemple:
SELECT * FROM client WHERE ville = ‘Fes'
71
Opérateurs de Comparaison
72
Opérateur In
• Permet de comparer une expression avec une liste de valeurs, utilisez
l'opérateur IN Opérateur d’appartenance à un ensemble de valeurs
• Syntaxe
SELECT nom_colonne FROM table WHERE nom_colonne IN ( valeur1,
valeur2, valeur3, ... )
• Exemple :
SELECT * FROM Client
WHERE ville IN (‘fes,’meknes‘,’tanger’)
73
Les Valeurs Null
• Une valeur NULL est une valeur non disponible, non affectée, inconnue ou
inapplicable.
• Une valeur NULL est différente du zéro ou de l'espace.
• Le zéro est un chiffre et l'espace est un caractère
• Exemple :
SELECT * FROM client WHERE ville IS NULL
74
L'opérateur Between
• L'opérateur BETWEEN permet d'afficher des lignes en fonction d'un intervalle
de valeurs
• Vous spécifiez un intervalle comprenant une limite inférieure et une limite
supérieure
• Exemple 1 :
SELECT * FROM Etudiant
WHERE Moyenne BETWEEN 10 AND 20
75
Exemple 2
SELECT ID_C , Montant_a_payer, date_limite FROM Payement
WHERE date_limite BETWEEN ‘2015/1/1’ AND ‘2015/31/12’
ORDER BY date_limite ASC
76
Le Tri Order By
• ORDER BY colonne1 | 1 [ASC ou DESC ] [, colonne2 | 2 [ASC ou DESC ] ...
• La clause ORDER BY sert à trier les lignes
• ASC (ascending) classe les lignes en ordre croissant. C'est l'ordre par défaut.
• DESC (descending) classe les lignes en ordre décroissant.
• Exemple :
SELECT distinct ville FROM client ORDER BY nom ASC
77
Opérateur Like (1)
• L'opérateur LIKE permet d’effectuer une comparaison partielle
• Il est surtout employé avec les colonnes contenant des données
de type alphanumériques
• Il utilise les jokers % et _ (‘pour cent’ et ‘blanc souligné’).
• Le joker % remplace n'importe quelle chaîne de caractères, y
compris la chaîne vide.
• Le blanc souligné remplace un et un seul caractère.
78
Opérateur Like (2)
• Exemple1: noms des clients qui commencent par B
SELECT * FROM client
WHERE nom LIKE ‘B%’
• Exemple2: noms des clients qui se terminent par B
SELECT * FROM client
WHERE nom LIKE ‘%B’
• Exemple1: noms des clients qui contiennent B
SELECT * FROM client
WHERE nom LIKE ‘%B%’
• Exemple1: noms des clients qui se terminent par B et un seul caractère
après.
SELECT * FROM client
WHERE nom LIKE ‘%B_’
79
Exemples
• Liste des Pilotes dont le nom comporte les caractères a ou i
SELECT nom FROM client
Where nom LIKE ‘%[ai]%‘
• Liste des Pilotes dont le nom commence par le caractère a ou t
SELECT nom FROM client
Where nom LIKE ‘[at]%‘
• Liste des Pilotes dont le nom commence par le caractère a ou i et se
termine par i
SELECT nom FROM client
Where nom LIKE ‘[ai]%i‘
80
Exemples
• Liste des vols au départ deToulouse et a destination de Paris entre 12 et
15 heures.
SELECT vol_id, villedepart, villearrivee,heuredepart,heurearrivee FROM Vol
WHERE Heuredepart BETWEEN 12AND 15
AND villedepart = 'Toulouse‘AND villearrivee = 'Paris‘
• Liste des noms de pilotes
SELECT nom FROM Pilote
81
Opérateurs Arithmétiques
• Vous pouvez utiliser les opérateurs arithmétiques * / + - pour effectuer des
calculs.
• Priorité des opérateurs : * et / sont prioritaires sur + et –
• Vous pouvez utiliser les parenthèses
• Exemple :
SELECT ID_client, montant_a_payer, montant_a_payer*0.1 AS ‘Reduction’
FROM payement
83
Alias de Colonne
• Renomme l’en-tête d’une colonne
• Il est très utile dans les calculs
• Le mécanisme des alias : NomColonne AS NomAlias
• Exemple 1:
SELECT prixunitaire*quantité AS ‘Montant’ FROM Produit
• Exemple 2:
SELECT nom + ‘ ‘+ prénom AS ‘Nom et Prénom’ FROM client
84
La Clause Top
• La clause TOP n permet d’afficher les n premières lignes de la requête
• Exemple :
SELECT TOP 3 * FROM client
ORDER BY nom
88
DISTINCT (1)
• Le résultat d’un SELECT étant un ensemble, il peut y avoir des doublons
• Le mot clé DISTINCT permet de préciser que l’on ne veut qu’un seul
exemplaire de ces enregistrements
• Exemple1 (sans distinct):
Ensemble des types d’avions dont la capacité est supérieure à 250 passagers.
SELECT Marque,TypeAvion, Capacite
FROM AVION WHERE Capacite > 250
89
DISTINCT (2)
• Nous ajoutons le mot clé DISTINCT à la sélection et ordonnons les données
par capacités décroissantes :
• Exemple: (avec distinct)
SELECT DISTINCT
Marque,TypeAvion, Capacite FROM AVION
WHERE Capacite > 250
ORDER BY Capacite DESC
90

s3-base de données .pdf

  • 1.
    Bases de Donnéeset Développement Web 1 Hiba Chougrad Année-universitaire: 2024-2025
  • 2.
    La méthode Merise •Merise est une méthode d’analyse informatique et une démarche de construction des systèmes d’information(SI). • Elle se base sur un ensemble de signes graphique pour représenter un modèle. • Elle permet de faire un lien de communication entre les différents acteurs d’un projet. 2
  • 3.
    La méthode Merise •La conception du système d'information se fait par étapes pour aboutir à un SI fonctionnel et réaliste. • Chaque étape est validée en s'appuyant sur les résultats de la précédente. • Cette succession d'étapes est appelée cycle d'abstraction pour la conception des systèmes d'information : 3
  • 4.
    L'expression des besoins •L'expression des besoins est une étape consistant à définir ce que l'on attend du système d'information automatisé, il faut pour cela : faire l'inventaire des éléments nécessaires au système d'information délimiter le système en s'informant auprès des futurs utilisateurs 4
  • 5.
    Le Modèle Conceptuelde données (MCD) • Après avoir collecté l’ensemble des données (du système à informatiser) à partir des documents et des fichiers existants, on doit étudier les liens qui existent entre ces données afin de proposer une représentation schématique appelée Modèle Conceptuel de Données (MCD). • Le modèle conceptuel de données (MCD) est une représentation stable de l’ensemble des données manipulées par l’entreprise ainsi que des relations entre ces données. 5
  • 6.
    Le Modèle Conceptuelde données (MCD) On réalise le MCD en quatre phases : 1) Etablir le dictionnaire des données 2) Repérer les entités du problèmes 3) Construire les entités, en choisissant leurs propriétés 4) Établir les associations entre les différentes entités 5) Trouver les cardinalités de chaque relation 6
  • 7.
    Le Modèle Logiquedes données (MLD) Le modèle logique de Données est un passage du Modèle Conceptuel de Données (MCD) validé vers le Modèle Physique des Données (MPD). Plus proche du modèle physique. Ne contient que des tables qui possèdent des propriétés et une clé primaire. Toutes les tables ont un nom unique. 7
  • 8.
    Passage MCD versMLD • La traduction du MCD en modèle logique relationnel s’effectue directement par transformation des entités conceptuelles en relations, en fonction des règles de passage précises. 8
  • 9.
    Le Modèle Physiquede Données (MPD) • Le Modèle Physique de Données est l’implantation de la base sur un ordinateur, il existe plusieurs moyens pour effectuer cela. Nous, on va créer la base de données sur le SGBD MySQL/ phpMyAdmin. • Un Modèle Physique de Données relationnel MySQL est une extension du Modèle Logique de Données relationnel intégrant les spécificités des systèmes de gestion de base de données relationnelles MySQL. • Pour créer la base de données, on doit d’abord définir le modèle relationnel et puis choisir un SGBD. 9
  • 10.
    SGBD • Un systèmede gestion de base de données (SGBD) est un logiciel qui permet de décrire, modifier, interroger et administrer les données d'une base de données. • Le SGBD peut être vu comme le logiciel qui prend en charge la structuration, le stockage, la mise à jour et la maintenance des données ; • C'est, en fait, l'interface entre la BD et les utilisateurs ou leurs programmes. • Un SGBD comprend: Un système de gestion de fichiers pour la gestion du stockage physique. Un système interne pour le placement et l’accès aux données Et un système externe comme pour le langage de requête élaboré. 10
  • 11.
    SGBD • Un logicielSGBD permet de stocker des informations dans une base de données. • Un SGBD permet d’inscrire, de retrouver, de modifier, de trier, de transformer ou d’afficher les informations de la base de données. • Il existe de nombreux systèmes de gestion de base de données. • Ils sont utilisés pour de nombreuses applications informatiques: Les guichets automatique bancaires, les logiciels de réservation, les bibliothèques numériques, les logiciels d’inventaire, les progiciels de gestion intégrés, les blogs les sites web, ... 11
  • 12.
    Les SGBD lesPlus Utilisés 12
  • 13.
    Les SGBD lesPlus Utilisés Ces systèmes peuvent être catégorisés selon leur fonctionnement: • Système propriétaire : Oracle Database, Microsoft SQL Server, DB2, MaxDB, 4D, dBase, Informix, Sybase • Système libre : MySQL, PostgreSQL, MariaDB, Firebird, Ingres, HSQLDB, Derby, Apache Derby • Orienté objet: ZODB, db4o • Embarqué: SQLite, Berkeley DB • NoSQL :Cassandra, Redis, MongoDB, SimpleDB, BigTable, CouchDB, Couchbase, HBase, LevelDB, RethinkDB, Memcached • Autre système: Access, OpenOffice.org Base, FileMaker, HyperFileSQL, Paradox, Neo4j, Riak, Voldemort 13
  • 14.
    SGBD: MYSQL • MySQLdérive directement de SQL (Structured Query Language) • L’outil phpMyAdmin est développé en PHP et offre une interface pour l’administration des base de données phpMyAdmin est téléchargeable ici : https://www.phpmyadmin.net/downloads/ • Cet outil permet de : créer de nouvelles bases créer/modifier/supprimer des tables afficher/ajouter/modifier/supprimer des tuples dans des tables effectuer des sauvegardes de la structure et/ou des données effectuer des requêtes gérer les privilèges des utilisateurs 14
  • 15.
    Pré-requis phpMyAdmin Les conditionsnécessaires pour installer phpMyAdmin sont: • Un serveur web de n’importe quel type • MySQL ou MariaDB 5.5 ou plus récent • Un navigateur web prenant en charge Javascript, les cookies et Bootstrap 4.5 (pour accéder à phpMyAdmin) • PHP 7.2.5 ou plus récent Une fois que vous avez installé phpMyAdmin, accédez à l’espace en utilisant l’adresse de votre serveur web: http://localhost/phpMyAdmin 15
  • 16.
    Serveur Web • Leserveur web est un logiciel qui traite les requêtes HTTP/HTTPS et fournit des pages web aux utilisateurs via un navigateur. Par exemple Apache (utilisé par WAMP, XAMPP) • Le serveur web (Apache) héberge phpMyAdmin pour qu'il soit accessible via un navigateur (exemple : http://localhost/phpmyadmin ). • phpMyAdmin agit comme une interface, le serveur web (Apache) relie cette interface au SGBD MySQL. • Installez WAMP ou XAMPP pour accéder à phpMyAdmin 16
  • 17.
    Définir le modèlerelationnel • On doit définir le schéma des relations de la base de données. Démarche: Pour chaque relation : • Définir les différents attributs • Définir la clé primaire Pour chaque attribut de chaque relation • Définir le type et le domaine • Préciser les propriétés (taille, format, etc.) Quand il y a plusieurs relations : définir les clés étrangères 17
  • 18.
    Définir le modèlerelationnel 20
  • 19.
  • 20.
    22 Créer une basede données
  • 21.
  • 22.
    24 Créer une table Cléprimaire Attributs Clé primaire auto-increment Types d’attributs Sauvegarde
  • 23.
    Types des attributsMySQL • Nombre entier signé ou non • Nombre à virgule • Chaîne de caractères • Date et heure • Enumération • Ensemble 25
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Passage du MLDau MPD • On va créer le MPD de l’exemple suivant sur PhpMyAdmin • On crée la Base de données test et puis les tables, les champs et les clés 30
  • 29.
  • 30.
    InnoDB • Moteur detables (licence GNU GLP) • Gestionnaire de tables transactionnelles • Maximisation de performances (grands volumes de données) • Support clé étrangère • Stockage des tables et index : espace de tables (un ou plusieurs fichiers) MyISAM : un fichier par table 32
  • 31.
  • 32.
  • 33.
  • 34.
    PhpMyAdmin 36 Cliquez sur laBD test à gauche puis sur concepteur pour voir le Schéma de la base de données
  • 35.
    Intégrité référentielle ON UPDATEet ON DELETE Si l’utilisateur tente de supprimer une ligne d’une table parente, alors qu’il y a plusieurs lignes dépendantes dans une table enfant, il y a plusieurs possibilités:  CASCADE efface la ligne de la table parente et supprime automatiquement les lignes correspondent dans la table enfante  SET NULL supprime la ligne de la table parente et met la (ou les) valeur(s) de la clé étrangère à NULL  SET DEFAULT supprime la ligne de la table parente et met tous les composants de la clé étrangère à leur valeur par défaut dans la table enfante  RESTRICT rejette l’opération de suppression dans la table parente immédiatement  NO ACTION rejette l’opération de suppression dans la table parente à la fin de la transaction 37
  • 36.
    Les contraintes d’intégrité Contraintede DOMAINE Contrainte de RELATION Contrainte de REFERENCE 38
  • 37.
    Les contraintes d’intégrité 39 •La contrainte de domaine n’est pas respectée quand on essaye par exemple d’entrer une valeur texte dans un champ entier. • La contrainte de relation n’est pas respectée si un champ index n’admettant pas de doublons, dans une association se voit affecté une valeur existante. • La contrainte de référence n’est pas respectée quand on fait référence à une valeur qui n’existe pas.
  • 38.
    Les Contraintes d’intégrité Priseen compte des contraintes d’intégrité • Saisir en premier les données des tables qui ne contiennent pas de clé étrangère • Bien définir les types de données lors de la création de la structure 40
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
    Le Langage SQL •SQL est une abbreviation de structured query language. • Il est issu de SEQUEL : Structured English Query Language. • C’est le premier langage pour les S.G.B.D. Relationnels, Il a été développé par IBM en 1970 • S.Q.L. a été reconnu par l’ANSI (Association de Normalisation des Systèmes d’Information) puis s’est imposé comme norme. • Il n’existe pas de S.G.B.D. Relationnel sans S.Q.L. 46
  • 45.
    Operations de SQL S.Q.Lest un langage relationnel qui permet d’effectuer les tâches suivantes: Définition et modification de la structure de la base de données Interrogation et modification de la base de données Contrôle de sécurité et d’intégrité de la base Sauvegarde et restauration des bases 47
  • 46.
    SQL Composants Il estcompose de deux langages: • LDD: Langage de définition de données • LMD: Langage de manipulation de données 48
  • 47.
    LDD: Langage deDéfinition de Donnée • Créer une base de données • Principaux objets d'une base de données • Créer une table • Types de données des colonnes • Modifier la définition d’une table • Supprimer une table 49
  • 48.
    LDD: Langage deDéfinition de Donnée • LDD est le sous-ensemble du langage SQL, pour créer et modifier des objets de base de données, en particulier les tables. • Le LDD nous permet de : Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer, renommer une table 50
  • 49.
    Création d’une Basede Données • Elle se fait par la requête: Create database nom-de-la base-de-donnees • Exemple: Create database Etissalat • Une fois la base de données est crée on peut accéder à la base pour effectuer des opérations avec la commande use: Use nom-de-la base-de-donnees • Exemple: use Etissalat 51
  • 50.
    Création des Tables •Pour créer une table, l'utilisateur doit disposer du privilège CREATE TABLE • Syntaxe : CREATE TABLE Nom_table (column1 datatype [DEFAULT expr], column2 datatype, ...) • DEFAULT expr spécifie une valeur par défaut 52
  • 51.
    Types de Donnéesdes Colonnes Type de données Syntaxe Description Alphanumérique CHAR(n) Chaîne de caractères de longueur fixe n (n<16383) VARCHAR(n) Chaîne de caractères de n caractères maximum (n<16383) Numérique NUMBER(n [,d]) Nombre de n chiffres [optionnellement d après la virgule] SMALLINT Entier signé de 16 bits (-32768 à 32767) INT Entier signé de 32 bits (-2E31 à 2E31-1) FLOAT Nombre à virgule flottante Horaire DATE Date sous la forme 16/07/99 TIME Heure sous la forme 12:54:24.85 TIMESTAMP Date et Heure 53
  • 52.
    L’option Default • Onpeut déclarer une valeur par défaut pour une colonne en utilisant l'option DEFAULT • Cette option empêche l'insertion de valeurs NULL dans une colonne lors de l'ajout d'une ligne • La valeur par défaut peut être un littéral, une expression ou une fonction SQL telle que NOW() 54
  • 53.
    Création d’une Tableen Spécifiant sa Clé Primaire • Syntaxe: CREATE TABLE ‘nom_de_la_table’ ( id INT PRIMARY KEY, … ); • Exemple: Create table Client (id_Client int primary key, …) 55
  • 54.
    Modifier la Définitiond’une Table • Il est possible modifier la structure d’une table pour ajouter, par exemple, une colonne oubliée ou changer une définition de colonne existante • Cela est possible grâce à la commande ALTER TABLE • La commande ALTER vous permet d’accéder à la table pour: ajouter des colonnes à une table existante Modifier le type d’une colonne existante dans une table Supprimer une colonne dans une table 56
  • 55.
    Ordre Alter Table:Ajout d’une Colonne • Utilisez l'ordre ALTER TABLE pour : Ajouter une colonne ALTER TABLE ntable ADD ncolumn datatype [DEFAULT expr ] • Exemple: ALTER TABLE Client ADD Nom varchar(20) La nouvelle colonne Nom est créée et placée à la fin de la table client. 57
  • 56.
    Ordre Alter Table:Modifier une Colonne Existante • Utilisez l'ordre ALTER TABLE pour : Modifier une colonne existante ALTER TABLE ntable ALTER COLUMN ncolumn datatype [DEFAULT expr] • Exemple: ALTER TABLE Client ALTER COLUMN Nom varchar(30) 58
  • 57.
    Ordre Alter Table:Supprimer une Colonne • Utilisez l'ordre ALTER TABLE pour : Supprimer une colonne ALTER TABLE ntable DROP COLUMN nColonne • Exemple: ALTER TABLE client DROP column ville 59
  • 58.
    Supprimer une Table •Pour supprimer une table, on utilise la commande : DROP TABLE <nom de la table> • Exemple : suppression de la table Client: DROP TABLE Client Attention: La commande DROP permet de supprimer la table définitivement de la base de données 60
  • 59.
    Vider une Tabledes Informations Enregistrées • On utilise la commande TRUNCATE pour supprimer toutes les données d’une table sans supprimer la table en elle-même. • Syntaxe: TRUNCATE TABLE nom_table • Exemple: TRUNCATE TABLE client 61
  • 60.
    Les commandes demanipulation des données (LMD) Les requêtes de sélection • Recherche d’information : clause select, where • Alias de Colonne • Utilisation des opérateurs : IN, Like, between • Tri du résultat • Utilisation des opérateurs arithmétiques et logiques • Clause: Top, Distinct 62
  • 61.
    Commande de Miseà Jour: Insertion • Insertion: L’insertion s’effectue avec la commande INSERT dont la syntaxe est la suivante : INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...) Remarque: bien entendu le nombre d’attributs et le type de ces derniers doivent être cohérents. 63
  • 62.
    Exemples d’insertions • Exemple: insertion simple INSERT INTO Client VALUES (40, ’MOUAAOUINE’, ’DRISS) • Exemple: Insertion multiple INSERT INTO Client VALUES (40, ’MOUAAOUINE’, ’DRISS), (50, ‘Alami,’ ‘Salim’),……, (100, ‘Idrissi,’ ‘Yassine’) 64
  • 63.
    Commande de Miseà Jour: Modification • La Modification d’une colonne s’effectue avec la clause UPDATE. • La syntaxe : UPDATE nom_table SET A1=v1, A2=v2, ... An=vn • Exemple : UPDATE Payement SET montant_a_payer= montant_a_payer*0.1 65
  • 64.
    Ajoutez une Condition •La clause Where permet d’ajouter des conditions sur les requêtes: • Exemple: UPDATE Payement SET montant_a_payer= montant_a_payer*0.1 where id=1 66
  • 65.
    Commande de Miseà Jour: Suppression • La Suppression d’une ligne/lignes de table s’effectue avec la clause DELETE en ajoutant une condition sur les données supprimées. • Syntaxe: DELETE FROM table [WHERE condition] • Exemple : destruction de tous les clients Ali DELETE FROM Client WHERE nom=‘Ali’ 67
  • 66.
    La Commande Select •L’utilisation la plus courante de SQL consiste à lire des données issues de la base de données. • Cela s’effectue grâce à la commande SELECT, qui retourne des enregistrements dans un tableau de résultat. • Cette commande peut sélectionner une ou plusieurs colonnes d’une table. 68
  • 67.
    La Commande Select •L’utilisation basique de cette commande s’effectue de la manière suivante: SELECT nom_du_champ FROM nom_de_table • Cette requête SQL va sélectionner (SELECT) le champ “nom_du_champ” provenant (FROM) de la tablle “nom_de_table”. • Exemple SELECT ville FROM client • Cette requête va sélectionner les villes de la table client. 69
  • 68.
    La Commande Select •Pour obtenir plusieurs colonne: SELECT nom_du_champ1, nom_du_champ2, nom_du_champ2,… FROM nom_de_table • Exemple: SELECT prenom, nom FROM client • Pour obtenir toutes les colonnes d’une table: SELECT * FROM nom_de_table 70
  • 69.
    SQL WHERE • Lacommande WHERE dans une requête SQL permet d’extraire les lignes d’une base de données qui respectent une condition. • Cela permet d’obtenir uniquement les informations désirées. • Syntaxe SELECT nom_colonnes FROM nom_table WHERE condition • Exemple: SELECT * FROM client WHERE ville = ‘Fes' 71
  • 70.
  • 71.
    Opérateur In • Permetde comparer une expression avec une liste de valeurs, utilisez l'opérateur IN Opérateur d’appartenance à un ensemble de valeurs • Syntaxe SELECT nom_colonne FROM table WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... ) • Exemple : SELECT * FROM Client WHERE ville IN (‘fes,’meknes‘,’tanger’) 73
  • 72.
    Les Valeurs Null •Une valeur NULL est une valeur non disponible, non affectée, inconnue ou inapplicable. • Une valeur NULL est différente du zéro ou de l'espace. • Le zéro est un chiffre et l'espace est un caractère • Exemple : SELECT * FROM client WHERE ville IS NULL 74
  • 73.
    L'opérateur Between • L'opérateurBETWEEN permet d'afficher des lignes en fonction d'un intervalle de valeurs • Vous spécifiez un intervalle comprenant une limite inférieure et une limite supérieure • Exemple 1 : SELECT * FROM Etudiant WHERE Moyenne BETWEEN 10 AND 20 75
  • 74.
    Exemple 2 SELECT ID_C, Montant_a_payer, date_limite FROM Payement WHERE date_limite BETWEEN ‘2015/1/1’ AND ‘2015/31/12’ ORDER BY date_limite ASC 76
  • 75.
    Le Tri OrderBy • ORDER BY colonne1 | 1 [ASC ou DESC ] [, colonne2 | 2 [ASC ou DESC ] ... • La clause ORDER BY sert à trier les lignes • ASC (ascending) classe les lignes en ordre croissant. C'est l'ordre par défaut. • DESC (descending) classe les lignes en ordre décroissant. • Exemple : SELECT distinct ville FROM client ORDER BY nom ASC 77
  • 76.
    Opérateur Like (1) •L'opérateur LIKE permet d’effectuer une comparaison partielle • Il est surtout employé avec les colonnes contenant des données de type alphanumériques • Il utilise les jokers % et _ (‘pour cent’ et ‘blanc souligné’). • Le joker % remplace n'importe quelle chaîne de caractères, y compris la chaîne vide. • Le blanc souligné remplace un et un seul caractère. 78
  • 77.
    Opérateur Like (2) •Exemple1: noms des clients qui commencent par B SELECT * FROM client WHERE nom LIKE ‘B%’ • Exemple2: noms des clients qui se terminent par B SELECT * FROM client WHERE nom LIKE ‘%B’ • Exemple1: noms des clients qui contiennent B SELECT * FROM client WHERE nom LIKE ‘%B%’ • Exemple1: noms des clients qui se terminent par B et un seul caractère après. SELECT * FROM client WHERE nom LIKE ‘%B_’ 79
  • 78.
    Exemples • Liste desPilotes dont le nom comporte les caractères a ou i SELECT nom FROM client Where nom LIKE ‘%[ai]%‘ • Liste des Pilotes dont le nom commence par le caractère a ou t SELECT nom FROM client Where nom LIKE ‘[at]%‘ • Liste des Pilotes dont le nom commence par le caractère a ou i et se termine par i SELECT nom FROM client Where nom LIKE ‘[ai]%i‘ 80
  • 79.
    Exemples • Liste desvols au départ deToulouse et a destination de Paris entre 12 et 15 heures. SELECT vol_id, villedepart, villearrivee,heuredepart,heurearrivee FROM Vol WHERE Heuredepart BETWEEN 12AND 15 AND villedepart = 'Toulouse‘AND villearrivee = 'Paris‘ • Liste des noms de pilotes SELECT nom FROM Pilote 81
  • 80.
    Opérateurs Arithmétiques • Vouspouvez utiliser les opérateurs arithmétiques * / + - pour effectuer des calculs. • Priorité des opérateurs : * et / sont prioritaires sur + et – • Vous pouvez utiliser les parenthèses • Exemple : SELECT ID_client, montant_a_payer, montant_a_payer*0.1 AS ‘Reduction’ FROM payement 83
  • 81.
    Alias de Colonne •Renomme l’en-tête d’une colonne • Il est très utile dans les calculs • Le mécanisme des alias : NomColonne AS NomAlias • Exemple 1: SELECT prixunitaire*quantité AS ‘Montant’ FROM Produit • Exemple 2: SELECT nom + ‘ ‘+ prénom AS ‘Nom et Prénom’ FROM client 84
  • 82.
    La Clause Top •La clause TOP n permet d’afficher les n premières lignes de la requête • Exemple : SELECT TOP 3 * FROM client ORDER BY nom 88
  • 83.
    DISTINCT (1) • Lerésultat d’un SELECT étant un ensemble, il peut y avoir des doublons • Le mot clé DISTINCT permet de préciser que l’on ne veut qu’un seul exemplaire de ces enregistrements • Exemple1 (sans distinct): Ensemble des types d’avions dont la capacité est supérieure à 250 passagers. SELECT Marque,TypeAvion, Capacite FROM AVION WHERE Capacite > 250 89
  • 84.
    DISTINCT (2) • Nousajoutons le mot clé DISTINCT à la sélection et ordonnons les données par capacités décroissantes : • Exemple: (avec distinct) SELECT DISTINCT Marque,TypeAvion, Capacite FROM AVION WHERE Capacite > 250 ORDER BY Capacite DESC 90