0% ont trouvé ce document utile (0 vote)
64 vues108 pages

Conception de Bases de Données Et Langage SQL: Pr. Loubna RABHI

Le document présente une formation sur la conception de bases de données relationnelles et le langage SQL, incluant des sections sur l'historique, la modélisation, et les types de données. Il couvre également l'installation d'outils comme WampServer et MySQL Workbench, ainsi que des instructions sur l'utilisation des clauses SQL pour manipuler les données. Enfin, des exercices pratiques sont proposés pour renforcer l'apprentissage des concepts abordés.

Transféré par

Nidal Hasnaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
64 vues108 pages

Conception de Bases de Données Et Langage SQL: Pr. Loubna RABHI

Le document présente une formation sur la conception de bases de données relationnelles et le langage SQL, incluant des sections sur l'historique, la modélisation, et les types de données. Il couvre également l'installation d'outils comme WampServer et MySQL Workbench, ainsi que des instructions sur l'utilisation des clauses SQL pour manipuler les données. Enfin, des exercices pratiques sont proposés pour renforcer l'apprentissage des concepts abordés.

Transféré par

Nidal Hasnaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Conception de Bases de

Données et langage SQL

Pr. Loubna RABHI


Plan
• SECTION 1 : Préambule 4. Vérifier et configurer WampServer 15.La clause GROUP BY
1. Introduction 5. De Workbench à MySQL 16.La clause HAVING
2. Historique • SECTION 5: Le langage SQL 17.Exercice SQL #2
• SECTION 2: Conception des bases de données 1. Présentation 18.Modifions la base entreprise
1. Du cahier des charges au MCD 2. Créer une nouvelle base et son jeu de données 19.Du produit cartésien aux jointures internes
2. Les entités, les attributs, le MCD et l'EAD 3. La clause SELECT 20.Les jointures externes et les alias de tables
3. Les associations et les cardinalités 4. La clause LIMIT 21.Les sous-requêtes
4. Du MCD au MLD 5. La clause WHERE et les opérateurs de 22.Les unions
comparaison
• SECTION 3: Le Modèle Physique 23.Exercice SQL #3
6. Les comparaisons à NULL
1. Le Modèle Physique 24.Les requêtes d'insertion
7. La clause BETWEEN... AND
2. Les types de données 25.Les requêtes de mise à jour
8. La clause IN (...)
3. Installer Oracle MySQL Workbench 26.Les requêtes de suppression
9. L'opérateur de comparaison LIKE
4. Modéliser avec Workbench 27.Ajout/suppression d’une colonne
10.Opérateurs logiques, arithmétiques et
5. Normalisation concaténation 28.Quelques fonctions
• SECTION 4: L'environnement WAMP 11.Les alias de colonnes • SECTION 6: Conclusion
1. Présentation 12.La clause ORDER BY
2. Télécharger WampServer 13.Exercice SQL #1
3. Installer WampServer 14.Les fonctions d'agrégation
SECTION 1 : Préambule
Introduction
Ce que vous allez apprendre
• Concevoir une base de donnée relationnelle selon la méthode Merise.
• Langage SQL d'administration et d'interrogation d'une base de données
relationnelle.
• Y a-t-il des exigences ou prérequis pour ce cours ?
• Les bases de l'informatique.
• Un peu d'anglais... mais un anglais d'aéroport suffit.
• Une machine sous Windows, Linux ou Mac OS.
• Une forte motivation !
SECTION 1 : Préambule
Historique
Au tout début de l’informatique, dans les années 1960, chaque programmeur
code à sa façon ➔Ni méthode standard d’organisation des données.
➔ Ni système standard de stockage.
➔ Ni interface standard entre programme et données.
➔Programmes et données sont dépendants
➔Maintenance difficile
SECTION 1 : Préambule
Historique
A partir de 1970, Trois ingénieurs d’IBM vont changer cette manière.
Ted Codd a inventé une façon de structurer les données qui devenu un standard.
Il s’agit du modèle relationnel de données.

Donald Chamberlin et Raymond Boyce on inventé le langage SQL (Structured Query


Language) pour interagir avec le modèle relationnel de données.

Dès 1979, l’entreprise américaine Oracle est la première à commercialiser un serveur de


BD relationnelle.
Rational Software, entreprise américaine, a commercialisé la première version d’un
interpréteur de langage SQL.
SECTION 1 : Préambule
Historique
Après ces progrès, les données sont maintenant structurées d’une façon standard sous la
forme de tables reliées entre elles. L’ensemble de ces bases de données est accessible via un
SGBDR (Système de Gestion des Bases de Données Relationnelles).
Entre le programme et le SGBDR, le langage SQL standardise le dialogue à la façon d’une
interface.
➔les données et les programmes sont maintenant indépendants.
➔ maintenance simplifiée
SECTION 1 : Préambule
Historique
SECTION 2 : Conception des bases de données
Du cahier des charges au MCD
SECTION 2 : Conception des bases de données
Du cahier des charges au MCD
• Toute application web devrait commencer par un cahier des charges le
plus précis possible. Diagramme
relationnel
d'entité (ERD
Entity Relational
Diagram)
3
1
2

EERD
Diagramme Enhanced Entity
Entité-association Relational Diagram
(EAD Entity
Association
Diagram)
SECTION 2 : Conception des bases de données
Du cahier des charges au MCD
SECTION 2 : Conception des bases de données
Les entités, les attributs, le MCD et l'EAD
Les objets (de la vie réelle) = entités

Clé primaire unique


Entité
Attributs
SECTION 2 : Conception des bases de données
Les entités, les attributs, le MCD et l'EAD
SECTION 2 : Conception des bases de données
Du cahier des charges au MCD
SECTION 2 : Conception des bases de données
Les entités, les attributs, le MCD et l'EAD
SECTION 2 : Conception des bases de données
Les entités, les attributs, le MCD et l'EAD
SECTION 2 : Conception des bases de données
Du cahier des charges au MCD
SECTION 2 : Conception des bases de données
Les associations et les cardinalités

Un client veut commander par exemple 5 produits X et 5 produits Y dans la même commande???
SECTION 2 : Conception des bases de données
Les associations et les cardinalités
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD
• RV1: Un attribut n’appartient qu’à une seule entité ou une seule
association
Polysèmes: Le même terme désigne 2 attributs différents ➔ Prévoir 2 attributs

Faire la chasse
Synonymes: 2 termes désignent même objet➔ Eliminer un
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD
• RV2: Construction du dictionnaire des données= c’est l’ensemble des
données pertinentes pour l’entreprise
Nom de la Signification Coding ( Type de Calculable/NC Stable/ NS Règle de calcul
donnée valeur)

Seules les données non calculables figurent dans le MCD. Sinon, on doit donner une justification
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD
• RV3: Sur une entité ou une association, il ne peut y avoir qu’une
valeur prise par tout attribut
➔Les attributs doivent être mono-valués
➔Éliminer les attributs multi-valués

Soit n=nbr de valeurs


Si n est petit n<=3 ➔ ajouter n nouveaux attributs à l’entité
Si n est très grand ➔ penser à gérer une nouvelle entité
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD

• RV4: Toutes les propriétés d’une entité (ou d’une association) doivent
avoir un sens pour toutes les occurrences de l’entité (ou de
l’association)
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD

• RV5: Tout attribut doit dépendre uniquement et totalement de


l’identifiant
➔ dépendance fonctionnelle
#CIN➔Nom, prénom…. (Connaissant la valeur de #CIN, on connait à
coup sûr celles du nom et prénom)
SECTION 2 : Conception des bases de données
Les règles de Validation sémantique d’un MCD

• RV6: Il faut s’assurer que tous les attributs portés par une association
ont besoin de toutes les pattes pour être définies.
SECTION 2 : Conception des bases de données
Du MCD au MLD
SECTION 3 : Le Modèle Physique
Le Modèle Physique
SECTION 3 : Le Modèle Physique
Les types de données
Les types en gras sont des types standards du langage SQL,
Mysql ajoute TINYINT et MEDIUMINT
Pour FLOAT, la précision est généralement de 7 chiffres
significatifs. Cela signifie que vous pouvez stocker des valeurs
avec jusqu'à 7 chiffres significatifs avant ou après la virgule.
Pour DOUBLE, la précision est beaucoup plus élevée,
généralement de 15 à 16 chiffres significatifs. Cela signifie que
vous pouvez stocker des valeurs avec jusqu'à 15 ou 16 chiffres
significatifs avant ou après la virgule.
précision de DOUBLE est généralement définie lors de la
définition de la colonne dans une table.
SECTION 3 : Le Modèle Physique
Les types de données

0 ou 1
SECTION 3 : Le Modèle Physique
Installer Oracle MySQL Workbench
Télécharger MySQL Workbench: //dev.mysql.com/downloads/workbench
SECTION 3 : Le Modèle Physique
Modéliser avec Workbench
SECTION 3 : Le Modèle Physique
Modéliser avec Workbench
SECTION 3 : Le Modèle Physique
Modéliser avec Workbench
SECTION 3 : Le Modèle Physique
Normalisation
Normaliser : créer des schémas relationnels sans redondances inutiles, répondant à un standard:
‘’forme normale‘’
SECTION 4 : L'environnement WAMP
Présentation
SECTION 4 : L'environnement WAMP
Télécharger WampServer
Télécharger Wampserver sur: https://www.wampserver.com/
Besoin du package de Visual studio C++ : https://wampserver.aviatechno.net/
SECTION 4 : L'environnement WAMP
Installer WampServer
SECTION 4 : L'environnement WAMP
Vérifier et configurer WampServer
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 4 : L'environnement WAMP
De Workbench à MySQL
SECTION 5 : Le langage SQL
Présentation

Le langage SQL (Structured Query Language) est un langage de programmation (de


requêtes) utilisé pour communiquer avec les bases de données relationnelles. Il
permet de manipuler et de gérer les données stockées dans ces bases de données.
SECTION 5 : Le langage SQL
Créer une nouvelle base et son jeu de données

1
2

3
SECTION 5 : Le langage SQL
La clause SELECT
SECTION 5 : Le langage SQL
La clause SELECT
SECTION 5 : Le langage SQL
La clause SELECT
SECTION 5 : Le langage SQL
La clause LIMIT
Restreindre de nombre d’enregistrements sélectionnés
SECTION 5 : Le langage SQL
La clause LIMIT

Un seul enregistrement à partir du 3ème enregistrement (Les index commencent de 0)


SECTION 5 : Le langage SQL
La clause WHERE
Filtrer les enregistrements sélectionnés

Les opérateurs de comparaison: =, !=, >,>=,<,<=, …


SECTION 5 : Le langage SQL
Les comparaisons à NULL
La valeur null n’est pas comparable= On ne pas directement la mettre après un signe égale (=) ou
un signe différent (!=)
SECTION 5 : Le langage SQL
La clause BETWEEN…AND
Pour filtrer des enregistrements
SECTION 5 : Le langage SQL
La clause IN(…)
Pour filtrer des enregistrements
SECTION 5 : Le langage SQL
L’opérateur de comparaison d’égalité LIKE
Se comporte comme le signe =, et il permet d’utiliser des JOKERS % et underscore
SECTION 5 : Le langage SQL
Opérateurs Logiques, arithmétiques et
concaténation
SECTION 5 : Le langage SQL
Opérateurs Logiques, arithmétiques et
concaténation
Il existe tous les opérateurs arithmétiques usuels en SQL
SECTION 5 : Le langage SQL
Opérateurs Logiques, arithmétiques et
concaténation
SECTION 5 : Le langage SQL
Les alias de colonnes
SECTION 5 : Le langage SQL
Les alias de colonnes

Vous ne pouvez pas employer les alias de colonnes dans une clause where

Where fait un filtrage en entrée tandis que having fait un filtrage en sortie
SECTION 5 : Le langage SQL
La clause ORDER BY
Trier les enregistrements par ordre.

Notation positionnelle
SECTION 5 : Le langage SQL
Exercice d’Application N°1
SECTION 5 : Le langage SQL
Solution: Exercice d’Application N°1
SECTION 5 : Le langage SQL
Solution: Exercice d’Application N°1
SECTION 5 : Le langage SQL
Les fonctions d’agrégation
SECTION 5 : Le langage SQL
Les fonctions d’agrégation
SECTION 5 : Le langage SQL
Les fonctions d’agrégation
SECTION 5 : Le langage SQL
La clause GROUP BY

Avec GROUP BY, utilisez une colonne déjà sélectionnée


pour le groupement et avec une fonction d’agrégation
SECTION 5 : Le langage SQL
La clause HAVING

- On ne peut pas avoir une fonction d’agrégation dans un WHERE


- WHERE fait un filtrage en entrée des enregistrements (avant GROUP BY)
SECTION 5 : Le langage SQL
La clause HAVING

- La clause HAVING fait un filtrage en sortie des enregistrements (après


GROUP BY)
SECTION 5 : Le langage SQL
La clause HAVING

- NB l’ordre des clauses:


- SELECT… FROM
- WHERE
- GROUP BY
- HAVING
- ORDER BY
- LIMIT
SECTION 5 : Le langage SQL
Exercice d’application N°2
SECTION 5 : Le langage SQL
Solution: Exercice d’application N°2
SECTION 5 : Le langage SQL
Solution Exercice d’application N°2
SECTION 5 : Le langage SQL
Modifions la base entreprise
SECTION 5 : Le langage SQL
Modifions la base entreprise
SECTION 5 : Le langage SQL
Modifions la base entreprise
SECTION 5 : Le langage SQL
Modifions la base entreprise

On ne peut pas éliminer un Directeur dont les services existants dépendent de lui➔ Supprimer
d’abord les services en relation avec.
SECTION 5 : Le langage SQL
Modifions la base entreprise

Bases de données ➔ Plus ➔ Concepteur


SECTION 5 : Le langage SQL
Modifions la base entreprise

Table service
SECTION 5 : Le langage SQL
Modifions la base entreprise
Aller à la table « employe » et ajoutez une clé étrangère « idService »
SECTION 5 : Le langage SQL
Modifions la base entreprise
SECTION 5 : Le langage SQL
Modifions la base entreprise
Supprimez ensuite la colonne service de la table « employe »

Alter table employe DROP service;


SECTION 5 : Le langage SQL
Modifions la base entreprise
SECTION 5 : Le langage SQL
Du produit cartésien aux jointures internes

Sélectionne toutes les combinaisons possibles pour chaque employé


(produit cartésien = cross join)
SECTION 5 : Le langage SQL
Du produit cartésien aux jointures internes
Ajouter une condition de jointure

Max Lefort et le service Achat ne sont pas sélectionnés = jointure interne

L’ordre des tables « employe » et « service » dans la clause « from » dans les
jointures internes n’a pas d’importance
SECTION 5 : Le langage SQL
Les jointures externes et les alias de tables
Autoriser un débordement à gauche

L’ordre des tables « employe » et « service » dans la clause from dans


les jointures externes a une importance
SECTION 5 : Le langage SQL
Les jointures externes et les alias de tables
Autoriser un débordement à droite

Full join n’est supporté avec Mysql (# Oracle)


SECTION 5 : Le langage SQL
Les jointures externes et les alias de tables
Contrairement aux alias de colonnes, les alias de table sont crées immédiatement (➔ on peut les mettre dans
la clause WHERE)
SECTION 5 : Le langage SQL
Les jointures externes et les alias de tables
SECTION 5 : Le langage SQL
Les sous-requêtes
SECTION 5 : Le langage SQL
Les sous-requêtes
SECTION 5 : Le langage SQL
Les Unions de requêtes
SECTION 5 : Le langage SQL
Exercice
SECTION 5 : Le langage SQL
Correction Exercice
SECTION 5 : Le langage SQL
Correction Exercice
SECTION 5 : Le langage SQL
Correction Exercice
SECTION 5 : Le langage SQL
Les requêtes d’insertion
SECTION 5 : Le langage SQL
Les requêtes d’insertion
SECTION 5 : Le langage SQL
Les requêtes de mise à jour
SECTION 5 : Le langage SQL
Les requêtes de mise à jour
SECTION 5 : Le langage SQL
Les requêtes de suppression
Supprimer des enregistrements d’une table

Vider une table


SECTION 5 : Le langage SQL
Les requêtes de suppression
Suppression avec des jointures

Il faut indiquer quelle table ciblée par la suppression


SECTION 5 : Le langage SQL
Ajout/suppression d’une colonne
SECTION 5 : Le langage SQL
Quelques fonctions
SECTION 5 : Le langage SQL
Quelques fonctions
SECTION 5 : Le langage SQL
Quelques fonctions
SECTION 5 : Le langage SQL
Suppression d’une Base de Données

Vous aimerez peut-être aussi