jdbc - iro.umontreal.ca · i f t 1 1 7 6 u-a s p e c t s a v a n c é s e n j a v a- d a n s t u n...

18
- IFT1176 - Aspects avancés en Java - dans un désordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin … v1.01 JDBC – 1ère partie - 1/35 JDBC (1ere partie) Bibliographies: Pour la première partie de ce cours, une revue littéraire a été réalisée à partir des documents mentionnés ci-dessous. Comme la première partie n'est qu'un bref aperçu sur les Bases de données et SQL, je n’ai extrait donc que quelques transparents par ci par là. De ce fait, je vous encourage à jeter un coup d'oeil 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 détaillées. Site web officiel de SUN sur les JDBC: http://java.sun.com/products/jdbc Les Bdds & SQL http://cortes.cnam.fr:8080/BDA/DOC/cbd.pdf http://deptinfo.unice.fr/~grin/messupports/trsgbd.pdf Plusieurs transparents ont été extraits de ce lien: http://cortes.cnam.fr:8080/BDA/SLIDES/ - IFT1176 - Aspects avancés en Java - dans un désordre total: M.N. Lokbani, P. Rigaux, H. Chastel, R. Grin … v1.01 JDBC – 1ère partie - 2/35 Définitions "Une base de données est un ensemble structuré de données enregistrées dans un ordinateur et accessibles de façon sélective par plusieurs utilisateurs." "Une base de données = - un (gros) ensemble d'informations - stockées sur disque: o) persistance o) espace de stockage" mémoire centrale entrées/ sorties espace de stockage

Upload: dinhtu

Post on 11-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

1/35

JD

BC

(1ere partie) B

ibliographies: Pour la première partie de ce cours, une revue littéraire a été réalisée à partir des

documents m

entionnés ci-dessous. Com

me la prem

ière partie n'est qu'un bref aperçu sur les Bases de

données et SQL

, je n’ai extrait donc que quelques transparents par ci par là. De ce fait, je vous

encourage à jeter un coup d'œil sur chacun des docum

ents pour avoir une vue plus profonde sur la question. L

e document cdb.pdf devra passer en prem

ier car c'est des notes de cours avec des explications détaillées. Site w

eb officiel de SUN

sur les JDB

C: http://java.sun.com

/products/jdbc L

es Bdds &

SQL

http://cortes.cnam

.fr:8080/BD

A/D

OC

/cbd.pdf http://deptinfo.unice.fr/~grin/m

essupports/trsgbd.pdf P

lusieurs transparents ont été extraits de ce lien: http://cortes.cnam

.fr:8080/BD

A/S

LID

ES/

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

2/35

Définitions

"Une

base de

données est

un ensem

ble structuré

de données

enregistrées dans un ordinateur et accessibles de façon sélective par plusieurs utilisateurs." "U

ne base de données =

- un (gros) ensem

ble d'informations

- stockées sur disque:

o) persistance

o) espace de stockage"

mém

oire centrale

entrées/sorties

espace de stockage

Page 2: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

3/35

Cette définition suppose que nous pouvons organiser cette base en

un (ou plusieurs) fichier(s) stockés sur mém

oire.

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

4/35

Cette approche pose certains problèm

es: 1. "L

ourdeur d'accès aux données. En pratique, pour chaque accès,

mêm

e le plus simple, il faudrait écrire un program

me."

2. "Manque

de sécurité.

Si tout

programm

eur peut

accéder directem

ent aux fichiers, il est impossible de garantir la sécurité

et l'intégrité des données." 3. "Pas de contrôle de concurrence. D

ans un environnement où

plusieurs utilisateurs

accèdent aux

mêm

es fichiers,

des problèm

es de concurrence d'accès se posent." Solution =

> SG

BD

!

Page 3: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

5/35

Système

de G

estion de

Base

de D

onnées (SG

BD

) (D

atabase M

anagement System

: DB

MS)

"Un logiciel qui perm

et d'interagir avec une base de données s'appelle un systèm

e de gestion de base de données"

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

6/35

Les fonctionnalités d'un S

GB

D sont

- "Décrire les données qui seront stockées"

- "Manipuler

ces données

(ajouter, m

odifier, supprim

er des

informations)"

- "Consulter

les données

et traiter

les inform

ations obtenues

(sélectionner, trier, calculer, agréger,...)" - "D

éfinir des contraintes d'intégrité sur les données (contraintes de dom

aines, d'existence,... )" - "D

éfinir des protections d'accès (mots de passe, autorisations,...)"

Page 4: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

7/35

- "Résoudre

les problèm

es d'accès

multiples

aux données

(blocages, interblocages)" - "Prévoir

des procédures

de reprise

en cas

d'incident (sauvegardes, journaux,...)"

"En

résumé,

un SG

BD

est

destiné à

gérer un

gros volum

e d'inform

ations, persistantes

(années) et

fiables (protection

sur pannes), partageables entre plusieurs utilisateurs et/ou program

mes

et manipulées indépendam

ment de leur représentation physique."

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

8/35

Page 5: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

9/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

10/35

en

ti

s

Page 6: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

11/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

12/35

Page 7: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

13/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

14/35

Page 8: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

15/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

16/35

Page 9: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

17/35

Le m

odèle relationnel

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

18/35

Page 10: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

19/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

20/35

Page 11: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

21/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

22/35

Page 12: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

23/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

24/35

Page 13: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

25/35

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

26/35

Le langage SQ

L

"SQL

(Structured Query L

angage ou bien Langage de requête

structuré) est un langage déclaratif, permet d'interroger une base de

données sans se soucier de:

la représentation

interne (physique)

des données,

de leur

localisation, des

chemins

d'accès, ou

des algorithm

es nécessaires."

"SQL

s'adresse à une large comm

unauté d'utilisateurs potentiels (pas seulem

ent des informaticiens) et constitue un des atouts les

plus spectaculaires

(et le

plus connu)

des SG

BD

R

(R

pour R

elationnelle)."

Page 14: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

27/35

"SQL

peut être utilisé: - m

anière interactive, - en association avec des interfaces graphiques, - ou, très généralem

ent, des langages de programm

ation." "SQ

L ne perm

et pas de faire de la programm

ation au sens courant du term

e (faire une boucle par exemple) et doit donc être associé

avec un langage comm

e le C, le C

OB

OL

ou JAV

A pour réaliser

des traitements com

plexes accédant à une base de données."

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

28/35

Requêtes sim

ples SQL

Nom

Station capacité

lieu région

tarif V

enusa 350

Guadeloupe

Antilles

1200 F

arniente 200

Seychelles

Océan Indien

1500 S

antalba 150

Martinique

Antilles

2000 P

assac 400

Alpes

Europe

1000 L

a table Station

Nom

Station L

ibellé Prix

Venusa

Voile

150 V

enusa P

longée 120

Farniente

Plongée

130 P

assac S

ki 200

Passac

Piscine

20 S

antalba K

ayac 50

La table A

ctivité

Les stations

et leurs activités

Page 15: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

29/35

SEL

EC

T N

omStation F

RO

M Station W

HE

RE

region = A

ntilles C

e premier exem

ple montre la structure de base d'une requête

SQL

, avec les trois clauses SEL

EC

T, FR

OM

et WH

ER

E.

FRO

M indique la (ou les) tables dans lesquelles on trouve les

attributs utiles à la requête. Un attribut peut être utile de deux

manières (non exclusives) :

(1) on souhaite afficher son contenu, (2) on souhaite qu'il ait une valeur particulière (une constante

ou la valeur d'un autre attribut). Il est obligatoire avec SE

LE

CT

.

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

30/35

SEL

EC

T indique la liste des attributs constituant le résultat.

WH

ER

E indique les conditions que doivent satisfaire les n-uplets

de la base pour faire partie du résultat. Pour afficher l'intégralité d'une table, et avoir ainsi toutes les lignes (on om

et la clause WH

ER

E), et toutes les colonnes, on peut au

choix lister tous les attributs ou utiliser le caractère * qui a la m

ême signification.

SEL

EC

T * FR

OM

Nom

Table

SEL

EC

T * F

RO

M Station

Page 16: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

31/35

* remplace tous les attributs (cham

ps) de la table Station. de ce fait la table station est reproduite. SE

LE

CT

Nom

Station, capacité FR

OM

Station

On récupère les deux colonnes de la table Station.

SEL

EC

T N

omStation F

RO

M Station W

HE

RE

region = A

ntilles

WH

ER

E critère

N

omStation

Venusa

Santalba

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

32/35

SEL

EC

T libelle, prix / 6.56, C

ours de l'euro = , 6.56

FR

OM

Activite

WH

ER

E nom

Station = Santalba

libelle

prix / 6.56 C

ours de l'euro =

6.56 K

ayac 7.62

Cours de l'euro =

6.56

SEL

EC

T libelle F

RO

M A

ctivite donnera autant de lignes dans le résultat que dans la table A

ctivite.

libelle V

oile P

longee P

longee S

ki P

iscine K

ayac

Page 17: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

33/35

Tri du résultat

Nous utilisons la clause O

RD

ER

BY

pour trier les résultats d'une requête. C

ette clause doit être suivie de la liste des attributs servant de critère au tri. E

xemple :

SEL

EC

T * F

RO

M Station O

RD

ER

BY

tarif, nomStation

"Trie, en ordre ascendant, les stations par leur tarif, puis, pour un

mêm

e tarif, présente les stations selon l'ordre lexicographique. Pour trier en ordre descendant, on ajoute le m

ot-clé DE

SC après la

liste des attributs." W

HE

RE

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

34/35

"Dans la clause W

HE

RE

, on spécifie une condition booléenne portant sur les attributs des relations du FR

OM

. On utilise pour

cela de manière standard le A

ND

, le OR

, le NO

T et les parenthèses

pour changer

l'ordre de

priorité des

opérateurs booléens.

Par exem

ple : SE

LE

CT

nomStation, libelle

FR

OM

Activite

WH

ER

E nom

Station = Santalba A

ND

(prix > 50 A

ND

prix < 120)

Les opérateurs de com

paraison: ≤ ≥ < == > <> (!=

)

Page 18: jdbc - iro.umontreal.ca · I F T 1 1 7 6 u-A s p e c t s a v a n c é s e n J a v a- d a n s t u n d é s o r d r e u t o t a l: M. N. L o k b a n i, P. R. I F T 1 1 7 6-A s p e c

- IFT1176 - A

spects avancés en Java -

dans un désordre total: M.N

. Lokbani, P. R

igaux, H. C

hastel, R. G

rin …

v1.01 JD

BC

– 1ère partie -

35/35

Pour obtenir

une recherche

par intervalle,

on peut

également

utiliser le

mot-clé

BE

TW

EE

N.

La

requête précédente

est équivalente à : SE

LE

CT

nomStation, libelle

FR

OM

Activite

WH

ER

E nom

Station = Santalba A

ND

prix BE

TW

EE

N 50 A

ND

120