La base objet : identité et navigation

Pourquoi une base objet existe : le décalage entre un graphe d'objets et des tables, l'identifiant d'objet, les objets persistants et la navigation de référence en référence à la place de la jointure.

  • 24 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Base objet : de quoi s'agit-il ?

    Voir la réponse

    Base qui range directement les objets d'un programme, avec leur identité, leurs références, leurs collections et leur héritage, au lieu de les découper en lignes de tables.

    Le programme manipule des objets liés entre eux ; la base les garde tels quels, sans traduction vers un autre modèle à chaque lecture et chaque écriture.

  • Que vaut a == b en Java, pour deux objets créés ainsi, sans méthode equals redéfinie ?

    ```java
    Adresse a = new Adresse("12 rue Pasteur", "Lyon");
    Adresse b = new Adresse("12 rue Pasteur", "Lyon");
    System.out.println(a == b);
    `

    • false
    • true
    • Une erreur à l'exécution
    • Une erreur de compilation
    Voir la réponse

    false

    == compare les références, donc les identités : a et b sont deux objets distincts, même avec les mêmes valeurs. C'est exactement la distinction que l'identifiant d'objet rend durable dans une base.

  • Un objet … survit à la fin du programme qui l'a créé ; un objet … disparaît avec lui.

    Voir la réponse

    Un objet persistant survit à la fin du programme qui l'a créé ; un objet transitoire disparaît avec lui.

    La persistance est une propriété de l'objet (ou de sa classe), pas du langage : c'est la base qui rend l'objet durable.

  • Identifiant d'objet : de quoi s'agit-il ?

    Voir la réponse

    Identité attribuée par la base à chaque objet, indépendante de ses valeurs, et qui ne change jamais pendant la vie de l'objet.

    Une clé primaire relationnelle est une valeur de la ligne et peut être modifiée ; l'identifiant d'objet n'est pas une valeur, c'est ce qui permet de désigner l'objet même quand tous ses attributs changent.

  • Un logiciel de conception charge des assemblages de pièces imbriqués sur dix niveaux et passe son temps en jointures. Quelle est la cause, et quel stockage y répond ?

    • Un graphe profond reconstruit table par table ; un stockage qui navigue par référence
    • Trop peu d'index ; ajouter un index sur chaque clé étrangère suffit à supprimer les jointures
    • Des tables trop normalisées ; il faut les passer en deuxième forme normale
    • Une base trop lente ; il suffit de la doubler par un réplica en lecture
    Voir la réponse

    Un graphe profond reconstruit table par table ; un stockage qui navigue par référence

    Dix niveaux, ce sont dix jointures pour reconstruire un seul assemblage. Un index accélère chaque jointure sans la supprimer, un réplica n'enlève pas la reconstruction, et dénormaliser ne supprime pas les niveaux : une pièce qui contient des pièces reste une jointure par niveau.