MAKE_REF |
Fabrique une référence |
| Oracle Database SQL |
Oracle 8i Release 2 (version 8.1.6) ou supérieure |
Syntaxe
|
MAKE_REF({ table | view } , key [, key ]...)
|
Paramètres
| Nom |
Description |
| table / view |
Ce paramètre permet d'indiquer le nom de la table ou de la vue objet vers laquelle on souhaite créer une référence. Cette table doit être définie comme une table objet, c'est-à-dire basée sur un type objet. |
| key |
Ce paramètre permet d'indiquer la valeur de la clef primaire d'une ligne dans la table objet. Cette valeur est utilisée pour identifier de façon unique l'enregistrement vers lequel la référence est créée. |
| [, key ]... |
Ce paramètre permet d'indiquer une ou plusieurs valeurs de clef supplémentaires dans le cas où la clef primaire est composée (clé primaire multicolonnes). Il permet ainsi de localiser précisément l'objet ciblé lorsque plusieurs colonnes forment l'identifiant unique. |
Description
Cette fonction permet de créer une référence vers une ligne spécifique d'un objet relationnel dans une table objet. Elle prend en paramètre le nom du type d'objet et les valeurs de clé primaire nécessaires pour localiser l'enregistrement ciblé. Cette fonction est principalement utilisée dans le contexte de l'Object-Relational Model d'Oracle, afin de naviguer entre des objets liés.
Remarques
- La fonction MAKE_REF est un élément clé du modèle relationnel-objet d'Oracle, introduit avec les versions 8i. Elle permet de manipuler les relations entre objets de
manière similaire aux pointeurs en programmation orientée objet. Cela rend les bases de données Oracle particulièrement adaptées à des modèles de données complexes ou
fortement hiérarchiques.
- MAKE_REF permet de créer un lien direct vers un enregistrement spécifique d'une table objet, en utilisant la ou les valeurs de sa clef primaire. Ce comportement est
analogue à la création de références ou de pointeurs vers des objets en mémoire dans un langage orienté objet tel que
Java ou C++.
- L'utilisation de MAKE_REF suppose que la table ciblée est une table objet, c'est-à-dire qu'elle a été créée à partir d'un type objet défini dans le schéma. Elle ne peut
pas être utilisée avec des tables relationnelles traditionnelles, sauf si elles ont été conçues pour contenir des objets.
- Dans le cas d'une clé primaire composée, MAKE_REF prend plusieurs arguments représentant chaque colonne de cette clé, dans l'ordre exact où ils sont définis dans la
contrainte PRIMARY KEY. Cela permet de garantir une identification unique de la ligne cible, même avec des structures de clef complexes.
- La fonction est souvent utilisée en conjonction avec les colonnes de type REF dans les tables objet, ce qui permet d'entreposer des références vers d'autres objets et
de naviguer entre eux. Cela facilite la modélisation de relations telles que "composé de", "lié à", ou "dépend de".
- MAKE_REF ne valide pas automatiquement l'existence de la ligne référencée. Il crée simplement une structure de référence logique basée sur les valeurs données. Si les
valeurs de clé primaire ne correspondent à aucun enregistrement réel, la référence reste techniquement valide, mais inutilisable dans les requêtes suivantes.
- Lorsque combinée avec des types objets et des colonnes REF, MAKE_REF simplifie les jointures complexes. Au lieu de devoir écrire des requêtes SQL longues et détaillées,
il devient possible de suivre directement les relations entre objets à travers leurs références.
- L'utilisation de MAKE_REF nécessite des droits suffisants sur la table ou la vue cible, notamment le droit d'en lecture et le droit d'accéder à la définition de
l'objet. Si ces autorisations ne sont pas accordées, Oracle lèvera une erreur au moment de l'exécution.
- Le système de références dans Oracle à travers MAKE_REF est conforme à la norme SQL:1999 sur les types objets et références. Cela montre qu'Oracle a intégré des
standards reconnus dans son architecture pour permettre des modèles de données plus expressifs.
- Dans les bases de données orientées documents ou objets complexes, MAKE_REF évite d'avoir à répéter des données ou dupliquer des structures, ce qui réduit la
redondance et améliore la maintenabilité du modèle. C'est particulièrement utile dans les applications de gestion technique, d'ingénierie ou de géométrie.
- Les références créées avec MAKE_REF peuvent être testées, comparées ou même désérialisées via d'autres fonctions SQL comme DEREF, ce qui en fait un outil puissant
pour manipuler des graphes ou des arbres d'objets complexes directement dans SQL.
- MAKE_REF favorise un style de développement orienté objet dans un environnement SQL, ce qui peut faciliter la transition pour les développeurs habitués à la
POO. Toutefois, son adoption implique une bonne compréhension de la modélisation objet en base de données, car elle introduit une
abstraction supplémentaire au modèle relationnel classique.
Dernière mise à jour : Dimanche, le 29 Juin 2025