Académique Documents
Professionnel Documents
Culture Documents
BDD RELATIONNELLE
Enseignant :
MADJITOLOUM Blaise
Ing. Concepteur de Système d’Information
INTRODUCTION GENERALE
Depuis les années 60, l’utilisation des bases de données s’est largement répandue sur
toutes les gammes d’ordinateurs, et à l’heure actuelle, les SGBDR (Système de Bases
de Données Relationnelles) sont les plus utilisés (plus de 80% des systèmes
existants).
Ce cours présente les concepts des bases de données et met l’accent aussi bien sur
Compte tenu du public visé, le cours a été très simplifié afin qu’il soit accessible à toute
relationnelles. Ce qui explique que certains aspects sur le modèle relationnel ont été
Ce cours pourra apporter, à certains, un éclairage nouveau sur les concepts des bases
connaissances qui leurs manquaient pour pouvoir les concevoir et les manipuler.
Définition
Une base de données est un ensemble structuré d'informations agrégées ou
élémentaires, enregistrées sur des supports accessibles, et mises à la disposition d'un
ensemble d'utilisateurs en un temps opportun.
A ces avantages immédiats s'ajoutent deux objectifs fondamentaux visés à travers une
solution base de données :
• Obtenir des représentations pertinentes des modèles conceptuels de
données : une base de données peut fournir les descriptions des entités et
permettre l'exploitation des associations d'une manière plus efficace qu'une
solution en termes de fichiers.
• Assurer la sécurité des données : l'information est une ressource pour
l'entreprise, et cette ressource doit être protégée. Une solution base de
données permet d'améliorer la sécurité des données enregistrées (gestion
des droits d'accès aux données)
On distingue 3 niveaux :
• Externe (ou schéma externe)
• Conceptuel (schéma conceptuel)
• Interne (schéma interne)
NIVEAU EXTERNE
Schéma
interne
NIVEAU INTERNE
Niveau externe :
Vision d'une partie du schéma conceptuel (schéma externe). C'est une vue propre à
un ou plusieurs programmes ou utilisateurs.
Niveau conceptuel
Niveau interne
Schéma interne
(1) Utilisation
Bases
données
des
physiques
données : LMD
Vue du
program- Description
meur sys- Bas physique de
physique
tèm e la base
e
MANIPULATION DESCRIPTION
Pour pouvoir être utilisable, le SGBD doit communiquer avec les utilisateurs à l’aide
d’un langage. En pratique, on distingue :
Définition :
Un modèle de données est un outil formel utilisé pour comprendre et interpréter le
monde réel.
Objectif :
Décrire le schéma conceptuel
Schéma conceptuel :
Décrit une certaine réalité du réel perçu
Processus de modélisation :
Passage du monde réel au schéma conceptuel
Propriété ou rubrique :
Plus petite unité de donnée possédant un nom et caractérisant un objet ou une relation
Ex : Nom-client, adresse-client
Association ou relation :
Liens existant entre les entités
Ex : entre Client et Commande : émettre
Types de lien
Binaire :
Fonctionnel : A 1:1 B
Ex : entre Directeur et Entreprise : diriger
Hiérarchique : A 1:N B
Ex : entre Classe et Étudiant : appartenir
Maillé : A N:M B
Ex : entre Commande et Produit : comprendre
N-aire
Ex : entre Professeur, Classe et Matière : faire-cours
Objectif :
Représentation par les données, des phénomènes pris en compte dans le S.I.
But :
- Étudier les données et les liens entre données
- Proposer une représentation schématique
phénomènes
réels
observés
Perception, identification
et énumération
schéma
descriptif
Que représenter ?
schéma
conceptuel
Comment représenter ?
Concepts
Entité : permet de modéliser un ensemble d’objets de même nature, concrets ou
abstraits, perçus d’intérêt pour le domaine étudié. L’entité exprime un type de classe,
un ensemble dont les éléments sont appelés occurrences d’entité.
Salari Servic
e
- é
n° affecté
- - n°
- matricule date_affect - service
-nom intitulé
adr - identifiant
- cardinalité
- dimension
Notion d'identifiant
- D'un objet
Propriété particulière qui identifie de manière unique un objet - D'une relation
Est la concaténation des identifiants des objets qu'elle associe.
Règles de gestion
- Précisent les contraintes qui doivent être respectées par le modèle
- Expriment les contraintes d'intégrité du modèle On
distingue :
* Règles d'action
* Règles de calcul
* Règles administratives
* Règles logiques
* Délai d’attente
- Cardinalité
Indique pour chaque couple objet/relation, les nombres maximum et minimum
d'occurrences de la relation pouvant exister pour une occurrence de l'objet.
C’est la participation d’un objet dans une relation
Construction du M.C.D.
À partir des informations recueillies lors des interviews (comptes rendus, documents
collectés, ...)
Expliciter clairement les règles de gestion
Élaborer la liste des propriétés
Établir le dictionnaire des données (prendre soin d'éliminer les synonymes et
les poly sèmes)
Rechercher les entités et leur identifiant
Rattacher les propriétés aux entités
Recenser les relations entre entités
Si possible y rattacher les propriétés
Étudier les cardinalités à l'aide des règles de gestion
Vérifier que les règles de décomposition et de normalisation sont respectées.
2-3-1- Introduction
Définition
Défini à partir des idées de CODD (1970)
Basé sur la théorie mathématique des relations
Le concept de relation découle directement de la théorie des ensembles
Les données sont structurées sous formes de tables à deux dimensions ou de
fichiers "plats" appelés relations
Objectifs
Proposer des schémas de données faciles à utiliser
Fournir une approche méthodologique au processus de conception
Améliorer l'indépendance logique/physique
Fournir un langage non procédural de haut niveau (assertionnel)
Prendre en compte une grande variété d'applications
Optimiser les accès à la base de données
Améliorer l’intégrité et la confidentialité
Concepts utilisés
Domaine : ensemble de valeurs ex : domaine des entiers, des réels, …
Produit cartésien : soient D1, D2, D3, ......Dn une liste de domaines ; le produit
cartésien D1 x D2 x D3 x.…x Dn est l’ensemble de n-uplets (ou tuples) appelés
<v1,v2,v3,....,vn> tels que vi 𝜖 Di où 1 ≤ i ≤ n
Relation : c'est un sous-ensemble du produit cartésien d'une liste de domaines
R ⊆ D1 x D2 x D3 x.…x Dn
Représentation
Une relation peut se présenter sous forme de tableau dont les colonnes correspondent
aux domaines et les lignes sont les n-uplets (tuples).
Ex :
Domaines
Autres concepts :
Un attribut est une colonne d’une relation caractérisée par un nom
L’ordre des attributs est quelconque
Il n'existe pas des n-uplets (tuples) identiques
L’ordre des n-uplets (tuples) est quelconque
La cardinalité d'une relation est le nombre de n-uplets (tuples) contenus dans
la relation
Le nombre de domaines caractérise la relation. Une relation à n domaines est
dite de degré n
Une clé primaire d'une relation est un sous-ensemble d'attributs qui permet
d'identifier sans ambiguïté un n-uplet (tuple) de la relation (de façon unique)
Domaine primaire :
Est un domaine sur lequel une clé primaire est définie (donc mono attribut)
Clé étrangère :
Un attribut qui n’est pas clé primaire, mais qui est défini sur un domaine primaire est
donc une clé étrangère. Elle permet d’exprimer les associations entre entités.
Schéma de relation
Une relation peut être définie :
▪ Soit en extension, en énumérant l'ensemble de n-uplets (tuples),
généralement sous la forme d’une table (voir exemple précédent)
▪ Soit en intention ; on parle alors de schéma de relation
1ère règle :
▪ Toute entité est traduite en schéma de relation, ses propriétés devenant
ses attributs, et son identifiant devenant sa clé primaire.
2è règle :
▪ Concerne les types de liens
* Fonctionnelle
0,1 0,1
A R B
1,1 1,1
* Hiérarchique
0,n 0,1
A R B
1,n 1,1
* Maillée
0,n 0,n
A R B
1,n 1,n
0, 0,n
A n R B
1, 1,n
n
0, 1,n
n
C
3-1 Introduction
SQL est un langage relationnel de type ensembliste. Dans ce type de langage, une
requête décrit simplement l’ensemble résultat en fonction d’un critère portant sur un
ou plusieurs ensembles (relations), c’est le SGBD qui se charge de trouver les
meilleures procédures d’accès aux données pour fabriquer le résultat. Le langage SQL
possède un triple mode de fonctionnement. Il peut fonctionner :
- En interactif (interface d’écriture de requête)
- En intégré dans un langage de 3e génération (ex : cobol, fortran, c, …)
- Comme un langage autonome permettant de construire des fonctions
d’accès aux données (ex : PL/SQL)
Les instructions du langage SQL sont regroupées en trois sous-ensembles définissant
trois langages différents :
Le langage de définition de données (LDD)
• Le langage de manipulation des données (LMD)
• Le langage de contrôle de données (LCD)
La définition des données dans SQL, permet la description des objets manipulés par
le SGBD. Ces objets peuvent être des objets logiques ou des objets physiques. Les
objets logiques regroupent les tables et les synonymes. Quant aux objets physiques,
ils concernent la représentation physique des données : les espaces, les index et les
regroupements.
• Création de domaine
Permet de définir plusieurs attributs à partir du même domaine
• Création de table
CREATE TABLE nom de la table (attribut1 type [unique] [not null], attribut2 type
[unique] [not null],......., PRIMARY KEY (attribut1 [,attribut2,…]), FOREIGN KEY
(attribut) REFERENCES nom-table
(attribut),…);
Remarques :
Type : comprend le type de la donnée, et éventuellement la longueur
[Unique] : les lignes de la table ne doivent pas avoir la même valeur pour cet attribut
[Not null] : pour des attributs qui ne doivent pas avoir une valeur nulle.
• Création de vue
• Création d’index
ALTER DOMAIN nom de domaine type [valeur] ===> Pour la modification d'un
domaine.
Pour supprimer une base, un domaine, une table, une vue, ou un index :
Opérateurs de comparaison :
Opérateurs logiques :
Opérateurs arithmétiques :
+, -, *, /
Remarques :
▪ Expression peut être une liste de nom colonnes ou de position de colonnes
▪ ASC est l'option par défaut si rien n'est précisé
Ex : même requête que précédemment mais les prix sont listés en ordre croissant :
SELECT lib,prix
FROM Produit
WHERE prix > (SELECT AVG(prix)
FROM Produit)
ORDER BY prix ASC
Une jointure met en relation deux tables sur la base d’une clause de jointure
(comparaison de colonnes). Généralement, cette comparaison fait intervenir une clé
étrangère d’une table avec une clé primaire d’une autre table.
L’opérateur BETWEEN
Permet de tester l’appartenance à une plage de valeurs
BETWEEN x AND Y
Ex: SELECT lib,prix
FROM Produit
WHERE prix BETWEEN 1500 AND 2000
L’opérateur IN
Permet de tester l’appartenance à un ensemble de valeurs
Ex: SELECT lib,prix
FROM Produit
WHERE prix IN (1500,2000,2500,3000)
L’opérateur LIKE
Permet de comparer des chaines de caractères.
nom-col LIKE ‘modèle de chaine’
‘modèle de chaine’ est une chaine pouvant contenir l’un des caractères génériques
suivants :
‘-‘ : remplace un seul caractère
‘%’ : remplace un nombre quelconque de caractères
Ex : SELECT lib,prix
FROM Produit
WHERE lib LIKE ‘H%’
L’opérateur ANY
Permet de comparer une colonne à l’ensemble de valeurs résultat d’une sous-requête.
- La condition est vérifiée pour au moins une des valeurs
Ex : SELECT lib, prix
FROM Produit
WHERE prix >ANY (SELECT prix
FROM produit)
Permet de ne sortir que les produits dont la somme des quantités est >= 10
au niveau interne, une référence explicite à la table (ou aux tables) de la question
externe.
Soit les relations suivantes : Commande (nucom, refp, qtéc)
Produit (refp, libp, prix)
Ex1 : lister les produits dont la quantité commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE 1000 = (SELECT qtéc
FROM Commande
WHERE Produit.refp=Commande.refp)
Ex2 : lister les produits dont la quantité commandée est supérieure à la moyenne des
quantités commandées de chacun des produits
9°) L’opérateur EXISTS permet de vérifier si le résultat d’une sous requête contient ou
non des données.
L’argument de EXISTS contient presque toujours au moins une référence externe
- la condition est vérifiée si le résultat n’est pas vide
Ex1 : lister les produits dont la quantité commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE EXISTS (SELECT *
FROM Commande
WHERE Produit.refp=Commande.refp
AND qtéc=1000)
L’insertion consiste à ajouter de nouvelles lignes dans une table. Elle peut affecter
toutes les colonnes d’une table ou seulement un sous-ensemble de ces colonnes.
La forme générale de la commande d’insertion est la suivante :
Elle permet d’indiquer dans la commande les valeurs à insérer. Si la totalité des
colonnes de la table sont à insérer, il n’est pas nécessaire de les citer. La liste des
valeurs dans la clause VALUES doit correspondre à celle des colonnes à insérer tant
au niveau du nombre qu’au niveau de l’ordre et du type.
L’opération de modification consiste à mettre à jour les colonnes d’une table par de
nouvelles valeurs. Chaque nouvelle valeur peut être donnée explicitement dans la
commande de modification ou obtenue de la base de données par une sous-requête.
La forme générale de la commande de modification est :
UPDATE table
SET colonne = valeur, ...
WHERE condition ;
La clause WHERE permet de sélectionner les lignes à mettre à jour. La clause SET
détermine les colonnes à mettre à jour
La valeur destinée à être affectée à une colonne peut être une constante, une
expression ou le résultat d’une sous-requête.