Vous êtes sur la page 1sur 35

Université de Bissegué

COURS
DE CONCEPTION ET
D’IMPLANTATION DES
BASES DE DONNEES
RELATIONNELLES

Par Dr Ange NAMBILA, Maitre-Assistant des Universités Cames


Contacts : 077594485 / 066266457
Mail : anambila@yahoo.com
Cours de Base de données relationnelles: Conception et Réalisation

SOMMAIRE
Introduction

Chapitre1 : Généralités sur les bases de données------------------------- ---4


1-1 Définition et avantages d’une base de données-------------------------4
1-2 Niveaux de représentation--------------------------------------------------5
1-3 Définition d’un SGBD------------------------------------------------------6
1-4 Les fonctions attendues du SGBD----------------------------------------6
1-5 Les langages utilisés--------------------------------------------------------8

Chapitre 2 : Le Modèle relationnel et ses concepts---------------------------9


2-1 Le modèle de données------------------------------------------------------9
- Introduction---------------------------------------------------------------- 9
- Définition d’un modèle de données
- Le schéma conceptuel
- Processus de modélisation
2-2 Outil de modélisation des données-----------------------------------------9
2-2-1 Le MCD------------------------------------------------------------------9
-Définition
- Objectifs
- Concepts
- Construction du MCD
2-3 Le modèle relationnel-------------------------------------------------------12
2-3-1 Introduction-------------------------------------------------------------12
- Définition
- Objectifs
- Concepts utilisés
- Représentation
- Autres concepts
- Schéma de relation
2-3-2 Déduction du schéma relationnel --------------------------------12
- Schéma descriptif
- Production du schéma relationnel
2-3-3 Etude de l’algèbre relationnel-----------------------------------14
- Introduction
- Les opérateurs unaires
- Les opérateurs ensemblistes
- Les opérateurs composés
- Equivalence des opérateurs en langage SQL

Chapitre 3 : Implanter et manipuler une base de données relationnelle :


Pratique de SQL------------------------------------------------------ 17
3-1 Créer une base de données : les commandes du LDD SQL ------------17
- Création des Objets-----------------------------------------------------------14

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 2
Cours de Base de données relationnelles: Conception et Réalisation
- Modification des structures d’objet
- Suppression d’objets
- Les contraintes d’intégrités
3-2 Manipuler une base de données : les commandes du LMD-------------19
- Consultation des données----------------------------------------------------20
- Modification des données----------------------------------------------------24
- Insertion des données---------------------------------------------------------25
- Suppression des données-----------------------------------------------------26

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 3
Cours de Base de données relationnelles: Conception et Réalisation

Introduction

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
la conception que sur la manipulation des bases de données relationnelles.

Ce cours pourra apporter, à certains, un éclairage nouveau sur les concepts des
bases de données, plus particulièrement, les bases de données relationnelles, à
d’autres, les connaissances qui leurs manquaient pour pouvoir les concevoir et les
manipuler.

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 4
Cours de Base de données relationnelles: Conception et Réalisation

Chapitre 1- : Généralités sur les bases de données

I-1 Définition et Avantages d'une base de données


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.
Avantages d'une base de données
Données stockées indépendamment de l'utilisation qui en est faite, d'où :
 redondance minimale,
 représentation cohérente,
 données partageables entre plusieurs utilisateurs,
 indépendance données/traitements
 séparation entre la description des données et les programmes,
 plusieurs niveaux entre le stockage physique des données et leurs vues
par les utilisateurs

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)

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 5
Cours de Base de données relationnelles: Conception et Réalisation

I-2 Niveaux de représentation


L'intérêt de structurer en niveaux de la représentation est triple:
 indépendance données/traitements
 indépendance logique
 indépendance physique

on distingue 3 niveaux :
 externe (ou schéma externe)
 conceptuel (schéma conceptuel)
 interne (schéma interne)

Schéma Schéma Schéma


externe externe externe
1 2 3

NIVEAU EXTERNE

Monde Modélisation Schéma


conceptuel
Réel
NIVEAU CONCEPTUEL

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
 schéma central (schéma conceptuel),
 représentation globale du système d'information du domaine informatisé
 modélisation du système d'information réelle,
 la représentation fait abstraction des techniques informatiques de stockage

Niveau interne
 schéma interne
 description du stockage physique des données: enregistrements, fichiers
 structure d'accès : tables d'index, pointeurs physiques
La transformation entre niveaux est réalisée par un logiciel appelé SGBD

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 6
Cours de Base de données relationnelles: Conception et Réalisation

I-3 Définition d'un SGBD

"Ensemble de logiciels permettant la gestion complète d'une base de


données, c'est à dire, la définition, la manipulation, la maintenance d'un univers de
données".

(1) Utilisation

Manipulation (2) (3) Description

Bases des
données physiques

Les 3 fonctions d'un logiciel de gestion de base de données

I-4 Fonctions attendues (ou objectifs) d'un SGBD

 Description des données : mettre à la disposition de l'utilisateur un outil pour


décrire la structure des données à stocker dans la base : LDD

 Manipulation des données : offrir à l'utilisateur la possibilité de manipuler les


données: LMD

 Intégrité (cohérence) : consiste à préserver la qualité de l'information dans la


base contre tout incident de manipulation

 Partage des données: gérer la concurrence d'accès aux données

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 7
Cours de Base de données relationnelles: Conception et Réalisation

 Sécurité d'utilisation et de fonctionnement


 . confidentialité: au niveau de l'utilisateur
 . reprise en cas de panne: au niveau du fonctionnement

Vue du Programme sous-


program- d'application sous-
meur d'ap- schéma schéma
A B C A B
plication Zone de liaison

(11) (10) (1)


(2)
(9)
Buffers du (8) Système de gestion
système (3) schéma
de la base de logique
Vue du données global
gestionnaire
de la base (5)
(7)
(6)
système d'exploitation
(4)

Vue du
program- Description
meur sys- Base physique de
tème physique
la base

MANIPULATION DESCRIPTION

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 8
Cours de Base de données relationnelles: Conception et Réalisation

I-5 Langages dans les SGBD


Pour pouvoir être utilisable, le SGBD doit communiquer avec les utilisateurs à
l’aide d’un langage. En pratique, on distingue :
 Le langage de définition des données (LDD) : Il permet de décrire les
entités et les associations qui vont constituer les schémas : conceptuel,
externes et interne de la base.
 Le langage de manipulation des données (LMD) : Pour décrire les
programmes d ‘applications (consultation, mise à jour des données)
 Le langage d’interrogation (généralement considéré comme un sous
ensemble du LMD) : Permet d’interroger directement la base, à l’aide des
commandes simples sans recours à un programme.
 Le langage de contrôle de données : Permet le contrôle d’accès aux données
et l’intégrité des données

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 9
Cours de Base de données relationnelles: Conception et Réalisation

Chapitre 2- : Le Modèle relationnel et ses concepts


2-1 Le modèle de données

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

2-2- Outil de modélisation des données


2-2-1 le M.C.D.
Définition :
Le MCD décrit la signification des données sur lesquelles reposent
le SI et les structures. Il permet d’établir une représentation claire
des données du SI et définit les dépendances fonctionnelles entre
les données.

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

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 10
Cours de Base de données relationnelles: Conception et Réalisation

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é.
Ex : Client, Produit, Etudiant

Relation : représentation d'association entre entités


Ex : entre Client et produit (Commander)

Propriété : rubrique ou attribut d'une entité ou d'une relation.


Ex : Produit (Ref-prod, Nom-prod, Prix-prod,…….)
Commander (Qté-com,…)
Formalisme
"Entité-association",
"Entité-relation",
"Formalisme individuel"

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 11
Cours de Base de données relationnelles: Conception et Réalisation

nom objet nom relation nom objet

- nom propriété - nom propriété - nom propriété


- " " " " " "
- " " " "

Salarié affecté Service

- n° matricule - date_affect - n° 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

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 12
Cours de Base de données relationnelles: Conception et Réalisation

Caractéristiques d'une relation


- Dimension
C'est le nombre d'objets participant à la relation
Relation de dimension 1 : met en association deux
occurrences d'un même objet (relation réflexive)

- Cardinalités
Indiquent 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.
A partir des informations recueillies lors des interviews (comptes
rendus, documents collectés, ...)
1) Expliciter clairement les règles de gestion
2) Élaborer la liste des propriétés
3) Établir le dictionnaire des données (prendre soin d'éliminer les
synonymes et les poly sèmes)
4) Rechercher les entités et leur identifiant
5) Rattacher les propriétés aux entités
6) Recenser les relations entre entités
7) Si possible y rattacher les propriétés
8) Étudier les cardinalités à l'aide des règles de gestion
9) Vérifier que la conformité du résultat obtenu.

2-2-2 Elaboration du Dictionnaire des données


Le dictionnaire de données recense et décrit l’ensemble des
propriétés qui seront utilisées dans le MCD. Il doit être le plus
complet possible dans la description de chacune des propriétés
recensées. Il est constitué des colonnes suivantes :
- N° d’ordre : numéro d’ordre de la propriété
- Nom symbolique : correspond à une expression contractée de
la propriété
- désignation : correspond à l’explication détaillée de la
propriété
- Nature : elle peut être élémentaire (E) et donc non
décomposable et non déductible des autres, soit composée
(CO) et donc est un regroupement de plusieurs données
Dr Ange NAMBILA, Maitre-Assistant Cames
Libreville Gabon 13
Cours de Base de données relationnelles: Conception et Réalisation
élémentaires, soit calculée (CA) et donc déduite suite à un
calcul
- Type : une donnée peut être de type numérique (N),
alphabétique (A), alphanumérique (AN), date (D), Image (I)
ou mémo (M)
- Taille (longueur) : nombre de caractères utilisés pour codifier
la donnée
- Observations : permet de donner certaines précisions au rôle
joué par certaines propriétés, tel que obligatoire ou facultatif,
unique, préciser la règle de calcul pour les propriétés
calculées, indiquer le format d’une propriété, ou la plage de
valeurs de la donnée

Une fois élaboré, le dictionnaire doit être contrôlé afin de


s’assurer qu’il ne contient ni synonymes, ni polysémies.

Représentation du dictionnaire

N° Nom Désignation Nature Type Longueur Observations


ordre symbolique

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 14
Cours de Base de données relationnelles: Conception et Réalisation

2-3 Le modèle relationnel

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

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 15
Cours de Base de données relationnelles: Conception et Réalisation

Ex:

Dépôt Agence Client Compte Avoir

Tuple Lalala Toto 62307B 100000


Lalala Micro 8739C 50000

Nkembo Tati 1737X 2345


Central Fouty 1047Z 9100000

Domaines
- Autres concepts:
* Un attribut est une colonne d'une relation caractérisé 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.

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 16
Cours de Base de données relationnelles: Conception et Réalisation

Schéma de relation
Une relation peut être définie :
 soit en extension, en énumérant l'ensemble de ses n-uplets
(tuples ou lignes), 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
ex: ETUDIANT(matri-et, nom-et, pren-et, datenais-et,...)

Le schéma conceptuel d’une base de données relationnelle est donc un


ensemble de schémas de relation.
Une base de données relationnelle va être constituée de l’ensemble des
schémas de relation implémentés sous forme de tables.

2-3-2 Déduction du schéma relationnel


Il existe des règles qui permettent de traduire le MCD en schéma
relationnel, c’est-à-dire en un ensemble de schémas de relation. Ces
règles sont les suivantes :

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

1°) Liens binaires

* Fonctionnelle

0,1 0,1
A R B
1,1 1,1

A(cléA,.autres attributs de A....#cléB)
B(cléB, autres attributs de B.....#cléA)

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 17
Cours de Base de données relationnelles: Conception et Réalisation

* Hiérarchique

0,n 0,1
A R B
1,n 1,1

A(cléA,.autres attributs de A..)
B(cléB,.autres attributs de B...#cléA)

* Maillée
0,n 0,n
A R B
1,n 1,n
1

A(cléA,.autres attributs de A.....)
B(cléB,.autres attributs de B.......)
A-B(#cléA,#cléB, propriétés de R)
Ou R

2°) Liens N-aire

0,n 0,n
A R B
1,n 1,n

0,n 1,n

C

A(cléA,.autres attributs de A.......)
B(cléB,. autres attributs de B......)
C(cléC,...autres attributs de C...............)
A-B-C(#cléA,#cléB,#cléC,.propriétés de R)
Ou R

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 18
Cours de Base de données relationnelles: Conception et Réalisation

2-3-3 Etude de l’algèbre relationnelle

Inventée par E. CODD pour manipuler les bases de données


relationnelles, elle se présente comme une collection d'opérateurs
formels à appliquer sur les relations permettant ainsi d'obtenir des
relations plus élaborées à partir des relations de base.

Les opérateurs de l'algèbre relationnelle

Opérateurs de base :
Ensemble complet mais pas unique des opérateurs. On distingue :

Opérateurs unaires :
Ne font intervenir qu'une relation

Projection :  (contraction)
La projection d'une relation R de schéma R(A1, A2, A3,........,An)
sur les attributs Ai1, Ai2, Ai3,......Aip avec ij#ik et p  n est une
relation R' de schéma R'(Ai1,Ai2,....,Aip) dont les tuples sont
obtenus par élimination des attributs de R n'appartenant pas à R' et
par suppression des tuples en double.

R' = d R
 d= liste des propriétés de la projection

Exemple de projection
Soit la relation suivante : Dépôt (agence, compte, client, avoir)

R' = agence,client (Dépot)


 R' (agence, client), mais il faudra supprimer les doubles

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 19
Cours de Base de données relationnelles: Conception et Réalisation

Illustration

Dépôt Agence Client Compte Avoir

Lalala Toto 62307B 100000


Lalala Toto 8739C 50000

Nkembo Tati 1737X 2345


Central Fouty 1047Z 9100000

R' = agence,client (Dépot) 

R' Agence Client R' Agence Client

Lalala Toto Après suppression des Lalala Toto


Lalala Toto doubles Nkembo Tati

Nkembo Tati Central Fouty

Central Fouty

Sélection (restriction) : 
La restriction de la relation R par une qualification Q(prédicat) est
une relation R' de même schéma et dont les tuples sont ceux de R qui
satisfont à la qualification Q

R' = Q(R)

Ex: lister tous les clients qui ont un avoir  100.000


R'=  (Dépot)
Q : avoir  100.000

Sélection, puis Projection

R'=agence,client (avoir  100000(Depot))


 On obtient l'agence et le client uniquement pour ceux qui ont un
avoir supérieur ou égal à 100000.

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 20
Cours de Base de données relationnelles: Conception et Réalisation

Opérateurs ensemblistes :
Ce sont les opérateurs binaires qui portent sur deux relations

L'union : U
L'union de deux relations R et S de même schéma est une relation
T de même schéma contenant l'ensemble des tuples appartenant à R
ou S ou aux deux relations.
Ex: Dépot(agence,compte,client,montant)
Crédit(agence,n°prêt,client,montant)
T=(agence,client,montant (Dépot)) U (agence,client,montant(Crédit))

Produit cartésien : X
Le produit cartésien de deux relations (de schéma quelconque) R
et S, est une relation T ayant pour attributs la concaténation de ceux de
R et S et dont les tuples sont tous les concaténations (associations) des
tuples de R à un tuple de S.
Ex : Dépot(agence,nomcli,compte,avoir)
Client(n°client,nom,adresse)
R= Dépot X Client
R=(Dépot.agence,Dépot.nomcli,Dépot.compte,Dépot.avoir,
Client.n°client,Client.nom,Client.adresse)

Illustration :
DEPOT agence nomcli compte avoir CLIENT n°client Nom Adresse
lalala Toto 4555 10000 10 Toto LBV
lalala Makaya 5450 1000000 15 Makaya PG
lalala Makaya 5000 100000 20 Tati LBV

DEPOT Agence nomcli compte avoir n°client Nom Adresse


X Client
lalala Toto 4555 10000 10 Toto LBV
lalala Toto 4555 10000 15 Makaya PG
lalala Toto 4555 10000 20 Tati LBV
lalala Makaya 5450 1000000 10 Toto LBV
lalala Makaya 5450 1000000 15 Makaya PG
lalala Makaya 5450 1000000 20 Tati LBV
lalala Makaya 5000 100000 10 Toto LBV
lalala Makaya 5000 100000 15 Makaya PG
lalala Makaya 5000 100000 20 Tati LBV

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 21
Cours de Base de données relationnelles: Conception et Réalisation

Différence: –
La différence de deux relations R et S de même schéma (dans l'ordre
R – S) est une relation T de même schéma contenant les tuples
appartenant à R et n'appartenant pas à S.

Ex: T=(client, agence(Dépot)) – (client, agence(Crédit))

 On cherche les clients qui ont des comptes mais qui n'ont pas
pris de crédit.

Opérateurs composées

Jointure: 

La jointure de deux relations R et S selon une qualification multi-
attributs  est l'ensemble de tuples du produit cartésien R X S
satisfaisant la qualification 
 est une expression logique faisant intervenir:
- un attribut A de R
- un attribut B de S
- un opérateur de comparaison

A et B sont alors appelés les pivots de la jointure, et donc doivent


prendre leurs valeurs dans le même domaine de définition
T= R  S

T est une relation ayant :
- les attributs de R et S
- les tuples obtenus par la combinaison de tuples de R et S qui
vérifient le prédicat

Ex: Dépôt(agence, compte, client, crédit)


Clientèle(client, rue, localité)
T= Dépôt  Client

 : Dépôt.client=Clientele.client

T(agence, compte, Dépot.client, crédit, Clientèle.client, rue, localité)

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 22
Cours de Base de données relationnelles: Conception et Réalisation

On distingue:
 l'équijointure de R et S sur les attributs Ai et Bj, est la
jointure selon la qualification Ai=Bj (équi pour =)
 la  jointure de R et S sur les attributs Ai et Bj est la jointure
selon la qualification Ai  Bj
 l'auto -jointure de R selon l'attribut Ai est la jointure de R
avec elle-même selon la qualification Ai=Ai
 la jointure naturelle de R et S est l'équi-jointure de R et S sur
tous les attributs ayant même nom dans R et S suivi de la
projection qui permet de conserver un seul de ces attributs
égaux

L'intersection : 
L'intersection de deux relations R et S de même schéma est une relation
T de même schéma contenant les tuples appartenant à la fois à R et à S.
On écrit T= R  S
Cet opérateur peut être simulé à partir de l’opérateur différence (-)
R  S= R- (R - S) ou R  S= S - (S - R)

Division: 
Le quotient de la relation R de schéma R(A1, A2,…..Ap, Ap+1,…..An)
par la relation S de schéma S(Ap+1,…..An), est la relation D ayant pour
attributs ceux de R qui ne sont pas attributs de S, c’est à dire D(A1,
A2,…..Ap), et dont les tuples sont tels que, concaténés à chacun des
tuples de S, redonnent un tuple de R.
S est ici une sous-relation (ou s/schéma) de R: les attributs de S
sont donc un s/ensemble de ceux de R.
R est le dividende et S le diviseur.
Ex : R1(s1,s2)
R2(s2)
R3=R1R2  R3 est une relation de schéma
(s1) qui contient les tuples ai vérifiant:
ai  R3 (ai désignant un tuple correspondant au schéma (s1)
bj R2 (bj désignant un tuple correspondant au schéma (s2)
ai, bj  R1
La division peut être obtenue à partir de la différence du produit
cartésien et de la projection comme suit :
RS = T – U avec T=projection(R/ A1, A2,…..Ap) et
U=projection((TxS)-R/ A1, A2,…..Ap)

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 23
Cours de Base de données relationnelles: Conception et Réalisation

Equivalence des opérateurs en SQL


L'application de l'algèbre relationnelle dans les SGBD relationnels est
faite au travers le langage SQL. L'équivalence des opérateurs de l'algèbre
relationnelle en langage SQL est la suivante :

Projection
d R <=> Select [unique] d ou Select *
From R ; From R ;
* : veut dire, sélectionner tous les attributs

Sélection
Q R <=> Select *
From R
Where Q ;
Union
RS <=> Select *
From R
Union
Select *
From S;

Différence
R – S <=> Select *
From R
Minus
Select *
From S;

Produit cartésien
R X S <=> Select *
From R,S;

Jointure
R  S <=> Select *
 From R,S
Where  ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 24
Cours de Base de données relationnelles: Conception et Réalisation

Intersection
R  S <=> Select *
From R
Intersect
Select *
Select *
From S;
ou

R  S <=> R - (R - S) <=> Select *


From R
Minus
(Select *
From R
Minus
Select *
From S ) ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 25
Cours de Base de données relationnelles: Conception et Réalisation

Chapitre 3 : Implanter et manipuler une base de données relationnelle :


Pratique de SQL

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)

3-2 Les commandes du LDD SQL

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.

Les commandes du LDD SQL sont :


* CREATE : création d’objet,
* ALTER : modification de structures d’objets
* DROP : suppression d’objets

3-2-1 Définition d’objets

 Création d’une base de données

CREATE DATABASE nom de la base de données [paramètres] ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 26
Cours de Base de données relationnelles: Conception et Réalisation

 Création de domaine
Permet de définir plusieurs attributs à partir du même domaine

CREATE DOMAIN nom type values(val1, val2,…valn) ;

 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

CREATE VIEW nom-vue [(nom d'attributs)]


AS SELECT liste des attributs-origines
FROM tables-origines
[WHERE conditions]
===> Permet de créer des vues pour les utilisateurs.

 Création d’index

CREATE INDEX nom d'index ON nom de table (attribut1,[attribut2,...])


[ASC| DESC]
 Permet d'indexer une table

3-2-2-Modification des structures d’objets

ALTER DOMAIN nom de domaine type [valeur]


===> Pour la modification d'un domaine.

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 27
Cours de Base de données relationnelles: Conception et Réalisation

ALTER TABLE nom de la table MODIFY(attribut,type)


ADD(attribut,type)
DROP(attribut)
===> Pour la modification d'une table.

3-2-3 Suppression d’objets


Pour supprimer une base, un domaine, une table, une vue, ou un index :

DROP DATABASE nom de la base ;

DROP DOMAIN nom de domaine ;

DROP TABLE nom de table ;

DROP VIEW nom de la vue ;

DROP INDEX nom de l’index ;


Remarque :
La suppression d'une table nécessite les opérations suivantes,
transparentes pour l'utilisateur:
- suppression de toutes les lignes de la table
- suppression des index et vues associés à cette table,
- suppression de la table elle-même, c'est-à-dire, libération de l'espace
mémoire occupé et mise à jour du dictionnaire.

3-3 Les commandes du LMD SQL

3-3-1 Opérations du langage.

. SELECT pour les interrogations


. INSERT, DELETE, UPDATE, pour les mises à jour
On a en plus les clauses: WHERE, FROM, IN, NOT IN, UNIQUE, INTO,
BETWEEN AND, ALL, ANY, EXISTS, SET, etc.

Pour les interrogations :


SELECT attributs
FROM tables concernées
WHERE conditions de sélection ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 28
Cours de Base de données relationnelles: Conception et Réalisation

Opérateurs de comparaison:

=, <, >, >=, <=, <>

Opérateurs logiques :

AND, OR, NOT

Opérateurs arithmétiques :

+, -, *, /

Fonctions disponibles sur SQL :

- SUM : somme des valeurs


- MIN : valeur minimum
- MAX : valeur maximum
- AVG : moyenne des valeurs
- COUNT : compter le nombre des tuples ou valeurs distinctes
- ORDER BY : permet d'ordonnancer les résultats

3-3-2 CONSULTATION DES DONNEES

1°) Interrogation simple

SELECT * [ou liste des champs sélectionnés]


FROM nom de table
[WHERE condition];

Exple: soit Produit(ref, lib, prix)


SELECT SUM(prix) : donne la somme de tous les prix
FROM Produit ;

SELECT AVG(prix) : donne la moyenne des prix


FROM Produit ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 29
Cours de Base de données relationnelles: Conception et Réalisation

2°) Interrogation imbriquée

Exple: lister les produits dont les prix > moyenne


SELECT lib, prix
FROM Produit
WHERE prix > ( SELECT AVG(prix)
FROM Produi);

Remarque: On cherche d'abord la moyenne

3°) Trier les résultats


ORDER BY expression ASC/ DESC (croissant ou décroissant)

Rques:
- 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é

Exple: 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 ;

4°) Interrogation portant sur plusieurs tables (Jointure)


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.

Ex : Pilote (num-pil, nom-pil, sexe-pil, age-pil, #code-vil)


Ville (code-vil, nom-vil)

Indiquer la ville où réside chaque pilote :


Select num-pil, nom-pil, sexe-pil, age-pil, V.code-vil, nom-vil
From pilote P, ville V
Where P.code-vil=V.code_vil ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 30
Cours de Base de données relationnelles: Conception et Réalisation

5°) Les clauses

l’opérateur BETWEEN
Permet de tester l’appartenance à une plage de valeurs
BETWEEN x AND Y
Exple : SELECT lib,prix
FROM Produit
WHERE prix BETWEEN 1500 AND 2000;

l’opérateur IN
Permet de tester l’appartenance à un ensemble de valeurs
Exple : 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
Exple : SELECT lib,prix
FROM Produit
WHERE lib LIKE ‘H%’;

l’opérateur de négation NOT


les opérateurs vus ci-dessus peuvent être mis sous forme négative en les
précédant par l’opérateur NOT

l’opérateur ALL
permet de comparer une colonne à l’ensemble de valeurs résultat d’une
sous-requête.
- la condition est vérifiée pour toutes les valeurs
Exple : SELECT lib,prix
FROM Produit
WHERE prix >= ALL (SELECT prix
FROM produit);

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 31
Cours de Base de données relationnelles: Conception et Réalisation

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
Exple : SELECT lib,prix
FROM Produit
WHERE prix >ANY (SELECT prix
FROM produit) ;

6°) Regroupement des résultats


GROUP BY champ1, [champ2,.....]
Permet le regroupement des lignes résultats par classe ayant chacune la
même valeur pour un ou plusieurs champs donnés, puis d'effectuer
éventuellement un calcul des valeurs du groupe, et de rendre le résultat sous
la forme d'une ligne par groupe.

Exple: Commande(nucom, refp, libp, qtéc)


Requête: Sortir pour chaque produit le cumul des qtés commandées
SELECT refp, SUM(qtéc)
FROM Commande
GROUP BY refp ;

7°) Condition de sélection dans les regroupements


HAVING condition
la condition permet de comparer une valeur de groupe à une constante ou
autre valeur résultante d'une s/requête

Exple: SELECT refp, SUM(qtéc)


FROM Commande
GROUP BY refp
HAVING SUM(qtéc) >= 10;

Permet de ne sortir que les produits dont la somme des qtés est >= 10

8°) Sous-questions corrélatives


Il existe des requêtes pour lesquelles il est impossible d’obtenir le résultat de
la sous-question sans faire référence au niveau externe. Dans de telles

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 32
Cours de Base de données relationnelles: Conception et Réalisation

requêtes, on trouve 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)

Exple1 : lister les produit dont la qté commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE 1000 = (SELECT qtéc
FROM Commande
WHERE Produit.refp=Commande.refp);

Exple2 : lister les produits dont la qté commandée est supérieure à la


moyenne des qtés commandées de chacun des produits

SELECT refp, qtéc


FROM Commande C-ext
WHERE qtéc> (SELECT AVG(qtéc)
FROM Commande C-int
WHERE C-ext.refp=C-int.refp);

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

Exple1 : lister les produit dont la qté commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE EXISTS (SELECT *
FROM Commande
WHERE Produit.refp=Commande.refp
AND qtéc=1000) ;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 33
Cours de Base de données relationnelles: Conception et Réalisation

3-3-3 INSERTION DE DONNEES

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 :

INSERT INTO table [(colonne,....)]


VALUES (valeur,...)
ou
INSERT INTO table [(colonne,...)]
requête

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.

Exple : INSERT INTO Produit


VALUES (20,’petit pois’,120,50);

3-3-4 MODIFICATION DES DONNEES

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.

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 34
Cours de Base de données relationnelles: Conception et Réalisation

Exple1 : UPDATE Produit


SET PrixU = 120
WHERE Nupro=10 ;

Exple2 : UPDATE Produit


Set PrixU = PrixU * 1.05
WHERE PrixU > 100 ;

Exple3 : UPDATE Produit


Set PrixU = (SELECT PrixU
FROM Produit
WHERE Nupro=15)
WHERE Nupro=53;

3-3-5 SUPPRESSION DE DONNEES

La suppression de données consiste à supprimer une ou plusieurs lignes d’une


table.
La forme générale de la commande de suppression est :

DELETE FROM table


WHERE condition;

La condition permet de restreindre les lignes de la table à supprimer. Si la


clause WHERE est absente, tous les lignes sont supprimés.

Exple : DELETE FROM Produit


WHERE Qtes < 10;

Dr Ange NAMBILA, Maitre-Assistant Cames


Libreville Gabon 35

Vous aimerez peut-être aussi