-
Métadonnées dans Oracle
Salut à tous ;)
Voila si je viens vers vous c'est parce que je me pose une question simple... enfin... Bon la voila :
Est il possible d'ajouter à la mimine des métadonnées sur des tables dans Oracle ?
Admettons les deux tables suivantes :
TABLE_A
Attr1A
Attr2A
Attr3A
TABLE_B
Attr1B
Attr2B
Attr3B
Si je souhaite ajouter une métadonnée sur chacune des tables (voire sur les attributs...), par exemple je souhaite mettre une métadonnée renseignant je sais pas moi... un chiffre (qui représente une info sur une table ou une colonne de notre modele). Admettons que je souhaite appeler cette métadonnée INFO et que je veuille la mettre à une valeur entre 0 et 9.
Est-il possible de faire cela au travers d'une requete ou d'un outil spécifique ? Nous donnant :
TABLE_A (INFO = 1)
Attr1A (INFO = 7)
Attr2A (INFO = 5)
Attr3A (INFO = 9)
TABLE_B (INFO = 3)
Attr1B
Attr2B (INFO = 4)
Attr3B
Ca c'est une premiere chose... mais aprés est-il surtout possible de lire cette métadonnée parce que c'est bien beau de l'ajouter... mais si on ne peut pas y accéder... Elle me sert à rien du coup ;)
Voilou... Comme je commence à peine dans les métadonnées et que j'ai encore un peu de mal, veuillez m'excuser si j'ai écrit des conneries... :)
Merci d'avance de votre attention et de vos réponses :)
-
As-tu envisager de stocker tes informations dans les "comments" de la table et des colonnes ?
Je pense que c'est la seule solution
-
Tu peux poser des 'Check Constraints' sur les colonnes (elles sont accessibles dans le Dictionaire de donnees):
http://download-west.oracle.com/docs...05itg.htm#4216
-
Bah je n'ai rien envisagé étant donné que je débute :)
Je veux bien essayer toutes les techniques... Par exemple les COMMENT... Mais comment ce gère ce genre d'info ?
Pour ajouter ou lire les comment sur une table, un attribut ?
Les comment je suppose peuvent être n'importe quoi sous forme de chaine de caractere... Donc ca veut dire que si je dois mettre des métadonnées la dedans faudrait que je parcours la chaine pour trouver exactement ce que je veux... Surtout que si j'en stocke plusieurs, il faudrait que je me débrouille pour pouvoir les retrouver.
le COMMENT devrait donc être comme cela par exemple :
"blabla [MD]INFO1=4,INFO2=5,INFO3=2[/MD]"
En balisant comme ca je retrouve mes metadonnées facilement... Car le mot INFO1 pourrait apparaitre dans blabla sans pour autant etre la métadonnée...
Le truc c'est que si jamais je veux modifier la valeur, ca va être un peu chiant de travailler avec une chaine de caractere... Ex si il s'agit de la date de derniere MAJ d'une table, je la modifie à chaque UPDATE, INSERT ou DELETE... (Imaginons biensur que cela est fait sur une table relativement statique... par statique j'entend qui va peut être être modifié une fois ou deux par semaine par exemple...)
En ce qui concerne les check constraints... Je n'ai pas le temps de regarder et le lien que tu m'as donné thomas me fait atterir sur une page d'identification... Je vais donc devoir m'inscrire sur le site d'oracle et regarder ca en détail ;)
Mais si tu as un peu plus d'info quant au fonctionnement... ;)
Ma question initiale vient en amont de mes recherches simplement pour me faire aiguiller et avoir l'avis d'expert afin d'éviter de me lancer dans des facons de faire toutes plus exotiques les unes que les autres et apprendre à me servir de ces métadonnées de la "bonne manière" (si il y en a une ;))
Merci encore ;)
-
Il serait peut-être bon que tu définisses les fameuses méta-données que tu veux gérer, afin de vérifier si cette information n'est pas déjà disponible dans les différentes vues fournies par ORACLE.
-
Non ca c'est sur que non. Il s'agit de critere vraiment spécifique. La MAJ c'était un exemple ;)
-
Rien ne t'interdit de créer une table dont la clé soit la même que celle de all_tables pour y gérer les informations que tu veux, et même chose avec une table avec la même clé que All_tab_columns.
-
Bah ouais c'est ce que j'avais pensé... mais justement je voulais savoir si il n'y avait pas un moyen moins con pour faire des métadonnées... Parce que là en gros ca ressemblerait à ca :
TABLE1 = Liste des infos dont j'ai besoin...
Attr0 = idMetadonnee
Attr1 = Nom (Ex : MAJ, Fraicheur, TypeDeDocument etc...)
Attr2 = ?
TABLE2 = Liste des tables et attributs de ma base
Attr0 = idElement
Attr1 = Nom (celui d'une table ou d'un attribut)
TABLE3 = Jointure avec une valeur
Attr0 = #METADONNEE (Clé étrangére vers Attr0 de Table1)
Attr1 = #ELEMENT (Clé étrangère vers Attr0 de Table2)
Attr2 = Valeur
Exemple :
TABLE1 :
1 MAJ
2 Fraicheur
3 TypeDeDocument
TABLE2
1 LIVRE (Table dans ma base)
2 Titre (Attr de la table LIVRE de ma base)
3 AUTEUR (Table dans ma base)
4 Nom (Attr de la table AUTEUR de ma base)
5 Prénom (Attr de la table AUTEUR de ma base)
TABLE3
1 1 7 (Qui veut dire que par exemple la fraicheur des données de la table LIVRE est de 7 jours... si on considère que l'unité de valeur est le jour par exemple...)
1 3 10 (Qui veut dire que celle des auteurs a une fraicheur de 10 jours...)
Enfin... Voila... J'espere que c'est clair et surtout juste :)