balayage d'une arborescence d'une base de données

balayage d'une arborescence d'une base de données - SQL/NoSQL - Programmation

Marsh Posté le 18-07-2005 à 22:24:20    

Bonjour,
 
Est-ce que vous auriez pas dans vos cartons un algorythme pour balayer un base de données, je cherche à repérer les noeuds.
 
Merci d'avance

Reply

Marsh Posté le 18-07-2005 à 22:24:20   

Reply

Marsh Posté le 19-07-2005 à 08:19:18    

Les noeuds d'une base de données?? C'est quoi pour toi?

Reply

Marsh Posté le 19-07-2005 à 09:38:25    

Si c'est une relation du type "père-fils" dans une table, alors sous Oracle, il y a la fonction miracle "connect by ... prior ..." qui est parfaite.
Par contre, c'est pas très rapide, et surtout, ça ne marche à ma connaissance que sous Oracle.

Reply

Marsh Posté le 19-07-2005 à 09:41:42    

Je ne connais pas de fonction standard en SQL pur, je pense que chaque base de données à sa façon de faire pour retrouver les liens de parenté.
 
Si bien sûr c'est ce qu'entend phil444 par "noeud d'une base de données".

Reply

Marsh Posté le 19-07-2005 à 09:52:56    

franchement ça me semble quand même bizzare ce qu'il veut faire...

Reply

Marsh Posté le 19-07-2005 à 09:53:44    

Moi, ça me semble simplement abscons.

Reply

Marsh Posté le 19-07-2005 à 11:06:34    

ce que je veux faire, c'est que je suis sur une base, de SGDT, et je veux la balayer pour changer certains attributs, mais pour ça faut que je déploie toute l'aborescence, donc faire une boucle récursive, certainement en PL/SQL.

Reply

Marsh Posté le 19-07-2005 à 11:20:04    

phil444 a écrit :

ce que je veux faire, c'est que je suis sur une base, de SGDT, et je veux la balayer pour changer certains attributs, mais pour ça faut que je déploie toute l'aborescence, donc faire une boucle récursive, certainement en PL/SQL.


 
Une petite remarque : je crois que pour le récursif en SQL, on n'a droit qu'à un nombre limité d'imbrications.
Combien exactement je ne sais plus, peut-être 16 mais faut que quelqu'un confirme.
 
Sinon pour ton explication, je n'ai toujours pas compris. Qu'appelles-tu une "arborescence", dans une base ? L'ensemble des tables ?
De quels attributs parles-tu ? Index ? Clefs ? Autre ?

Reply

Marsh Posté le 19-07-2005 à 11:37:17    

Le nombre d'ittération récursives dépend du moteur de script. Pour le T-SQL (SQL Server 2000), c'est 20, chaque niveau de trigger comptant pour 1, c'est important à savoir en cas de mises à jour en cascade.

Reply

Marsh Posté le 20-07-2005 à 10:12:26    

oui c'est l'ensemble des tables avec les liens transverses

Reply

Marsh Posté le 20-07-2005 à 10:12:26   

Reply

Marsh Posté le 20-07-2005 à 10:18:16    

oui pour les attributs, il s'agit d'attributs de la table, c'est vrai faut être plutot précis dans les termes, le but c'est de changer la valeur d'un attributs dans la table, je te donne un exemple je dois changer le nom d'un service de l'entreprise, je dois pas avoir plus de 10 niveaux et je suis sur une base oracle avec sqlplus

Reply

Marsh Posté le 20-07-2005 à 10:30:52    

phil444 a écrit :

oui pour les attributs, il s'agit d'attributs de la table, c'est vrai faut être plutot précis dans les termes, le but c'est de changer la valeur d'un attributs dans la table, je te donne un exemple je dois changer le nom d'un service de l'entreprise, je dois pas avoir plus de 10 niveaux et je suis sur une base oracle avec sqlplus


 
 
 :heink:  
J'ai pas compris ton exemple là.
Tu voudrais pas parler d'intégrité référentielle en fait ?

Reply

Marsh Posté le 20-07-2005 à 12:47:29    

Donne un exemple complet avec :
-> Structure des tables liée à l'exemple
-> Données d'exemple
-> Ce que tu as
-> Ce que tu veux
-> Le numéro de téléphone de ta soeur si elle est jolie :D


Message édité par Arjuna le 20-07-2005 à 12:47:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed