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.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- 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 == ben Java, pour deux objets créés ainsi, sans méthodeequalsredéfinie ?
```java
Adresse a = new Adresse("12 rue Pasteur", "Lyon");
Adresse b = new Adresse("12 rue Pasteur", "Lyon");
System.out.println(a == b);`falsetrue- Une erreur à l'exécution
- Une erreur de compilation
Voir la réponse
false==compare les références, donc les identités :aetbsont 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.