Académique Documents
Professionnel Documents
Culture Documents
COURS
DE CONCEPTION ET
D’IMPLANTATION DES
BASES DE DONNEES
RELATIONNELLES
SOMMAIRE
Introduction
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.
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
(1) Utilisation
Bases des
données physiques
Vue du
program- Description
meur sys- Base physique de
tème physique
la base
MANIPULATION DESCRIPTION
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
Objectif :
Représentation par les données, des phénomènes pris en compte
dans le S.I.
But :
- étudier les données et les liens entre données
- proposer une représentation schématique
phénomènes
réels
observés
Perception, identification
et énumération
schéma
descriptif
Que représenter ?
schéma
conceptuel
Comment représenter ?
Concepts
- identifiant
- cardinalité
- dimension
Notion d'identifiant
- D'un objet
Propriété particulière qui identifie de manière unique un objet
- D'une relation
Est la concaténation des identifiants des objets qu'elle associe.
Règles de gestion
- Précisent les contraintes qui doivent être respectées par le
modèle
- expriment les contraintes d'intégrité du modèle
On distingue :
. Règles d'action
. Règles de calcul
. Règles administratives
. Règles logiques
. Délai d’attente
- Cardinalité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.
Représentation du dictionnaire
2-3-1- Introduction
- Définition
Défini à partir des idées de CODD (1970)
Basé sur la théorie mathématique des relations
Le concept de relation découle directement de la théorie des
ensembles
Les données sont structurées sous formes de tables à deux
dimensions ou de fichiers "plats" appelés relations
- Objectifs
Proposer des schémas de données faciles à utiliser
Fournir une approche méthodologique au processus de conception
Améliorer l'indépendance logique/physique
Fournir un langage non procédural de haut niveau (assertionnel)
Prendre en compte une grande variété d'applications
Optimiser les accès à la base de données
Améliorer l’intégrité et la confidentialité
- Concepts utilisés
* Domaine : ensemble de valeurs
ex: domaine des entiers, des réels, …
* Produit cartésien: soient D1, D2, D3,......Dn une liste de
domaines ; le produit cartésien D1 x D2 x D3 x......x Dn est
l’ensemble de n-uplets (ou tuples) appelés <v1,v2,v3,....,vn> tels
que vi Di où 1 ≤ i ≤ n
* Relation: c'est un sous-ensemble du produit cartésien d'une liste
de domaines
R D1 x D2 x D3 x......x Dn
- Représentation
Une relation peut se présenter sous forme de tableau dont les colonnes
correspondent aux domaines et les lignes sont les n-uplets (tuples).
Ex:
Domaines
- Autres concepts:
* Un attribut est une colonne d'une relation caractérisé par un nom
* L'ordre des attributs est quelconque
* Il n'existe pas des n-uplets (tuples) identiques
* L'ordre des n-uplets (tuples) est quelconque
* La cardinalité d'une relation est le nombre de n-uplets (tuples)
contenus dans la relation
* Le nombre de domaines caractérise la relation. Une relation à n
domaines est dite de degré n
* Une clé primaire d'une relation est un sous-ensemble d'attributs qui
permet d'identifier sans ambiguïté un n-uplet (tuple) de la relation
(de façon unique)
Domaine primaire :
Est un domaine sur lequel une clé primaire est définie (donc mono-
attribut)
Clé étrangère :
Un attribut qui n’est pas clé primaire, mais qui est défini sur un
domaine primaire est donc une clé étrangère. Elle permet d’exprimer
les associations entre entités.
Schéma de relation
Une relation peut être définie :
soit en extension, en énumérant l'ensemble de 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,...)
1ère règle :
- Toute entité est traduite en schéma de relation, ses propriétés
devenant ses attributs, et son identifiant devenant sa clé primaire.
2è règle :
- Concerne les types de liens
* Fonctionnelle
0,1 0,1
A R B
1,1 1,1
A(cléA,.autres attributs de A....#cléB)
B(cléB, autres attributs de B.....#cléA)
* 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
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
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)
Illustration
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)
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
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.
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
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=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) et
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;
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 *
Select *
From S;
ou
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.
Création de domaine
Permet de définir plusieurs attributs à partir du même domaine
Création de table
Remarques:
type : comprend le type de la donnée, et éventuellement la longueur
[unique] : les lignes de la table ne doivent pas avoir la même valeur pour
cet attribut
[not null] : pour des attributs qui ne doivent pas avoir une valeur nulle.
Création de vue
Création d’index
Opérateurs de comparaison:
Opérateurs logiques :
Opérateurs arithmétiques :
+, -, *, /
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 ;
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 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) ;
Permet de ne sortir que les produits dont la somme des qtés est >= 10
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);
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) ;
L’insertion consiste à ajouter de nouvelles lignes dans une table. Elle peut
affecter toutes les colonnes d’une table ou seulement un sous-ensemble de ces
colonnes.
La forme générale de la commande d’insertion est la suivante :
Elle permet d’indiquer dans la commande les valeurs à insérer. Si la totalité des
colonnes de la table sont à insérer, il n’est pas nécessaire de les citer. La liste
des valeurs dans la clause VALUES doit correspondre à celle des colonnes à
insérer tant au niveau du nombre qu’au niveau de l’ordre et du type.
UPDATE table
SET colonne = valeur,...
WHERE condition ;