Académique Documents
Professionnel Documents
Culture Documents
COURS
DE BASES DE
DONNEES
RELATIONNELLES :
Conception et
Manipulation
SOMMAIRE
Bibliographie
Introduction
Dr Ange NAMBILA
Enseignant à IAI Libreville 2
Bases de données Relationnelles : Conception et Manipulation
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
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
Dr Ange NAMBILA
Enseignant à IAI Libreville 6
Bases de données Relationnelles : Conception et Manipulation
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
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
(1) Utilisation
Bases des
données physiques
Dr Ange NAMBILA
Enseignant à IAI Libreville 8
Bases de données Relationnelles : Conception et Manipulation
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
Dr Ange NAMBILA
Enseignant à IAI Libreville 10
Bases de données Relationnelles : Conception et Manipulation
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-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
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é :
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
- 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.
Dr Ange NAMBILA
Enseignant à IAI Libreville 14
Bases de données Relationnelles : Conception et Manipulation
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
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
Opérateurs de base:
Ensemble complet mais pas unique des opérateurs.
On distingue:
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
Illustration
Dr Ange NAMBILA
Enseignant à IAI Libreville 16
Bases de données Relationnelles : Conception et Manipulation
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)
Combinaison d’opérateurs
Dr Ange NAMBILA
Enseignant à IAI Libreville 17
Bases de données Relationnelles : Conception et Manipulation
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 :
Dr Ange NAMBILA
Enseignant à IAI Libreville 18
Bases de données Relationnelles : Conception et Manipulation
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
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=R1R2 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 :
RS = T – U avec
T=projection(R/ A1, A2,…..Ap)
U=projection((TxS)-R/ A1, A2,…..Ap)
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
RS <=> 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
3-1 Introduction
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.
Dr Ange NAMBILA
Enseignant à IAI Libreville 23
Bases de données Relationnelles : Conception et Manipulation
Création de domaine
Permet de définir plusieurs attributs à partir du même domaine
Création de table
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
Création d’index
Dr Ange NAMBILA
Enseignant à IAI Libreville 24
Bases de données Relationnelles : Conception et Manipulation
Pour supprimer une base, un domaine, une table, une vue, ou un 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.
Introduction
Dr Ange NAMBILA
Enseignant à IAI Libreville 25
Bases de données Relationnelles : Conception et Manipulation
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
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)
Opérateurs de comparaison:
=, <, >, >=, <=, <>
Opérateurs logiques :
AND, OR, NOT
Opérateurs arithmétiques :
+, -, *, /
Dr Ange NAMBILA
Enseignant à IAI Libreville 27
Bases de données Relationnelles : Conception et Manipulation
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 ;
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%’;
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.
Dr Ange NAMBILA
Enseignant à IAI Libreville 30
Bases de données Relationnelles : Conception et Manipulation
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);
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) ;
UPDATE table
SET colonne = valeur,...
WHERE condition ;
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 :
Dr Ange NAMBILA
Enseignant à IAI Libreville 33