Vous êtes sur la page 1sur 33

UNIVERSITE DE BISSEGUE

COURS
DE BASES DE
DONNEES
RELATIONNELLES :
Conception et
Manipulation

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


Enseignant Permanent à IAI
Libreville - GABON
Bases de données Relationnelles : Conception et Manipulation

SOMMAIRE
Bibliographie

Introduction

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

1-1 Définition et avantages d’une base de données------------------------6


1-2 Niveaux de représentation------------------------------------------------6
1-3 Définition d’un SGBD----------------------------------------------------7
1-4 Les fonctions attendues du SGBD---------------------------------------8
1-5 Les langages utilisés-------------------------------------------------------9

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

2-1 Le modèle de données---------------------------------------------------10


- Introduction-------------------------------------------------------------10
- Définition d’un modèle de données
- Le schéma conceptuel
- Processus de modélisation
- Les concepts de base---------------------------------------------------10
- Entité
- Propriétés
- Association
- Types de liens
2-2 Le modèle relationnel---------------------------------------------------11
-Introduction--------------------------------------------------------------11
- Définition
- Objectifs
- Concepts utilisés
- Représentation
- Autres concepts
- Schéma de relation
- Conception d’un schéma relationnel-------------------------------13
- Schéma descriptif
- Production du schéma relationnel
- Etude de l’algèbre relationnel----------------------------------------14
- Introduction--------------------------------------------------------14
- Les opérateurs unaires
- Les opérateurs ensemblistes
- Les opérateurs composés
- Equivalence des opérateurs en langage SQL

Dr Ange NAMBILA
Enseignant à IAI Libreville 2
Bases de données Relationnelles : Conception et Manipulation

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


Pratique de SQL

3-1 Créer une base de données : les commandes du LDD SQL ----------21
- Création des Objets---------------------------------------------------------21
- 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----------24
- Consultation des données-------------------------------------------------24
- Insertion des données
- Modification des données
- Suppression des données

Dr Ange NAMBILA
Enseignant à IAI Libreville 3
Bases de données Relationnelles : Conception et Manipulation

Bibliographie

- DATE C. J. : An Introduction to data base systems


ed. Addison and wesley
- DELOBEL : Bases de données et systèmes relationnel
ed. Dunod
- GARDARIN : Bases de données, les systèmes et leurs langages
ed. Eyrolles
- MIRANDA : L'art des bases de données T1, T2, T3
ed. Eyrolles
- FLORY : Bases de données, conception et réalisation
ed. Economica
- CHRISMENT : Mise en oeuvre des bases de données
ed. Eyrolles
- HENRY F. KORTH : Système de gestion des bases de données
ed. Mc Gauss-Hill

Dr Ange NAMBILA
Enseignant à IAI Libreville 4
Bases de données Relationnelles : Conception et Manipulation

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.

Compte tenu du public visé, le cours a été très simplifié afin qu’il soit accessible
à toute personne désirant comprendre, concevoir et manipuler les bases de
données relationnelles. Ce qui explique que certains aspects sur le modèle
relationnel ont été volontairement omis comme, par exemple :
 La théorie de la normalisation dans la conception
 le calcul relationnel dans la manipulation des données,

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
Enseignant à IAI Libreville 5
Bases de données Relationnelles : Conception et Manipulation

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 terme 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
Enseignant à IAI Libreville 6
Bases de données Relationnelles : Conception et Manipulation

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
Enseignant à IAI Libreville 7
Bases de données Relationnelles : Conception et Manipulation

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
Enseignant à IAI Libreville 8
Bases de données Relationnelles : Conception et Manipulation

 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
Enseignant à IAI Libreville 9
Bases de données Relationnelles : Conception et Manipulation

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 conceptuels,
externes et internes 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
Enseignant à IAI Libreville 10
Bases de données Relationnelles : Conception et Manipulation

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
Les concepts de base
Entité ou objet:
Représentation d'un objet concret ou abstrait du monde réel ayant un
intérêt pour le domaine étudié
ex: Client, Produit
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 Etudiant : appartenir
Maillé: A N:M B
ex: entre Commande et Produit : comprendre
N-aire
ex: entre Professeur, Classe et Matière : faire-cours

Dr Ange NAMBILA
Enseignant à IAI Libreville 11
Bases de données Relationnelles : Conception et Manipulation

2-2 Le modèle relationnel

2-2-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
Enseignant à IAI Libreville 12
Bases de données Relationnelles : Conception et Manipulation

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 identiques
 l'ordre des n-uplets est quelconque
 la cardinalité d'une relation est le nombre de n-uplets 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 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éfinie sur un
domaine primaire est donc une clé étrangère. Elle permet d’exprimer
les associations entre entités.

Dr Ange NAMBILA
Enseignant à IAI Libreville 13
Bases de données Relationnelles : Conception et Manipulation

Contraintes d’intégrités:
Elles définissent les cohérences qui doivent exister dans une base de
données. On distingue deux catégories de contraintes d’intégrité :

 les contraintes structurelles dépendant du modèle de données et


qui doivent être prises en compte automatiquement par un
véritable SGBDR. Ces contraintes comprennent les intégrités :
de domaine, d’entité ou de relation, de référence
 les contraintes applicatives liées à l’univers réel modélisé

Schéma de relation
Une relation peut être définie:
 soit en extension, en énumérant l'ensemble de n-uplets,
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, age-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-2-2 Conception du schéma relationnel

- Le schéma descriptif

Définition
Le schéma descriptif est la description de l’ensemble des entités et
des liens existants entre entités recensés dans le domaine étudié, et
aussi des propriétés qui les caractérisent.

Production du schéma descriptif


Il s’agira de recenser l’ensemble des entités définies dans le
domaine étudié, d’établir les types de liens qu’elles entretiennent, et
aussi de déterminer les différentes propriétés qui les caractérisent.

Dr Ange NAMBILA
Enseignant à IAI Libreville 14
Bases de données Relationnelles : Conception et Manipulation

- Déduction du schéma relationnel

Il existe des règles qui permettent de traduire le schéma descriptif


dans le modèle relationnel. Ces règles sont les suivantes :

1ère règle :
- Toute entité est traduite en schéma de relation, son identifiant
devenant sa clé primaire.

2è regle :
concerne les types de liens

1°) Liens binaires


* Type 1:1
A 1:N B
 A(cléA,..........#cléB)
B(cléB,............#cléA)
* Type 1:N
A 1:N B
 A(cléA,............)
B(cléB,............#cléA)
* Type N:M
A N:M B
 A(cléA,..........)
B(cléB,..........)
A-B(#cléA,#cléB,.......)

2°) Liens N-aire


A B

C

A(cléA,...................)
B(cléB,...................)
C(cléC,..................)
A-B-C(#cléA,#cléB,#cléC,..........)

Dr Ange NAMBILA
Enseignant à IAI Libreville 15
Bases de données Relationnelles : Conception et Manipulation

2-2-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 sur les relations permettant ainsi d'obtenir des relations plus
élaborées à partir des relations de base. On distingue :

Les opérateurs de l'algèbre relationnelle

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

les 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 : Dépot(agence,compte,client,avoir)

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


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

Illustration

Dr Ange NAMBILA
Enseignant à IAI Libreville 16
Bases de données Relationnelles : Conception et Manipulation

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


 (Dépot)
avoir  100.000

Combinaison d’opérateurs

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
Enseignant à IAI Libreville 17
Bases de données Relationnelles : Conception et Manipulation

Les 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,prêt,client,montant)

R= client,montant(agence="lalala"(Dépot)) U client,montant(
agence="lalala"(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 des tuples de R à un
tuple de S.

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

R= Dépot X clientèle

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

Illustration :

DEPOT Agence Client 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

Dr Ange NAMBILA
Enseignant à IAI Libreville 18
Bases de données Relationnelles : Conception et Manipulation

DEPOT- Agence Client Compte Avoir n°client Nom Adresse


Clientele
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

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: (client(agence="lalala"(Dépot)) – (client(agence="lalala"(Crédit))

 on cherche les clients qui ont des dépôts dans l'agence lalala et qui
n'ont pas 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

Dr Ange NAMBILA
Enseignant à IAI Libreville 19
Bases de données Relationnelles : Conception et Manipulation

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épot(agence, compte, client, crédit)


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

On dinstingue:
 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 obtenu à partir de la 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.

Dr Ange NAMBILA
Enseignant à IAI Libreville 20
Bases de données Relationnelles : Conception et Manipulation

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)
U=projection((TxS)-R/ A1, A2,…..Ap)

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;

Dr Ange NAMBILA
Enseignant à IAI Libreville 21
Bases de données Relationnelles : Conception et Manipulation

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  ;

Intersection
R  S <=> Select * from R INTERSECT select * from S;
R -- (R -- S) <=> Select *
From R
Minus (Select *
From R
Minus
Select *
From S ) ;

Dr Ange NAMBILA
Enseignant à IAI Libreville 22
Bases de données Relationnelles : Conception et Manipulation

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 ou 4e génération (ex : cobol,fortran, c,
java, PHP, 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

Dr Ange NAMBILA
Enseignant à IAI Libreville 23
Bases de données Relationnelles : Conception et Manipulation

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] ;

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

CREATE DOMAIN nom type [valeur]

 Création de table

CREATE TABLE nom de la table ( champ1,format [unique] [not null]


,champ2,format [unique] [not null],.......) PRIMARY KEY (Champ1,[
champ2,…]) FOREIGN KEY champ REFERENCES nom-table (champ)

Remarques :
Format : comprend le type et la longueur
[unique] : les tuples de la relation ne doivent pas avoir la même
valeur pour ce champ
[not null] : pour des champs qui ne doivent pas avoir une valeur
nulle.
 Création de vue

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


AS SELECT champs-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(champ1,[champ2,...])


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

Dr Ange NAMBILA
Enseignant à IAI Libreville 24
Bases de données Relationnelles : Conception et Manipulation

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

ALTER DOMAIN nom type [valeur]


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

ALTER TABLE nom de la table MODIFY(nom de champ,format)


ADD(nom de champ,format)
DROP(nom de champ)
===> 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 tous les tuples 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-2-4 Les contraintes d’intégrité

Introduction

Dr Ange NAMBILA
Enseignant à IAI Libreville 25
Bases de données Relationnelles : Conception et Manipulation

Les contraintes d’intégrité permettent d’assurer la cohérence des


informations stockées dans la base par rapport à leur signification dans la
réalité.
Les contraintes d’intégrité sont exprimées au moment de la mise en place de
la base ou après. Elles doivent toujours être vérifiées au cours des
modifications que subissent les données.

On distingue :
- Intégrité de domaine
L’intégrité de domaine agit au niveau de la donnée atomique. Elle porte
sur le contrôle syntaxique et sémantique des valeurs présentes dans les
attributs des tables. Elle assure que la donnée saisie dans une colonne est
cohérente par rapport à des contraintes pré-définies. Seules les valeurs
appartenant au domaine de l’attribut sont autorisées.
L’intégrité de domaine est assurée par quatre mécanismes :
 Type de données
 Règle de validation
 Valeur par défaut
 Clé étrangère

Ex : CREATE DOMAIN regime-matrimoniale CONSTRAINT regime-


possible CHECK (VALUE IN
‘marié’,’célibataire’,’divorcé’,’veuf’,’concubinage’)

- Intégrité d’entité ou de relation


L’intégrité d’entité est assurée par l’existence et le suivi de la clé
primaire. Elle concerne les valeurs de la clé primaire d’une relation qui
doivent être uniques et toujours définies. L’intégrité d’entité assure
l’unicité de chaque enregistrement. Elle peut être définie soit sur une
colonne, soit sur une table.
 Contrainte sur une colonne
Ex : CREATE TABLE Auteur (num-auteur integer CONSTRAINT
cp-auteur PRIMARY KEY, nom char(25), prenom char(25))
 Contrainte sur la table
Ex : CREATE TABLE A-Ecrit (num-auteur integer, num-ouvrage
integer, CONSTRAINT cp-a-ecrit PRIMARY KEY (num-
auteur, num-ouvrage))

- Intégrité de référence (référentielle)

Dr Ange NAMBILA
Enseignant à IAI Libreville 26
Bases de données Relationnelles : Conception et Manipulation

L’intégrité de référence concerne les relations entre les tables. Elle agit
lors de la modification, de l'’nsertion, ou de la suppression
d'’nregistrement. Elle est le moyen d'’assurer la cohérence entre plusieurs
tables et concerne donc les valeurs des clés étrangères.
Ex : CREATE TABLE A-Ecrit (num-auteur integer, num-ouvrage
integer, CONSTRAINT cp-a-ecrit PRIMARY KEY (num-auteur,
num-ouvrage),
CONSTRAINT ref-aut FOREIGN KEY (num-auteur)
REFERENCES Auteur(num-auteur) ON DELETE CASCADE ON
UPDATE CASCADE,
CONSTRAINT ref-ouvrage FOREIGN KEY (num-ouvrage)
REFERENCES Ouvrages(num-ouvrage) ON DELETE CASCADE
ON UPDATE CASCADE)

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, BETWEEN, etc.

Pour les interrogations :


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

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

Dr Ange NAMBILA
Enseignant à IAI Libreville 27
Bases de données Relationnelles : Conception et Manipulation

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

2°) Interrogation imbriquée

Exple: lister les produits dont les prix > moyenne

SELECT lib, prix


FROM Produit
WHERE prix > ( SELECT AVG(prix)
FROM Produit);

Remarque: On cherche d'abord la moyenne

3°) Trier les résultats

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

Remarques:
- expression peut être une liste de nom de colonnes ou de position
de colonnes
- ASC est l'option par défaut si rien n'est précisé

Dr Ange NAMBILA
Enseignant à IAI Libreville 28
Bases de données Relationnelles : Conception et Manipulation

Exple: même requête que précédemment mais les prix sont listés en
ordre décroissant :

SELECT lib,prix
FROM Produit
WHERE prix > (SELECT AVG(prix)
FROM Produit)
ORDER BY prix DESC ;

4°) 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

Dr Ange NAMBILA
Enseignant à IAI Libreville 29
Bases de données Relationnelles : Conception et Manipulation

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);
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) ;
5°) 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 ;

6°) 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

Dr Ange NAMBILA
Enseignant à IAI Libreville 30
Bases de données Relationnelles : Conception et Manipulation

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
7°) 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
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 produit 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);

8°) 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

Exple : lister les produit dont la qté commandée est égale à 1000
SELECT refp, libp

Dr Ange NAMBILA
Enseignant à IAI Libreville 31
Bases de données Relationnelles : Conception et Manipulation

FROM Produit
WHERE EXISTS (SELECT *
FROM Commande
WHERE Produit.refp=Commande.refp
AND qtéc=1000) ;

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

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-4 INSERTION DE DONNEES

Dr Ange NAMBILA
Enseignant à IAI Libreville 32
Bases de données Relationnelles : Conception et Manipulation

L’insertion consiste à ajouter de nouveaux tuples 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-5 SUPPRESSION DE DONNEES

La suppression de données consiste à supprimer une ou plusieurs tuples 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 tuples de la table à supprimer. Si la


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

Exple : DELETE FROM Produit


WHERE Qtes < 10;

Dr Ange NAMBILA
Enseignant à IAI Libreville 33

Vous aimerez peut-être aussi