Bases de données - 4e éd.

Concepts, utilisation et développement

Livre numérique

Ce manuel vise un triple objectif : comprendre les concepts théoriques, apprendre à utiliser des bases de données, et enfin savoir en construire de nouvelles.La première partie explique les notions de base sur les structures de données, les systèmes de gestion de bases de données, le modèle relationnel...  La deuxième décrit le langage SQL  et les fonctions qui permettent de tirer le meilleur parti d'une base de données.La dernière partie détaille les méthodes de construction des bases de données relationnelles puis des bases relationnelles-objet.L'ouvrage papier est complété par un site web comprenant des tutoriels, des exercices corrigés, des planches PowerPoint destinées aux enseignants. Ces tutoriels permettent à l'étudiant de mettre en pratique de manière active les notions expliquées dans le livre.Cette quatrième édition comporte des mises à jour sur les bases de données NoSQL, sur les nouveaux mécanismes de transaction ( WAL et MVCC) et sur les blockchains.   

Table des matières

Table des matières
Bases de données - 4e éd. 1
Table des matières 5
CHAPITRE 1 • MOTIVATION ET INTRODUCTION 31
1.1 Des données et des hommes 31
1.2 Une première approche des données 32
1.3 Utiliser une base de données 36
1.4 Premières conclusions 37
1.5 Les systèmes de gestion de bases de données 38
1.6 Les défis des bases de données d’aujourd’hui 39
1.7 Un peu d’histoire 40
CHAPITRE 2 • CONCEPTS DES BASES DE DONNÉES 47
2.1 Introduction 47
2.2 Tables, lignes et colonnes 48
2.3 La valeur null 49
2.4 Les identifiants 50
2.5 Les clés étrangères 51
2.6 Identifiants et clés étrangères facultatifs 52
2.7 Schéma et contenu d’une base de données 53
2.8 Représentation graphique d’un schéma 53
2.9 Un exemple de base de données 55
2.10 Modification et contraintes d’intégrité 56
2.11 Redondances internes dans une table 60
2.12 Les structures physiques 63
2.13 Que retenir ? 64
2.14 Pour en savoir plus 65
2.15 Pratiquer les bases de données 65
2.16 Exercices 67
CHAPITRE 3 • MODÈLE RELATIONNEL ET NORMALISATION 69
3.1 Le phénomène de redondance interne 69
3.2 Le modèle relationnel de bases de données 70
3.3 Identifiants 74
3.4 Dépendances fonctionnelles 75
3.5 Contraintes d’inclusion et clés étrangères 80
3.6 Calcul des identifiants d’une relation 83
3.7 Décomposition d’une relation 87
3.8 Normalisation d’une relation 88
3.9 Les relations non en 1re forme normale 95
3.10 Que retenir ? 98
3.11 Pour en savoir plus 100
3.12 Exercices 100
CHAPITRE 4 • ÉLÉMENTS DE TECHNOLOGIE DES BASES DE DONNÉES 103
4.1 Introduction 103
4.2 Les composants d’un ordinateur 104
4.3 Mémoire externe : le disque magnétique 105
4.4 Les technologies alternatives 111
4.5 Organisation d’un espace de stockage 118
4.6 Traitement séquentiel d’un fichier 122
4.7 Les index 130
4.8 Organisation séquentielle indexée 132
4.9 Organisation calculée 144
4.10 Les index secondaires 152
4.11 Accès par index ou recherche séquentielle 159
4.12 Quand créer un index ? 159
4.13 Les techniques d’agrégation (clustering) 160
4.14 Stabilité des adresses 163
4.15 Un exemple : SQL Server 165
4.16 Compléments sur les fonctions de hachage 167
4.17 Futurologie : un peu de poésie dans ce monde brutes ! 170
4.18 Que retenir ? 174
4.19 Pour en savoir plus 175
4.20 Exercices 175
CHAPITRE 5 • LES SYSTÈMES DE GESTION DE BASES DE DONNÉES 179
5.1 Introduction 179
5.2 Les fonctions des systèmes de gestion de bases de données 180
5.3 Architecture des SGBD 182
5.4 Les transactions 184
5.5 Régulation de la concurrence 186
5.6 Protection contre les accidents 191
5.7 Les bases de données distribuées 194
5.8 Contrôle des accès 199
5.9 Les bases de données in-memory 202
5.10 Le marché des SGBD relationnels 203
5.11 Pour en savoir plus 204
CHAPITRE 6 • LE LANGAGE SQL DDL 205
6.1 Introduction 205
6.2 Le langage SQL DDL 206
6.3 Création d’un schéma 206
6.4 Les noms SQL 207
6.5 Création d’une table 207
6.6 Les colonnes et leurs types 207
6.7 Caractère obligatoire/facultatif d’une colonne 209
6.8 Les identifiants 210
6.9 Les clés étrangères 210
6.10 Forme synthétique des contraintes 213
6.11 Exemple complet 213
6.12 Suppression d’une table 214
6.13 Ajout, retrait et modification d’une colonne 214
6.14 Ajout et retrait d'une contrainte 214
6.15 Les structures physiques 215
6.16 Que retenir ? 216
6.17 Pour en savoir plus 216
CHAPITRE 7 • LE LANGAGE SQL DML (1) 217
7.1 Introduction 217
7.2 Requêtes élémentaires 219
7.3 Données extraites et données dérivées 225
7.4 Ordre des lignes du résultat 228
7.5 Les fonctions agrégatives (ou statistiques) 229
7.6 Les sous-requêtes 231
7.7 Les quantificateurs ensemblistes 237
7.8 Exercices 239
CHAPITRE 8 • LE LANGAGE SQL DML (2) 243
8.1 Introduction 243
8.2 Extraction de données de plusieurs tables (jointure) 244
8.3 Les opérateurs ensemblistes 246
8.4 Le produit relationnel 248
8.5 Variantes syntaxiques de la jointure 249
8.6 Les tables statiques 251
8.7 Requêtes sur des structures cycliques 251
8.8 Compléments sur les jointures 256
8.9 Extraction de données groupées 263
8.10 Extension de la structure des requêtes SFW 269
8.11 Limitation de la taille d’un résultat 271
8.12 Interprétation d’une requête 271
8.13 Modification des données 272
8.14 Modification des structures de données 278
8.15 Que retenir ? 279
8.16 Pour en savoir plus 280
8.17 Exercices 280
CHAPITRE 9 • LE LANGAGE SQL AVANCÉ 285
9.1 Introduction 285
9.2 Le contrôle d’accès 285
9.3 Les vues SQL 288
9.4 Les Common Table Expressions (CTE) 292
9.5 Les requêtes récursives 292
9.6 Les extensions objet de SQL3 295
9.7 Les prédicats (check) 303
9.8 Les procédures SQL (stored procedures) 305
9.9 Les déclencheurs (triggers) 306
9.10 Le catalogue 311
9.11 Les interfaces SQL des programmes d’application 314
9.12 SQL et l’information incomplète 329
9.13 Que retenir 338
9.14 Pour en savoir plus 339
CHAPITRE 10 • LES BASES DE DONNÉES NON RELATIONNELLES 341
10.1 Introduction 341
10.2 Les bases de données NoSQL 343
10.2.1 Modèles clé-valeur 344
10.2.2 Modèles orientés documents 345
10.2.3 Modèles orientés colonnes 345
10.3 Les autres modèles non relationnels 346
10.4 Les architectures de distribution 347
10.5 Un SGBD orienté colonnes : Cassandra 349
10.6 Un SGBD orienté documents : MongoDB 353
10.7 Les SGBD NewSQL : l’exemple de VoltDB 356
10.8 Conclusions sur les SGBD NoSQL 357
10.9 Les chaînes de blocs 359
CHAPITRE 11 • CONSTRUCTION D’UNE BASE DE DONNÉES 373
11.1 De l’artisanat à la méthode 373
11.2 Les acteurs et les métiers 374
11.3 Deux parcours 375
11.4 Une démarche simplifiée 375
11.5 Les outils 376
CHAPITRE 12 • LE MODÈLE ENTITÉ-ASSOCIATION DE BASE 377
12.1 Introduction 377
12.2 Les types d’entités 378
12.3 Les attributs 379
12.4 Les types d’associations 380
12.5 Une question de vocabulaire 385
12.6 Les identifiants 386
12.7 Les contraintes d’intégrit 391
12.8 Contenu informationnel d’un schéma 391
12.9 Exemples 393
12.10 Que retenir ? 396
12.11 Pour en savoir plus 397
12.12 Dessiner un schéma conceptuel à l’aide d’un outil 397
12.13 Exercices 398
CHAPITRE 13 • ÉLABORATION D’UN SCHÉMA CONCEPTUEL 401
13.1 Introduction 401
13.2 Un premier exemple 402
13.3 Décomposition de l’énoncé 404
13.4 Pertinence d’une proposition 409
13.5 Représentation d’une proposition 410
13.6 Non-redondance des propositions 419
13.7 Non-contradiction des propositions 421
13.8 Les contraintes d’intégrité 422
13.9 Normalisation du schéma 423
13.10 Documentation du schéma 425
13.11 Complétude du schéma 426
13.12 Que retenir ? 426
13.13 Pour en savoir plus 427
13.14 Exercices 427
CHAPITRE 14 • PRODUCTION DU SCHÉMA DE LA BASE DE DONNÉES 431
14.1 Introduction 431
14.2 Représentation des types d’entités 432
14.3 Représentation des attributs 432
14.4 Représentation des types d’associations 432
14.5 Représentation des identifiants 437
14.6 Traduction des noms 438
14.7 Synthèse des règles de traduction 439
14.8 Les structures physiques 440
14.9 Traduction des structures en SQL 442
14.10 Que retenir 443
14.11 Pour en savoir plus 444
14.12 Produire un schéma de base de données à l’aide d’un outil 444
14.13 Exercices 445
CHAPITRE 15 • MÉTHODOLOGIE DES BASES DE DONNÉES 447
15.1 Introduction 447
15.2 Méthodes, processus et produits 448
15.3 Méthodes de développement d’une base de données 449
15.4 Les modèles de développement 454
15.5 Techniques transformationnelles 456
15.6 Rôle des outils 456
CHAPITRE 16 • LE MODÈLE ENTITÉ-ASSOCIATION ÉTENDU 457
16.1 Introduction 457
16.2 Le modèle de base - rappel 458
16.3 Sémantiques 459
16.4 Modèle, schéma et population 460
16.5 Les stéréotypes 462
16.6 Schéma de base de données 463
16.7 Attributs 463
16.8 Types d’associations 466
16.9 Types d’entités 470
16.10 Identifiants 479
16.11 Contraintes d’intégrité 484
16.12 Contraintes d’intégrité additionnelles 488
16.13 Les noms 492
16.14 Classes d’objets génériques 495
16.15 Exemple de schéma Entité-association 498
16.16 Métadonnées et métaschémas 498
16.17 Sémantique interne du modèle Entité-association 501
16.18 Que retenir ? 504
16.19 Pour en savoir plus 504
16.20 Créer un schéma conceptuel à l’aide d’un outil (compléments) 506
16.21 Exercices 506
CHAPITRE 17 • LES DIAGRAMMES DE CLASSES UML 511
17.1 Introduction 511
17.2 UML et les bases de données 512
17.3 Les mécanismes d’extension 513
17.4 Les classes d’objets 514
17.5 Les associations binaires 514
17.6 Les associations n-aires 515
17.7 Les attributs 517
17.8 Les opérations 517
17.9 Les associations qualifiées 518
17.10 Les classes associations 520
17.11 Les associations d’agrégation et de composition 520
17.12 Les contraintes 521
17.13 Le langage de contraintes OCL 522
17.14 Une question de vocabulaire 525
17.15 Exemple de schéma de classes en UML 525
17.16 Le modèle de classes d’UML revisité (DB-UML) 525
17.17 Sémantique du modèle de classes DB-UML 527
17.18 Que retenir ? 529
17.19 Pour en savoir plus 529
17.20 Créer un schéma conceptuel UML à l’aide d’un outil 530
CHAPITRE 18 • ANALYSE CONCEPTUELLE DU DOMAINE D’APPLICATION 531
18.1 Introduction 531
18.2 Analyse des énoncés textuels 534
18.3 Les patrons de conception 543
18.4 Analyse des documents structurés 545
18.5 Dénomination des objets d’un schéma 549
18.6 Processus de correction d’un schéma 550
18.7 Processus de normalisation du schéma conceptuel 556
18.8 Évaluation d’un schéma 573
18.9 Intégration de schémas 577
18.10 Analyse conceptuelle à l’aide d’un atelier 593
18.11 Que retenir 596
18.12 Pour en savoir plus 596
18.13 Exercices 598
CHAPITRE 19 • CONCEPTION LOGIQUE D’UNE BASE DE DONNÉES RELATIONNELLE 603
19.1 Introduction 603
19.2 Le modèle logique relationnel 605
19.3 Représentation des attributs 608
19.4 Retour aux types d’associations fonctionnels 615
19.5 Représentation des types d’associations complexes 616
19.6 Représentation des relations is-a 618
19.7 Compléments 628
19.8 Traduction d’un schéma conceptuel 632
19.9 Définition des vues 636
19.10 Conception logique : un exemple 636
19.11 Exploitation des constructions SQL3 638
19.12 Produire un schéma logique à l'aide d'un outil 642
19.13 Que retenir ? 644
19.14 Pour en savoir plus 645
19.15 Exercices 646
CHAPITRE 20 • CONCEPTION PHYSIQUE D’UNE BASE DE DONNÉES RELATIONNELLE 651
20.1 Introduction 651
20.2 Notion d’efficacité d’une base de données 653
20.3 Conception physique d’une base de données en 15 règles 654
20.4 Détermination des index 654
20.5 Technologie des index 658
20.6 Sélection des espaces de stockage 659
20.7 Optimisation avancée 659
20.8 Estimation des volumes et des temps de traitement 664
20.9 Complément : modèle de choix d’un index 664
20.10 Que retenir ? 665
20.11 Pour en savoir plus 666
20.12 Exercices 666
CHAPITRE 21 • PRODUCTION DU CODE D’UNE BASE DE DONNÉES 669
21.1 Introduction 669
21.2 Expression déclarative des structures 670
21.3 Les concepts SQL d’expression de contraintes 671
21.4 Les comportements non standard 673
21.5 Les contraintes d’intégrité de base 675
21.6 Les contraintes d’intégrité additionnelles 676
21.7 Les contraintes dérivées du modèle Entité-association 679
21.8 Les contraintes d’intégrité dynamiques 680
21.9 Traduction des relations is-a 681
21.10 Traduction des vues 686
CHAPITRE 22 • RÉTRO-INGÉNIERIE D’UNE BASE DE DONNÉES 691
22.1 Introduction 691
22.2 Méthode générale de rétro-ingénierie 695
22.3 Extraction physique 696
22.4 Reconstruction du schéma logique 697
22.5 Conceptualisation du schéma logique 703
22.6 Que retenir ? 707
22.7 Pour en savoir plus 708
22.8 Rétro-ingénierie à l'aide d'un outil 708
CHAPITRE 23 • ÉTUDE DE CAS 709
23.1 Les animaux du zoo 709
23.2 Autres études de cas 716
CHAPITRE 24 • BIBLIOGRAPHIE 717
CHAPITRE 25 • INDEX 725

Compléments