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
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
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
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
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
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
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
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
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