Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1
k.elasnaoui@ump.ac.ma
Chapitres
1 Initiation à la Conception de Base de Données
2 Structured Query Language (SQL)
À la fin de ce chapitre
Vous saurez comment :
Appréhender la théorie des bases de données,
Analyser les besoins,
Apprendre à organiser les données en fonction des besoins,
Concevoir, créer, implémenter et maintenir les systèmes de gestion de
données d’une entreprise,
Produire des modèles physiques et logiques de conceptions pour le sys-
tème de base de données proposé.
1 Introduction générale
6 Régles de normalisation
L’Association Française de Normalisation (AFNOR) est l’organisation française qui représente la France auprès
de l’Organisation internationale de normalisation et du Comité européen de normalisation.
Exemple
Système informatique
Le système informatique regroupe les moyens informatiques utiles pour traiter
l’information : ordinateurs, réseaux, programmes, mais aussi des locaux et
du personnel. . .
Le SGBD externe
Il s’agit du niveau où les utilisateurs interrogent la Base de Données,
A ce niveau, à chaque utilisateur ou groupe d’utilisateurs, des vues sur
tout ou sur une partie du schéma sont associées,
C’est l’interface avec l’utilisateur.
Le SGBD interne
Il décrit la structure des données dans la base, les contraintes d’intégrité,
leurs propriétés et leurs relations, indépendament de toute préoccupa-
tion technologique d’implémanatation ou accès par les utilisateurs,
En général, la vue conceptuelle est censée être une vue des données
telles qu’elles sont réellement,
C’est l’ordonnancemant des informations.
Exemples de SGBD
Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernières
versions) très reconnu pour les applications professionnelles,
MySQL est un SGBD relationnel libre, simple et très performant (mais
qui n’implémente pas l’ensemble des fonctions attendues d’un SGBD,
telles que les transactions (La version de MySQL 4.0, annonce des avan-
cées significatives sur les lacunes jusque là reconnues et assumées de ce
SGBD)),
Access est un SGBD relationnel Microsoft, qui offre une interface convi-
viale permettant de concevoir rapidement des applications de petite en-
vergure ou de réaliser des prototypes à moindre frais).
Définition
L’Analyse et Conception des Systèmes d’Information (ACSI) a pour objet
l’analyse et la conception des systèmes d’information (SI) des organisations.
Analyse
On s’intéresse en général à un domaine d’activité de l’entreprise : ventes,
production,..
On prend en compte les besoins des utilisateurs,
On définit le problème à résoudre (fonctionnalités et qualités attendues).
Conception
On définit une solution informatique :
Structuration des données,
Organisation des traitements,
Définition des postes de travail,
Choix techniques : matériels, langages de programmation, logiciels de
gestion de données (SGBD), . . .
Démarche de conception
La modélisation d’un problème, c’est-à-dire le passage du monde réel
à sa représentation informatique, se définit en plusieurs étapes pour
parvenir à son intégration dans un SGBD-R et permettre la manipulation
des données par le langage SQL (Chapitre 3).
Classiquement, le processus de conception des données passe par deux
phases :
Réalisation d’un modèle conceptuel,
Traduction en un modèle relationnel.
Notion de modèle
Au centre de la démarche d’ACSI, on trouve la notion de modèle.
Un modèle est une représentation simplifiée d’une réalité sur laquelle on
veut être renseigné (ex : plan, carte, schéma, . . . ),
Un modèle s’exprime avec un ensemble de concepts, dotés de règles
d’utilisation et de représentations (souvent graphiques).
Notion de modèle
En ACSI, les modèles servent à :
Communiquer : vérifier que l’analyste a bien compris les utilisateurs
grâce à un modèle du problème (phase d’analyse),
Préparer la réalisation : grâce à un modèle de la solution (phase de
conception).
Un bon analyste-concepteur
Qualités pour devenir un bon analyste-concepteur
Qualités relationnelles (dialogue avec les utilisateurs, travail en équipe),
Ténacité et rigueur (trouver ce qui est important, ne pas se noyer dans
les détails, fuir l’à peu près, . . . ),
Créativité (peu de recettes utilisables, inventer une solution adéquate,
. . . ).
Entité
Une entité est un objet spécifique, concret ou abstrait, de la réalité
perçue. Elle peut être une personne, un objet inerte, un concept abstrait
un événement, ....
Elle désigne un ensemble d’objet qui possèdent une sémantique et pro-
priétés communes,
Les entités peuvent être regroupées en type d’entités,
Elle est représentée par un rectangle, souvent nom majuscule.
Attribut
Un Attribut est une caractéristique d’une entité (ou d’une association)
que le concepteur juge nécessaire de répertorier,
C’est la modélisation d’une information élémentaire présente dans le
discours.
Attribut
Il est possible de spécifier le type chaque attribut : numérique, caractère,
date, ... ainsi que sa longueur,
Un attribut prend ses valeurs dans un ensemble de valeurs possibles
appelé "domaine".
Identifiant
Un identifiant permet d’identifier de manière unique une occurence
d’une entité parmis toutes les occurences,
Il est choisi par l’analyse de façon à ce que deux occurences d’une entité
ne puissent pas avoir le même identifiant,
Un identifiant peut être constitué d’un ou plusieurs attributs,
Le ou les identifiants d’une entité sont soulignés.
Conseils
Eviter les identifiants composés de plusieurs attributs (comme par
exemple un identifiant formé par les attributs nom du client et prénom),
Préférer un identifiant court pour rendre la recherche la plus rapide
possible (éviter par exemple les chaînes de caractères comme le numéro
de sécurité sociale ou la plaque d’immatriculation),
Dans le modèle physique de données, on utilise une clé numérique ( un
entier) incrémentée automatiquement.
Association
Une association est l’ensemble de liaisons et d’interactions entre diffe-
rentes entités,
En conception de base de données, une association précise et explicite
le lien entre plusieurs entitées,
Une association est une liaison entre 2 entites minimum, mais il n’y a
pas de maximum.
Cardinalités
Les cardinalités permettent de caractériser le lien qui existe entre une
entité et la relation à laquelle elle est reliée,
La cardinalité d’une relation est composé d’un couple comportant une
borne maximale et une borne minimale, intervalle dans lequel la cardi-
nalité d’une entité peut prendre sa valeur :
La borne minimale (généralement 0 ou 1) décrit le nombre minimum de
fois qu’une entité peut participer à une relation,
La borne maximale (généralement 1 ou n) décrit le nombre maximum
de fois qu’une entité peut participer à une relation.
Cardinalités
La cardinalité se lit comme suit :
Un étudiant peut ne pas emprunter aucun livre (min=0), comme il peut
emprunter plusieurs livre (max=n),
Un livre peut ne pas être emprunté (min=0), comme il peut être emprn-
tée par un seul étudiant (max=1).
Types de cardinalité
0,1
1, 1
0, N
1, N
Premier nombre de la cardinalité : nombre minimal d’associations pos-
sibles (min),
Second nombre de la cardinalité : nombre maximal d’associations pos-
sibles (max).
Cardinalité
Le schéma ci-dessous se lit :
1 stage est proposé par 1 entreprise et une seule,
1 entreprise propose 0 ou n stages (pas de limite max).
Cardinalité
Cardinalité (1,1) ou (0,1)
Cardinalité
Cardinalités (N,M)
Règles
L’expression de la cardinalité est obligatoire,
Il ne peut y avoir de cardinalité maximale égale à 0,
Si une cardinalité est connue et vaut 2 ou plus, alors nous considérons
qu’elle est indéterminée et vaut n. En effet, si cette valeur est définie
lors de la conception, il se peut qu’elle évolue dans le futur. Il faut donc
considérer n comme inconnue dès la conception.
Association Binaire
Permet de relier deux entités entre elles. Elle se représente par le biais
d’un ovale ou d’un losange contenant son nom et ses éventuels attributs.
Association ternaires
Il est toujours possible de réécrire une association ternaire avec trois
associations binaires.
Association n-aire
Ce type association met en relation n type entité. Même s’il n’y a, en
principe, pas de limite sur l’arité d’un type association, dans la pratique
on ne va rarement au-delà de trois. Les associations de degré supérieur
à deux sont plus difficiles à manipuler et à interpréter, notamment au
niveau des cardinalités.
Association plurielle
Deux mêmes entités peuvent participer dans plusieurs associations à la
fois.
Exemple
Sur ce schéma, une association permet de modéliser que des personnes
ayant écris des livres et une autre pour des personnes qui critiquent (au
sens de critique littéraire) des livres.
Exercice
Dans cet exemple issu d’une agence immobilière, une personne peut être
propriétaire, résider principalement ou résider secondairement dans un loge-
ment géré par l’agence. Les logements qui ne sont pas gérés par l’agence ne
figurent pas dans l’entité des logements, ce qui explique certaines cardina-
lités 0 du schéma. Nous supposons également qu’un logement n’est détenu
que par une seule personne et que ce propriétaire figure obligatoirement dans
l’entité des personnes.
Etablir le Modèle Conceptuel de Données
Solution
Association réflexive
Une association réflexive permis à une association d’être branchée
plusieurs fois à la même entité.
Exemple 1
On veut modéliser le fait qu’un professeur puisse se faire remplacer par
plusieurs collègues qu’il peut lui-même en remplacer plusieurs.
Exemple 2
Dans cet exemple, tout employé est dirigé par un autre employé (sauf le
directeur général), et un employé peut diriger plusieurs autres employés,
ce qui explique les cardinalités sur le schéma.
Entité faible
Jusqu’à présent, nous avons considéré le cas d’entités indépendantes
les unes des autres. Chaque entité, disposant de son propre identifiant,
pouvait être considérée isolément. Il existe des cas où une entité ne
peut exister qu’en étroite association avec une autre, et est identifiée
relativement à cette autre entité. On parle alors d’entité faible.
Définition
Une entité qui ne peut être identifiée par ses seuls attributs propres est
appelée entité faible.
Exemple
Une chambre peut avoir le même numéro (e.g., chambre 301) dans
deux hôtels différents (e.g., Bougafer et Saghro).
L’identification d’une chambre est relative à l’HOTEL.
Contraintes d’intégrité
Toutes règles implicites ou explicites que doivent suivre les données
Contraintes d’entité : toute entité doit posséder un identifiant,
Contraintes de domaine : les valeurs de certains attributs doivent être
prises dans un ensemble donné,
Contraintes d’unicité : une valeur d’attribut ne peut pas être affectée
deux fois à deux entités différentes,
Contraintes générales : règle permettant de conserver la cohérence de la
base de manière générale.
Contraintes d’intégrité
Contraintes de domaine : "La fonction d’un enseignant à l’université
prend sa valeur dans l’ensemble {Vacataire, Moniteur, Professeur}",
Contraintes d’unicité : "Un département, identifié par son numéro, a un
nom unique (il n’y a pas deux départements de même nom)",
Contraintes générales :"Un même examen ne peut pas avoir lieu dans
deux salles différentes à la même date et à la même heure".
Exercice d’application
Un service de ressources humaines dans une entreprise veut gérer le
personnel. Dans un premier temps, on veut pouvoir connaître le nom,
la fonction, la date d’entrée, le salaire, la commission (part de salaire
variable) de chaque employé et le numéro du département dans lequel
travaille chaque employé. Chaque employé a donc les caractéristiques
suivantes : Nom, fonction, date d’entrée, salaire, commission, numéro
du département.
Le service du personnel souhaite aussi connaître le nom du département
dans lequel l’employé travaille. L’entreprise est répartie dans plusieurs
villes. Les départements sont donc caractérisés par leur nom et par leur
ville. Un employé travaille dans un département et un seul. Il peut y
avoir plusieurs départements qui ont le même nom.
Etablir le Modèle Conceptuel de Données
Solution
Un service de ressources humaines dans une entreprise veut gérer le person-
nel. Dans un premier temps, on veut pouvoir connaître le nom, la fonction,
la date d’entrée, le salaire, la commission (part de salaire variable) de chaque
employé et le numéro du département dans lequel travaille chaque employé.
Chaque employé a donc les caractéristiques suivantes : Nom, fonction, date
d’entrée, salaire, commission, numéro du département.
Le service du personnel souhaite aussi connaître le nom du département
dans lequel l’employé travaille. L’entreprise est répartie dans plusieurs villes.
Les départements sont donc caractérisés par leur nom et par leur ville. Un
employé travaille dans un département et un seul. Il peut y avoir plusieurs
départements qui ont le même nom.
Exercice d’application
Une société est organisée en services. Chaque service a un nom et un
numéro unique et est dirigé par un employé unique
Un service contrôle un certain nombre de projets, chacun d’entre eux
ayant un nom, un numéro et une durée. Un projet ne peut etre contrôlé
que par un seul service
Le nom de chaque employé, son numéro de sécurité sociale, son adresse,
son salaire, son sexe et sa date naissance sont mémorisés. Un employé
est affecté à un service, mais peut travailler sur plusieurs projets qui ne
sont pas forcément contrôlés par le même service. Le volume du travail
d’un employé sur chaque projet est mémorisé. Chaque employé peut
être superviseur de plusieurs employés comme il peut être supérvisé par
un superviseur.
Etablir le Modèle Conceptuel de Données.
Solution
La société est organisée en services. Chaque service a un nom et un
numéro unique et est dirigé par un employé unique.
Un service contrôle un certain nombre de projets, chacun d’entre eux
ayant un nom, un numéro et une durée. Un projet ne peut être contrôlé
que par un seul service.
Le nom de chaque employé, son nom, son adresse, son salaire, son
sexe et sa date naissance sont mémorisés. Un employé est affecté à
un service, mais peut travailler sur plusieurs projets qui ne sont pas
forcément contrôlés par le même service. Le volume du travail d’un
employé sur chaque projet est mémorisé. Chaque employé peut être
superviseur de plusieurs employés comme il peut être supérvisé par un
superviseur.
Exemple
La présence des deux type entité Enseignant et Étudiant est symptomatique
d’une modélisation inachevée. À terme, ces deux type entité doivent être
fusionnés en un unique type entité Personne.
Conseils
Pour les entités, utiliser un nom commun au pluriel (par exemple :
clients) ;
Pour les associations, utiliser un verbe à l’infinitif (par exemple : effec-
tuer, concerner) éventuellement à la forme passive (être commandé) et
accompagné d’un adverbe (avoir lieu dans, pendant, à) ;
Pour les attributs, utiliser un nom commun singulier (par exemple :
nom, numéro, libellé, description) éventuellement accompagné du nom
de l’entité ou de l’association dans laquelle il se trouve (par exemple :
nom de client, numéro d’article).
Exemple
Remplacement des attributs multiples en un type association et un type entité
et décomposition des attributs composites. En effet, les attributs multiples
posent régulièrement des problèmes d’évolutivité du modèle. Par exemple,
comment faire si un employé possède deux adresses secondaires ou plusieurs
numéros de portable ?
Exemple
Il faut supprimer l’attribut Montant total du type entité Commande, car on
peut le calculer à partir des attributs Quantité du type association Contenir
et Prix unitaire du type entité Article.
Définition
En plus des règles de normalisation vues précédemment, il convient
d’ajouter les 3 premières formes normales traditionnellement énoncées
pour les schémas relationnels, mais qui trouvent tout aussi bien leur
place en ce qui concerne les schémas entités-associations,
Les entités d’un MCD doivent vérifier les règles suivantes, appelées
formes normales.
Exercice d’application
Un pharmacien veut gérer l’ensemble des informations d’achat des médica-
ments par ses clients. Le pharmacien, amateur d’informatique, a réalisé le
tableau indiqué ci-dessous.
1 Indiquer les faiblesses qu’amène ce tableau
2 Réaliser le MCD qui corrigerait ces faiblesses
3 Le client peut acheter le même médicament en quantité, améliorer
votre MCD pour prendre en charge cette nouvelle situation.
Contexte
La description conceptuelle a permis de représenter le plus fidèlement
possible les réalités de l’univers à informatiser. Mais cette représentation
ne peut pas être directement manipulée et acceptée par un système
informatique
Il est donc nécessaire de passer du niveau conceptuel à un niveau plus
proche des capacités des systèmes informatiques. Ce niveau, appelé ni-
veau logique, consiste à choisir l’un des trois modèles suivants :
Modèle hiérarchique (années 80)
Modèle réseau
Modèle relationnel
Contexte
Maintenant que le MCD est établi, on peut le traduire en différents systèmes
logiques et notamment les bases de données relationnelles qui proposent une
vision plus concrète pour modéliser la situation.
Contexte
Avant l’apparition des systèmes de gestion de base de données (SGBD),
les données étaient stockées dans des fichiers binaires et gérées par des
programmes exécutables (développés en Basic, Cobol ou Dbase, par
exemple),
Aujourd’hui, il existe les SGBD relationnels (SGBDR) avec lesquels l’in-
formation peut être obtenue par une requête formulée dans un langage
quasiment naturel (la langage SQL Chapitre 3). Parmi les SGBDR les
plus répandus nous trouvons Oracle, SQL Server, etc. Nous nous conten-
tons ici d’exposer le modèle logique de données relationnel (MLDR).
Définitions
Le Modèle Logique des Données (MLD) est un modèle permettant
de modéliser la structure selon laquelle les données seront stockées dans
la future base de données,
Il consiste à décrire la structure de données utilisée sans faire référence
à un langage de programmation. Il s’agit donc de préciser le type de
données utilisées lors des traitements,
Le MLD est la traduction, sous forme de relations linéaires, du MCD,
Il est appelé aussi "Modèle Relationnel".
Définitions
Dans ce type de modèle sont associés les notions suivantes :
Relation (ou table) est définie comme un tableau de données,
Les colonnnes sont les attributs et les lignes sont les tuples,
Clé primaire : un ou plusieurs attributs permettant d’identifier de façon
unique chaque tuple de la table,
Le lien entre deux tables relationnelles est résalisé par la duplication de
la clé primaire d’une table dans l’autre : Cette duplication est appelée
Clé étrangère.
Schéma relationnel
On peut représenter les tables d’une base de données relationnelle par
un schéma relationnel dans lequel les tables sont appelées relations et
les liens entre les clés étrangères et leur clé primaire est symbolisé par
un connecteur.
Schéma relationnel
Certains éditeur inscrivent sur le connecteur un symbole 1 côté clé pri-
maire et un symbole ∞ côté clé étrangère (à condition que celle-ci ne
soit pas déjà clé primaire). Il faut prendre garde avec cette convention,
car le symbole ∞ se trouve du côté opposé à la cardinalité maximale n
correspondante.
Règle 1
Toute entité devient une table dans laquelle les attributs deviennent les co-
lonnes. L’identifiant de l’entité constitue alors la clé primaire de la table.
Règle 2
Une association binaire de type 1 : n disparait, au profit d’une clé étrangère
dans la table côté 0,1 ou 1,1 qui référence la clé primaire de l’autre table.
Cette clé ´étrangère ne peut pas recevoir la valeur vide si la cardinalité est
1,1.
Règle 3
Une association binaire de type n : m devient une table supplémentaire (par-
fois appelée table de jonction, table de jointure ou table d’association) dont
la clé primaire est composée de deux clés étrangères (qui référencent les deux
clés primaires des deux tables en association). Les attributs de l’association
deviennent des colonnes de cette nouvelle table.
Règle 4
Une association binaire de type 1 : 1 est traduite comme une association
binaire de type 1 : n sauf que la clé ´étrangère se voit imposer une contrainte
d’unicité en plus d’une éventuelle contrainte de non vacuité (cette contrainte
d’unicité impose à la colonne correspondante de ne prendre que des valeurs
distinctes).
Règle 4
Si les associations fantômes ont été éliminées, il devrait y avoir au moins
un côté de cardinalité 0,1. C’est alors dans la table du côté opposé que doit
aller la clé étrangère. Si les deux côtés sont de cardinalité 0,1 alors la clé
´étrangère peut être placée indifféremment dans l’une des deux tables.
Règle 5
Une association non binaire est traduite par une table supplémentaire dont
la clé primaire est composée d’autant de clés étrangères que d’entités en
association. Les attributs de l’association deviennent des colonnes de cette
nouvelle table.
Définition
Le Modèle Physique des Données (MPD) est la traduction du Mo-
dèle Logique des Données (MLD) dans un SGBDR choisi, en tenant
compte des contraintes de ce dernier, et en faisant éventuellement des
choix stratégiques
Cette étape consiste à implémenter le modèle dans le SGBD, c’est-à-dire
le traduire dans un langage de définition de données
Le langage généralement utilisé pour ce type d’opération est le SQL, et
plus spécialement le langage de définition de données du SQL
Définition
Le MPD permet d’avoir une représentation graphique de la structure
d’une base de données et ainsi de mieux comprendre les relations entre
les différents tables
Il permet d’avoir un point de vue global sur l’ensemble de la base de
données
Définition
Pour établir efficacement un modèle entités-associations bien normalisé,
on peut étudier au préalable les dépendances fonctionnelles entre les
attributs,
Cette technique est traditionnellement employée pour normaliser des
schémas relationnels, mais elle s’applique très bien en amont, au niveau
des modèles conceptuels.
Définitions et propriétés
Un attribut Y dépend fonctionnellement d’un attribut X si et seulement
si une valeur de X induit une unique valeur de Y,
On note une dépendance fonctionnelle par une flèche simple : X → Y,
Par exemple, si X est le numéro de client et Y le nom de client, alors
on a bien X → Y . Par contre, on a pas Y→ X, car plusieurs clients de
numéros différents peuvent porter le même nom.
Transitivité
Si X → Y et Y → Z alors X→ Z,
Par exemple, on a numéro de commande → numéro de client → nom de
client, donc on a aussi : numéro de commande → nom de client. Mais
la dépendance fonctionnelle numéro de commande → nom de client est
dite transitive, car il faut passer par le numéro de client pour l’obtenir,
Au contraire, la dépendance fonctionnelle numéro de client → nom de
client est directe ,
Seules les dépendances fonctionnelles directes nous intéressent.
Exemple
BUVEURS(nb, nom, prénom, ville)
COMMANDES(nc, datec, nv, qtéc, nb)
EXPEDITIONS(nc, dateexp, qtéexp)
NB→ NOM NB → PRENOM NB → VILLE
NC→ DATEC NC → NB NC → NV NC → QTEC
Exercice d’application
On considère une relation R construite sur les attributs Propriétaire, Occu-
pant, Adresse, Noapt, Nbpièces, Nbpersonnes, un nuplet (p, o, a, n, nb1,
nb2) ayant la signification suivante :
la personne o habite avec nb2 personnes l’appartement de numéro n ayant
nb1 pièces dont le propriétaire est p.
Une analyse de cette relation nous fournit un ensemble initial E de dépen-
dances fonctionnelles :
occupant –> adresse occupant –> noapt
occupant –> nbpersonnes adresse, noapt –> propriétaire
adresse, noapt –> occupant adresse, noapt –> nbpièces
1 Donner l’ensemble des dépendances fonctionnelles élémentaires
engendrées par E.
2 Quelles sont les clés potentielles de R ?
3 R est elle en 3ème forme normale ?
Pr. Khalid EL ASNAOUI 125 / 132
Régles de normalisation
Exercice d’application
La relation suivante décrit des commandes faites par des clients, avec les
produits et quantités commandés par client.
Commandes (NumCom, DateCom, NumCli, AdrCli, NumProd, Prix, Qte)
1 Déterminer les DFs ?
2 Quelle est la clé de cette relation ?