Beruflich Dokumente
Kultur Dokumente
Support de Cours
BASES DE DONNEES
labor par :
Public cible :
Informatique (Niveau 2)
Options : Informatique Rseaux & Informatique Industrielle
Version 2007
Avant propos
Pr requis
- Notion de fichier
- Notion de variables
Objectifs gnraux
A la fin de ce module, ltudiant doit tre capable de :
- Dcouvrir les concepts de base des bases de donnes.
Bases de donnes
30%
30%
40%
Tables de matires
CHAPITRE I : INTRODUCTION AUX BASES DE DONNEES ................................... 1
I. Introduction........................................................................................................ 2
II. Les systmes fichiers ..................................................................................... 2
II.1. Dfinition ....................................................................................................... 2
II.2. Limites........................................................................................................... 3
III. Les bases de donnes ...................................................................................... 3
III.1. Dfinition ...................................................................................................... 3
III.2. Types dutilisateurs de bases de donnes.......................................................... 4
IV. Les SGBD .......................................................................................................... 4
IV.1. 1. Dfinition................................................................................................... 4
IV.2. 2. Objectifs .................................................................................................... 4
IV.3. 3. Historique .................................................................................................. 5
V. Les niveaux dabstraction................................................................................... 5
V.1. Niveau externe ................................................................................................ 6
V.2. Niveau conceptuel ........................................................................................... 6
V.3. Niveau interne................................................................................................. 6
ANNEXES ............................................................................................. 1
BIBLIOGRAPHIE .................................................................................... 1
Chapitre :
I. Introduction
Toute entreprise (tablissements d enseignement, ministres, banques, agences de voyages, transport,
sant,
exploiter.
-
Stockage et organisation : saisir, insrer les informations et les enregistrer dans les
emplacements appropris dans le systme.
Manipulation : chercher, slectionner, mettre jour et supprimer les donnes archives dans le
systme.
Exploitation : rcuprer les donnes et les informations ncessaires afin de prendre une
dcision.
Au fil des annes, les quantits de donnes deviennent de plus en plus grandes. Certains experts (dans
le domaine des statistiques) estiment mme que le volume de donnes collectes par une entreprise
double tous les vingt mois.
Explosion vertigineuse du volume de donnes au sein des entreprises.
Recourir un moyen efficace de stockage, de manipulation et d exploitation de donnes.
Gestionnaire de fichiers : structur autour d un noyau appel analyseur, qui assure les fonctions de base,
savoir la cration/destruction des fichiers, lecture/criture d une suite d octets un certain
emplacement dans un fichier, l allocation de la mmoire, la localisation et la recherche des fichiers sur
les volumes mmoires.
Exemples :
Fiche
Fiche
Enseignants
Fiche
Salles
Etudiants
Fiche
Etudiants
Bibliothcaire
Fiche
Enseignants
Fiche
Ouvrages
Fiche
Etudiants
Directeur de foyer
Fiche
Chambres
Systme Fichiers
Figure 1. Organisation de donnes en systmes fichiers
II.2. Limites
Les systmes fichiers soulvent certaines limites savoir :
-
Redondance de donnes.
temps opportun.[ ]
Un espace de stockage.
Un logiciel permettant l accs aux donnes stockes pour la recherche et la mise jour de
information.
Etudiants
Enseignants
Ouvrages
Bibliothcaire
Chambres
Salles
Directeur
Administrateurs de bases de donnes : Ils grent la base (les accs, les droits des utilisateurs,
les sauvegardes, les restaurations,
Utilisateurs finaux : manipulent la base de donnes. Il est possible de distinguer des familles
utilisateurs avec des droits diffrents vis--vis de l accs la base. On suppose qu ils n ont
aucune connaissance sur les bases de donnes.
IV.2. 2. Objectifs
On distingue essentiellement trois fonctions des SGBD savoir :
-
En d autres termes, les objectifs d un SGBD peuvent tre rsums dans les points suivants :
-
Intgrit de donnes.
Manipulation facile de donnes : un utilisateur non informaticien peut manipuler simplement les
donnes.
Partage de donnes.
IV.3. 3. Historique
Jusqu aux annes 60 : Organisation classique en fichiers : systmes fichiers.
Sparation de la description des donnes de leur manipulation par les programmes d application.
(Exemples : Adabas,
Modles rseaux : modle pre fils, structure de graphes. (Exemples : SOCRATE, IIDS,
IDMS, IDS2, IMS2).
Enrichissement et simplification des SGBD afin de faciliter l accs aux donnes pour les
utilisateurs.
Dbut des annes 80 : Troisime gnration de SGBD bases sur des modles plus complexes [4] :
-
SGBD dductifs : modle logique, algbre boolenne, souvent avec un autre SGBD
(gnralement relationnel) qui gre le stockage, prsence d un moteur d infrence.
SGBD objets (SGBDOO) : modles inspirs des langages de programmation oriente objet
tels que Java, C++
Monde rel
Analyse
Indpendant
du SGBD
Spcifications
de la BD
Conception
Dpendant
du SGBD
Schma
conceptuel
Schma logique
Transformation
en modle
logique
Conception
physique
Schma
interne
Chapitre :
Le modle Entits/Associations
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Assimiler la smantique du modle Entits/Associations
- Utiliser le formalisme du modle Entits/Associations
- Distinguer entre les diffrents types dattributs
- Analyser une tude de cas donn
- Modliser en Entits/Associations
Plan du chapitre
I. Gnralits
II. Concepts de base
III. Associations et cardinalits
IV. Dmarche suivre pour produire un schma E/A.
Volume horaire
4 heures et demi
I. Gnralits
-
C est un modle conceptuel conu dans les annes 1970 qui rsulte des travaux de BACHMAN,
CHEN, TARDIEU.
Mise en
SGBD.
Notation : On prsente les attributs par des ellipses contenant leurs noms.
Exemples :
Nom
Prnom
CIN
Proprits :
-
Attribut compos : la valeur de l attribut est une concatnation des valeurs de plusieurs attributs
simples.
Exemple : Adresse (Rue, Code postal, Ville).
Attribut driv : la valeur de l attribut est calcule ou dduite partir des valeurs des autres
attributs.
Exemples : Age, Moyenne, Dure
Valeur nulle (NULL) : pour un attribut, c est une valeur non dfinie.
Exemple : Pour un client dont on ne connat pas sa date de naissance, l attribut date_naissance
prend la valeur NULL.
II.2. Entit
Dfinitions :
-
Un type d entit permet de dfinir de faon conceptuelle une entit dont tous les membres
partagent les mmes caractristiques. [5]
Une occurrence d entit est constitue par l ensemble des valeurs de chacune des proprits
un type d entit.
Exemple :
Type d entit : Personne
Occurrences :
Mohamed
Ben Salah
05652124
Ali
Ben Abdallah
07412148
Salah
Ben Ali
06457986
Identifiant d une entit : caractrise de faon unique les occurrences d un type d entit.
Exemple : L attribut CIN de l entit Personne : Toute personne a un seul N de carte d identit
nationale qui le distingue des autres.
Notation : Chaque entit est reprsente par un rectangle et doit avoir un identifiant qui doit tre
soulign.
Etudiant
CIN de l tudiant
Prnom de l tudiant
Nom de l tudiant
commande
produit
III.2. Cardinalits
Dfinition : Les associations sont caractrises par des cardinalits. La cardinalit M-N attache une
entit indique les nombres minimal et maximal d instance d associations pour une instance de cette
entit.
Remarque : Une cardinalit se lit dans le sens entit vers association.
Plusieurs (0 N)
0-1
Optionnel (0 ou 1)
1-N
Obligatoire (1 ou plus)
M-N
Limit (de M N)
Exemples :
-
Association 1-1 : Un client donn ne commande qu un seul produit. Un produit donn n est
command que par un seul client.
client
1-1
commande
1-1
produit
Association 0 ou 1-N : Un client donn commande plusieurs produits. Un produit donn n est
command que par un seul client.
client
1-N
commande
1-1
produit
Association M-N : Un client donn commande plusieurs produits. Un produit donn est
command par un ou plusieurs clients.
client
1-N
commande
1-N
produit
10
client
1-N
1-N
commande
date
produit
quantit
Remarques :
-
11
Solution :
Les diffrents attributs associs ces spcifications peuvent tre rsums comme suit :
Nom de l attribut
Dsignation de l attribut
numCl
numro du client.
nomCl
nom du client.
prenomCl
prnom du client.
datenaisCl
adrCl
adresse du client.
qtePc
dateCd
date de la commande
numPd
numro du produit.
designPd
dsignation du produit.
puPd
numFr
numro du fournisseur.
rsFr
emailFr
adrFr
adresse du fournisseur.
Attributs de l entit
Client
Produit
Fournisseur
Entits participantes
Attributs associs
commande
client et produit
qtePc, dateCd
fourniture
fournisseur et produit
12
rue
datenaisCl
numCl
codePostal
adrCl
Client
nomCl
1-N
prenomCl
qtePc
ville
commande
designPd
datCd
0-N
Produit
numPd
1-1
puPd
fourniture
0-N
Fournisseur
rue
codePostal
adrFr
numFr
rsFr
emailFr
ville
Figure 11. Modle E/A de l exemple illustratif
13
Chapitre :
Le modle relationnel
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Apprendre les notions de base du modle relationnel
- Identifier les correspondances avec le modle E/A
- Traduire un modle E/A en un modle relationnel
- Dgager les dpendances fonctionnelles
- Normaliser une relation
Plan du chapitre
I. Gnralits
II. Concepts de base
III. Traduction E/A - relationnel
IV. Les dpendances fonctionnelles
V. Normalisation
Volume horaire
3 heures
I. Gnralits
Dfinition : Le modle relationnel est un modle logique associ aux SGBD relationnels.
Exemples : Oracle, DB2, SQLServer, Access, Dbase,
Devenir un standard.
, An}.
, An)
II.2. Tuple
Dfinition : Un tuple est un ensemble de valeurs t=<V1 V2
Types :
-
Cl primaire : ensemble d attributs dont les valeurs permettent de distinguer les tuples les uns
des autres (identifiant).
Notation : la cl primaire doit tre souligne.
15
Chaque entit devient une relation. Les attributs de l entit deviennent attributs de la relation.
Chaque association 1-1 est prise en compte en incluant la cl primaire d une des relations
comme cl trangre dans l autre relation.
Chaque association 1-N est prise en compte en incluant la cl primaire de la relation dont la
cardinalit maximale est N comme cl trangre dans l autre relation.
Chaque association M-N est prise en compte en crant une nouvelle relation dont la cl primaire
et la concatnation des cls primaires des relations participantes. Les attributs de l association
sont insrs dans cette nouvelle relation.
III.2. Application
exemple du modle Entits/Associations labor dans le chapitre prcdent (Chapitre 2, IV.2. Exemple
illustratif) se traduit en modle relationnel comme suit :
CLIENT (numCl, nomCl, prenomCl, datenaisCl, adrCl)
PRODUIT (numPd, designPd, puPd, #numFr)
FOURNISSEUR (numFr, rsFr, emailFr, adrFr)
COMMANDE (#numCl, #numPd, dateCd, qtePc)
16
Dsi,
PrixUni
Remarque : Il est essentiel de bien remarquer qu une dpendance fonctionnelle (en abrg, DF) est une
assertion sur toutes les valeurs possibles et non pas sur les valeurs actuelles : elle caractrise une
intention et non pas une extension d une relation.
- Rflexivit : Y X X Y
- Augmentation : X Y XZ YZ
-
Transitivit : X Y et Y Z X Z
- Union : X Y et X Z X YZ
- Pseudo-transitivit : X Y et YW Z XW Z
- Dcomposition : X Y et Z Y X Z
L'intrt de ces axiomes et des proprits dduites est de pouvoir construire, partir d'un premier
ensemble de dpendances fonctionnelles, l'ensemble de toutes les dpendances fonctionnelles qu'elles
gnrent.
V. Normalisation
V.1. Objectifs de la normalisation
Exemple : Soit la relation COMMANDE_PRODUIT (NumProd, Quantite, NumFour, Adresse).
NumProd
101
Quantite
300
NumFour
901
Adresse
Av. Hbib Bourguiba
104
1000
902
Av. 7 Novembre
112
78
904
Rue 20 mars
103
250
901
Anomalies d insertion : Pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des
valeurs pour NumProd et Quantit.
Anomalies de suppression : La suppression du produit 104 fait perdre toutes les informations
concernant le fournisseur 902.
Exemple :
La relation CLIENT (NumCli, Nom, Prnom, DateNaiss, Rue, CP, Ville) est en 2FN.
La relation COMMANDE_PRODUIT(NumProd, Quantite, NumFour, Ville) n est pas en 2FN car
on a NumProd, NumFour
Quantit et NumFour
Ville.
Exemple :
La relation COMPAGNIE (Vol, Avion, Pilote) avec les DF :
Vol
Avion, Avion
Pilote et Vol
Pilote
18
Chapitre :
Lalgbre relationnelle
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Reconnatre lutilit des oprateurs ensemblistes et spcifiques
- Analyser des requtes plus ou moins complexes
- Appliquer les oprateurs appropris dans lexpression des requtes
Plan du chapitre
I. Dfinition
II. Oprateurs ensemblistes
III. Oprateurs spcifiques
IV. Exercice dapplication
Volume horaire
1 heures et demi
I. Dfinition
algbre relationnelle est dfinie comme tant l ensemble d oprateurs qui s appliquent aux relations.
Rsultat : nouvelle relation qui peut son tour tre manipule.
algbre relationnelle permet d effectuer des recherches dans les relations.
Notation :
T
R
S
Exemple : R et S sont les relations PRODUIT de deux socits qui fusionnent et veulent unifier leur
catalogue.
R
NumProd
DesigProd
PrixProd
NumProd
DesigProd
PrixProd
Produit1
100
Produit3
500
Produit2
200
Produit2
200
NumProd
DesigProd
PrixProd
Produit1
100
Produit2
200
Produit3
500
Alors :
T=RUS
II.2. Intersection
Dfinition :
T=R
S ou T=INTERSECT(R, S) contient les tuples qui appartiennent la fois aux deux relations R et
S.
R et S doivent avoir mme schma.
Notation :
20
T=R
NumProd
DesigProd
PrixProd
Produit2
200
II.3. Diffrence
Dfinition :
T=R
Notation :
NumProd
DesigProd
PrixProd
NumProd
DesigProd
PrixProd
Produit1
100
Produit2
200
Produit2
200
NumProd
DesigProd
PrixProd
Produit1
100
Alors :
T=R-S
II.4. Division
Dfinition :
T = R S ou T = DIVISION(R,S)
O R(A1, A2,
T(A1, A2,
, An) et S(Ap+1,
, An)
, Ap) contient tous les tuples tels que la concatnation chacun des tuples de S donne
toujours un tuple de R.
Notation :
T
21
NumProd
DesigProd
PrixProd
DesigProd
Produit1
100
Produit2
Produit2
200
Alors :
T=RS
NumProd
PrixProd
100
Notation :
T
X
R
Exemple :
NumProd
DesigProd
PrixProd
NumFour
Produit1
100
Produit2
200
NumProd
DesigProd
PrixProd
NumFour
Produit1
100
Produit2
200
Alors :
T=RS
22
Notation :
T
A, B, C
R
Exemple : Nom et prnom des clients.
R
numCli
prenomCli
nomCli
Salah
Ben Salah
Ali
Ben Ali
Alors :
T = PROJECT(R / prenomCli, nomCli)
prenomCli
nomCli
Salah
Ben Salah
Ali
Ben Ali
III.2. Restriction
Dfinition :
T= <C > (R) ou T=RESTRICT(R / C)
T ne contient que les attributs de R qui satisfont la condition C.
Notation :
T
23
R
numCli
prenomCli
nomCli
Salah
Ben Salah
Ali
Ben Ali
Alors :
prenomCli
nomCli
Ali
Ben Ali
III.3. Jointure
Dfinition :
T=R >< S ou T=JOIN(R, S)
Produit cartsien R X S et Restriction A=B sur les attributs A de R et B de S.
Notation :
T
R.A
S.B
Etudiant
Classe
NumClass
NumClass
NomClass
Ben Salah
PrenomEtu
d
Salah
Info11
Ben Ali
Ali
Info12
NumEtud
NomEtud
1
2
Alors :
Etudiant
NumEtud
NomEtud
Ben Salah
Ben Ali
PrenomEtu
d
Salah
NumClass
NomClass
Info11
Ali
Info12
24
25
Chapitre :
Le langage SQL
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Apprendre crer une base de donnes en tenant compte des contraintes
dintgrit
- Savoir ajouter, modifier, supprimer des enregistrements dune table
- Construire des requtes dinterrogations correspondant des critres plus ou
moins complexes
- Appliquer des droits daccs une base de donnes
Plan du chapitre
I. Prsentation de SQL
II. Dfinition de donnes
III. Manipulation de donnes
IV. Interrogation de donnes
V. Contrle de donnes
Volume horaire
6 heures
I. Prsentation de SQL
SQL signifie Structured Query Language est le langage des bases de donnes relationnelles rpandant
la fois aux problmatiques de cration des objets de base de donnes (modle), de manipulation des
donnes (algbre relationnelle), de gestion de la scurit (droits d accs), de traitements locaux de
donnes (procdures).[7]
Il s agit d un langage non procdural qui a t conu par IBM dans les annes 70. Il est devenu le
langage standard des systmes de gestion de bases de donnes relationnelles (SGBDR) depuis 1986.
Il est utilis par les principaux SGBDR du march : Oracle, SQL Server, MySQL, Access, DB2,
Remarque : Il existe plusieurs implmentations de SQL chez les principaux diteurs (Voir Annexes).
Dans le reste de ce chapitre, l implmentation utilise est celle du SGBD Oracle.
);
Type des donnes : [8]
-
Contraintes d intgrit
Dfinition : Dans la dfinition d une table, on peut indiquer des contraintes d intgrit portant sur
une ou plusieurs colonnes.
Les contraintes possibles sont : UNIQUE, PRIMARY KEY, FOREIGN KEY
REFERENCES et
CHECK.
Chaque contrainte doit tre nomme pour pouvoir la mettre jour ultrieurement.
Cration :
- CONSTRAINT nom_contrainte UNIQUE (colonne1, colonne2,
) : interdit qu une
27
) : l ensemble des
- CONSTRAINT
nom_contrainte
CHECK
(condition) :
contrainte
on
doit
Exemple :
CREATE TABLE CLASSE (
NUMCLASSE NUMBER(5),
NOMCLASSE VARCHAR2(10)
);
Exemple : Etant donn l entit ETUDIANT, si on souhaite la renommer par STUDENT, on crit :
RENAME ETUDIANT
TO STUDENT ;
28
Remarque : Attention, la suppression d une table engendre la perte des donnes qu elle contient.
Exemple : Pour supprimer la table ETUDIANT ainsi que son contenu, on fait recours l instruction :
DROP TABLE ETUDIANT ;
);
Exemple : Etant donn la table Commande, l ajout du champ Montant cette table revient crire :
ALTER TABLE COMMANDE
ADD (MONTANT NUMBER(10,3)) ;
Modification des attributs : Aprs avoir cr la base de donnes, on peut modifier le type d un attribut en
utilisant l instruction suivante :
ALTER TABLE nom_table
MODIFY (attribut type,
);
Exemple : Modifier le nombre de chiffres du champ Montant de la table Commande ncessite le recours
l instruction :
ALTER TABLE COMMANDE
MODIFY (MONTANT NUMBER(12,3)) ;
Ajout de contraintes : Aprs avoir cr la base de donnes, on peut ajouter une nouvelle contrainte
intgrit grce l instruction suivante :
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte definition_contrainte ;
Exemple : Ajouter une contrainte la table Commande qui permet d obliger des insertions de montants
positifs
ALTER TABLE COMMANDE
ADD CONSTRAINT CK_MONTANT CHECK(MONTANT >= 0) ;
Suppression de contraintes : Pour supprimer une contrainte, on procde comme indique la syntaxe de
cette instruction :
ALTER TABLE nom_table
DROP CONSTRAINT nom_contrainte ;
29
);
Exemple : Etant donn la table Etudiant(NCE, nom, prenom, ville). Si on souhaite insrer les
informations d un nouvel tudiant disposant des informations suivantes (1234, Ben Salah, Salah,
Djerba), on crit :
INSERT INTO ETUDIANT
VALUES (1234, BEN SALAH , SALAH , DJERBA ) ;
Exemple : Etant donn la table Etudiant (NCE, nom, prenom, ville). Si jamais l tudiant Salah Ben Salah
habite maintenant Tunis, on crit dans ce cas :
UPDATE ETUDIANT
SET VILLE= TUNIS
WHERE NCE=1234 ;
30
];
IV.2. Projection
Tous les attributs d une table :
SELECT *
FROM nom_table ;
Remarque : Il est possible de mettre le mot cl facultatif DISTINCT derrire l ordre SELECT. Il permet
liminer les duplications : si, dans le rsultat, plusieurs lignes sont identiques, une seule sera
conserve.
Quelques attributs :
SELECT attribut1, attribut2,
FROM nom_table ;
IV.3. Restriction
Les restrictions se traduisent en SQL l aide du prdicat WHERE comme suit :
SELECT attribut1, attribut2,
FROM nom_table
WHERE predicat ;
31
32
et contenant au moins 2
caractres.
SELECT *
FROM ETUDIANT
WHERE NOM LIKE A_% ;
Le prdicat est vrai si exp1 est gale l une des expressions de la liste entre parenthses.
Exemple : Liste des tudiants ayant les prnoms appartenant la liste (Ali, Salah, Bechir)
SELECT *
FROM ETUDIANT
WHERE PRENOM IN ( ALI , SALAH , BECHIR ) ;
Remarque :
On peut trouver, de mme, les ngations des prdicats BETWEEN, NULL, LIKE, IN, EXISTS savoir :
NOT BETWEEN, NOT NULL, NOT LIKE, NOT IN et NOT EXISTS.
IV.4. Tri
Les lignes constituant le rsultat d un SELECT sont obtenues dans un ordre indtermin. La clause
ORDER BY prcise l ordre dans lequel la liste des lignes slectionnes sera donne.
Syntaxe :
33
Exemple : Liste des tudiants ordonns par ordre croissant des NCE et dcroissant des noms
SELECT *
FROM ETUDIANT
ORDER BY NCE, NOM Desc;
IV.5. Regroupement
IV.5.1. La clause GROUP BY
Il est possible de subdiviser une table en groupes, chaque groupe tant l ensemble de lignes ayant une
valeur commune.
Syntaxe :
GROUP BY exp1, exp2,
Cette clause groupe en une seule ligne toutes les lignes pour lesquelles exp1, exp2,
ont la mme
valeur.
Remarques :
-
Cette clause se place juste aprs la clause WHERE, ou aprs la clause FROM si la clause
WHERE n existe pas.
Des lignes peuvent tre limines avant que le groupe ne soit form grce la clause WHERE.
Exemples :
Liste des dpartements ainsi que le nombre de leurs employs
SELECT DEPT, COUNT(*)
FROM EMP
GROUP BY DEPT;
Liste des dpartements ainsi que le nombre de leurs secrtaires
SELECT DEPT, COUNT(*)
FROM EMP
WHERE POSTE = SECRETAIRE
GROUP BY DEPT;
34
Remarque : Le prdicat suit la mme syntaxe que celui de la clause WHERE. Cependant, il ne peut
porter que sur des caractristiques de groupe (fonctions de groupe ou expression figurant dans la clause
GROUP BY)
Exemple :
SELECT DEPT, COUNT(*)
FROM EMP
WHERE POSTE = SECRETAIRE
GROUP BY DEPT
HAVING COUNT(*) > 1 ;
IV.6.2. Diffrence
oprateur MINUS permet d ter d une slection les lignes obtenues dans une deuxime slection.
Exemple : Liste des dpartements qui ont des employs dans la premire filiale mais pas dans la
deuxime
SELECT DEPT FROM EMP1
MINUS
SELECT DEPT FROM EMP2;
IV.6.3. Intersection
oprateur INTERSECT permet d obtenir l ensemble des lignes communes deux interrogations.
Exemple : Liste des dpartements qui ont des employs dans les deux filiales
SELECT DEPT FROM EMP1
INTERSECT
SELECT DEPT FROM EMP2;
35
IV.7. Jointure
IV.7.1. Dfinition
Quand on prcise plusieurs tables dans la clause FROM, on obtient le produit cartsien des tables.
Le produit cartsien de deux tables offre en gnral peu d intrt.
Ce qui est normalement souhait, c est de joindre les informations de diverses tables, en prcisant
quelles relations les relient entre elles. C est la clause WHERE qui permet d obtenir ce rsultat. Elle
vient limiter cette slection en ne conservant que le sous-ensemble du produit cartsien qui satisfait le
prdicat.
Exemple : Liste des noms des tudiants avec les noms de leurs classes
SELECT NOMETUDIANT, NOMCLASSE
FROM ETUDIANT, CLASSE
WHERE ETUDIANT.NUMCLASSE = CLASSE.NUMCLASSE ;
IV.7.2. Jointure dune table elle mme
Il peut tre utile de rassembler des informations venant d une ligne d une table avec des informations
venant d une autre ligne de la mme table.
Dans ce cas, il faut renommer au moins l une des deux tables en lui donnant un synonyme, afin de
pouvoir prfixer sans ambigut chaque nom de colonne.
Exemple : Lister les employs qui ont un suprieur en indiquant pour chacun le nom de son suprieur
SELECT EMP.NOME EMPLOYE, SUPE.NOME SUPERIEUR
FROM EMP, EMP SUPE
WHERE EMP.SUP = SUPE.MATR ;
V. Contrle de donnes
V.1. Gestion des utilisateurs
Tout accs la base de donnes s effectue par l intermdiaire de la notion d utilisateur (compte Oracle).
Chaque utilisateur est dfini par :
-
un nom d utilisateur
un mot de passe
un ensemble de privilges
V.1.1. Cration dun utilisateur
Syntaxe : Pour crer un utilisateur, on doit spcifier le nom de l utilisateur ainsi que le mot de passe via
instruction :
CREATE USER utilisateur IDENTIFIED BY mot_de_passe ;
Exemple :
CREATE USER ALI IDENTIFIED BY Ae3OPd ;
36
Exemple :
CREATE USER ALI IDENTIFIED BY A23ePs ;
utilisation de CASCADE signifie que la suppression de l utilisateur est accompagn par la suppression
de tous les schmas qu il a cr.
Exemple :
DROP USER Ali CASCADE ;
Remarque : Des droits peuvent tre accords tous les utilisateurs par un seul ordre GRANT en utilisant
le mot rserv PUBLIC la place du nom d utilisateur.
Principaux Privilges :
SELECT : lecture
INSERT : insertion
UPDATE : mise jour
DELETE : suppression
DBA, ALL : tous les privilges
Si la clause WITH GRANT OPTION est spcifie, le bnficiaire peut son tour assigner le privilge
qu il a reu d autres utilisateurs.
Exemples :
GRANT SELECT
37
Syntaxe :
REVOKE privilge
[ON table]
FROM utilisateur ;
Exemples :
REVOKE SELECT
ON ETUDIANT
FROM Ali ;
38
Annexes
Annexes
Annexe II : La normalisation
Annexe II : La normalisation
I. Intrt de la normalisation dans la conception de base de donnes
Ensemble de
relations bien conues
Seconde
approche
Utilisation de la normalisation en
tant qu une technique de
validation, pour vrifier la structure
de relations.
Premire
approche
Utilisation de la normalisation
Comme une technique montante
pour crer un ensemble de
relations.
Annexe II : La normalisation
Sources de donnes
Utilisateurs
Spcification des
exigences des
utilisateurs
Formulaires utiliss et
tats gnrs au sein
de l entreprise
Oracle
IBM DB2
SQL Server
PostGreSQL
MySQL
CHAR
Oui
Oui
Oui
Oui
Oui
VARCHAR
Oui
Oui
Oui
Oui
Oui
NCHAR
Oui
GRAPHIC[(n)]
Oui
Non
Oui
NVARCHAR
Oui
VARGRAPHIC[(n)]
Oui
Non
Oui
CLOB
Oui
Oui
TEXT
TEXT
LONGTEXT
NCLOB
Oui
Non
NTEXT
Non
Non
DATE
Oui
Oui
Non
Oui
Oui
TIME
Non
Oui
Non
Oui
Oui
TIMESTAMP
Oui
Oui
DATETIME
Oui
DATETIME(2)
INTERVAL
TIME WITH TIME
ZONE
TIME STAMP
WITH TIME
ZONE
BIGINT
Oui
Non
Non
(1)
Non
Non
Non
Non
Oui
Non
Oui
Non
Non
Oui
Non
Oui
Oui
Oui
Oui
Oui
INTEGER
NUMBER
Oui
Oui
Oui
Oui
SMALLINT
Oui
Oui
Oui
Oui
Oui
FLOAT
Oui
Oui
Oui
Non
Oui
REAL
DOUBLE
PRECISION
NUMERIC
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Oui
Oui
Oui
NUMERIC
Oui
Oui
Oui
DECIMAL
Oui
Non
Non
Oui
Oui
BIT
Non
Non
Oui
Non
BIT VARYING
RAW
Non
Oui
Non
BOOLEAN
Non
Non
BINARY
VAR
BINARY
BIT
Oui
Non
BLOB
Oui
Oui
IMAGE
Non
LONGBLOB
LOCATOR
Non
Oui
Non
Non
Non
DATALINK
Non (3)
Oui
Non
Non
Non
MULTISET
Non (4)
Non
Non
Non
Non
XML
Oui (5)
Oui
Oui
Non
Non
Oracle
IBM DB2
MS SQL Server
PostGreSQL
MySQL
Base
128
63
64 (1)
Table, vue
30
128
128
63
64 (1)
Colonne
30
30
128
63
64
Contrainte
30
18
128
63
64
Index
30
128
128
63
64
I. Fonctions arithmtiques
ABS(n) : valeur absolue de n
MOD(n1, n2) : n1 modulo n2
POWER(n, e) : n la puissance e
ROUND(n[,p]) : arrondit n la prcision p (0 par dfaut)
SIGN(n) : -1 si n< 0, 0 si n=0 et 1i n>0
SQRT(n) : racine carr de n
TO_CHAR(n, format) : convertit n en chane de caractres
TRUNC(n[,p]) : tronque n la prcision p (0 par dfaut)
GREATEST(n1, n2,
LEAST(n1, n2,
], defaut)
permet de choisir une valeur parmi une liste d expressions, en fonction de la valeur prise par une
expression servant de critre de slection : elle prend la valeur res1 si l expression crit a la valeur val1,
prend la valeur res2 si crit a la valeur val2,
val1, val2,
numrique, ou caractre et date (le rsultat est du type de la premire expression rencontre dans le
DECODE).
Les expressions val et res peuvent tre soit des constantes, soit des colonnes ou mme des expressions
rsultats de fonctions.
LENGTH(chane)
prend comme valeur la longueur de la chane.
UPPER(chane)
convertit les minuscules en majuscules
LOWER(chane)
convertit les majuscules en minuscules
LTRIM(chane, car)
supprime les caractres l extrmit gauche de la chane "chane" tant qu ils appartiennent l ensemble
de caractres "car".
RTRIM(chane, car)
fonction analogue LTRIM mais, les caractres tant supprims l extrmit droite de la chane.
TO_CHAR
La fonction TO_CHAR permet de convertir un nombre ou une date en chane de caractre en fonction
un format :
Pour les nombres : TO_CHAR(nombre, format)
nombre est une expression de type numrique
format est une chane de caractre pouvant contenir les caractres suivants :
-
MM : numro du mois
MI : minutes
Tout caractre spcial insre dans le format sera reproduit dans la chane de caractres rsultat. On
peut galement insrer dans le format une chane de caractres quelconque, condition de la placer
entre guillemets.
TO_NUMBER(chane)
convertit une chane de caractres en nombre (quand la chane de caractres est compose de
caractres numriques)
ASCII(chane)
donne le code ASCII du premier caractre de chane.
CHR(n)
donne le caractre de code ASCII(n)
TO_DATE(chane, format)
permet de convertir une chane de caractres en donne de type date. Le format est identique celui de
la fonction TO_CHAR.
TRUNC(date, prcision)
SYSDATE
a pour valeur la date et l heure courante du systme d exploitation hte.
NVL(exp, val)
permet de remplacer une valeur NULL de exp du par une valeur par dfaut val
Bibliographie
Bibliographie
[2] Thomas CONNOLLY, Carolyn BEGG Systmes de bases de donnes. Approche pratique de
la conception, de l implmentation et de l administration (cours et exercices)
Les ditions
[4] Pierre CRESCENZO Support de cours magistraux de Bases de donnes disponible sur le
site : http://www.crescenzo.nom.fr/CMBasesDeDonnees visit le 12/04/2007.
[5] Pierre CARRIER, Rmy HUDON, Suzanne JEAN Bases de donnes dans le dveloppement
de systmes Gatan Morin 1991.
[7] Frdric BROUARD, Christian SOUTOU SQL : Synthse de cours & exercices corrigs.
Collection Synthex. Pearson Education 2005.