Interroger des objets : OQL et l'objet-relationnel

Les requêtes OQL de la norme ODMG, la persistance par atteignabilité et les extensions objet de SQL dans PostgreSQL : types composés, tableaux, héritage de tables.

  • 23 cartes
  • 4 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

Quelques cartes du deck

  • OQL : de quoi s'agit-il ?

    Voir la réponse

    Langage de requête de la norme ODMG pour les bases d'objets, de forme proche de SQL mais qui interroge des classes et leurs références.

    select e.nom from e in Etudiants where e.promo.annee = 2 parcourt l'extension d'une classe et suit une référence sans jointure.

  • Les étudiants sont Ana (promo de 1re année), Bo et Cy (promo de 2e année) et Di (promo de 3e année). Que rend select e.nom from e in Etudiants where e.promo.annee = 2 ?

    • Bo et Cy
    • Ana et Bo
    • Bo, Cy et Di
    • Bo seulement
    Voir la réponse

    Bo et Cy

    Le chemin e.promo.annee suit la référence de l'étudiant vers sa promotion et lit l'année. Seuls les étudiants dont la promotion a 2 pour année sont rendus : Bo et Cy.

  • La norme … a défini pour les bases d'objets un langage de requête, l'….

    Voir la réponse

    La norme ODMG a défini pour les bases d'objets un langage de requête, l'OQL.

    Elle fixait aussi un langage de définition d'objets et des liaisons avec C++, Smalltalk et Java.

  • Expression de chemin : de quoi s'agit-il ?

    Voir la réponse

    Suite de noms séparés par des points qui traverse des attributs et des références d'objet en objet.

    e.promo.annee remplace la jointure d'une base relationnelle : on navigue de l'étudiant à sa promotion puis à l'année.

  • personne a une clé primaire sur id. On insère dans etudiant, table fille, une ligne dont l'id existe déjà dans personne, et PostgreSQL l'accepte. Quelle est la cause ?

    • La clé primaire ne contrôle que les lignes de la table elle-même, pas celles de ses filles
    • La clé primaire est désactivée par l'héritage dans toute la hiérarchie
    • L'id de la fille est un autre type que celui de la mère
    • INSERT ne vérifie jamais les clés primaires
    Voir la réponse

    La clé primaire ne contrôle que les lignes de la table elle-même, pas celles de ses filles

    Les contraintes d'unicité ne traversent pas l'héritage : l'index de la clé primaire ne couvre que personne, et la fille n'hérite même pas de la contrainte. Un id peut ainsi se retrouver en double si on lit la mère avec ses filles.