La lecture à portée de main
Description
Sujets
Informations
Publié par | Indo |
Nombre de lectures | 81 |
Langue | Français |
Extrait
Universit¶e de Sherbrooke
D¶epartement d’informatique
Exploitation de bases de donn¶ees
relationnelles et orient¶ees objet
IFT287
Notes compl¶ementaires et synth¶etiques
Marc Frappier, Ph.D.
professeurAvertissement
Cedocumentn’estpasunsubstitutaulivreder¶ef¶erenceducoursniauxmanuelsder¶ef¶erence
des difi¶erents langages utilis¶es dans le cadre du cours.
iContents
8 Le langage SQL 1
8.1 Langage de d¶eflnition des donn¶ees . . . . . . . . . . . . . . . . . . . . . . . . 1
8.1.1 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
8.1.2 Types en SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
8.1.3 D¶eflnition des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8.1.3.1 Syntaxe g¶en¶erale . . . . . . . . . . . . . . . . . . . . . . . . 4
8.1.3.2 D¶eflnition des attributs . . . . . . . . . . . . . . . . . . . . 4
8.1.3.3 D¶ des contraintes . . . . . . . . . . . . . . . . . . . 5
8.1.3.3.1 Cl¶e primaire . . . . . . . . . . . . . . . . . . . . . . 5
8.1.3.3.2 Cl¶e unique. . . . . . . . . . . . . . . . . . . . . . . 5
8.1.3.3.3 Cl¶e ¶etrangµere . . . . . . . . . . . . . . . . . . . . . 6
8.1.4 Modiflcation des tables . . . . . . . . . . . . . . . . . . . . . . . . . . 6
8.1.4.1 Ajout d’attributs . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1.4.2 Modiflcation d’attributs . . . . . . . . . . . . . . . . . . . . 7
8.1.4.3 Suppression. . . . . . . . . . . . . . . . . . . . . 7
8.1.4.4 Ajout de contraintes . . . . . . . . . . . . . . . . . . . . . . 7
8.1.4.5 de contraintes . . . . . . . . . . . . . . . . . . . 7
8.1.5 Suppression des tables . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1.5.1 L’exemple de la bibliothµeque . . . . . . . . . . . . . . . . . 8
8.2 Langage de manipulation des donn¶ees . . . . . . . . . . . . . . . . . . . . . . 11
8.2.1 Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.2 Update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.3 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.4 Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2.4.1 Syntaxe g¶en¶erale . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2.4.2 S¶emantique . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2.4.3 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2.4.4 Fonctions d’agr¶egation . . . . . . . . . . . . . . . . . . . . . 13
8.2.4.5 Op¶erations ensemblistes . . . . . . . . . . . . . . . . . . . . 13
8.2.4.6 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . . 14
8.3 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3.1 Table virtuelle : vue . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3.2 Contraintes d’int¶egrit¶e . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3.3 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
ii8.3.4 Sch¶ema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.3.5 La valeur sp¶eciale NULL . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.3.6 Oracle et la norme SQL2 . . . . . . . . . . . . . . . . . . . . . . . . . 21
24 Le modµele client-serveur avec JDBC et JAVA 22
24.1 Brµeve introduction µa Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
24.1.1 Ex¶ecution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
24.1.2 Aper»cu de la syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
24.1.3 Les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
24.1.4 Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
24.1.5 Les vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
24.1.6 La classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
24.1.7 Visibilit¶e des d¶eclarations . . . . . . . . . . . . . . . . . . . . . . . . 29
24.1.8 Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
24.2 Brµeve introduction au diagramme de classe d’UML . . . . . . . . . . . . . . 32
24.3 JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
¶24.3.1 Etapes pour soumettre des commandes SQL en Java . . . . . . . . . 38
24.3.2 Soumettre les commandes SQL . . . . . . . . . . . . . . . . . . . . . 39
24.3.3 M¶ethodes de Statement . . . . . . . . . . . . . . . . . . . . . . . . . 40
24.3.4 M¶ethodes de PreparedStatement . . . . . . . . . . . . . . . . . . . . 41
24.4 Conception d’un programme d’application . . . . . . . . . . . . . . . . . . . 42
24.4.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
24.4.2 Le gestionnaire des interactions avec l’utilisateur . . . . . . . . . . . . 43
24.4.3 Le des connexions . . . . . . . . . . . . . . . . . . . . . . 43
24.4.4 Les gestionnaires de table . . . . . . . . . . . . . . . . . . . . . . . . 45
24.4.5 Les de transactions . . . . . . . . . . . . . . . . . . . . 45
24.4.5.1 Cr¶eation d’une instance . . . . . . . . . . . . . . . . . . . . 45
24.4.5.2 Traitement d’une transaction . . . . . . . . . . . . . . . . . 46
24.5 Gestion des dates et heures en Java et SQL. . . . . . . . . . . . . . . . . . . 47
24.5.1 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
24.5.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
11 Concepts de bases de donn¶ees objet 50
11.1 Concepts de BD OO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.3 Persistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.4 Hi¶erarchie de types et de classes . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.4.1 Hi¶erarchie de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.4.2 Hi¶erarchie de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.5 Le modµele objet de ODMG . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.5.1 Les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.5.2 Les litt¶eraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.6 Le langage de d¶eflnition des objets (ODL) . . . . . . . . . . . . . . . . . . . 56
11.6.1 Les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
11.7 Le langage de d¶eflnition des requ^etes (OQL) . . . . . . . . . . . . . . . . . . 58
iii11.7.1 L’¶enonc¶e select de base . . . . . . . . . . . . . . . . . . . . . . . . . . 58
11.7.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
11.7.3 Op¶erations sur les collections . . . . . . . . . . . . . . . . . . . . . . 61
11.7.4 Expressions bool¶eennes quantifl¶ees . . . . . . . . . . . . . . . . . . . 62
11.7.5 Les groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12 Exemples de BD OO sous Java 64
12.1 ObjectStore pour Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
12.1.1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
¶12.1.2 Etapes usuelles pour l’utilisation d’une BD object store . . . . . . . . 64
12.1.3 Langage de d¶eflnition des objets . . . . . . . . . . . . . . . . . . . . . 65
12.1.4 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.1.5 Base de donn¶ees. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.1.6 Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
12.1.7 Persistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
12.1.8 Collection en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
12.1.8.1 Collection (Bag) . . . . . . . . . . . . . . . . . . . . . . . . 70
12.1.8.2 Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
12.1.8.3 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
12.1.8.4 Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
12.1.8.5 Choix d’un type de collection . . . . . . . . . . . . . . . . . 73
12.1.9 Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
12.1.10Compilation et postprocesseur . . . . . . . . . . . . . . . . . . . . . . 76
12.1.11Quelques commandes utilitaires . . . . . . . . . . . . . . . . . . . . . 76
12.1.12Analogie entre BD relationnelle et Object Store . . . . . . . . . . . . 76
12.2 FastObjects pour Java avec JDO . . . . . . . . . . . . . . . . . . . . . . . . 78
12.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
¶12.2.2 Etapes usuelles pour l’utilisation d’une BD FastObjects . . . . . . . . 78
12.2.3 Langage de d¶eflnition des objets . . . . . . . . . . . . . . . . . . . . . 78
12.2.4 Compilation et post-processeur . . . . . . . . . . . . . . . . . . . . . 79
12.2.5 Persistence Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.2.6 Base de donn&