Vous êtes sur la page 1sur 183

Chapitre 1:

Généralités et notion de base

1
Introduction :
Définition d’une base de données:

 Une base de données est un ensemble


structuré de données persistantes
représentant une réalité extérieure au
système, partagé par plusieurs utilisateurs
(application d’une même entreprise)

2
Introduction :
 Remarque :
 Persistante : les données sont conservées de
manière permanente, elles sont disponibles
pour chaque utilisateur.
 Réalité extérieur : les informations contenues
dans une base de données sont des données du
monde réel et non des données informatiques.
 Plusieurs utilisateurs : les utilisateurs qui
partagent les fichiers de la base de données
peuvent avoir des préoccupations différentes.
 Entreprise : les applications qui pointe vers la
même base de données doivent appartenir à la
même entreprise
3
Introduction :
Définition d’une base de données :
 Une base de données contient des
informations représentant des objets du
même monde extérieur(monde réel) ainsi
que des liens sémantiques entre ses
objets.

4
Utilité d'une base de données
 Une base de données permet de mettre
des données à la disposition des
utilisateurs pour une consultation, une
saisie ou bien une mise à jour, tout en
s'assurant des droits accordés à ces
derniers

5
Utilité d'une base de données(suite)
 Une base de données peut être
 locale, c'est-à-dire utilisable sur une machine
par un utilisateur,
 répartie, c'est-à-dire que les informations sont
stockées sur des machines distantes et
accessibles par le réseau.
 L'avantage
 accédées par plusieurs utilisateurs
simultanément.

6
Conception d’une base de données
 Définitions:
Les éléments constitutifs d’une base de
données lors de sa phase de conception
correspondent aux 3 notions : entité,
attribut et association

7
Conception d’une base de données(suite)
 Définition d’une entité :
Une entité est un objet du monde extérieur que
l’on peut distinguer et qui a une existence propre
et qui possède des propriétés.

Exemple :
 BD pour la gestion des notes possède 3 entités:
- Etudiant,
- Matière,
- Enseignant.

 BD commerciale :
- Client,
- Fournisseur,
- Commande. 8
Conception d’une base de données(suite)
 Définition d’un attribut :
Un attribut est le plus petit élément
d’information manipulé par l’entreprise et
qui a un sens en lui même.
Exemple :
Étudiant: Nom, prénom, adresse, date de
naissance.

9
Conception d’une base de données(suite)

 Définition d’une association :


Une association est un lien sémantique
entre deux entités.
Exemple:
Passer
Client Commande

10
Conception d’une base de données(suite)
 Les divers types d’associations :
Il y’a quatre types d’associations:
1. Association binaire réciproque ou un à un:
Conjoint
Employé Employé

2. Association binaire un à plusieurs:


Employé
Établissement Employé
11
Conception d’une base de données(suite)
3. Association binaire plusieurs à plusieurs:

Fournir
Fournisseur Produit

12
Exercice n°1
Soient les règles de gestions suivantes :
 Un client peut passer plusieurs commandes,
 Une commande est passée par un et un seul client.
 une commande se compose de plusieurs produits
 un produit peut être livré par plusieurs fournisseurs.

1. Extraire les entités du problème ?


2. Représenter la structure du problème en utilisant le
formalisme entité association ?

13
Correction

passer
client commande

Composer

Fournisseur Livrer
Produit

14
Exercice n°2

Considérons une entreprise structurée en un certain nombre


d’établissement ;
Soient les règles de gestions suivantes :
 Les établissements emploient des personnes, chaque personne ne
travaille que dans un seul établissement, mais il peut participer à
différents projets de l’entreprise.
 Un projet peut regrouper plusieurs employés du même établissement ou
pas.
 Un projet est dirigé par un et un seul employé et un employé ne peut
diriger qu’un seul projet.
 Si le conjoint d’un employé travaille dans l’entreprise ce lien doit être
enregistrer
 L’entreprise s’adresse à des fournisseurs qui lui fournissent des produits
qu’elle stockent dans des entrepôts.
 Un fournisseur, un établissement, un entrepôt, sont localisé dans une
seule ville,
 Un produit peut être composé de plusieurs autres produits.
En utilisant le formalisme (entité – association), représenter la structure15 du
problème ?
Système de gestion des bases de données
Définition d’un SGBD :
 Le SGBD représente un ensemble
coordonné de logiciels qui permet de
décrire, manipuler, traiter les ensembles
de données formant la base.
 Il doit également assurer la sécurité et la
confidentialité des données dans un
environnement où de nombreux
utilisateurs ayant des besoins variés
peuvent interagir simultanément sur ces
données.
16
Système de gestion des bases de données
 L’organisation des données dans un
SGBD:(exemple Access)
- Dans les SGBD, les informations doivent
être segmentées en données qui sont
stockées dans des tables. Une table est donc
un ensemble de données, organisées en lignes
et en colonnes.
- On peut stocker dans une table n’importe
quel type d’information (texte, chiffres,
graphisme, son, etc...)

17
Système de gestion des bases de données
 Chaque table est divisée en enregistrements, les
enregistrements étant l’ensemble des données
relatives à la même information.

 Chaque enregistrement contient un ensemble


d’informations qui ont elles-même diviser
l’enregistrement en plusieurs parties, chaque
partie s’appelle un champ. Le champ contient une
partie des informations de chaque enregistrement.

18
Fonctionnalités d’un SGBD :
 Gestion du stockage : faire face à des tailles
énormes de données.
 Persistance: Les données «survivent» aux programmes
qui les créent.
 Fiabilité : Mécanismes de reprise sur pannes (logiciel ou
matériel)
 Sécurité - Confidentialité : Droits d'accès aux données
 Cohérence : Contraintes d'intégrité
 contrôle de concurrence: Conflits d'accès. Répercussions
sur la cohérence
 Interfaces homme – machine : Convivialité + différents
types d'utilisateurs

19
Objectifs d’un SGBD :
 Indépendance physique: Le niveau
physique (type de données)peut être
modifié (int → float) indépendamment du
niveau conceptuel.
 Cela signifie que tous les aspects matériels
de la base de données n'apparaissent pas
pour l'utilisateur, il s'agit simplement
d'une structure transparente de
représentation des informations

20
Objectifs d’un SGBD :
 Indépendance logique: le niveau
conceptuel doit pouvoir être modifié sans
remettre en cause le niveau physique,
c'est-à-dire que l'administrateur de la
base doit pouvoir la faire évoluer sans que
cela gêne les utilisateurs.

21
Objectifs d’un SGBD :
 Manipulation: des personnes ne
connaissant pas la base de données
doivent être capables de décrire leurs
requêtes sans faire référence à des
éléments techniques de la base de
données,
 Rapidité des accès: le système doit
pouvoir fournir les réponses aux requêtes
le plus rapidement possible, cela implique
des algorithmes de recherche rapides,
22
Objectifs d’un SGBD :
 Administration centralisée: le SGBD
doit permettre à l'administrateur de
pouvoir manipuler les données, insérer
des éléments, vérifier son intégrité de
façon centralisée
 Limitation de la redondance: le SGBD
doit pouvoir éviter dans la mesure du
possible des informations redondantes,
afin d'éviter d'une part un gaspillage
d'espace mémoire mais aussi des erreurs,
23
Objectifs d’un SGBD :
 Vérification de l'intégrité: les données doivent
être cohérentes entre elles, de plus lorsque des
éléments font références à d'autres, ces derniers
doivent être présents,
 Partage des données: le SGBD doit permettre
l'accès simultané à la base de données par
plusieurs utilisateurs,
 Sécurité des données: Le SGBD doit présenter
des mécanismes permettant de gérer les droits
d'accès aux données selon les utilisateurs.

24
Modèles d’un SGBD
Il existe cinq modèles de SGBD, différenciés
selon la représentation des données
qu'elle contient :
1. le modèle hiérarchique: C’est un
modèle inspiré par la pratique courante
de la programmation COBOL, il consiste
à organiser les divers entités de la
base en arbre. Ce modèle utilise des
pointeurs entre les différents
enregistrements. Il s'agit du premier
modèle de SGBD
25
Modèles d’un SGBD
2. le modèle réseau: Comme le modèle
hiérarchique ce modèle utilise des
pointeurs vers des enregistrements, et il
permet de relier plusieurs entités.

26
Modèles d’un SGBD
3. le modèle relationnel (SGBDR,
Système de gestion de bases de données
relationnelles): les données sont
enregistrées dans des tableaux à deux
dimensions (lignes et colonnes). La
manipulation de ces données se fait selon
la théorie mathématique des relations.

27
Modèles d’un SGBD
4. le modèle objet
(SGBDO, Système de gestion de bases de
données objet): c’est un modèle qui est
adapté aux structures complexe.
5. le modèle déductif

28
Architecture d’un SGBD
L'architecture ANSI/SPARC d’un SGBD :
 L'architecture ANSI/SPARC, datant de 1975,
définit des niveaux d'abstraction pour un système
de gestion de bases de données:

 Niveau interne (ou physique): Il définit la façon


selon laquelle sont stockées les données et les méthodes
pour y accéder
 Niveau conceptuel: appelé aussi MCD (modèle
conceptuel des données) ou MLD (modèle logique des
données). Il définit l'arrangement des informations au
sein de la base de données
 Niveau externe: Il définit les vues des utilisateurs

29
Les principaux SGBD
 Les principaux systèmes de gestion de
bases de données sont les suivants:
 Interbase
 Microsoft SQL server
 Microsoft Access
 Microsoft FoxPro
 Oracle
 Sybase
 MySQL
 PostgreSQL
 mSQL
30
Chapitre 2:

Gestion de projet informatique et


conception d’un système
d’information
(méthodologie Merise)
31
Définitions :
 Système
Le système est un tous constitué d’éléments uni
par des relations.
 Système d’information
Un système d’information est une représentation
possible de n’importe quel système notamment
tous système humain organisé.
 Génie logiciel
La génie logiciel est une sous discipline
informatique offrant des méthodes et des
techniques pour développer et maintenir des
logiciels de qualité.
32
Cycle de vie d’un logiciel
 Cycle de vie est une suite de phases de
réalisation d’un logiciel depuis sa
spécification jusqu’à sa commercialisation
ou sa mise en œuvre
 Le développement d’un logiciel suit
différents modèles:
 Modèle en cascade
 Modèle en V
 Modèle en spirale
 Modèle de la fontaine
33
Cycle de vie d’un logiciel
 Cycle en cascade :

34
Description des états :
 Définition du problème «Pourquoi ? » :
définir le problème avec précision :
 Documents de définition du problème :
- Objectif de l’usage
- Les contraintes majeures

 Outil de description :
- Langage naturel

35
Description des états :
 Analyse des besoins :
Définir les fonctionnalités des systèmes
donnés, les objectifs et les contraintes et
si nécessaires faire une équipe de
faisabilité qui doit analyser les besoins
contre les contraintes,

36
Description des états :
Spécification :
A cette étape on répond au question
suivantes :
- Quel sont les entrées du système ?
- Quel sont les fonctions de chaque
entrée ?
- Quel sont les sorties correspondantes ?

37
Description des états :
 Conception:
 A cette étape : représenter les fonctions
pour faciliter leur implémentation, et
choisir les structures de données,
 Structurer le système en modules logiques
et fonctionnels.

38
Description des états :
Codage et tests « Comment ?»

 Écrire les unités du programme dans un langage

exécutable,

 Pour chaque programme il faut préparer une

documentation à inclure dans le manuel

technique du système, puis faire les tests.


39
Modèle en cascade

40
Merise
Historique
 Merise est une méthodologie de conception
des applications logicielles ou plus précisément
est une approche d’analyse, de modélisation
et de réalisation d’un système d’information :
d’un système réelle quelconque (entreprise,
organisation, administration…)
 C'est la méthode la plus répandue en France,
 Elle a été créée en 1978 à Aix en Provence
(CETE, centre d'étude technique de l'équipement,
et CTI, centre technique d'informatique). 41
Système d’information
 un système d’information décrit l’ensemble des
connaissances et des services de l’organisation à
informatiser. Un tel système permet une bonne
supervision de l’organisation, optimise sa
rentabilité et aide à prendre des décisions.

 Le fait d’établir un système permet aussi


d’analyser et d’identifier les parties du système
qui peuvent être automatisable.

42
Système d’information(suite)
 Ce système d’information assurera le lien
entre deux autres systèmes de
l’entreprise : le système opérant, et le
système de pilotage :

43
Système d’information(suite)
 Le système opérant : englobe toutes les
fonctions liées à l’activité propre de
l’entreprise: facturer les clients, régler les
salariées, gérer les stocks,…

 Le système de pilotage : décide des


actions à conduire sur le système opérant
en fonction des objectifs et des politiques
de l’entreprise,

44
Architecture d’un système
d’information
Le schéma suivant synthétise l’architecture d’un
système d’information.

45
Architecture d’un système
d’information (suite)
 Le processeur d’information produit des
changements dans la base d’information à la
réception d’un message. Un message contient
des informations et exprime une commande
décrivant l’action à entreprendre dans la base
d’information.
 Le processeur interprète la commande et effectue
le changement en respectant les contraintes et
les règles.
 Dans tous le cas, l’environnement a besoin de
connaître que la commande a été acceptée ou
refusée, le processeur émet à cet effet un
message vers l’environnement.
46
l’approche analytique et l’approche
systémique
 Les méthodes d’étude des systèmes
d’information ont pour objectif de décrire
ces systèmes à l’aide de modèles, puis de
réaliser les systèmes informatisés en
découlant.
 Elles sont regroupées essentiellement en
deux groupes: les méthodes analytiques,
et les méthodes systémiques.

47
Les méthodes analytiques
 La démarche analytique est basée sur une
décomposition du domaine d’étude en des
domaines plus réduits qui sont des sous
ensembles du domaine global.
 Chaque partie prise séparément est alors étudiée
puis réintégrée à l’ensemble afin de tenter de
reconstituer le tout.
 Leur défaut majeur est d’aboutir à des applications
difficiles à lier et dont la juxtaposition est
généralement peu cohérente. 48
Les méthodes systémiques
 La démarche systémique passe par la modélisation

du domaine à étudier pour le comprendre. Le réel

perçu est représenté par un modèle, réduction de

cette réalité, lui-même décomposé ; chaque partie

est ensuite étudiée en relation avec l’ensemble.

 Merise est une méthode systémique de conception

de systèmes d’information.

49
Modèle
 Un modèle peut être définit comme étant
une image de la réalité.
 Toute réalité complexe doit être représentée
pour être comprise et maîtrisée
 Le modèle, c’est l’expression de quelque
chose que nous cherchons à appréhender,
représentée en des termes que nous
pensons comprendre.

50
Modèles Merise :

51
 Le formalisme conceptuel se découpe en trois
niveaux de modélisation :
 le modèle conceptuel des données,
 le modèle conceptuel de communication (ou
diagramme de flux)
 et le modèle organisationnel des traitements.

52
Modèles
 Formalisme Organisationnel :
 Le niveau organisationnel décrit le SI en
répondant aux questions QUI ? Où ? et Quand ?
 Le MOT intègre les notions de temps, de durées,
de ressources, de lieu, de responsabilité et la
nature des traitements.

53
Modèle conceptuel de communication
(MCC):
Définition de l’organisation :
 MCC représente, au niveau conceptuel, les
échanges d’information entre les acteurs :
 Acteurs
– Représenté par un cercle et un libelle pour le
nom de l’acteur
– L’acteur représente une unité active intervenant
dans le fonctionnement d’un système opérant.
- Un acteur est un rôle plutôt qu’une personne
physique

54
Définition de l’organisation
 Un acteur c’est une personne ou un
groupe de personnes qui s’échangent des
informations
 Acteur interne : font parties du sous
ensemble de l’organisation étudiée
 Acteur externe : échangent des
informations avec les acteurs internes du
domaines étudié mais n’en font pas partie

55
Étapes de création du modèle MCC
1. Délimiter le système: identifier les
acteurs externes
Exemple:

Etudiant
Organisation:
« Bibliothèque »
Acteur externe

56
Étape de création du modèle MCC
2. Identifier les acteurs internes

Saisir les prêts

Retourner les livres


à leur place

57
MCC(suite)
Flux d’information
 Représenté par une flèche entre deux
acteurs, étiquetée par le nom du flux

58
Modèle conceptuel des données(MCD)
 Le Modèle conceptuel des données est une
représentation statique du système
d’information de l’entreprise.
 Chaque mot du langage de l’entreprise a
une signification précise et le modèle
conceptuel des données décrit les rapports
qui existent entre les sens de ces mots.

59
Modèle conceptuel des données(MCD)
Vocabulaire:
1. Entité:
Une entité est un objet du réel, concret
ou abstrait dont on s'accorde à
reconnaître une existence propre.
Représentation graphique :

60
Vocabulaire (suite)
2. Une propriété est une caractéristique que l'on
perçoit sur une entité ou sur une association entre
entités dans le réel.
 Exemples :
- Une propriété peut être simple:
 Nom de personne
 Numéro de commande
 Le prix d'un produit
 Le mois
- Ou composée: La date (jour, mois, année)
 l'adresse : nom, rue, numéro, code postal, ville.
Client
Num client
Nom client
61
Adresse client
Identifiant
 Un identifiant est une propriété particulière telle qu'il
n'existe pas deux occurrences de cette propriété pour
lesquelles cette propriété puisse prendre la même
valeur.
 Une entité est complètement définie par :
 Un nom
 Un identifiant
 Une liste de propriétés
 Chaque fois que l'on veut définir une entité, on
devra déterminer son identifiant.
Client
Num client
Nom client 62

Adresse client
Association
 Une association (ou relation) est perçue dans le
réel entre des individus
 Une association définit une relation entre une ou
plusieurs entités
 Exemple : un client passe une commande
Représentation graphique :

Client Commande
Passe
Num client Num commande
Nom client Date commande
Adresse client
63
Association (suite)
 Une association n'a pas d'existence propre, elle
dépend des entités qu'elle regroupe
 Une association peut être porteuse de propriétés
Exemple:

Commande Contenir
Produit
Num commande Quantité Ref_produit
Prix unitaire

 Pour désigner une occurrence de l'association, il


faut désigner les occurrences des entités qui la
composent 64
Type d’association (suite)
1. Association binaire
2. Association ternaire:
Exemple:

Enseignant
matière
Enseigne
Id_enseignant
Nom_matiére
Nom
Prenom

Salle
Num_salle

65
Type d’association (suite)
Remarque:
- Plusieurs associations peuvent exister
entre deux entités
- Exemple:

66
Cardinalités
 Les cardinalités, au sens arithmétique du
terme, permettent de dénombrer les
éléments de l'entité d'arrivée en
relation avec un élément de l'entité de
départ, et vice versa.

67
Cardinalités
 cardinalité minimale :combien
d ’occurrence au minimum? (0 ou 1)

 cardinalité maximale :combien


d ’occurrence au maximum ? ( 1 ou n )

68
Exemple
 Considérons le cas de l'association "habite" et les
deux entités "être humain" et "appartement" du
schéma précédent, les cardinalités minimales et
maximales sont les suivantes
 sens "être humain" vers "appartement" : 0
(minimum) et 1 (maximum)
 sens "appartement" vers "être humain" : 0
(minimum) et n (maximum)

69
Cardinalités(suite)
 Tout être humain ne réside pas forcément dans un

appartement, peut être dans une maison,

 Un être humain réside dans un appartement et un


seul à la fois, mais qu’un appartement peut se
trouver vide ou être pourvu de plusieurs résidents.

70
Cardinalités(suite)
 En outre nous avons convenu qu’un même être
humain ne pouvait résider dans plusieurs
appartements à la fois.

 On note les cardinalités de chaque côté de


l'association, sur les traits faisant la liaison entre
l'association et l'entité.

71
Exemple

Être humain 0,1 Appartement


Réside 0,n
Id_etre_humain Num Appartement
Nom Adresse
Prénom Étage
Adresse
Sexe

72
Exercice1
Chaque client est caractérisé par un numéro, nom,
prénom,adresse.
 Une commande est identifié par un numéro de
commande.
 Un produit est caractérisé par une référence
unique,libellé et le prix unitaire.
 Pour chaque fournisseur on connaît son identifiant, son
nom,et son adresse.
 Un client peut passer plusieurs commandes,
 Une commande est passée par un et un seul client,
 une commande se compose de plusieurs produits,
 un produit peut être livré par plusieurs fournisseurs.

Représenter le modèle conceptuel de données (MCD) ?


73
Exercice 2
 Pour les besoins d’un aéroport, on souhaite
mémoriser dans une base de données les
informations nécessaires à la description des faits
suivants :
 chaque avion géré est identifié par un numéro
d’immatriculation. Il est la propriété soit d’une
société, soit d’un particulier, dans les deux cas on
doit connaître le nom et le numéro de téléphone du
propriétaire, ainsi que la date d’achat de l’avion ;
 chaque avion est d’un certain type, celui ci étant
caractérisé par son nom, le nom du constructeur, la
puissance du moteur et le nombre de places ;
 la maintenance des avions est assurée par les
mécaniciens de l’aéroport. Les interventions sont
toujours effectuées par deux mécaniciens. Pour
toute intervention effectuée, on conserve l’objet de
l’intervention, la date et la durée ; 74
Exercice 2(suite)
 pour chaque mécanicien, on connaît son nom, son
adresse et son numéro de téléphone;
 un certain nombre de pilotes sont enregistrés auprès
de l’aéroport. Pour chaque pilote on connaît son nom,
son adresse, son numéro de brevet et le nombre
total de vols qu’il a effectué sur chacun de ces types;
1. Extraire les entités et leurs attributs ?
2. Représenter le modèle conceptuel de données
(MCD) ?

75
MCD

76
Exercice 3
 Un enseignant est caractérisé par son nom, prénom et
son bureau. Il peut enseigner une ou plusieurs
matières.
 Une matière peut être enseignée par un ou plusieurs
enseignants. Une matière est distinguée par son
intitulé.
 Un étudiant est caractérisé par son nom, prénom.
 Un étudiant doit s’inscrire à une ou plusieurs matières.
 Un étudiant passe un ou plusieurs contrôles continus
dans chaque matière. Chaque contrôle est caractérisé
par une note et un coefficient.
 Il passe aussi un ou plusieurs examens dans chaque
matière où il est inscrit. Un examen est caractérisé 77par
une note et un coefficient.
MCD

78
Démarche dans la construction d’un MCD

 Recherche des propriétés à gérer


 Regroupement des propriétés par entité
 Représentation des entités
 Recherche des relations
 Recherche des cardinalités
 Vérification et validation du modèle

79
1ére forme normale
 L’existence d’un identifiant pour chaque objet:
Certain objet réel ne sont pas identifié au
préalable; il faut donc créer la donnée
permettant de se mettre en conformité avec la
regle1.
 Remarque: Rappelons qu’on peut pas avoir deux
occurrences identiques pour un même identifiant.

Client Client
Nom client Num client
Adresse client Nom client
Adresse client
80
1ére forme normale
 Toutes les propriétés doivent être élémentaires
c’est-à-dire non décomposable: il vaut mieux
éclater des propriétés qui pourraient être
regroupées que de regrouper des propriétés qui
doivent être éclatées.
 Exemple:
Décomposer la propriété adresse:
 Rue
 Ville
 Code postal

81
Formes normales d’un MCD
Dépendances fonctionnelles:
 Une propriété (ou un groupe de
propriétés) Y dépend fonctionnellement
d’une autre propriété (ou groupe de
propriétés) X si étant donné une valeur de
X, il lui correspond une valeur unique de
Y . On note
 X→Y (X détermine Y )

82
2éme forme normale
 Toute les propriétés autre que l’identifiant
doivent être en dépendance fonctionnelle
mono valué à cet
identifiant c-a-d pour une occurrence d’une
entité, chacun des propriétés ne peut
prendre qu’une valeur.

83
Exemple:

Employé
Avoir Diplôme
Matricule
Id_diplome
Nom
Diplôme_employé
Prénom
Diplôme

détermine multidétermine
Matricule Nom Matricule diplôme

84
3éme forme normale
 Le modèle est en 2FN
 La dépendance fonctionnelle transitive doit être
écartée.
 Si une propriété est en dépendance fonctionnelle de
l’identifiant , et d’une autre propriété de l’objet, elle-
même en dépendance fonctionnelle simple de cet
identifiant, il y a un objet imbriqué dans celui que
l’on étudie;
 Il faut éclater en deux objets celui qui contient une
dépendance fonctionnelle transitive.

85
3éme forme normale
 Ou bien:
Toutes les DF entre les propriétés sont directes
– Les propriétés d’une entité doivent dépendre
de l’identifiant de l’entité de manière directe
– Toute propriété n’appartenant pas à un
identifiant ne dépend pas d’un attribut non
identifiant

86
4éme forme normale
 Le modèle est en 3FN
 Une propriété ne peut qualifier qu’un seul objet ou
qu’une seule relation.
 Par exemple: la propriété «Nom» ne peut être
présente à la fois dans l’objet «Client» et dans
l’objet «Fournisseur»;si tel est le cas, alors il faut
appeler l’une « Nom client » et l’autre « Nom
fournisseur»
Client
Polyséme Fournisseur
Num client
Num fournisseur
Nom
Nom

87
Modèle logique des données(MLD)
 le MCD a pour but de modéliser les données (aspect
statique)
 Le modèle logique des données consiste à décrire la
structure de données utilisée sans faire référence à
un langage de programmation
 Le MLD (Modèle Logique des Données) tient compte des
choix concernant le système de gestion des données utilise
dans l’entreprise. Le plus utilise est le modèle relationnel
associe aux bases de données relationnelles (Oracle,
Informix, SQLserver,..., Access, mySQL, postgreSQL...) 88
Vocabulaire
 Le domaine est l’ensemble des valeurs que peut
prendre une donnée.
 Une table porte un nom et est composée
d’attributs prenant leurs valeurs dans les
domaines correspondants.
 Une table est un sous-ensemble du produit des
domaines ; une table est donc un ensemble
d’enregistrements ( lignes).
 Une clé est constituée de 1 ou plusieurs attributs
telle que une valeur de la clé détermine
exactement l’enregistrement.
89
Passer du MCD au MLD
 Pour les entités : toute entité devient une table,
les propriétés de l’entité sont les attributs de la
table, l’identifiant de l’entité est la clé primaire de
la table ;
 Pour les relations : cela dépend des cardinalités.
deux cas sont possibles:
 la relation disparaît, elle est matérialisée par
l’ajout d’une clé étrangère,
 la relation donne lieu à la création d’une table.

90
Passer du MCD au MLD
 Relation binaire aux cardinalités (X,1) -
(X,n), X=0 ou X=1:

La Clé Primaire de la table à la cardinalité


(X,n) devient une Clé Étrangère dans la
table à la cardinalité (X,1)

91
Exemple
 Modèle Conceptuel de Donnée (MCD) :

 Modèle Logique de Donnée Relationnelle (MLDR) :

EMPLOYE (id_Employe, Nom_Employe,#id_Societe)


SOCIETE (id_Societe, Nom_Societe)

92
Passer du MCD au MLD
 Relation binaire aux cardinalités (X,n) -
(X,n), X=0 ou X=1:

Il y a création d'une table supplémentaire ayant


comme Clé Primaire une clé composée des
identifiants des 2 entités. On dit que la Clé
Primaire de la nouvelle table est la
concaténation des Clés Primaires des deux
autres tables.
Si la relation est porteuse de donnée, celles ci
deviennent des attributs pour la nouvelle table.

93
Exemple
 Une commande est composée de 1 ou n produits
distincts en certaine quantité. Un produit est
présent dans 0 ou n commandes en certaine
quantité.

 MLDR
COMMANDE (id_Commande, Date_commande)
PRODUIT (id_Produit, libelle)
COMPOSE (id_Commande, id_Produit, quantité)
94
Passer du MCD au MLD
 Relation n-aire (quelles que soient les
cardinalités).

 Il y a création d'une table supplémentaire ayant


comme Clé Primaire la concaténation des
identifiants des entités participant à la
relation.

 Si la relation est porteuse de donnée, celles ci


deviennent des attributs pour la nouvelle table.

95
Exemple:
 Un étudiant parle une ou plusieurs langues avec un niveau.
Chaque langue est donc parlée par 0 ou n étudiants avec un
niveau. Pour chaque niveau, il y a 0 ou plusieurs étudiants qui
parlent une langue.

 MCD :

 MLDR :

ETUDIANT (id_Etudiant, Nom_Etudiant)


NIVEAU (id_Niveau, Nom_Niveau)
LANGUE (id_Langue, Nom_Langue)
PARLE (id_Etudiant, id_Niveau, id_Langue) 96
Passer du MCD au MLD
 Relation binaire aux cardinalités (0,1) - (1,1):

La Clé Primaire de la table à la cardinalité (0,1)


devient une Clé Étrangère dans la table à la
cardinalité (1,1)
 Exemple:

Chaque enseignant encadre 0 ou 1 groupe,


chaque groupe étant encadré par un et un seul
enseignant.

97
Exemple
 MCD:

enseignant groupe
0,1 Encadre 1,1
Id_ens Id_Groupe
Nom Nom_Groupe
Prénom

 MLDR:
enseignant (Id_ens, Nom,Prénom)
groupe (Id_Groupe, Nom_Groupe, #Id_ens)
98
Contraintes d’intégrité
 de structure : valeur de la clé primaire unique et toujours
définie,
 de domaine : les valeurs prises par un attribut doivent
vérifier des contraintes,
 de référence : les valeurs d’une clé étrangère doivent
correspondre à des valeurs existantes dans la table
d’origine.
 La vérification des contraintes assurent que la base reste
intègre.
 Cette vérification s’effectue, soit directement par le
système de gestion de bases de données utilisé quand c’est
possible, soit par l’écriture de programmes.

99
EXERCICE
Produit
Fournisseur 1,n 1,n
Fournir Id_produit
Id_f
Libelle
Nom_f
Adresse_f 1,n
Contient
Qte

1,n
Commande
Client
1,n Passe Id_commande
Id_client 1,1
Date _commande
Nom client
Prenom client
-Construire le MLDR correspondant à ce modèle conceptuel
de données?
100
MCD/MLDR

101
Exercice:
Pour la gestion d’une bibliothèque, voici une partie
d’un MCD établi ;
Etudiant
Nom
Prénom
Titre_livre
Cote_livre

 Est-ce que cette partie de MCD établi est


valide ? c-a-d est ce que cette entité vérifie les
formes normales ?

102
Exemple:MPD

103
Exemple 2

104
L’algèbre relationnel
Vocabulaire:
 l’algèbre relationnelle consiste en un ensemble d’opérations
qui permettent de manipuler des relations(tables),
considérées comme des ensemble de tuples : on peut ainsi
faire l’union ou la différence de deux relations, sélectionner
une partie de la relation, effectuer des produits cartésiens
ou des projections, etc.
 Une propriété fondamentale de chaque opération est qu’elle
prend une ou deux relations en entrée, et produit une
relation en sortie.
 Cette propriété permet de composer des opérations : on
peut appliquer une sélection au résultat d’un produit
cartésien, puis une projection au résultat de la sélection et
ainsi de suite.
 En fait on peut construire des expressions algébriques
arbitrairement complexes qui permettent d’exprimer des
manipulations sur un grand nombre de relations. 105
L’algèbre relationnel(suite)
 Une requête est une expression algébrique qui
s’applique à un ensemble de relations (la base de
données) et produit une relation finale (le
résultat de la requête).
 On peut voir l’algèbre relationnelle comme un
langage de programmation très simple qui
permet d’exprimer des requêtes sur une base de
données relationnelle.

106
Les opérateurs de l’algèbre relationnelle
 L’algèbre se compose d’un ensemble
d’opérateurs, parmi lesquels 5 sont nécessaires
et suffisants et permettent de définir les autres
par composition. Ce sont :
1. La sélection, dénotée σ;
2. La projection, dénotée ∏;
3. Le produit cartésien, dénoté x;
4. L’union,U;
5. La différence, -

107
Les opérateurs de l’algèbre relationnelle

 Les deux premiers sont des opérateurs


unaires (ils prennent en entrée une seule
relation) et les autres sont des opérateurs
binaires.
 A partir de ces opérateurs il est possible
d’en définir d’autres, et notamment la
jointure, , ,qui est la composition d’un
produit cartésien et d’une sélection.

108
La sélection
 La sélection s’applique à une
relation R et extrait de cette relation des
tuples qui satisfont un critère de
sélection,F, ce critère peut être:
 La comparaison entre un attribut de relation R
et une constante
 La comparaison entre deux attributs

109
Exemple de sélection

110
Projection
 La projection s’applique à
une relation R , et ne garde que les
attributs donc, contrairement à la
sélection, on ne supprime pas des lignes
mais des colonnes.
 Exemple :

111
Produit cartésien
 Le premier opérateur binaire, et le plus
important, est le produit cartésien,x,
 Le produit cartésien entre deux relations R et S
se note U et permet de créer une nouvelle
relation où chaque tuple de R est associé à
chaque tuple de S.
 Exemple:

112
Exemple
 Voici deux relations R et S:

113
Union
 L’Union de deux tables est la table
contenant l'ensemble des tuples (cellules)
appartenant à l'une ou l'autre des tables
(ou les deux). Les deux tables opérandes
doivent être de même schéma, c'est-à-
dire que les attributs de la table
(colonnes) doivent être les mêmes. On
note l'union entre deux tables R1 et R2:
 union(R1,R2) ou encore R1 U R2

114
Différence
 La différence entre deux tables est la table
contenant l'ensemble des tuples (cellules)
appartenant à une table mais pas à la
seconde. Les deux tables opérandes
doivent être de même schéma, c'est-à-
dire que les attributs de la table
(colonnes) doivent être les mêmes. On
note la différence entre deux tables R1 et
R2:
 minus(R1,R2) ou encore R1 - R2
115
Intersection
 L'intersection entre deux tables est la
table contenant l'ensemble des tuples
(cellules) appartenant aux deux tables.
Les deux tables opérandes doivent être de
même schéma, c'est-à-dire que les
attributs de la table (colonnes) doivent
être les mêmes. On note l'intersection
entre deux tables R1 et R2:
 inter(R1,R2) ou encore R1 R2

116
Quotient (ou division)
 Le quotient de deux tables est la table
contenant l'ensemble des tuples (cellules)
qui concaténés à chaque tuple de l'une
des tables fournissent des tuples
appartenant à l'autre On note le quotient
de deux tables R1 et R2:
 div(R1,R2) ou encore R1/R2

117
Jointure
θ-jointure :
 On appelle θ-jointure selon une qualification Q l'ensemble
des tuples provenant du produit cartésien de deux relations
et satisfaisant la qualification, c'est-à-dire la condition
exprimée à l'aide des comparateurs:
 ≥
 ≤
 >
 <
 =
 ≠
 ¬
 On note la θ-jointure de deux tables R1 et R2:
joinQ(R1,R2) ou encore (R1 Q)R2

118
Le langage SQL
 SQL est un langage de manipulation de
données qui est devenu un standard dans le
monde des bases de données.

 SQL simplifie la manipulation des tables en


autorisant la recherche d'informations et
la mise à jour des relations par
l'intermédiaire de requêtes:

119
Le langage SQL
 Unerequête est une interrogation
d’une base de données afin:
 Extraire des données
 Mettre à jour des données
 Supprimer des données

120
SELECT
Syntaxe de la commande SELECT

 Cette commande va servir à faire des requêtes pour


récupérer des données d’une table ou plusieurs
tables.
 La commande SELECT permet de sélectionner des
données de plusieurs tables.

 Sa syntaxe est la suivante :

SELECT [ALL] | [DISTINCT] <liste des noms de colonnes >|*


FROM <Liste des tables>
[WHERE < condition logique>]
121
SELECT
 SELECT indique la liste des attributs
constituant le résultat.
 FROM indique la (ou les) tables dans
lesquelles on trouve les
attributs(informations) utiles à la requête.
 WHERE indique les conditions que doivent
satisfaire les n-uplets (enregistrements)
de la base pour faire partie du résultat.

122
SELECT
 La liste des noms de colonnes: indique
la liste des colonnes choisies, séparées par
des virgules.
 Lorsque l'on désire sélectionner l'ensemble
des colonnes d'une table il n'est pas
nécessaire de saisir la liste de ses
colonnes, l'option * permet de réaliser
cette tâche.

123
SELECT
 La liste des tables indique l'ensemble
des tables (séparées par des virgules) sur
lesquelles on opère
 La condition logique permet d'exprimer
des qualifications complexes à l'aide
d'opérateurs logiques et de comparateurs
arithmétiques

124
Exemple
 Pour sélectionner juste les noms et les prénoms
des étudiants, la syntaxe est la suivante:

SELECT prénom,nom FROM etudiant

 Pour sélectionner tous les enregistrements de la


table « etudiant » dont l’age est 20 ans, la
syntaxe est la suivante:
SELECT * FROM etudiant WHERE age=20

125
SELECT
On peut utiliser les opérateurs suivants dans les
conditions c’est-à-dire dans la clause WHERE:

Opérateur Signification
= Egal
<> Différent
(parfois noté aussi != )
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal 126
Exemple
 Pour sélectionner tous les enregistrements
de la table « etudiant » dont l’age
superieur ou égale à 20 ans:

SELECT * FROM etudiant WHERE age>=20

127
SELECT
Opérateurs logiques
Il est possible de combiner plusieurs
conditions avec des opérateurs logiques :
L'opérateur AND réunit deux ou plusieurs
conditions et sélectionne un enregistrement
seulement si cet enregistrement satisfait
TOUTES les conditions listées
 Toutes les conditions séparées par AND
sont vraies.

128
Exemple (AND)
Pour sélectionner tous les étudiants qui ont
l’age 20 ans ,et le prénom « ahmed » la
syntaxe est la suivante:

SELECT * FROM etudiant WHERE age=20


AND nom=‘ahmed’

129
SELECT
L'opérateur OR réunit deux conditions
mais sélectionne un enregistrement si une
des conditions listées est satisfaite.
 Par exemple, pour sélectionner tous les
étudiants nommés ‘Amrani' ou ‘Salhi' :

SELECT * FROM etudiant WHERE


nom=‘Amrani’ OR nom=‘Salhi’

130
SELECT
 L'option DISTINCT permet de ne
conserver que des lignes distinctes, en
éliminant les doublons
SELECT DISTINCT nom,age FROM etudiant
WHERE nom= 'Amrani'

 L'option ALL est, par opposition à l'option


DISTINCT, l'option par défaut. Elle permet
de sélectionner l'ensemble des lignes
satisfaisant à la condition logique
131
Clauses IN et NOT IN
 Pour sélectionner des enregistrements dont
la valeur d'un champ peut être comprise
dans une liste on utilise la clause IN

 NOT IN sélectionne les enregistrements


exclus de la liste spécifiée après IN.

132
Exemple
SELECT *
FROM etudiant
WHERE age IN (18, 20,22,24);

SELECT *
FROM etudiant
WHERE age NOT IN (16,17,18);

133
Clause BETWEEN
 Pour sélectionner des enregistrements
dont la valeur d'un champ peut être
comprise entre deux valeurs, on utilise la
clause BETWEEN.

SELECT *
FROM etudiant
WHERE age BETWEEN 18 AND 24;
134
La clause LIKE
 La clause LIKE permet de faire des recherches
sur le contenu d'un champ.
 Par exemple: pour sélectionner les étudiants
dont le nom commence par la lettre D :
SELECT *
FROM etudiant
WHERE nom LIKE ‘D*';
 Remarque:
 * remplace un ensemble de caractères
 Le symbole ? remplace un seul caractère.
135
Les fonctions d'ensemble
 SQL a cinq fonctions importantes :
 SUM (): Donne le total d'un champ de tous les
enregistrements satisfaisant la condition de la
requête. Le champ doit bien sur être de type
numérique
 AVG (): donne la moyenne d'un champ de tous
les enregistrements satisfaisant la condition de
la requête

136
Les fonctions d'ensemble
 MAX (): Donne la valeur la plus élevée d'un
champ de tous les enregistrements satisfaisant la
condition de la requête
 MIN (): Donne la valeur la plus petite d'un champ
de tous les enregistrements satisfaisant la
condition de la requête.
 COUNT (*) :Renvoie le nombre d'enregistrements
satisfaisant la requête.
137
Exemple
 Pour retourner le prix le plus petit de la table
Produit, le prix le plus élevé et le prix moyen.

SELECT
MIN(prix_unitaire),MAX(prix_unitaire),
AVG(prix_unitaire) FROM Produits

 Pour retourner le nombre de produits dont le


libellé commence par la lettre 'P'.

SELECT COUNT (*)


FROM Produits
WHERE libelle LIKE 'P*'; 138
SELECT
 Il existe d'autres options pour la
commande SELECT :
 GROUP BY
 HAVING
 ORDER BY

139
GROUP BY
 Une des utilisations les plus courantes de
la clause GROUP BY est son association
avec une fonction d'ensemble (le plus
souvent COUNT, pour compter le nombre
d'enregistrements dans chaque groupe).

140
Exemple
 Si nous voulons la liste des étudiants,
avec pour chaque étudiants le nombre de
prêt qu'il a fait:

SELECT num_etudiant,COUNT(*)
FROM prêt
GROUP BY num_etudiant;

141
HAVING
 La clause HAVING est utilisé avec la clause
GROUP BY, elle permet d'appliquer une
restriction sur les groupes créés grâce à la
clause GROUP BY.

SELECT ville,COUNT(*)
FROM etudiant
GROUP BY ville HAVING ville IN("fes","meknes" );

142
ORDER BY
 La clause ORDER BY suivie des mots clés
ASC ou DESC, permet de Trier les
résultats d’une requête en ordre croissant
ou bien décroissant
 Le classement se fait sur des nombres ou
des chaînes de caractères.

143
Exemple
 Pour trier les noms des étudiants par ordre
croissant (alphabétique):

SELECT * FROM etudiant


ORDER BY nom ASC;

144
Jointure
 La jointure permet de sélectionner des
informations dans plusieurs tables grâce aux
relations existant entre ces tables.
 Par exemple :
Pour récupérer le nom et le prénom du client
ayant passé la commande n°1 :
SELECT nom, prénom
FROM Clients, Commande
WHERE Commande.num_client = Client.num_client
AND num_commande = 1; 145
Explication:
 La clause WHERE indique que le numéro de
commande doit être égal à 1 et que la jointure
va se faire sur le numéro de client
 une fois que SQL va trouver la commande n° 1
dans la table commande, il va prendre le numéro
de client contenu dans l'enregistrement et avec
ce numéro, aller chercher dans la table Clients le
nom et le prénom correspondants à ce numéro.

146
Jointure
 Remarque:
 lorsqu'on utilise plusieurs tables, il faut faire
attention que deux tables n'aient pas de
champs ayant le même nom, si c'est le cas, et
pour les différencier, on utilise, comme dans
l'exemple, la notation: table.nom_du_champ.

 Si on est sur que le nom ne se retrouvera pas


dans plusieurs tables, on peut l'utiliser sans le
préfixer avec le nom de la table.
147
Requêtes imbriquées(Sous requêtes)
 Effectuer une sous-requête consiste à
effectuer une requête à l'intérieur d'une
autre, ou en d'autres termes d'utiliser une
requête afin d'en réaliser une autre.
 Une sous-requête doit être placée à la suite
d'une clause WHERE ou HAVING.

148
Requêtes imbriquées(Sous requêtes)
 lorsque la sous-requête remplace une
constante utilisée avec des opérateurs
classiques, elle doit obligatoirement renvoyer
une seule réponse (une table d'une ligne et une
colonne).
 Par exemple: SELECT … FROM … WHERE … <
(SELECT …FROM …)

149
Requêtes imbriquées(Sous requêtes)
 lorsque la sous-requête remplace une
constante utilisée dans une expression
mettant en jeu l’ opérateur IN, elle doit
obligatoirement renvoyer une ou plusieurs
valeurs(une liste).
 SELECT … FROM … WHERE … IN (SELECT …
FROM …)

150
Exemple
SELECT num_client
FROM commande, contenir
WHERE commande.num_cmd = contenir.num_cmd
AND num_produit
IN (SELECT num_produit FROM produit WHERE
prix_u =1000 );

151
INSERT
 La commande INSERT est utilisée pour ajouter des
enregistrements ou des parties d'enregistrements
dans des tables.
 La syntaxe de la commande INSERT:

INSERT
INTO table (champ1,champ2,...)
VALUES ('valeur1','valeur2',...);
ou
INSERT
INTO table
VALUES ('valeur1','valeur2',...); 152
INSERT(Exemple)
 Si on veut ajouter un enregistrement dans la table
étudiant qui contient 4 colonnes
(id_etud,nom,prenom,age):
INSERT
INTO etudiant
VALUES ('','amrani','manal',22);
 Si on veut ajouter une partie d’un enregistrement
(nom,prénom) dans la table étudiant:
INSERT
INTO etudiant (nom,prenom)
VALUES ('amrani','manal'); 153
UPDATE
 La commande UPDATE est utilisée pour changer
des valeurs dans des champs d'une table.
 Sa syntaxe est :

UPDATE table
SET champ1 = nouvelle_valeur1,
champ2 = nouvelle_valeur2,
champ3 = nouvelle_valeur3
WHERE condition;
154
UPDATE(suite)
 La clause SET indique quels champs de la table

vont être mis à jour et avec quelles valeurs ils

vont l'être.

 Les champs non spécifiés après la clause SET ne

seront pas modifiés.

155
UPDATE(Exemple)
 Si nous voulons, dans la table produit,
modifier le prix d'un produit dont le libellé
est "produit1", nous taperons :

UPDATE produits
SET prix_unitaire = 1000
WHERE libelle = 'produit1';

156
DELETE
 Pour supprimer des enregistrements d'une table,
on utilise la commande DELETE.
 La syntaxe est la suivante :

DELETE
FROM table
WHERE condition;

 Remarque:
 On ne peut pas supprimer seulement le contenu
de quelques champs des enregistrements.
157
DELETE

 Remarque:
La commande DELETE supprime des
enregistrements entiers, c'est pour cela qu'il n'est
pas nécessaire d'indiquer ici des noms de
champs.

158
DELETE (Exemple)
 pour supprimer tous les étudiants ayant
l’age égal à 22 :

DELETE
FROM etudiant
WHERE age=22;

159
Exercice
Client Commande

Num_client Passe Num_commande


Nom_client Date_commande
Prenom_client
Tel_client
Adresse
Contient
Qté

Produit
Num_produit
Prix_unitaire
libellé

160
Questions:
 Quel est le nom du client n°11?

 Trouver le numéro de chaque client dont le nom est


« Amrani »?
 Trouver les numéros,nom, prénom des clients qui
habitent à «Marjane»?
 Trouver les numéros,nom, prénom des clients qui
habitent ni à «Marjane» ni à «zitoune » ni à « Sbata »?

161
Questions(suite)
 Donner les numéros, nom et prénom de chaque
client dont l’adresse contient des lettres «jan »
 Donner les numéros des commandes dont la date
de commande est comprise entre 01/01/1960 et
01/01/1985 ?
 Compter le nombre de clients qui habitent à
« Marjane »?
 Trouver le total de la colonne « Prix unitaire » de la
table « produit »?

162
Questions(suite)
 Trier les nom des clients par ordre alphabétique?
 Insérer un enregistrement dans la table «Client»:
 nom=«salhi»
 prenom=«fouad»
 adresse=«marjane 2 n° 123»
 Insérer une partie d’enregistrement dans la table
«Client»:
 nom=«Abbaci»
 prenom=«Narmine»
Lister les numéros de produits en les renommant
163

Questions(suite)
 Trouver les numéro de commande passées par le
client « Amrani Ahmed »?
 Trouver les N°P dont le prix > prix moyen
 Trouver le libéllé de tous les produits dont le prix =
prix d'une chaise
 Lister les Num Client ayant commandé un produit
dont le prix = 1000
 N°P le moins cher
 Lister les noms des clients qui ont commandé le
produit 2

164
 SELECT Num_Produit
FROM Produit
WHERE Prix_unitaire > (SELECT AVG
(Prix_unitaire) FROM Produit )

 SELECT libelle
FROM Produit
WHERE Prix_unitaire = (SELECT
Prix_unitaire FROM Produit WHERE libelle =
'chaise')
165
SELECT num_client
FROM commande, contenir
WHERE commande.num_cmd = contenir.num_cmd
AND num_produit
IN (
SELECT num_produit
FROM produit
WHERE prix_u =1000
)

166
SELECT num_client
FROM commande, contenir,produit
WHERE commande.num_cmd = contenir.num_cmd
AND produit.num_produit=contenir. num_produit
AND prix_u =1000

167
SELECT num_produit
FROM produit
WHERE prix_u = (SELECT min( prix_u )
FROM produit )

168
SELECT DISTINCT nom_client
FROM CLIENT , commande, contenir
WHERE commande.num_cmd = contenir.num_cmd
AND commande.num_client = client.num_client
AND num_produit =2

169
UPDATE CLIENT
SET adresse = 'marjane 2 num 123 meknes'
WHERE nom_client = 'amrani'

170
Questions(suite)
 Trouver la somme des quantités commandées par
produit, en éliminant les commandes dont le total est
< 10
 Modifier l’adresse du client ‘amrani’?
 Augmenter le prix de 5% des produits dont le prix est
> 1000?
 Attribuer au Num Produit 123 le même prix qu'au
Num Produit 52 ?
 Supprimer toutes les commandes de ‘Amrani’ ?

171
UPDATE produit
SET prix_u = prix_u * 1.05
WHERE prix_u >1000

172
DELETE
FROM commande
WHERE num_client=(select num_client from
client where nom_client='amrani')

173
Création d’une table

 La commande CREATE TABLE permet de créer


une table dans la base de données courante.
 Sa syntaxe est la suivante :

CREATE TABLE table


(champ type propriétés, .. );

174
Type(CREATE)
 Char(x) ou VARCHAR(x): chaîne de caractères, x
est le nombre maximum de caractères autorisés
dans le champ.
 Integer ou INT: Nombre entier, positif ou négatif
 Decimal (x,y) : Nombre décimal, x est le nombre
maximum de chiffres et y le nombre maximum de
chiffres après la virgule.
 Date : Une date
 Logical – Deux valeurs possibles : oui / non

175
Propriétés du champ :
 NULL ou NOT NULL : autorise ou non que le
champ puisse être vide.
 UNIQUE : indique que deux enregistrements ne
pourront avoir la même valeur dans ce champ.
 PRIMARY KEY : indique que ce champ est la clef
primaire
 CHECK (condition) : équivaut à la propriété
"ValideSi" d'Access, va forcer SQL à faire une
vérification de la condition avant de valider la
saisie,

176
Propriétés du champ(suite)

 Exemple : CHECK (prix > 100) interdira la saisie


dans ce champ si la valeur contenue dans le
champ prix est inférieure à 100.
 DEFAULT = valeur: place une valeur par défaut
dans le champ

177
Exemple

CREATE TABLE films (idFilm INT not null


AUTO_INCREMENT,
Titre VARCHAR (20) not null , Réalisateur VARCHAR
(20) not null , PRIMARY KEY (idFilm))

178
Exercice
 Créer la nouvelle table "table_test" contenant deux
champs : un champ avec un entier qui doit toujours
être saisi et un champ contenant une chaîne de 5
caractères :

CREATE TABLE table_test (champ1 integer NOT


NULL, champ2 char(5));

179
La commande ALTER TABLE
 La commande ALTER TABLE permet de
modifier la structure d'une table, sa
syntaxe est la suivante :

ALTER TABLE table


Action (spécifications du champ);

180
La commande ALTER TABLE
 ALTER TABLE permet trois actions, ces actions
sont:
 ADD Ajoute un champ à une table
 DROP Supprime un champ d'une table
 MODIFY Modifie les caractéristiques d'un champ

181
La commande ALTER TABLE
 Après l'action, on indique, entre parenthèses, les

spécifications du champ de la même façon que

pour la commande CREATE TABLE.

 On ne peut faire qu'une action à la fois (ajout,

suppression ou modification dans la même

commande).

182
Exemple
 Ajout d'un champ Date :
ALTER TABLE table_test ADD (champ3
Date);
 Suppression du champ2 :

ALTER TABLE table_test DROP champ2;

 Modification d’un champ2 :

ALTER TABLE table_test MODIFY (champ2


char(3)); 183

Vous aimerez peut-être aussi