You are on page 1of 12

Chapitre 1 : Le modèle relationnel

A. Rappels sur le stockage des données. . . . . . . . . . 7


1. Les différentes catégories de données . . . . . . . . . . . . . 7
a. Les données de base . . . . . . . . . . . . . . . . . . 8
b. Les données de mouvement . . . . . . . . . . . . . . . 8
c. Les données de travail . . . . . . . . . . . . . . . . . . 8
d. Les données d'archive . . . . . . . . . . . . . . . . . . 8
2. L'organisation des données. . . . . . . . . . . . . . . . . . 9
a. Directe . . . . . . . . . . . . . . . . . . . . . . . . 9
b. Séquentielle . . . . . . . . . . . . . . . . . . . . . . 9
c. Séquentielle indexée . . . . . . . . . . . . . . . . . . . 9
d. Base de données hiérarchique. . . . . . . . . . . . . . . 10
e. Base de données relationnelle . . . . . . . . . . . . . . . 10
3. La normalisation du schéma relationnel . . . . . . . . . . . . 11

B. Le modèle relationnel . . . . . . . . . . . . . . . . 13
1. Concepts et définitions . . . . . . . . . . . . . . . . . . . 14
2. Principales règles . . . . . . . . . . . . . . . . . . . . . 16

C. L'algèbre relationnelle . . . . . . . . . . . . . . . . 18
1. Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Étapes de résolution d'un problème . . . . . . . . . . . . . . 28
Chapitre 2 : Implémentation
des bases de données
A. Gérer une base de données . . . . . . . . . . . . . . 37
1. Gérer l'espace de stockage . . . . . . . . . . . . . . . . . . 38
2. Gérer l'objet DATABASE . . . . . . . . . . . . . . . . . . . 40
a. Créer la base . . . . . . . . . . . . . . . . . . . . . . 41
b. Modifier la taille . . . . . . . . . . . . . . . . . . . . 44
c. Supprimer la base . . . . . . . . . . . . . . . . . . . . 48
d. Renommer une base. . . . . . . . . . . . . . . . . . . 48
e. Configurer une base . . . . . . . . . . . . . . . . . . . 49

B. Gérer les tables et les index . . . . . . . . . . . . . 56


1. Identifiant. . . . . . . . . . . . . . . . . . . . . . . . . 56
2. Les types de données . . . . . . . . . . . . . . . . . . . . 57
a. Types de données système . . . . . . . . . . . . . . . . 57
b. Types de données définis par l'utilisateur . . . . . . . . . . 63
3. Gérer les tables . . . . . . . . . . . . . . . . . . . . . . 68
a. Créer une table . . . . . . . . . . . . . . . . . . . . . 68
b. Modifier une table . . . . . . . . . . . . . . . . . . . . 71
c. Supprimer une table . . . . . . . . . . . . . . . . . . . 73
d. Nom complet d'une table . . . . . . . . . . . . . . . . . 74

C. Mise en œuvre de l'intégrité des données . . . . . . . . 74


1. Les valeurs par défaut . . . . . . . . . . . . . . . . . . . 75
2. Les règles. . . . . . . . . . . . . . . . . . . . . . . . . 75
3. La propriété Identity . . . . . . . . . . . . . . . . . . . . 75
Chapitre 2

4. Les contraintes d’intégrité . . . . . . . . . . . . . . . . . . 78


a. NOT NULL. . . . . . . . . . . . . . . . . . . . . . . 79
b. PRIMARY KEY . . . . . . . . . . . . . . . . . . . . . 80
c. UNIQUE . . . . . . . . . . . . . . . . . . . . . . . . 82
d. REFERENCES . . . . . . . . . . . . . . . . . . . . . 84
e. DEFAULT . . . . . . . . . . . . . . . . . . . . . . . 87
f. CHECK . . . . . . . . . . . . . . . . . . . . . . . . 89
5. Gérer les index. . . . . . . . . . . . . . . . . . . . . . . 90
a. Créer un index . . . . . . . . . . . . . . . . . . . . . 95
b. Supprimer un index . . . . . . . . . . . . . . . . . . . 99
c. Reconstruire un index . . . . . . . . . . . . . . . . . . 99
d. Mettre à jour les statistiques . . . . . . . . . . . . . . . 101
e. Informations sur les index . . . . . . . . . . . . . . . . 104
6. Surveiller et vérifier les bases et les objets . . . . . . . . . . . 106

36 SQL Server 2008


Chapitre 3 : Les ordres du SQL
A. Généralités. . . . . . . . . . . . . . . . . . . . . 109
1. Expressions . . . . . . . . . . . . . . . . . . . . . . . . 110
2. Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . 112
3. Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . 116

B. Le SQL-DML . . . . . . . . . . . . . . . . . . . . 132
1. Création de lignes . . . . . . . . . . . . . . . . . . . . . 132
2. Modification de lignes. . . . . . . . . . . . . . . . . . . . 137
3. Suppression de lignes . . . . . . . . . . . . . . . . . . . . 139
4. Extraction de lignes. . . . . . . . . . . . . . . . . . . . . 141
5. Opérations de l'algèbre relationnelle . . . . . . . . . . . . . . 142
a. Sélection de colonnes . . . . . . . . . . . . . . . . . . 142
b. Restriction . . . . . . . . . . . . . . . . . . . . . . . 144
c. Calculs élémentaires . . . . . . . . . . . . . . . . . . . 146
d. Projection . . . . . . . . . . . . . . . . . . . . . . . 148
e. Calculs d'agrégats . . . . . . . . . . . . . . . . . . . . 149
f. Produit cartésien . . . . . . . . . . . . . . . . . . . . 151
g. Jointure . . . . . . . . . . . . . . . . . . . . . . . . 152
h. Jointure externe . . . . . . . . . . . . . . . . . . . . . 154
i. Order By. . . . . . . . . . . . . . . . . . . . . . . . 156
j. Union . . . . . . . . . . . . . . . . . . . . . . . . . 157
k. Except . . . . . . . . . . . . . . . . . . . . . . . . 158
l. Intersect . . . . . . . . . . . . . . . . . . . . . . . . 158
m. Extraire seulement les premières lignes . . . . . . . . . . . 159
6. Requête de création de tables . . . . . . . . . . . . . . . . 161
7. Forcer l'optimiseur de requête . . . . . . . . . . . . . . . . 163
Chapitre 3

8. Tables CTE . . . . . . . . . . . . . . . . . . . . . . . . 163


9. Génération de lignes statistiques . . . . . . . . . . . . . . . 165
10.Sous-requêtes imbriquées . . . . . . . . . . . . . . . . . . 171
11.PIVOT et UNPIVOT . . . . . . . . . . . . . . . . . . . . . 173
12.MERGE. . . . . . . . . . . . . . . . . . . . . . . . . . 178

C. Gestion des vues . . . . . . . . . . . . . . . . . . 180

108 SQL Server 2008


Chapitre 4 : Transact SQL :
le langage procédural
A. Le SQL procédural . . . . . . . . . . . . . . . . . 187
1. Gestion des variables utilisateur . . . . . . . . . . . . . . . 187
2. Variables système . . . . . . . . . . . . . . . . . . . . . 188
3. Les transactions . . . . . . . . . . . . . . . . . . . . . . 192
4. Gestion des lots et des scripts . . . . . . . . . . . . . . . . 198
5. Contrôle de flux . . . . . . . . . . . . . . . . . . . . . . 199
a. RETURN . . . . . . . . . . . . . . . . . . . . . . . 199
b. PRINT . . . . . . . . . . . . . . . . . . . . . . . . 200
c. CASE . . . . . . . . . . . . . . . . . . . . . . . . . 201
d. BEGIN... END . . . . . . . . . . . . . . . . . . . . . 202
e. IF . . . . . . . . . . . . . . . . . . . . . . . . . . 202
f. WHILE . . . . . . . . . . . . . . . . . . . . . . . . 203
g. OUTPUT. . . . . . . . . . . . . . . . . . . . . . . . 204
6. Gestion des curseurs . . . . . . . . . . . . . . . . . . . . 206
a. DECLARE CURSOR . . . . . . . . . . . . . . . . . . . 206
b. OPEN . . . . . . . . . . . . . . . . . . . . . . . . . 209
c. FETCH . . . . . . . . . . . . . . . . . . . . . . . . 209
d. CLOSE . . . . . . . . . . . . . . . . . . . . . . . . 210
e. DEALLOCATE . . . . . . . . . . . . . . . . . . . . . 210
7. Gestion des exceptions . . . . . . . . . . . . . . . . . . . 211
a. Les messages d'erreurs . . . . . . . . . . . . . . . . . . 211
b. Déclencher une erreur . . . . . . . . . . . . . . . . . . 214
c. Définir un message d'erreur . . . . . . . . . . . . . . . . 216
d. La gestion des erreurs . . . . . . . . . . . . . . . . . . 220
Chapitre 4

B. Gestion des procédures stockées . . . . . . . . . . . 223

C. Les fonctions définies par l'utilisateur . . . . . . . . . 226


1. Création d'une fonction . . . . . . . . . . . . . . . . . . . 227
2. Modification d'une fonction . . . . . . . . . . . . . . . . . 231
3. Suppression d'une fonction. . . . . . . . . . . . . . . . . . 232
4. CROSS APPLY et OUTER APPLY . . . . . . . . . . . . . . . 232

D. Le contexte d'exécution . . . . . . . . . . . . . . . 233

E. Les déclencheurs . . . . . . . . . . . . . . . . . . 235

186 SQL Server 2008


Chapitre 5 : Gestion des données
distribuées
A. SQL Server Integration Services . . . . . . . . . . . . 246
1. Principes de fonctionnement . . . . . . . . . . . . . . . . . 247
2. Les outils graphiques . . . . . . . . . . . . . . . . . . . . 248
a. Business Intelligence Development Studio . . . . . . . . . . 248
b. SQL Server Management Studio . . . . . . . . . . . . . . 249
3. L'assistant d'importation et d'exportation . . . . . . . . . . . . 249
4. SSIS Designer . . . . . . . . . . . . . . . . . . . . . . . 259
5. Les autres utilitaires . . . . . . . . . . . . . . . . . . . . 265
a. Execute Package Utility . . . . . . . . . . . . . . . . . 265
b. Les utilitaires en ligne de commande . . . . . . . . . . . . 267

B. Modifier une base de données . . . . . . . . . . . . 268


1. Détacher une base . . . . . . . . . . . . . . . . . . . . . 268
a. Depuis SQL Server Management Studio . . . . . . . . . . . 269
b. Depuis Transact SQL . . . . . . . . . . . . . . . . . . 271
2. Attacher une base . . . . . . . . . . . . . . . . . . . . . 272
a. Depuis SQL Server Management Studio . . . . . . . . . . . 272
b. Depuis Transact SQL . . . . . . . . . . . . . . . . . . 274
3. Déplacer une base ou des fichiers. . . . . . . . . . . . . . . 276

C. Le programme BCP . . . . . . . . . . . . . . . . . 276


Chapitre 5

D. Les serveurs distants . . . . . . . . . . . . . . . . 281


1. Gestion des serveurs distants. . . . . . . . . . . . . . . . . 282
a. Ajout d'un serveur lié . . . . . . . . . . . . . . . . . . 283
b. Suppression d'un serveur lié. . . . . . . . . . . . . . . . 284
2. Gestion des utilisateurs distants . . . . . . . . . . . . . . . 285
3. Utilisation des ressources distantes . . . . . . . . . . . . . . 286
4. Les synonymes . . . . . . . . . . . . . . . . . . . . . . 287

E. La gestion des transactions distribuées . . . . . . . . . 289


1. MS DTC . . . . . . . . . . . . . . . . . . . . . . . . . 289
2. Mise en œuvre en Transact SQL . . . . . . . . . . . . . . . 290

244 SQL Server 2008


Chapitre 6 : Les types évolués
A. Travailler avec le format XML . . . . . . . . . . . . . 295
1. Le type XML . . . . . . . . . . . . . . . . . . . . . . . 297
2. Travailler avec une colonne de type XML . . . . . . . . . . . . 303
a. Les opérations du DML . . . . . . . . . . . . . . . . . 303
b. Les méthodes spécifiques. . . . . . . . . . . . . . . . . 305
3. Indexer une colonne de type XML . . . . . . . . . . . . . . . 309
a. Index principal . . . . . . . . . . . . . . . . . . . . . 310
b. Index secondaire . . . . . . . . . . . . . . . . . . . . 310
4. XQuery et XPath . . . . . . . . . . . . . . . . . . . . . . 312
5. FOR XML . . . . . . . . . . . . . . . . . . . . . . . . . 318
6. OpenXML . . . . . . . . . . . . . . . . . . . . . . . . . 323
7. OPENROWSET . . . . . . . . . . . . . . . . . . . . . . 324

B. Les services Web XML . . . . . . . . . . . . . . . . 325


1. Principes de fonctionnement . . . . . . . . . . . . . . . . . 326
2. Le point de terminaison HTTP . . . . . . . . . . . . . . . . 328
a. CREATE ENDPOINT . . . . . . . . . . . . . . . . . . . 328
b. ALTER ENDPOINT . . . . . . . . . . . . . . . . . . . 330
c. DROP ENDPOINT . . . . . . . . . . . . . . . . . . . . 331

C. Table value Parameter . . . . . . . . . . . . . . . . 332

D. Les structures hiérarchiques . . . . . . . . . . . . . 333


1. HierarchyId . . . . . . . . . . . . . . . . . . . . . . . . 334
2. Les index . . . . . . . . . . . . . . . . . . . . . . . . . 334
3. Les méthodes . . . . . . . . . . . . . . . . . . . . . . . 335
Chapitre 6

E. Les données non structurées . . . . . . . . . . . . . 339

F. Les données spatiales . . . . . . . . . . . . . . . . 344

294 SQL Server 2008


Chapitre 7 : CLR
A. SQL Server et le CLR . . . . . . . . . . . . . . . . 349
1. Transact SQL ou CLR ? . . . . . . . . . . . . . . . . . . . 349
a. Les fonctions scalaires . . . . . . . . . . . . . . . . . . 351
b. Les fonctions qui retournent une table . . . . . . . . . . . 351
2. Travailler avec le code CLR . . . . . . . . . . . . . . . . . 351
a. Accéder à des ressources externes . . . . . . . . . . . . . 352
b. Les instructions SQL . . . . . . . . . . . . . . . . . . . 352
c. Les types de données . . . . . . . . . . . . . . . . . . 352
d. L'accès aux données . . . . . . . . . . . . . . . . . . . 353
e. Localisation du code . . . . . . . . . . . . . . . . . . . 353

B. Définir du code CLR géré dans SQL Server . . . . . . . . 354


1. Activer la prise en charge du code CLR . . . . . . . . . . . . 354
2. Travailler avec Visual Studio . . . . . . . . . . . . . . . . . 354
3. Type de donnée personnalisé. . . . . . . . . . . . . . . . . 357
4. Procédure stockée . . . . . . . . . . . . . . . . . . . . . 359
5. Déclencheur de base de données . . . . . . . . . . . . . . . 362
6. Fonction de calcul d'agrégat . . . . . . . . . . . . . . . . . 364

You might also like