You are on page 1of 40

1/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Introduction aux Bases de donnes et SQL


Bibliographies: Pour la premire partie de ce cours, une revue littraire a t ralise partir des
documents mentionns ci-dessous. Comme la premire partie n'est qu'un bref aperu sur les Bases de
donnes et SQL, je nai extrait donc que quelques transparents par ci par l. De ce fait, je vous
encourage jeter un coup d'il sur chacun des documents pour avoir une vue plus profonde sur la
question. Le document cdb.pdf devra passer en premier car c'est des notes de cours avec des
explications dtailles.
Les Bdds & SQL

http://dept25.cnam.fr/BDA/DOC/cbd.pdf
http://deptinfo.unice.fr/~grin/messupports/trsgbd.pdf
Plusieurs transparents ont t extraits de ce lien:
http://dept25.cnam.fr/BDA/SLIDES/

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

2/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Dfinitions
"Une base de donnes est un ensemble structur de donnes
enregistres dans un ordinateur et accessibles de faon slective
par plusieurs utilisateurs."
mmoire centrale

"Une base de donnes =


- un (gros) ensemble d'informations
- stockes sur disque:
o) persistance
o) espace de stockage"

entres/
sorties
espace de
stockage

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

3/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Cette dfinition suppose que nous pouvons organiser cette base en


un (ou plusieurs) fichier(s) stocks sur mmoire.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

4/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Cette approche pose certains problmes:


1. "Lourdeur d'accs aux donnes. En pratique, pour chaque accs,
mme le plus simple, il faudrait crire un programme."
2. "Manque de scurit. Si tout programmeur peut accder
directement aux fichiers, il est impossible de garantir la scurit
et l'intgrit des donnes."
3. "Pas de contrle de concurrence. Dans un environnement o
plusieurs utilisateurs accdent aux mmes fichiers, des
problmes de concurrence d'accs se posent."
Solution => SGBD!

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

5/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Systme de Gestion de Base de Donnes (SGBD) (Database

Management System: DBMS)

"Un logiciel qui permet d'interagir avec une base de donnes


s'appelle un systme de gestion de base de donnes"

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

6/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Les fonctionnalits d'un SGBD sont


- "Dcrire les donnes qui seront stockes"
- "Manipuler ces donnes (ajouter, modifier, supprimer des
informations)"
- "Consulter les donnes et traiter les informations obtenues
(slectionner, trier, calculer, agrger,...)"
- "Dfinir des contraintes d'intgrit sur les donnes (contraintes
de domaines, d'existence,... )"
- "Dfinir des protections d'accs (mots de passe, autorisations,...)"

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

7/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

- "Rsoudre les problmes d'accs multiples aux donnes


(blocages, interblocages)"
- "Prvoir des procdures
(sauvegardes, journaux,...)"

de

reprise

en

cas

d'incident

"En rsum, un SGBD est destin grer un gros volume


d'informations, persistantes (annes) et fiables (protection sur
pannes), partageables entre plusieurs utilisateurs et/ou programmes
et manipules indpendamment de leur reprsentation physique."

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

8/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

9/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

10/40

entits

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

11/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

12/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

13/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

14/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

15/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

16/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

17/40

Le modle relationnel

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

18/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

19/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

20/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

21/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

22/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

23/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

24/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

25/40

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

26/40

Le langage SQL
"SQL (Structured Query Langage ou bien Langage de requte
structur) est un langage dclaratif, permet d'interroger une base de
donnes sans se soucier de:
la reprsentation interne (physique) des donnes, de leur
localisation, des chemins d'accs, ou des algorithmes
ncessaires."
"SQL s'adresse une large communaut d'utilisateurs potentiels
(pas seulement des informaticiens) et constitue un des atouts les
plus spectaculaires (et le plus connu) des SGBDR (R pour
Relationnelle)."
dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

27/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

"SQL peut tre utilis:


- manire interactive,
- en association avec des interfaces graphiques,
- ou, trs gnralement, des langages de programmation."
"SQL ne permet pas de faire de la programmation au sens courant
du terme (faire une boucle par exemple) et doit donc tre associ
avec un langage comme le C, le COBOL ou JAVA pour raliser
des traitements complexes accdant une base de donnes."

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

28/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Requtes simples SQL


NomStation
Venusa
Farniente
Santalba
Passac

capacit lieu

350
200
150
400

Guadeloupe
Seychelles
Martinique
Alpes

rgion

Antilles
Ocan Indien
Antilles
Europe

La table Station

NomStation

Les stations
et leurs activits

Venusa
Venusa
Farniente
Passac
Passac
Santalba

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

Libell

Voile
Plonge
Plonge
Ski
Piscine
Kayac

tarif

1200
1500
2000
1000

Prix

150
120
130
200
20
50

La table Activit

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

29/40

SELECT NomStation FROM Station WHERE region = Antilles

Ce premier exemple montre la structure de base d'une requte


SQL, avec les trois clauses SELECT, FROM et WHERE.
FROM indique la (ou les) tables dans lesquelles on trouve les
attributs utiles la requte. Un attribut peut tre utile de deux
manires (non exclusives) :
(1) on souhaite afficher son contenu,
(2) on souhaite qu'il ait une valeur particulire (une constante
ou la valeur d'un autre attribut).
Il est obligatoire avec SELECT.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

30/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

SELECT indique la liste des attributs constituant le rsultat.


WHERE indique les conditions que doivent satisfaire les n-uplets
de la base pour faire partie du rsultat.
Pour afficher l'intgralit d'une table, et avoir ainsi toutes les lignes
(on omet la clause WHERE), et toutes les colonnes, on peut au
choix lister tous les attributs ou utiliser le caractre * qui a la
mme signification.
SELECT * FROM NomTable
SELECT * FROM Station

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

31/40

* remplace tous les attributs (champs) de la table Station. de ce


fait la table station est reproduite.
SELECT NomStation, capacit FROM Station

On rcupre les deux colonnes de la table Station.


SELECT NomStation FROM Station WHERE region = Antilles

WHERE critre
NomStation
Venusa
Santalba

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

32/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

SELECT libelle, prix / 6.56, Cours de l'euro = , 6.56


FROM Activite
WHERE nomStation = Santalba

libelle
Kayac

prix / 6.56
7.62

Cours de l'euro =
Cours de l'euro =

6.56
6.56

SELECT libelle FROM Activite

donnera autant de lignes dans le rsultat que dans la table Activite.


libelle
Voile
Plongee
Plongee
Ski
Piscine
Kayac
dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

33/40

Tri du rsultat
Nous utilisons la clause ORDER BY pour trier les rsultats d'une
requte. Cette clause doit tre suivie de la liste des attributs servant
de critre au tri. Exemple :
SELECT * FROM Station ORDER BY tarif, nomStation

"Trie, en ordre ascendant, les stations par leur tarif, puis, pour un
mme tarif, prsente les stations selon l'ordre lexicographique.
Pour trier en ordre descendant, on ajoute le mot-cl DESC aprs la
liste des attributs."
WHERE

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

34/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

"Dans la clause WHERE, on spcifie une condition boolenne


portant sur les attributs des relations du FROM. On utilise pour
cela de manire standard le AND, le OR, le NOT et les parenthses
pour changer l'ordre de priorit des oprateurs boolens. Par
exemple :
SELECT nomStation, libelle
FROM Activite
WHERE nomStation = Santalba AND (prix >= 50 AND prix <= 120)

Les oprateurs de comparaison:

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

35/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Pour obtenir une recherche par intervalle, on peut galement


utiliser le mot-cl BETWEEN. La requte prcdente est
quivalente :
SELECT nomStation, libelle
FROM Activite
WHERE nomStation = Santalba AND prix BETWEEN 50 AND 120

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

36/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Pour crer une table, on utilise linstruction CREATE TABLE.


CREATE TABLE Station (nomStation VARCHAR (30) NOT NULL,
capacite INT NOT NULL,
lieu
VARCHAR(30) NOT NULL,
region VARCHAR (30),
tarif FLOAT (10,2) DEFAULT 0,
CONSTRAINT cle_station PRIMARY KEY (nomStation),
CONSTRAINT cle_lieu_region UNIQUE (lieu, region),
CONSTRAINT nom_region
CHECK (region IN ('Ocean Indien',
'Antilles', 'Europe',
'Ameriques', 'Extreme Orient'))
);
Dans linstruction, on peut dfinir les contraintes qui seront vrifies par le
SGBD.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

37/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Par exemple, la contrainte nomme cle_station, utilisant la clause PRIMARY


KEY, indique que nomStation est la cl primaire, donc ne peut tre nulle et sa
valeur doit tre unique.
La contrainte nomme nom_region dfinie un domaine de valeurs possibles pour
le champ region grce la clause CHECK.
La clause NOT NULL permet dimposer une contrainte dexistence.
La clause UNIQUE permet dinterdire les doublons, ce qui est utile pour
imposer lunicit des valeurs dans les champs qui ne sont pas une cl primaire.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

38/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

CREATE TABLE Activite (nomStation VARCHAR (30) NOT NULL,


libelle VARCHAR(30) NOT NULL,
prix
FLOAT (10,2) DEFAULT 0,
PRIMARY KEY (nomStation, libelle),
FOREIGN KEY (nomStation) REFERENCES Station
ON DELETE CASCADE
);
La clause FOREIGN KEY permet de spcifier une cl trangre, cest--dire, le
champ qui fait le lien avec la cl primaire dune autre table. Cette clause va
permettre de faire respecter lintgrit rfrentielle, en effet, toute nouvelle
insertion dans cette table devra avoir une valeur dans ce champ (ici, nomStation)
qui se trouve dans la cl primaire de la table lie (ici, Station).
Remarque : En MySQL, il y a plusieurs types de tables, le type par dfaut est
MyISAM, ce type ne gnre pas derreur si, lors dune insertion, lintgrit
rfrentielle nest pas respecte, il faut utiliser le type INNODB pour les 2 tables
en liaisons et sassurer que la cl trangre est indexe.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

- IFT1177 Chiffriers, Bases de Donnes Complments -

39/40

ON DELETE CASCADE indique le traitement faire lors dune opration


affectant lintgrit rfrentielle (DELETE ou UPDATE), loption CASCADE
indique que la mme opration doit tre applique sur les enregistrements dont
la cl trangre correspond la cl primaire de lenregistrement touch. Lautre
option disponible, SET NULL.
Concrtement, si une station de la table Station est supprime, tous les
enregistrements de la table Activite qui avait la mme valeur dans leurs cls
trangres seront aussi supprims.
Pour supprimer une table, utilisez linstruction DROP TABLE.
Par exemple, DROP TABLE Station va supprimer la table Station et, comme la
table Activite contient la clause ON DELETE CASCADE, cette dernire sera
vide (mais non supprime).

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

40/40

- IFT1177 Chiffriers, Bases de Donnes Complments -

Pour ajouter un enregistrement dans une table, on utilise linstruction INSERT.


INSERT INTO Station (NomStation, Capacite, Lieu, Region, tarif)
VALUES ('Venusa',350,'Guadeloupe','Antilles',1200);
Ou encore :
INSERT INTO Station VALUES ('Venusa',350,'Guadeloupe','Antilles',1200);
La seconde forme ne peut tre utilise que si des valeurs sont spcifies pour
chaque champ et ce, dans lordre de dclaration dans la table.
Une valeur qui serait omise (dans la premire forme) se verrait affecter la valeur
NULL.

dans un dsordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin

v1.01

Bases de donnes

You might also like