Bases de données - 4e éd.
Concepts, utilisation et développement
-
ByJean-Luc Hainaut (Author)
Ebook
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 of contents
| 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 |
Accessibility
No accessibility data available for this publication.
Author biographies
About Jean-Luc Hainaut
Jean-Luc Hainaut est professeur à la faculté d’informatique de l’université de Namur et membre du Namur Digital Institute.
Book details
- Publisher
- Dunod
- Collection
- InfoSup
- Category
- Mathematics
- Publication date
- October 2018
- Pages
- 704
- Chapters
- 313
- Language
- French
- ISBN Paper
- 9782100790685
- ISBN PDF
- 9782100786725