You are previewing Bases de données.
O'Reilly logo
Bases de données

Book Description

Les bases de données jouent un rôle sans cesse croissant dans les systèmes d'information d'entreprise, qu'il s'agisse d'applications de gestion traditionnelles (comptabilité, ventes, décisionnel...) ou d'applications intranet, e-commerce ou de gestion de la relation client. Comprendre les principes des bases de données, les langages d'interrogation et de mise à jour, les techniques d'optimisation et de contrôle des requêtes, les méthodes de conception et la gestion des transactions devient une nécessité pour tous les professionnels et futurs professionnels de l'informatique.

Complet et didactique, l'ouvrage se caractérise par des définitions précises des concepts, une approche éclairante des algorithmes et méthodes, de nombreux exemples d'application, une bibliographie commentée en fin de chaque chapitre et un recueil d'exercices en fin d'ouvrage. Il traite aussi bien des bases de données relationnelles, que des bases de données objet et objet-relationnelles.


Au sommaire

  • Les bases
    • Introduction
    • Objectifs et architecture des SGBD
    • Fichiers, hachage et indexation
    • Bases de données réseaux et hiérarchiques
    • Logique et base de données
  • Le relationnel
    • Le modèle relationnel
    • Le langage SQL2
    • Intégrité et BD actives
    • La gestion des vues
    • Optimisation de questions
    • L'objet et l'objet-relationnel
    • Le modèle objet
    • Le standard de l'ODMG : ODL, OQL et OML
    • L'objet relationnel et SQL3
    • Optimisation de requêtes objet
  • Au delà du SGBD
    • BD déductives
    • Gestion de transactions
    • Conception des bases de données
    • Conclusion et perspectives
    • Exercices

Table of Contents

  1. Couverture
  2. Le résumé et la biographie auteur
  3. Page de titre
  4. Copyright
  5. Remerciements
  6. Avant-propos
  7. Notations
  8. Sommaire
  9. Partie 1 – Les bases
    1. Chapitre I – Introduction
      1. 1. Qu’est-ce qu’une base de données ?
      2. 2. Historique des sgbd
      3. 3. Plan de cet ouvrage
      4. 4. Bibliographie
    2. Chapitre II – Objectifs et architecture des sgbd
      1. 1. Introduction
      2. 2. Modélisation des données
        1. 2.1 Instances et schémas
        2. 2.2. Niveaux d’abstraction
          1. 2.2.1. Le niveau conceptuel
          2. 2.2.2. Le niveau interne
          3. 2.2.3. Le niveau externe
          4. 2.2.4. Synthèse des niveaux de schémas
        3. 2.3. Le modèle entité-association
      3. 3. Objectifs des sgbd
        1. 3.1. Indépendance physique
        2. 3.2. Indépendance logique
        3. 3.3. Manipulation des données par des langages non procéduraux
        4. 3.4. Administration facilitée des données
        5. 3.5. Efficacité des accès aux données
        6. 3.6. Redondance contrôlée des données
        7. 3.7. Cohérence des données
        8. 3.8. Partage des données
        9. 3.9. Sécurité des données
      4. 4. Fonctions des sgbd
        1. 4.1. Description des données
        2. 4.2. Recherche de données
        3. 4.3. Mise à jour des données
        4. 4.4. Transformation des données
        5. 4.5. Contrôle de l’intégrité des données
        6. 4.6. Gestion de transactions et sécurité
        7. 4.7. Autres fonctions
      5. 5. Architecture fonctionnelle des sgbd
        1. 5.1. L’architecture à trois niveaux de l’ANSI/X3/SPARC
        2. 5.2. Une architecture fonctionnelle de référence
        3. 5.3. L’architecture du DBTG CODASYL
      6. 6. Architectures opérationnelles des sgbd
        1. 6.1. Les architectures client-serveur
        2. 6.2. Les architectures réparties
      7. 7. Conclusion
      8. 8. Bibliographie
    3. Chapitre III – Fichiers, hachage et indexation
      1. 1. Introduction
      2. 2. Objectifs et notions de base
        1. 2.1. Gestion des disques magnétiques
        2. 2.2. Indépendance des programmes par rapport aux mémoires secondaires
        3. 2.3. Utilisation de langages hôtes
        4. 2.4. Possibilités d’accès séquentiel et sélectif
        5. 2.5. Possibilité d’utilisateurs multiples
        6. 2.6. Sécurité et protection des fichiers
      3. 3. Fonctions d’un gérant de fichiers
        1. 3.1. Architecture d’un gestionnaire de fichiers
        2. 3.2. Fonctions du noyau d’un gestionnaire de fichiers
          1. 3.2.1. Manipulation des fichiers
          2. 3.2.2. Adressage relatif
          3. 3.2.3. Allocation de la place sur mémoires secondaires
          4. 3.2.4. Localisation des fichiers sur les volumes
          5. 3.2.5. Classification des fichiers en hiérarchie
          6. 3.2.6. Contrôle des fichiers
        3. 3.3. Stratégie d’allocation de la mémoire secondaire
          1. 3.3.1. Objectifs d’une stratégie
          2. 3.3.2. Stratégie par granule (à région fixe)
          3. 3.3.3. Stratégie par région (à région variable)
      4. 4. Organisations et méthodes d’accés par hachage
        1. 4.1. Organisation hachée statique
        2. 4.2. Organisations hachées dynamiques
          1. 4.2.1. Principes du hachage dynamique
          2. 4.2.2. Le hachage extensible
          3. 4.2.3. Le hachage linéaire
      5. 5. Organisations et méthodes d’accès indexées
        1. 5.1. Principes des organisations indexées
          1. 5.1.1. Notion d’index
          2. 5.1.2. Variantes possibles
          3. 5.1.3. Index hiérarchisé
          4. 5.1.4. Arbres B
          5. 5.1.5. Arbre B+
        2. 5.2 Organisation indexée IS3
        3. 5.3. Organisation séquentielle indexée ISAM
          1. 5.3.1. Présentation générale
          2. 5.3.2. Étude de la zone primaire
          3. 5.3.3. Étude de la zone de débordement
          4. 5.3.4. Étude de la zone index
          5. 5.3.5. Vue d’ensemble
        4. 5.4. Organisation séquentielle indexée régulière VSAM
          1. 5.4.1. Présentation générale
          2. 5.4.2. Étude de la zone des données
          3. 5.4.3. Étude de la zone index
          4. 5.4.4. Vue d’ensemble
      6. 6. Méthodes d’accès multi-attributs
        1. 6.1. Index secondaires
        2. 6.2. Hachage multi-attribut
          1. 6.2.1. Hachage multi-attribut statique
          2. 6.2.2. Hachages multi-attributs dynamiques
        3. 6.3. Index bitmap
      7. 7. Conclusion
      8. 8. Bibliographie
    4. Chapitre IV – Bases de données réseaux et hiérarchiques
      1. 1. Introduction
      2. 2. Le modéle réseau
        1. 2.1. Introduction et notations
        2. 2.2. La définition des objets
        3. 2.3. La définition des associations
        4. 2.4. L’ordonnancement des articles dans les liens
        5. 2.5. La sélection d’occurrence d’un type de lien
        6. 2.6 Les options d’insertion dans un lien
        7. 2.7. Le placement des articles
        8. 2.8. Exemple de schéma
      3. 3. Le langage de manipulation cobol-codasyl
        1. 3.1. Sous-schéma COBOL
        2. 3.2. La navigation CODASYL
        3. 3.3. La recherche d’articles
          1. 3.3.1. La recherche sur clé
          2. 3.3.2. La recherche dans un fichier
          3. 3.3.3. La recherche dans une occurrence de lien
          4. 3.3.4. Le positionnement du curseur de programme
        4. 3.4. Les échanges d’articles
        5. 3.5. Les mises à jour d’articles
          1. 3.5.1. Suppression d’articles
          2. 3.5.2. Modification d’articles
          3. 3.5.3. Insertion et suppression dans une occurrence de lien
        6. 3.6. Le contrôle des fichiers
        7. 3.7. Quelques exemples de transaction
      4. 4. Le modèle hiérarchique
        1. 4.1. Les concepts du modèle
        2. 4.2. Introduction au langage DL1
        3. 4.3. Quelques exemples de transactions
      5. 5. Conclusion
      6. 6. Bibliographie
    5. Chapitre V – Logique et bases de données
      1. 1. Introduction
      2. 2. La logique du premier ordre
        1. 2.1. Syntaxe de la logique du premier ordre
        2. 2.2. Sémantique de la logique du premier ordre
        3. 2.3 Forme clausale des formules fermées
      3. 3. Les base de donnèes logique
        1. 3.1. La représentation des faits
        2. 3.2. Questions et contraintes d’intégrité
      4. 4. Le calcul de domaines
        1. 4.1 Principes de base
        2. 4.2. Quelques exemples de calcul de domaine
        3. 4.3. Le langage QBE
      5. 5. Le calcul de tuples
        1. 5.1. Principes du calcul de tuple
        2. 5.2. Quelques exemples de calcul de tuple
      6. 6. Les techniques d’inférence
        1. 6.1. Principe d’un algorithme de déduction
        2. 6.2. Algorithme d’unification
        3. 6.3. Méthode de résolution
      7. 7. Conclusion
      8. 8. Bibliographie
  10. Partie 2 – Le relationnel
    1. Chapitre VI – Le modèle relationnel
      1. 1. Introduction : les objectifs du modèle
      2. 2. Les structures de données de base
        1. 2.1. Domaine, attribut et relation
        2. 2.2. Extensions et intentions
      3. 3. Les règles d’intégrité structurelle
        1. 3.1. Unicité de clé
        2. 3.2. Contraintes de références
        3. 3.3. Valeurs nulles et clés
        4. 3.4. Contraintes de domaines
      4. 4. L’algèbre relationnelle : opérations de base
        1. 4.1. Les opérations ensemblistes
          1. 4.1.1. Union
          2. 4.1.2. Différence
          3. 4.1.3. Produit cartésien
        2. 4.2. Les opérations spécifiques
          1. 4.2.1. Projection
          2. 4.2.2. Restriction
          3. 4.2.3. Jointure
      5. 5. L’algèbre relationnelle : opérations dérivées
        1. 5.1. Intersection
        2. 5.2. Division
        3. 5.3. Complément
        4. 5.4. Éclatement
        5. 5.5. Jointure externe
        6. 5.6. Semi-jointure
        7. 5.7. Fermeture transitive
      6. 6. Les expressions de l’algèbre relationnelle
        1. 6.1. Langage algébrique
        2. 6.2. Arbre algébrique
      7. 7. Fonctions et agrégats
        1. 7.1. Fonctions de calcul
        2. 7.2. Support des agrégats
      8. 8. Conclusion
      9. 9. Bibliographie
    2. Chapitre VII – Le langage sql2
      1. 1. Introduction
      2. 2. Sql1 : la définition de schémas
        1. 2.1. Création de tables
        2. 2.2. Expression des contraintes d’intégrité
        3. 2.3. Définition des vues
        4. 2.4. Suppression des tables
        5. 2.5. Droits d’accès
      3. 3. Sql1 : la recherche de données
        1. 3.1. Expression des projections
        2. 3.2. Expression des sélections
        3. 3.3. Expression des jointures
        4. 3.4. Sous-questions
        5. 3.5. Questions quantifiées
        6. 3.6. Expression des unions
        7. 3.7. Fonctions de calculs et agrégats
      4. 4. Sql1 : les mises à jour
        1. 4.1. Insertion de tuples
        2. 4.2. Mise à jour de tuples
        3. 4.3. Suppression de tuples
      5. 5. Sql1 : la programmation de transactions
        1. 5.1. Commandes de gestion de transaction
        2. 5.2. Curseurs et procédures
        3. 5.3. Intégration de SQL et des langages de programmation
      6. 6. Sql2 : le standard de 1992
        1. 6.1. Le niveau entrée
        2. 6.2. Le niveau intermédiaire
          1. 6.2.1. Les extensions des types de données
          2. 6.2.2. Un meilleur support de l’intégrité
          3. 6.2.3. Une intégration étendue de l’algèbre relationnelle
          4. 6.2.4. La possibilité de modifier les schémas
          5. 6.2.5. L’exécution immédiate des commandes SQL
        3. 6.3. Le niveau complet
      7. 7. Conclusion
      8. 8. Bibliographie
    3. Chapitre VIII – Intégrité et bd actives
      1. 1. Introduction
      2. 2. Typologie des contraintes d’intégrité
        1. 2.1. Contraintes structurelles
        2. 2.2. Contraintes non structurelles
        3. 2.3. Expression des contraintes en SQL
      3. 3. Analyse des contraintes d’intégrité
        1. 3.1. Test de cohérence et de non-redondance
        2. 3.2. Simplification opérationnelle
        3. 3.3. Simplification différentielle
      4. 4. Contrôle des contraintes d’intégrité
        1. 4.1. Méthode de détection
        2. 4.2. Méthode de prévention
        3. 4.3. Contrôles au vol des contraintes simples
          1. 4.3.1. Unicité de clé
          2. 4.3.2. Contrainte référentielle
          3. 4.3.3. Contrainte de domaine
        4. 4.4. Interaction entre contraintes
      5. 5. Sgbd actifs et déclencheurs
        1. 5.1. Objectifs
        2. 5.2. Types de règles
        3. 5.3. Composants d’un SGBD actif
      6. 6. La définition des déclencheurs
        1. 6.1. Les événements
          1. 6.1.1. Événement simple
          2. 6.1.2. Événement composé
        2. 6.2. La condition
        3. 6.3. L’action
        4. 6.4. Expression en SQL3
          1. 6.4.1. Syntaxe
          2. 6.4.2. Sémantique
        5. 6.5. Quelques exemples
          1. 6.5.1. Contrôle d’intégrité
          2. 6.5.2. Mise à jour automatique de colonnes
          3. 6.5.3. Gestion de données agrégatives
      7. 7. Exécution des déclencheurs
        1. 7.1. Procédure générale
        2. 7.2. Priorités et imbrications
        3. 7.3. Couplage à la gestion de transactions
      8. 8. Conclusion
      9. 9. Bibliographie
    4. Chapitre IX – La gestion des vues
      1. 1. Introduction
      2. 2. Définition des vues
      3. 3. Interrogation au travers de vues
      4. 4. Mise à jour au travers de vues
        1. 4.1. Vue mettable à jour
        2. 4.2. Approche pratique
        3. 4.3. Approche théorique
      5. 5. Vues concrètes et décisionnel
        1. 5.1. Définition
        2. 5.2. Stratégie de report
        3. 5.3. Le cas des agrégats
      6. 6. Conclusion
      7. 7. Bibliographie
    5. Chapitre X – Optimisation de questions
      1. 1. Introduction
      2. 2. Les objectifs de l’optimisation
        1. 2.1. Exemples de bases et requêtes
        2. 2.2. Requêtes statiques ou dynamiques
        3. 2.3. Analyse des requêtes
        4. 2.4. Fonctions d’un optimiseur
      3. 3. L’optimisation logique ou réécriture
        1. 3.1. Analyse et réécriture sémantique
          1. 3.1.1. Graphes support de l’analyse
          2. 3.1.2. Correction de la question
          3. 3.1.3. Questions équivalentes par transitivité
          4. 3.1.4. Questions équivalentes par intégrité
        2. 3.2. Réécritures syntaxiques et restructurations algébriques
          1. 3.2.1. Règles de transformation des arbres
          2. 3.2.2. Ordonnancement par descente des opérations unaires
        3. 3.3. Ordonnancement par décomposition
          1. 3.3.1. Le détachement de sous-questions
          2. 3.3.2. Différents cas de détachement
        4. 3.4. Bilan des méthodes d’optimisation logique
      4. 4. Les opérateurs physiques
        1. 4.1. Opérateur de sélection
          1. 4.1.1. Sélection sans index
          2. 4.1.2. Sélection avec index de type arbre-B
        2. 4.2. Opérateur de tri
        3. 4.3. Opérateur de jointure
          1. 4.3.1. Jointure sans index
          2. 4.3.2. Jointure avec index de type arbre-B
        4. 4.4. Le calcul des agrégats
      5. 5. L’estimation du coût d’un plan d’exécution
        1. 5.1. Nombre et types de plans d’exécution
        2. 5.2. Estimation de la taille des résultats intermédiaires
        3. 5.3. Prise en compte des algorithmes d’accès
      6. 6. La recherche du meilleur plan
        1. 6.1. Algorithme de sélectivité minimale
        2. 6.2. Programmation dynamique (DP)
        3. 6.3. Programmation dynamique inverse
        4. 6.4. Les stratégies de recherche aléatoires
      7. 7. Conclusion
      8. 8. Bibliographie
  11. Partie 3 – L’objet et l’objet-relationnel
    1. Chapitre XI – Le modèle objet
      1. 1. Introduction
      2. 2. Le modèle objet de référence
        1. 2.1. Modélisation des objets
        2. 2.2. Encapsulation des objets
        3. 2.3. Définition des types d’objets
        4. 2.4. Liens d’héritage entre classes
        5. 2.5. Polymorphisme, redéfinition et surcharge
        6. 2.6. Définition des collections d’objets
        7. 2.7. Prise en compte de la dynamique
        8. 2.8. Schéma de bases de données à objets
      3. 3. La persistance des objets
        1. 3.1. Qu’est-ce-qu’une BD à objets ?
        2. 3.2. Gestion de la persistance
        3. 3.3. Persistance par héritage
        4. 3.4. Persistance par référence
        5. 3.5. Navigation dans une base d’objets
      4. 4. Algèbre pour objets complexes
        1. 4.1. Expressions de chemins et de méthodes
        2. 4.2. Groupage et dégroupage de relations
        3. 4.3. L’algèbre d’Encore
        4. 4.4. Une algèbre sous forme de classes
          1. 4.4.1. Les opérations de recherche
          2. 4.4.2. Les opérations ensemblistes
          3. 4.4.3. Les opérations de mise à jour
          4. 4.4.4. Les opérations de groupe
          5. 4.4.5. Arbres d’opérations algébriques
      5. 5. Conclusion
      6. 6. Bibliographie
    2. Chapitre XII – Le standard de l’odmg : odl, oql et oml
      1. 1. Introduction
      2. 2. Contexte
        1. 2.1. L’ ODMG (Object Database Management Group)
        2. 2.2. Contenu de la proposition
        3. 2.3. Architecture
      3. 3. Le modèle de l’odmg
        1. 3.1. Vue générale et concepts de base
        2. 3.2. Héritage de comportement et de structure
        3. 3.3. Les objets instances de classes
        4. 3.4. Propriétés communes des objets
        5. 3.5. Les objets structurés
        6. 3.6. Les collections
        7. 3.7. Les attributs
        8. 3.8. Les associations (Relationships)
        9. 3.9. Les opérations
        10. 3.10.Méta-modèle du modèle ODMG
      4. 4. Exemple de schéma odl
      5. 5. Le langage oql
        1. 5.1. Vue générale
        2. 5.2. Exemples et syntaxes de requêtes
          1. 5.2.1. Calcul d’expressions
          2. 5.2.2. Accès à partir d’objets nommés
          3. 5.2.3. Sélection avec qualification
          4. 5.2.4. Expression de jointures
          5. 5.2.5. Parcours d’associations multivaluées par des collections dépendantes
          6. 5.2.6. Sélection d’ une structure en résultat
          7. 5.2.7. Calcul de collections en résultat
          8. 5.2.8. Manipulation des identifiants d’objets
          9. 5.2.9. Application de méthodes en qualification et en résultat
          10. 5.2.10. Imbrication de SELECT en résultat
          11. 5.2.11. Création d’objets en résultat
          12. 5.2.12. Quantification de variables
          13. 5.2.13. Calcul d’agrégats et opérateur GROUP BY
          14. 5.2.14. Expressions de collections
          15. 5.2.15. Conversions de types appliquées aux collections
          16. 5.2.16. Définition d’objets via requêtes
        3. 5.3. Bilan sur OQL
      6. 6. Oml : l’intégration à c++, smalltalk et java
        1. 6.1. Principes de base
        2. 6.2. Contexte transactionnel
        3. 6.3. L’exemple de Java
          1. 6.3.1. La persistance des objets
          2. 6.3.2. Les correspondances de types
          3. 6.3.3. Les collections
          4. 6.3.4. La transparence des opérations
          5. 6.3.5. Java OQL
          6. 6.3.6. Bilan
      7. 7. Conclusion
      8. 8. Bibliographie
    3. Chapitre XIII – L’objet-relationnel et sql3
      1. 1. Introduction
      2. 2. Pourquoi intégrer l’objet au relationnel ?
        1. 2.1. Forces du modèle relationnel
        2. 2.2. Faiblesses du modèle relationnel
        3. 2.3. L’apport des modèles objet
        4. 2.4. Le support d’objets complexes
      3. 3. Le modèle objet-relationnel
        1. 3.1. Les concepts additionnels essentiels
        2. 3.2. Les extensions du langage de requêtes
      4. 4. Vue d’ensemble de sql3
        1. 4.1. Le processus de normalisation
        2. 4.2. Les composants et le planning
        3. 4.3. La base
      5. 5. Le support des objets
        1. 5.1. Les types abstraits
          1. 5.1.1. Principes
          2. 5.1.2. Syntaxe
          3. 5.1.3. Quelques exemples
        2. 5.2. Les constructeurs d’objets complexes
        3. 5.3. Les tables
        4. 5.4. L’appel de fonctions et d’opérateurs dans les requêtes
        5. 5.5. Le parcours de référence
        6. 5.6. La recherche en collections
        7. 5.7. Recherche et héritage
      6. 6. Le langage de programmation psm
        1. 6.1. Modules, fonctions et procédures
        2. 6.2. Les ordres essentiels
        3. 6.3. Quelques exemples
        4. 6.4. Place de PSM dans le standard SQL
      7. 7. Conclusion
      8. 8. Bibliographie
    4. Chapitre XIV – Optimisation de requêtes objet
      1. 1. Introduction
      2. 2. Problématique des requêtes objet
        1. 2.1. Qu’est-ce qu’une requête objet ?
        2. 2.2. Quelques exemples motivants
          1. 2.2.1. Parcours de chemins
          2. 2.2.2. Méthodes et opérateurs
          3. 2.2.3. Manipulation de collections
          4. 2.2.4. Héritage et polymorphisme
      3. 3. Modèle de stockage pour bd objet
        1. 3.1. Identifiants d’objets
        2. 3.2. Indexation des collections d’objets
        3. 3.3. Liaison et incorporation d’objets
        4. 3.4. Groupage d’objets
        5. 3.5. Schéma de stockage
      4. 4. Parcours de chemins
        1. 4.1. Traversée en profondeur d’abord
        2. 4.2. Traversée en largeur d’abord
        3. 4.3. Traversée à l’envers
        4. 4.4. Traversée par index de chemin
      5. 5. Génération des plans équivalents
        1. 5.1. Notion d’optimiseur extensible
        2. 5.2. Les types de règles de transformation de plans
          1. 5.2.1. Règles syntaxiques
          2. 5.2.2. Règles sémantiques
          3. 5.2.3. Règles de planning
        3. 5.3. Taille de l’espace de recherche
        4. 5.4. Architecture d’un optimiseur extensible
      6. 6. Modèle de coût pour bd objet
        1. 6.1. Principaux paramètres d’un modèle de coût
        2. 6.2. Estimation du nombre de pages d’une collection groupée
        3. 6.3. Formule de Yao et extension aux collections groupées
        4. 6.4. Coût d’invocation de méthodes
        5. 6.5. Coût de navigation via expression de chemin
        6. 6.6. Coût de jointure
      7. 7. Stratégies de recherche du meilleur plan
        1. 7.1. Les algorithmes combinatoires
        2. 7.2. L’amélioration itérative (II)
        3. 7.3. Le recuit simulé (SA)
        4. 7.4. L’optimisation deux phases (TP)
        5. 7.5. La recherche taboue (TS)
        6. 7.6. Analyse informelle de ces algorithmes
      8. 8. Un algorithme d’optimisation génétique
        1. 8.1. Principe d’un algorithme génétique
        2. 8.2. Bases de gènes et population initiale
        3. 8.3. Opérateur de mutation
        4. 8.4. Opérateur de croisement
      9. 9. Conclusion
      10. 10. Bibliographie
  12. Partie 4 – Au-delà du sgbd
    1. Chapitre XV – Bd déductives
      1. 1. Introduction
      2. 2. Problématique des sgbd déductifs
        1. 2.1. Langage de règles
        2. 2.2. Couplage ou intégration ?
        3. 2.3. Prédicats extensionnels et intentionnels
        4. 2.4. Architecture type d’un SGBD déductif intégré
      3. 3. Le langage datalog
        1. 3.1. Syntaxe de DATALOG
        2. 3.2. Sémantique de DATALOG
          1. 3.2.1. Théorie de la preuve
          2. 3.2.2. Théorie du modèle
          3. 3.2.3. Théorie du point fixe
          4. 3.2.4. Coïncidence des sémantiques
      4. 4. Les extensions de datalog
        1. 4.1. Hypothèse du monde fermé
        2. 4.2. Négation en corps de règles
        3. 4.3. Négation en tête de règles et mises à jour
        4. 4.4. Support des fonctions de calcul
        5. 4.5. Support des ensembles
      5. 5. évaluation de requêtes datalog
        1. 5.1. Évaluation bottom-up
        2. 5.2. Évaluation top-down
      6. 6. La modélisation de règles par des graphes
        1. 6.1. Arbres et graphes relationnels
        2. 6.2. Arbres ET/OU et graphes règle/but
        3. 6.3. Autres Représentations
      7. 7. évaluation des règles récursives
        1. 7.1. Le problème des règles récursives
        2. 7.2. Les approches bottom-up
          1. 7.2.1. La génération naïve
          2. 7.2.2. La génération semi-naïve
        3. 7.3. Difficultés et outils pour les approches top-down
          1. 7.3.1. Approches et difficultés
          2. 7.3.2. La remontée d’informations via les règles
          3. 7.3.3. Les règles signées
        4. 7.4. La méthode QoSaQ
        5. 7.5. Les ensembles magiques
        6. 7.6. Quelques méthodes d’optimisation moins générales
          1. 7.6.1. La méthode fonctionnelle
          2. 7.6.2. Les méthodes par comptages
          3. 7.6.3. Les opérateurs graphes
      8. 8. Règles et objets
        1. 8.1. Le langage de règles pour objetS ROL
        2. 8.2. Le langage de règles pour objets DEL
      9. 9. Conclusion
      10. 10. Bibliographie
    2. Chapitre XVI – Gestion de transactions
      1. 1. Introduction
      2. 2. Notion de transaction
        1. 2.1. Exemple de transaction
        2. 2.2. Propriété des transactions
          1. 2.2.1. Atomicité
          2. 2.2.2. Cohérence
          3. 2.2.3. Isolation
          4. 2.2.4. Durabilité
      3. 3. Théorie de la concurrence
        1. 3.1. Objectifs
        2. 3.2. Quelques définitions de base
        3. 3.3. Propriétés des opérations sur granule
        4. 3.4. Caractérisation des exécutions correctes
        5. 3.5. Graphe de précédence
      4. 4. Contrôle de concurrence pessimiste
        1. 4.1. Le Verrouillage deux phases
        2. 4.2. Degré d’isolation en SQL2
        3. 4.3. Le problème du verrou mortel
          1. 4.3.1. Définition
          2. 4.3.2. Représentation du verrou mortel
          3. 4.3.3. Prévention du verrou mortel
          4. 4.3.4. Détection du verrou mortel
        4. 4.4. Autres problèmes soulevés par le verrouillage
        5. 4.5. Les améliorations du verrouillage
          1. 4.5.1. Verrouillage à granularité variable
          2. 4.5.2. Verrouillage multi-versions
          3. 4.5.3. Verrouillage altruiste
          4. 4.5.4. Commutativité sémantique d’opérations
      5. 5. Contrôles de concurrence optimiste
        1. 5.1. Ordonnancement par estampillage
        2. 5.2. Certification optimiste
        3. 5.3. Estampillage multi-versions
      6. 6. Les principes de la résistance aux pannes
        1. 6.1. Principaux types de pannes
        2. 6.2. Objectifs de la résistance aux pannes
        3. 6.3. Interface applicative transactionnelle
        4. 6.4. Éléments utilisés pour la résistance aux pannes
          1. 6.4.1. Mémoire stable
          2. 6.4.2. Cache volatile
          3. 6.4.3. Journal des mises à jour
          4. 6.4.4. Sauvegarde des bases
          5. 6.4.5. Point de reprise système
      7. 7. Validation de transaction
        1. 7.1. Écritures en place dans la base
        2. 7.2. Écritures non en place
        3. 7.3. Validation en deux étapes
      8. 8. Les procédures de reprise
        1. 8.1. Procédure de reprise
        2. 8.2. Reprise à chaud
        3. 8.3. Protocoles de reprise à chaud
        4. 8.4. Reprise à froid et catastrophe
      9. 9. La méthode aries
        1. 9.1. Objectifs
        2. 9.2. Les structures de données
        3. 9.3. Aperçu de la méthode
      10. 10. Les modèles de transactions étendus
        1. 10.1.Les transactions imbriquées
        2. 10.2.Les sagas
        3. 10.3.Les activités
        4. 10.4.Autres modèles
      11. 11. Sécurité des données
        1. 11.1.Identification des sujets
        2. 11.2.La définition des objets
        3. 11.3.Attribution et contrôle des autorisations : la méthode DAC
        4. 11.4.Attribution et contrôle des autorisations : la méthode MAC
        5. 11.5.Quelques mots sur le cryptage
      12. 12. Conclusion et perspectives
      13. 13. Bibliographie
    3. Chapitre XVII – Conception des bases de données
      1. 1. Introduction
      2. 2. élaboration du schéma conceptuel
        1. 2.1. Perception du monde réel avec E/R
        2. 2.2. Perception du monde réel avec UML
        3. 2.3. Intégration de schémas externes
      3. 3. Conception du schéma logique
        1. 3.1. Passage au relationnel : la méthode UML/R
          1. 3.1.1. Cas des entités et associations
          2. 3.1.2. Cas des généralisations avec héritage
          3. 3.1.3. Cas des agrégations et collections
          4. 3.1.4. Génération de contraintes d’intégrité
        2. 3.2. Passage à l’objet-relationnel : UML/RO ou UML/OR?
      4. 4. Affinement du schéma logique
        1. 4.1. Anomalies de mise à jour
        2. 4.2. Perte d’informations
        3. 4.3. L’approche par décomposition
        4. 4.4. L’approche par synthèse
      5. 5. Dépendances fonctionnelles
        1. 5.1. Qu’est-ce qu’une dépendance fonctionnelle ?
        2. 5.2. Propriétés des dépendances fonctionnelles
        3. 5.3. Graphe des dépendances fonctionnelles
        4. 5.4. Fermeture transitive et couverture minimale
        5. 5.5. Retour sur la notion de clé de relation
      6. 6. Les trois premières formes normales
        1. 6.1. Première forme normale
        2. 6.2. Deuxième forme normale
        3. 6.3. Troisième forme normale
        4. 6.4. Propriétés d’une décomposition en troisième forme normale
        5. 6.5. Algorithme de décomposition en troisième forme normale
        6. 6.6. Algorithme de synthèse en troisième forme normale
        7. 6.7. Forme normale de Boyce-Codd
      7. 7. Quatrième et cinquième formes normales
        1. 7.1. Dépendances multivaluées
        2. 7.2. Quatrième forme normale
        3. 7.3. Dépendances de jointure
        4. 7.4. Cinquième forme normale
      8. 8. Conception du schéma interne
        1. 8.1. Les paramètres à prendre en compte
        2. 8.2. Dénormalisation et groupement de tables
        3. 8.3. Partitionnemment vertical et horizontal
        4. 8.4. Choix des index
        5. 8.5. Introduction de vues concrètes
      9. 9. Conclusion
      10. 10. Bibliographie
    4. Chapitre XVIII – Conclusion et perspectives
      1. 1. Introduction
      2. 2. Les bd et le décisionnel
        1. 2.1. L’analyse interactive multidimensionnelle (OLAP)
        2. 2.2. La fouille de données (Data Mining)
      3. 3. Bd et web
      4. 4. Bd multimédia
      5. 5. Conclusion
      6. 6. Bibliographie
  13. Exercices