bdmd diamant

Introduction Décision Explication versionning utilisation systeme Exploitation


I Introduction

Rappel des concepts

Base de connaissances

N-arbre Fractal Virtuel

Flocon 3D push pull

Stockage en étoile

 

II Décision

Faire 60 fichiers sam

Faire 60 tables db2

Faire 60 LOAD

Concaténer les 60 tables db2 en une table diamant

 

III Explication

3 applications

Deux périodes

10 tables équifolios

 

IV Gestion du versionning (états de livraison)

Statut

Etat de livraison

Date de l'état de livraison

Date de saisie du statut

 

V principes d'utilisation

SWEET SPOT

PAM = diamant, or, argent, cailloux, détail

principe de classification et segmentation d'un datawarehouse en vue du data mining

Datamining

Diamant

Etoile

Branche d'une étoile

Dimensions

Hypercube

Axe

Changer de dimension

Dimensions traditionnelles

 

 

VI description du systeme

L'analyse est multidimensionnelle :

Le stockage est en étoile

La navigation

Il y a un diamant au centre de la BDMD

Autour du diamant dans le plan vertical il y a une étoile PULL

Autour du diamant, dans le plan horizontal il y a un flocon PUSH

BTI

SGBDR

systèmes à base d'arbres, SGBDOO

HYPER QUERY

le flocon

le NFV appartient à une BC (base de connaissances multimédia) gérée par un SGBCE

 

VII Exploitation

Taches à faire à la fin de PROJETRIM1 pour bien commencer PROJETRIM2

Gestion des composants pour PROJETRIM2

 

 

 

I Introduction

Rappel des concepts

 

Il y a une base de connaissances

C'est un N-arbre Fractal Virtuel

Le N-arbre Fractal Virtuel a un 2-arbre

le 1er arbre s'appelle: décomposition en analyse, programmation, mise en oeuvre

le 2ème arbre s'appelle: donnez moi tout ce qui concerne tel sujet

 

A l'intérieur de l'arbre "décomposition en analyse, programmation, mise en oeuvre"

il y a la branche analyse

Dans la branche analyse il y a l'Hyper Monde Virtuel à 10 niveaux

 

Dans la branche programmation il y a entre autres les queries

 

Dans la branche queries il y a un 4-arbres

Le 4-arbres référencant les queries contient:

l'arbre de décomposition par folios

l'arbre de décomposition par tâches

l'arbre de décomposition par niveaux de consolidation

l'arbre de décomposition par la dimension temps

 

Le 2-arbre contient un 4-arbre c'est pour celà que ce n-arbre est fractal.

 

2 branches d'un même arbre pointent vers 2 objets stockés différents

2 arbres d'un même n-arbre pointent vers le même objet stocké

là est la différence entre les branches d'un arbre et les arbres d'un n_arbre.

 

Chacun des 4 arbres référencant les queries pointe vers n feuilles

Chaque feuille est une liste

 

L'existance d'une liste permet à la vue de haut de s'arrêter assez tôt à un niveau assez synthétique

et de ne pas s'enfoncer dans la jungle des détails des niveaux bas

 

La feuille-liste est le niveau le plus bas de la partie non virtuelle (la partie directe) de l'arbre

Au delà de la partie directe non virtuelle de l'arbre, se trouve un lien virtuel (un pointeur dynamique

vers le lieu de stockage réel.

Le lieu de stockage réel stocke l'information

L'information qui concerne les queries existe sous forme description de query

(sous forme WORD), ou sous forme donnée dans une table DB2 BDMD (diamant) ou sous forme

listing de query.

D'autre part pour les non queries on peut avoir des formes dessins 2D ou 3D selon

le sujet ou bien des dossiers physiques sur papier.

 

 

Notre sujet est la BDMD

La BDMD est composée d'un diamant et d'une étoile autour du diamant

Le diamant est le coeur de l'étoile

Chaque branche de l'étoile est une dimension

Une dimension (ou axe) peut avoir des niveaux de totalisations (dynamiques ou précalculées)

 

La précalculation augmente la taille de la base

La précalculation augmente la vitesse d'extraction des sous-totaux

La floconisation diminue la taille de la base

Floconniser consiste à remplacer PROJETRIM1 par 1, et Folio 1 par 1, oui par 1, non par 0, décembre par c etc..

 

Une branche d'une étoile est une ligne droite

Une branche d'un flocon est une arborescence

Voilà la différence entre une branche d'une étoile et une branche d'un flocon

tous les chemins de l'étoile mènent au diamant sans carrefour

une branche d'un flocon peut déboucher sur un autre flocon de façon fractale

 

 

La BDMD = diamant + étoile autour du diamant est représentée dans le plan vertical

 

Le N-arbre queries = diamant + flocon autour du diamant est représenté dans le plan horizontal

 

La partie non virtuelle du flocon va de la racine des arbres jusqu'aux feuilles des arbres (feuille=liste)

La partie virtuelle du flocon est composée des pointeurs vers le diamant (coeur du BDMD = hypercube)

La partie stockage réel du flocon est le diamant contenant toutes les dimensions sous forme concentrée

Diamant = concentré = dur = valeur maximale, graphite = friable = valeur diluée

 

L'étoile (dans le plan vertical, BDMD hiérarchique à n dimensions)

+ le flocon (dans le plan horizontal, n-arbre fractal virtuel pour les queries )

= le flocon 3D push pull

 

3D = plan vertical + plan horizontal = flocon horizontal + étoile verticale

 

Push = type de requête prévue + structure préfabriqué + l'utilisateur choisit son chemin parmi

les chemins déjà préparés pour lui avec les requêtes et pointeurs déjà toutes prêtes

c'est à dire les réponses sont déjà toutes prémâchées

pull = permet à l'utilisateur de se fabriquer lui même des requêtes ad hoc en naviguant rapidement facilement

à travers toutes les dimensions possibles, sur tous les niveaux possibles de détail ou d'abstraction au sein de

chaque dimension ou axe.

 

 

SWEET SPOT: la combinaison entre 36 dimensions et 10 possibilités par dimension amène à conclure

sur l'existence de 10 à la puissance 36 cas possibles à mettre à la disposition de l'utilisateur qui consulte la base

pour conduire son analyse.

Cette possibilité nécessaire représente beaucoup de papier si on l'imprime et beaucoup

d'espace disque si on le stocke normalement.

Par contre

* si on fait un stockage en étoile (tous les cas possibles dans chaque dimension se trouvent autour et pas au milieu),

- si on floconnise en rejetant le maximum de détails hors du centre

-et si on ne met au milieu que les métadonnées (les plus précieuses, les données sur les données, les données

qui peuvent aiguiller sur d'autres données)

* alors la jointure entre les méta données(métadata)

et les données peut se faire dynamiquement à la volée (on the fly)

- ainsi le stockage est peu volumineux,

- les liens (du diamant aux branches de l'étoile) (ou des feuilles du flocon vers le diamant) dynamiques

sont faits après que la question est formulée,

- les requêtes à partir de plusieurs critères peuvent être construites selon le besoin du moment

(requêtes AD HOC, PULL)

- la BDMD est à la fois souple, puissante, riche, peu volumineuse, rapide, directe, multidimensionnelle,

hiérarchique et permet la navigation avec le maximum de fluidité.

- fluidité = pouvoir aller dans tous les sens facilement vers le haut (DRILL UP) , vers le bas (DRILL DOWN),

vers le côté (DRILL THROUGH), et aussi DRILL ACROSS(d'une dimension à l'autre),

DRILL OUT (vers WORD et VISIO) , DRILL DOWN TO DETAIL (vers les listings en entier).

- et notamment pouvoir combiner les dimensions

comme donnez moi toutes les queries de lecture du folio 1 de niveau siège du PROJETRIM 1 97

 

 

 

 

II Décision

 

Faire 60 fichiers sam

Faire 60 tables db2

Faire 60 LOAD

Concaténer les 60 tables db2 en une table diamant

 

 

 

III Explication

 

3 applications:

projetrim1

projetrim2

projmois

60 / 3 = 20 tables par application

 

Deux périodes:

ancienne

et prochaine

20 / 2 = 10 tables

 

Les 10 tables sont des équifolios

 

1 bdr

2 folio 1

3 folio 2

4 folio 3

5 folio 4

6 folio 5

7 folio 6

8 folio b

9 maj bdr, maj p60

10 sidg

 

 

IV Gestion du versionning (états de livraison)

 

Statut

colonne colonne

ancien prochain signification

1 0 = ancien non reconduit

1 1 = existant reconduit

0 1 = nouveau

0 0 = déjà désactivé en cti

 

Etat de livraison sur 2 à 3 car

DV = en développement = se trouve dans l'environnement de développement

VR = en vérification = en cours de recette technique = mis dans l'environnement de recette technique

= développement unitaire terminé

= mis dans la bibliothèque de communication qui va du développeur au recetteur technique

VL = en validation = en cours de recette fonctionnelle = vérification technique terminée

= mis dans prochain trim ou mois qui est l'image de ce que va contenir le CTI

au prochain trim ou mois

VT = validation terminée = mis dans prêt à livrer = en attente de livraison par lot c'est à dire

en attente que les autres composants soient prêts et en attente de laisser

libre la bibliothèque de départ de livraison pour d'autres choses (périodes de composants)

comme le réel qui tourne et qui doit être maintenu.

LV = livré mais pas encore vérifié arrivé = l'acte de livraison est fait

= se trouve dans derniers livrés

XP = en expé = l'expé a commencé mais n'est pas encore terminé

XT = expé terminé mais géné n'a pas encore commencé

EG = en géné = la géné a commencé mais n'a pas encore été validée

GT = géné terminée ==> doit se trouver dans image et dans la bibliothèque reflet de la géné de cette période.

DB = en debugging

DA = désactivé ne tourne plus en cti

PR = provisoire, à modifier après

OK = tourne en CTI

 

Date de l'état de livraison = j m aa

 

 

Date de saisie: m = mois

t = trim

aa = année

désigne aussi la date du statut

 

statut 0 0 0 déjà désactivé en CTI

statut 0 0 1 nouveau

statut 1 0 0 ancien non reconduit

statut 1 1 1 existant modifié reconduit

 

la date de saisie est contenue dans la dimension temps

la dimension temps est contenue dans la dimension espace-temps

la dimension espace temps est contenue dans la dimension situation

la dimension situation fait partie des 7 dimensions:

sujet, verbe, complément, situation, entrée/sortie, objectif, versionning

 

Remarques

On a 60 tables pour faire 60 load séparément à différents moments

On a 60 fichiers pour les gérer individuellement indépendamment les uns des autres

On les cumule pour les regarder de façon générale selon d'autres critères de sélection d'après le contenu

La segmentation donne la souplesse

On stocke selon un découpage

On lit selon n découpages

la granularité grande donne la puissance

La lecture peut être hiérarchique et multidimensionnelle

 

V principes d'utilisation

L'exploitation du dataware house se fait avec les principes du 'SWEET SPOT' , de la 'PAM'

et du dwh expansé

expansé veut dire 10 % rempli et 90% non rempli pour avoir l'extensibilité (scalability) en même temps que

la rapidité de déploiement et le faible coût de mise en oeuvre (grand DWH coûteux et cohérent contre petit datamart non extensible). Ici on a à la fois l'extensibilité cohérent du DWH (les places sont prévues la structure est prête) et le caractère bon marché du datamart immédiatement opérationnel (le chargement n'est pas obligatoire pour certaines tables de dimensions (axes) ou colonnes de dimensions (clés de jointures vers les axes).

 

SWEET SPOT = endroit qui fait partir le plus loin quand on impacte dessus

le principe du sweet spot représente la quantité optimale d'information

s'il y en a moins on peut difficilement tirer des décisions judicieuses

s'il y en a plus, cela coûte trop cher à gérer et cela embrouille

 

Le bénéfice de la quantité d'information disponible dans le modèle (pourcentage du total dans le monde réel)

augmente de façon logarithmique ainsi que le bénéfice de toutes choses

(supplément d'argent, supplément de nourriture)

Dans un système d'information le coût de la quantité supplémentaire d'information

augmente de façon exponentielle quand on veut s'approcher du monde réel

ainsi que dans d'autres systèmes de modélisation

Il arrive donc un moment où le coût de l'information supplémentaire à modéliser dans le système

excède le bénéfice à en tirer c'est superflu et ça coûte énormément.

A ce point précis il faut arrêter d'ajouter de l'information et commencer l'analyse pour prendre des

décisions. Si la quantité d'information excède le niveau nécessaire il faut jeter en dehors de la zone visible

pour accélérer la compréhension et l'analyse pour la décision. Il faut tailler le bloc d'information pour qu'il

corresponde aux besoins de chaque question.

Il y a en général environ sept dimensions et dans chaque dimension il y a trois ou quatre niveaux

donc il y a en tout de 24 à 36 sweet spot intéressants selon les questions. Au delà de ce nombre, ce sont des

questions spécifiques aux domaines des métiers ce ne sont plus des questions générales à toutes les entreprises.

et le système devient complexe. Le Sweet Spot c'est le bloc d'information qui se trouve à la bonne taille

et au bon endroit pour répondre à la question importante. Moralité comme il y a plusieurs questions possibles,

il faut préparer plusieurs sweet spot au préalable c'est à dire précalculer plusieurs sous-totaux dans chaque

dimension (axe) et il faut construire au départ plusieurs axes (environ 7). Puisque le manager réfléchit de façon

multidimensionnelle pour analyser et décider et puisqu'il passe d'un niveau de consolidation à l'autre au cours

de son analyse, en d'autres termes il navigue dans tous les sens, zoom in, vue détaillée, zoom out, vue panoramique

passage d'un axe à l'autre (pivoter), alors il faut que le système d'information lui permette de faire tout celà de façon

quasi instantanée (passer d'un axe à l'autre, pivoter, passer d'un niveau à l'autre, drill down) Donc il faut que le système d'information soit à l'image des trajets possibles de la réflexion du décideur.

Bref il faut que la base de données soit multidimensionnelle. Comme il coûte trop cher et il est inutile de faire tout multidimensionnel, on va rendre multidimensionnelle seulement la partie la plus aggrégée

et on va laisser dans l BDR la partie la plus fine donc la plus volumineuse.

 

 

PAM = ne considérer que les informations les plus pertinentes et les plus précieuses = diamant

ne pas inclure les informations moins vitales dans la base de données multidimensionnelle

mettre un peu plus loin les informations de deuxième importance = or

mettre encore un peu plus loin les informations de troisième importance = argent

mettre très loin les informations rarement utilisées ou de basse valeur stratégique = cailloux

rejeter hors de la BDMD et vers une BDR classique les informations de détail au niveau le plus fin

tel est le principe de classification et segmentation d'un datawarehouse en vue du data mining

 

Diamant = niveau zéro du flocon

Or = niveau 1 du flocon

argent = niveau 2 du flocon

Classification = par types et catégories (ex: PROJETRIM1, PROJETRIM2, PROJMOIS)

Segmentation = découpage à différents niveaux d'une échelle (ex: PROJETRIM1 96, PROJETRIM1 97, PROJETRIM1 98)

Objectif de la classification et de la segmentation: élever la granularité

Elever la granularité = accéder des milliers de fois plus rapidement aux informations au niveau supérieur choisi sans être obligé à tous les coup d'aggréger "on the fly" à partir des niveaux les plus fins.

exemples de segmentation: par dates, par lignes de produits, géographique, par unités organisationnels

 

 

Datamining = trouver le plus rapidement et le plus précisément possible les données les plus précieuse et pertinentes ( parmi des données moins précieuse

qui font gagner le plus d'argent et de compétitivité à travers une meilleure réactivité dans un environnement

compétitif à grande vitesse de changements, fluctuations et évolutions.

trouver de l'information automatiquement à partir d'une masse de données. détermination de tendances, découverte de règles,

donner à l'utilisateur la réponse qu'il ne sait pas qu'il veut en répondant à la question qu'il ne sait pas poser.

Diamant = l'information sous sa forme la plus concentrée, la plus précieuse et stratégique, le coeur de l'étoile

 

Etoile : système de stockage d'une BDMD avec:

* au milieu: des colonnes floconisées (contenant des codes et identifiants)

* et autour: des tables contenant les mêmes codes et identifiants d'une part et le détail

des lignes d'autre part (exemple: code client code produit code action commerciale au centre et coordonnées

client, description produits, libellés actions commerciales autour)

On rejette toutes les informations les moins vitales vers la périphérie

 

Branche d'une étoile: représente une dimension. Peut avoir plusieurs niveaux.ou un seul.

Peut contenir différents niveaux de consolidations et de totalisations dans une dimension

 

Dimensions: plusieurs dimensions peuvent se combiner en une grande dimension comme

espace + temps = situation

une dimension est représentée par un axe de l'hypercube

dans les requêtes on peut passer d'une dimension à une autre (pivoting),

choisir une dimension (slice)

sélectionner sur plusieurs dimensions (dice),

descendre d'un niveau (drill down),

déduire une dimension à partir du résultat de l'autre (drill accross),

descendre au niveau le plus bas (drill down to detail) vers la bdr à partir de l'hypercube réel.

aller de l'image multidimensionnelle virtuelle vers la bdr (drill through)

sortir de la base pour aller sur le WEB ou l'IHM (WORD EXCEL VISIO etc...) (= drill out)

exemple de dimensions: 1 sujet, 2 situation, 3 verbe, 4 compléments, 5 E/S, 6 objectif, 7 version

 

 

Hypercube: un cube comprenant plusieurs axes par exemple 7 axes principaux et 36 mini axes

exemple d'axes: 1 sujet, 2 situation, 3 verbe, 4 compléments, 5 E/S, 6 objectif, 7 version

exemple d'axes: 1 date, 2 géographie par continents pays villes, 3 gamme de produits, produits

4 organisation, unités de production, 5 axe financier

6 axe commercial marketing vente, clients,

7 axe gestion de ressources humaines

 

Axe: axe d'analyse pour analyser une dimension, un axe est représenté en ligne ou en colonne d'un

tableau, et dans un axe, les niveaux sont les sous totaux, par exemple si l'axe est en ligne les

niveaux sont les lignes de sous totaux, si l'axe est en colonnes, les niveaux sont les colonnes

de sous-totaux

 

Changer de dimension: on change de dimension en changeant d'axe d'analyse par exemple on met la ligne

en colonne ou vice versa , ou bien on met une dimension en majeur et une autre dimension en mineur

ou vice versa ou bien on enlève une dimension de la vision et on la remplace par une autre.

En somme on analyse les dimensions en manipulant les axes, on change de dimension en changant d'axes

d'analyse.

 

Dimensions traditionnelles:

* WHO,WHEN,WHAT,HOW, RESULTS, MEASURES

* QUI, QUOI, QUAND, COMMENT, RESULTATS, INDICATEURS

* parfois certains indicateurs sont dans l'intersection des axes et dimensions

* dimensions: FINANCES, RECHERCHES ET DEVELOPPEMENT,

PRODUCTION,MARKETING, VENTE, CLIENTELE, DRH, DOSI,DG

 

VI description du systeme

Dans la BDMD PROJX

L'analyse est multidimensionnelle :

1 sujet,

2 verbe,

3 complément,

4 situation (espace , temps),

5 entrée/sortie,

6 objectif,

7 versionning état de livraison.

 

Le stockage est en étoile

chaque branche est une dimension

chaque dimension a des niveaux

 

La navigation

se fait avec les possibilités de zooming dans les niveaux et de passage de dimension à dimension

elle permet le SLICE and DICE, DRILL DOWN, DRILL ThROUGH, DRILL ACROSS, DRILL OUT, DRILL DOWN TO DETAIL,

 

Il y a un diamant au centre de la BDMD

Le diamant c'est le centre de l'étoile

Le diamant c'est le centre du flocon

L'étoile a des branches ou axes ou dimensions

Un axe a des noeuds, une dimension a des niveaux, un noeud est un sweet spot

 

Autour du diamant dans le plan vertical il y a une étoile

du genre WHO,WHEN, WHAT, HOW, RESULT, MEASURES etc...

l'étoile sert à faire du PULL

PULL veut dire: lorsque l'utilisateur veut une information de n'importe quel type il peut faire une requête

comme il a besoin en mettant des conditions multicritères sur le contenu des éléments à sortir ensuite il peut

lancer sa requête générale sur l'ensemble de la BDMD du datawarehouse et il obtient la réponse précise

à sa question personnalisée rédigée par lui même à la demande au moment de la consultation de la

base.

exemple: quelles sont les queries de projetrim1

quelles sont les queries du 1er trimestre 1997

quelles sont les queries de projetrim1 du 1er trimestre 1997 à livrer

quelles sont les queries qui lisent la bdr et sont impactées par un modification de la bdr

quelles sont les queries qui consolident le niveau groupe en accédant à la BFM

cela sert pour le debugging ou l'évolution ou la gestion de composants

 

Autour du diamant, dans le plan horizontal il y a un flocon

le flocon sert à faire du PUSH

PUSH veut dire: le concepteur de la base prévoit à l'avance les questions fréquemment posées et les questions

importantes possibles il prépare tous les cas utiles et il construit la structure de la base sous forme arborescente

pas la technique de la classification et/ou la segmentation de telle manière que lorsque l'utilisateur arrive

il a un assortiment tout fait de menus qui lui est proposé, il n'a plus qu'à choisir la branche qu'il veut explorer

et les réponses préfabriquées lui sont présentées de façon automatique et très rapide et précis comme par magie

alors qu'en vérité on lui a déjà préfabriqué un certain nombre de chemins de requêtes qui représentent des cas connus de grande valeur et de grande fréquence d'utilisation.

L'idée est que presque tout le monde pose presque tout le temps les mêmes questions. C'est pourquoi on va préparer

à priori les mêmes réponses on va les présenter de façon immédiatement visible d'un seul coup d'oeil dans un BTI

et ensuite l'utilisateur n'aura plus qu'à aller piocher dans ce même BTI la réponse archi connue à sa question

archi usuelle.

 

 

BTI: technique qui permet de représenter une hiérarchie dans un contenant tabulaire (ex: table DB2)

Technique qui permet de se servir des fonctionnalités et qualités d'un SGBDR afin de mettre en oeuvre

les fonctionnalités et qualités des systèmes à base d'arbres, d'arbres de décisions, de graphes hiérarchiques:

SGBDOO, SG de bases de connaissances, PG systèmes experts, SGB données complexes multimédias,

Datawarehouse, Data mining, Text mining, Software component mining,

IA, Hyper textes, Hypergraphes, réseaux baysiens, hyper images, n-arbres,

hyper cubes, hyper mondes, hyper mondes virtuels, n-arbres fractals virtuels

SG bibliothèques de composants logiciels réutilisables, référentiels en arborescences, GED

groupware, intranet, HTML, Java BEANS, JDBC

exemple: à partir d'un BTI modélisé sous logiciel graphique FLOW,

saisi sous EXCEL avec RIRnD,

stocké sous DB2 avec tables liées,

on peut afficher la hiérachie dans une page HTML

où le clic de la souris dans une cellule de la BTI de la part de l'utilisateur

déclenche un JAVA BEANS

qui appelle un JDBC

qui s'interface à un ODBC

qui lit une base relationnelle en langage SQL

et rend la réponse de la BDMD du dataware house (ou du FLOCON PUSH)

qui s'affiche dans la page HTML

en face du BTI qui demeure visible

en même temps que la réponse à la requête PUSH HYPER QUERY

 

HYPER QUERY: on donne une sorte de menu avec des cases sous forme BTI ou table finale de folio

l'utilisateur clique dans une cellule de la BTI et obtient immédiatement la réponse parcequ'une requête

sous jacente a été lancée parce que la cellule est active et le clic dans la cellule lance une query

QUERY parce qu'une query a été lancée, HYPER parce que ça a été fait par un clic de souris comme

lorsqu'on clique sur un mot et cela donne un texte c'est un hyper texte.

Hyper query virtuelle: au lieu de déclencher la requête au clic, le système donne le nom de la requête qu'on peut lancer immédiatement en cliquant sur 'changer d'écran' et 'lancer la requête sous DB2' ou ACCESS.

 

le flocon part d'un n-arbre fractal virtuel

On dit flocon parceque ce n'est pas une ligne directe comme une dimension à niveaux (année trim mois)

il y a n arbres qui aboutissent à des feuilles qui contiennent des listes dont chaque élément pointe vers

un élément du centre de la BDMD (son diamant) donc il y a des éventails et des rateaux ce qui fait des flocons (ensemble d'éventails arborescents autour d'un centre) et pas des étoiles (ensembles de directions autour d'un centre)

 

le NFV appartient à une BC (base de connaissances multimédia) gérée par un SGBCE

(e =ensembliste = qui permet de sortir des ensembles, = qui permet de faire des requêtes générales sur tous les éléments selon leur contenus d'après des critères de sélection).

(e=par opposition aux requêtes de SGBDOO qui gèrent des objets complexes et sortent un objet à la fois sans

traiter l'ensemble des éléments en général et sans sortir des collections comme réponses et sans pratiquer extensivement les critères de sélection selon le contenu).

Les SGBDOO sortent des objets en poupées russes qui peuvent être gros mais en général ils sortent un à un

du genre voiture-moteur-filtre-boulon et ne sortent pas souvent les ensembles de 500000 comptes clients

d'une grande banque ressources fortements rémunérées du trimestre encours.

BC = traite les objets complexes et multimédias par opposition aux BDR qui ne traitent que les objets simples et les données. BC : traite souvent des données textuelles (WEB) avec en plus des images et du multimédia.

Le NFV ici est un 4-arbres pour les queries = 1 folio, 2 tâche, 3 niveau de consolidation, 4 temps

et au dessus c'est un 2-arbres = 1) découpage par analyse programmation mise en oeuvre

2) découpage par :"donnez moi tout ce qui concerne tel sujet".

selon le principe du OEPA (One Entry Pulls All)

utilisé à la fois dans C.A.Jasmine et Softlab Enabler.

On trouve donc deux n-arbres imbriqués

 

 

 

base de connaissances projx

dataware house projx

bdmd projx. hypercube

table de dimension

dimension = sujet

sujet = query (en d'autres circonstances le sujet peut être un select

ou bien on peut rajouter la procédure clistau dessus de la query pour pouvoir

sélectionner toutes les queries d'une clist)

 

folio 1 car

projetrim1

premier 3 car

ancien 3 car

nouveau 3 car

projetrim2

premier 3 car

ancien 3 car

nouveau 3 car

projmois

premier 3 car

ancien 3 car

nouveau 3 car

date saisie

trim 1 car

mois 2 car

annee 4 car

libellé 60 car

 

 

 

 

 

base de connaissances projx

dataware house projx

bdmd projx. hypercube

table de dimension

dimension = situation

position: espace: composants et deploiement implementation

query

ex rl111prt

application:

ex: projetrim1

job

ex: rprtqm01

procédure

ex: rp103prt

clist:

ex: rc200prt

folio

ex folio 1

 

date position

ex 1 5 1997 = 1er trim 5 ème mois 1997

statut

ex 111 existant modifié reconduit

date statut

ex jj mm aaa

 

 

 

 

VII Exploitation

 

Tâches à faire à la fin de PROJETRIM1 et pour bien commencer PROJETRIM2

 

* Imprimer toutes les queries nouvelles de PROJETRIM1

- Dernière version livrée

- Segmentées par packages

- Classifiées dans l'ordre de la CLIST

 

 

 

 

gestion des composants pour projetrim2

 

* lister les queries nouvelles de projetrim1

* créer une bibliothèque de queries nouvelles de projetrim1 après généralisation

il faut que cette bibliothèque soit exhaustive: point de départ indispensable pour le travail dans projetrim2.

* remplir la bibliothèque de généralisation à l'aide de deux bibliothèques

- la bibliothèque derniers livrés

- la bibliothèque de départ de livraison

* une fois la bibliothèque de généralisation remplie elle donne la liste de toutes les queries livrées en

premier trimestre 1997 pour projetrim1. Cette liste doit être exhaustive sinon on oublie des développements

pour PROJETRIM2.

cela ne suffit pas car il y a des queries déjà livrées et déjà overrided

il faut identifier les queries nouvelles qui tournent actuellement en cti

parmi les queries déjà livrées

pour cela il faut comparer la liste de queries livrées avec la procédure CLIST qui tourne

* Ayant obtenu enfin la liste de toutes les queries livrées et qui tournent réellement

on doit segmenter cette liste selon les packages. Un package est une division logique qui

s'inspire de la division des tâches vers les ressources. Un package à ce niveau c'est un folio

ou un équivalent-folio.

Pour exécuter la segmentation de la grande liste exhaustive: s'inspirer de la procédure CLIST qui
sépare bien les folios

Il faut faire autant de petites listes que de packages administratifs afin de pouvoir aborder chaque chose

séparément avec chaque développeur séparément et terminer, valider chaque partie au fur et à mesure qu'on

avance dans le travail. Sinon rien n'est validé, tout est en cours et c'et difficile de suivre.

* En même temps que la tâche de segmentation il est nécessaire de faire la classification dans l'ordre

de la procédure CLIST sinon c'est très lent de trouver la présence ou l'absence d'une query qui doit être
quelque part

La classification dans l'ordre de la procédure CLISTpermet l'accès direct en s'aidant de la procédure
CLIST ou en connaissant la CLIST. L'absence d'ordre oblige ) pratique la recherche par balayage séquentiel à
chaque fois qu'on a besoin de consulter une liste au lieu de pouvoir faire l'accès direct de façon ergonomique.
La classification dans l'ordre permet de faire beaucoup plus rapidement les comparaisons nécessaires et
inévitables entre les diverses listes dont on dispose par exemple comparaison entre la listes de queries livrées
par les développeurs à la recette et la liste des queries qu'ils doivent livrer.

* Après avoir obtenu une série de listes de queries nouvelles livrées qui tournent

listes segmentées et classifiées on met dans la dimension sujet

La dimension sujet est constituée d'un table de dimension sujet qui contient toute la dimension sujet

et de n tables réparties en 3 séries qui contiennent:

série 1 anciennes = A

série 2 nouvelles = P pour prochain

série 3 qui tournent en CTI = E pour exploit.

chaque série contient une segmentation en packages = folios ou équivalent-folios

chaque package a une classification dans l'ordre de la CLIST

 

 

* Pour l'instant on ne met dans la dimension sujet que les queries nouvelles.

Pour l'instant, très temporairement, on ne remplit que

la grande table de dimension sujet du datawarehouse

* Ensuite on pratique la segmentation de la grande table de dimension sujet du datawarehouse

en reportant les segments vers

les 10 datamarts petites tables de dimension sujet nouvelles queries

* On reporte pour plus tard le renseignement

des datamarts petites tables de dimension sujet anciennes queries

et des datamarts petites tables de dimension sujet queries en exploitation

 

 

question: quelle est la différence entre prochain et nouveau?

réponse: un prochain peut être un existant modifié et reconduit

alors qu'un nouveau peut être un non existant précédemment, créé de toutes pièces et mise en exploit.

 

Passage de PROJETRIM1 à PROJETRIM2

On veut être capable de dire quelles queries de PROJETRIM2 doivent être touchées et livrées en s'inspirant de PROJETRIM1

A partir de la PROCÉDURE CLISTPROJETRIM1

1°) Principe d'exclusion

1.1 Exclusion de ce qui ne tourne pas

1.2 Exclusion de ce qui n'est pas touché cette fois ci

 

Pour avoir ce qui tourne et qui doit être touché

c'est à dire les nouveaux prochains

 

2°) Principe d'exhaustivité

Tout ce qui tourne et qui est nouveau

et parmi les nouveaux que ce qui tourne.

il ne faut pas en oublier

Il ne faut pas en avoir trop (exemple des livrés mais qui ne tournent plus)

Il faut le nombre exact.

 

3°) Principe de segmentation

Segmenter en 10 packages

BDR f1 f2 f3 f4 f5 f6 fb majbdr majsuivi

 

Parceque chaque package est déjà gros (exemple folio 1)

 

4°) Principe de classification

Classer dans l'ordre de la CLIST

éventuellement donner un numéro d'ordre

exemple prendre le numéro à gauche de l'écran

ou bien faire 3 colonnes de 2 caractères chaque: premier ancien nouveau

 

5°) Principe d'automatisme

5.1 Rendre automatiques les comparaisons en mettant les membres de bibliothèques

dans des fichiers puis dans des tables et ensuite manipuler ces tables par du SQL

pour faire les comparaisons, les jointures, les exclusions, les sélections et les classifications dans l'ordre

en somme pratiquer les recherches multicritères et appliquer les fonctions de l'algèbre relationnel sur des

éléments qui étaient à l'origine des membres de bibliothèques TSO et des parties de procédures CLIST

En somme gérer des composants en masse par les techniques de gestion de bases de données relationnelles

et utiliser les résultats de ces requêtes relationnelles pour alimenter des bases de données relationnelles

organisées en dataware house avec stockage en étoile et flocons, structures en hypercubes pour disposer de

bases de données multidimensionnelles afin de faire des queries de datamining sur ces BDMD contenant des

descriptions de composants logiciel en fait faire du Software componant mining à partir d'alimentations

automatisées par queries.

5.2 Rendre automatique la transformation de procédure CLIST en résumé de procédure
CLISTcontenant que les queries.

en faisant passer la PROCÉDURE CLIST à travers un programme LG3 (COBOL,VB,JAVA etc...)

 

6°) Glissement tectonique des 3 colonnes premier ancien nouveau

ça glisse tout en restant. Ca reste tout en glissant. Ca augmente tout en gardant la même taille

carroussel sur 3 plots, rotation volley pour les noms.

=========================================================================

 

 

Etapes pour le repérage des queries à toucher

Etape I

Changer procédure CLISTen résumé sous forme fichier SAM

LOAD dans table DB2 avec ordre de la CLIST

Transformation de procédure CLISTen résumé par L3G

 

Etape II

Changer bib membres en fichier SAM

LOAD dans table de queries livrées

 

Etape III

Comparer résumé procédure CLISTet résumé bib de livraison

en utilisant L4G SQL

 

Comment faire le raffinage?

* on peut partir des datamarts contenant des queries nouvelles non ordonnés et les ordonner une à une à partir

de la procédure clistdécoupée en packages

 

* On peut aussi faire une chaîne de raffinage qui exécute un processus de raffinage comme le raffinage du pétrole, la fabrication de ciment, le montange de voitures, la normalisation d'adresses en milieu urbain, le générateur automatique d'organigrammes, les chaînes de montages de téléviseurs, l'affitout.

 

 

Méthode de raffinage

1°) Prendre les procédure CLIST exhaustives ordonnées, les concaténer, les raffiner, en faire un résumé

 

2°) Prendre les bibliothèques de départ de livraison et derniers livrés. Les concaténer. Cela donne toutes

les queries livrées

 

3°) Faire

SELECT A.nom_de_query

FROM nom_clist A, liste_queries_livrées B

WHERE a.nom_de_query = B.nom_de_query

ORDER BY numéro_d_ordre

 

cela donne en résultat : toutes les queries nouvelles prochaines livrées à toucher

 

4°) Segmenter en 10 packages

bdr f1 f2 f3 f4 f5 f6 fb majbdr majp60

 

5°) Mettre en 10 packages dans la table de dimension SUJET du datawarehouse

 

6°) Segmenter la table de dimension SUJET du datawarehouse

en 10 datamarts tables de dimension SUJET

 

SELECT *

FROM table_SUJET

WHERE package = folio1

 

relancer 10 fois

 

7°) En face des queries PROJETRIM1 ajouter les queries PROJETRIM2

 

8°) Donner un numéro d'ordre sur 3 colonnes de 2 car chaque

1 - premier

2 - ancien

3 - prochain

 

 

Grande table de dimension objectif

 

La grande table objectif a un infinité de lignes de 79 caractères de texte plus le nom de query et nom de select et la date de saisie etc...

Pourquoi infini?

parce que le problème se pose ainsi:

il y a 50 pour cent de commentaires à 1 ligne,

30 pour cent de commentaires à 2 lignes

15 pour cent de commentaires à 3 lignes

5 pour cent de commentaires à 4 lignes ou plus

pour quoi 1 ligne? parce qu'on veut le plus court possible

pour quoi 4 lignes ? parce qu'on veut 100 pour cent exhaustif

et exhaustif veut dire tout lister et parfois il y en a beaucoup et/ou décrire en entier la formule de calcul et prfois elle est longue

pourquoi exhaustif ? car sinon on ne comprend pas la formule et on est obligé de passer plus de temps à étudier la query en devinant l'intention de la personne qui a écrit au départ.

donc le problème se résume ainsi: on veut consommer le minimum de place lorsqu'il y a besoin d'une ligne pour ne pas perdre la place et le temps de se déplacer et la peine de sortir un large enregistrement mais on veut également pouvoir tout mettre en cas de besoin de 4 lignes de commentaires.

la réponse technique à cette question (être économe et rapide en cas de besoin d'une ligne et être exhaustif et clair en cas de besoin de 4 lignes) c'est de faire des lignes numérotées de 1 à 4 jusqu'à l'infini (l'infini comparé au besoin de 4 est ici 99 ou bien 36 à la puissance 2) et ne fabriquer des lignes numérotées qu'au fur et à mesure des besoins.

c'est à dire qu'on ne fabrique pas 1 ligne de 60 à priori elle serait trop petite dans 50 pour cent des cas et on ne fabrique pas une ligne de 60 * 4 non plus car elle serait trop grand de 3 / 4 vide dans 95 pour cent des cas mais elle serait encore trop petite dans certains cas rares qui on besoin de 6 lignes

ainsi comme on donne 36 à la puissance deux de possibilité on est à l'abri des besoins en nombre de lignes possibles et on est aussi à l'abri des gaspillages et ralentissements dans le cas où les lignes prévues sont trop grandes. Ici d'après cette solution technique, les lignes suivent les besoins elles seront 1, 2, 3, 4 ou plus selon le besoin de chaque query tout en sachant que 50 pour cent des queries ont 1 ligne description de ce qu'elles font, 30 pour cent ont 2 lignes, 15 pour cent ont 3 lignes et seulement 4 pour cent ont 4 lignes ou plus.

Cette solution résoud tous les cas de figures même les plus extrêmes de 1 à 36*36 lignes.

C'est pour cela que c'est infini comparé à 4 lignes pour 99 pour cent des cas

 

Pourquoi ne pas mettre toute la query?

parceque la query est déjà dans prochain (trim,mois,rir3da)

pourquoi ne pas laisser les commentaires à consulter dans la query?

 

Première raison

parceque lorsqu'on pose la question quelle query traite quel sujet quelle rubrique, pertes sur créances, la bibliothèque de référence prochain ne répond pas à cette question elle contient toutes les querie mais ne donne pas instanténément la query qu'on cherche il aurait fallu afficher une à une les queries pour lire leur contenu en balayage fastidieux et lent avant de trouver la bonne query ou bien il faudrait avoir l'organigramme sous les yeux et parcourir l'organigramme visuellement en scannant jusqu'à trouver la bonne query sauf que dans l'organigramme il n'y as qu'un tout petit embryon de commentaire sujet verbe complément qui n'est pas aussi compréhensible que la description de query sur n fois 60 caractères ou n fois 72 caractères

 

Deuxième raison

pourquoi on doit séparer les commentaires des queries pour les voir seuls:

c'est parceque c'est plus rapide de parcourir 50 commentaires affichés côte à côte à la queue leu leu dans le même fichier que de parcourir 50 membres tso.

 

 

Troisième raison

Il est également plus rapide de parcourir que les commentaires plutôt que chercher dans une meule de foin d'une grosse QUERY les aiguilles commentaires des SELECT qu'on veut identifier étudier pour modifier ou débugger. En effet il arrive très souvent d'avoir à parcourir une grosse QUERY (objet polymorphe) pour rechercher LE SELECT qu'on veut et dans ce cas les lignes non commentaires gênent et noient. On veut trouver ce qu'on cherche d'abord (ex: dotations) avant de plonger dans le SELECT lui même pour faire de la programmation. Avant de plonger verticalement dans les profondeurs d'un SELECT il est plus rapide de parcourir horizontalement superficiellement les titres de QUERIES un peu plus évocateurs que les seuls noms ou sujet-verbe-complément de l'organigramme. C'est le principe de l'onglet: avant d'entrer dans le texte qui noie, on parcours d'abord les onglets, avant d'entrer dans les paragraphes qui noient on parcours d'abord les sections, avant d'entrer dans les sections qui noient on parcours d'abord les chapitres, avant d'entrer dans les chapitres qui noient on parcours d'abord les titres de livres et la table des matières. c'est le principe de segmentation, classification des dataware house qui permet d'accélérer la recherche parmi des données au préalable épurées et classifiées et ordonnées et segmentées pour au préalable réduire d'abord le champ d'investigation avant d'investiger plus profondément . C'est comme le principe du push data qui consiste à ne donner que les données préalablement choisies et ne pas donner les données qui ne sont pas pertinentes. En somme cela évite de se noyer dans les queries non cible quand on est à la recherche d'une query cible. Pour éviter de se noyer dans les queries non cibles on met une étiquette à chaque query et on ne regarde que l'étiquette comme on regarderait l'étiquette d'un tiroir sans avoir à l'ouvrir. Si on ouvre bestialement tous les tiroirs en se précipitant et en s'énervant c'st possible aussi de trouver la portion de query qu'on recherche parmi les centaines de queries mais c'est moins rapide que chercher dans une table de commentaires où on n'aurait que les commentaires descriptifs et les noms de queries sans être gêné par les corps des queries et seulement lorsqu'on a trouvé l'étiquette de query qu'on veut on peut ouvrir le tiroir et voir toute la query à 100 pour cent. cela évite de la perte de temps en enlevant les obstacles sur la voie de circulation de la recherche.

 

 

Quatrième raison:

lorsqu'on est en développement, les queries ne sont pas terminées elles se trouvent dans l'environnement de développement et non pas dans prochain environnement de stockage de produits finis mais néanmoins il y a la nécessité et l'urgence de déjà répertorier et manipuler les queries du point de vue externe (ce qu'elles doivent faire) et non pas du point de vue interne (comment elles le font, est ce que c'est juste, qu'est ce qu'elles font exactement). Si l'externe est juste (l'intention, l'objectif, le but) l'interne peut être faux (la réalisation, le codage, les tests) mais même si l'interne est faux (on doit le changer) cela ne doit pas empêcher qu'on puisse avoir la libre possibilité de manipuler les queries de façon externe (leur nom, leur position dans la procédure, dans la CLIST, leur position dans l'organigramme, leur gestion en temps que composant, leur appartenance à telle ou telle application ou package, telle version de logiciel à mettre en oeuvre.)

en d'autres termes on doit pouvoir manipuler, gérer, répertorier, recenser, placer dans la CLIST, identifier, des queries même si elles sont encore en développement et pas encore finalisées. c'est à dire que les virgules peuvent change mais l'intention de départ et le nom reste pareil on doit pouvoir les manipuler avant la fin de la fin du dernier des derniers tests de recette . Par exemple on doit pouvoir identifier la query dans l'organigramme avant que la query soit écrite et on doit pouvoir décrire les spécifications de la query avant qu'elle soit réalisée et livrée. Et dans tout cette phase développement on doit pouvoir manipuler la définition de la query (sa description) plutôt que la query elle même avec tout son listing. C'est comme on doit pouvoir avoir bien clairement définis les descriptifs et spécifications d'un pont, d'un avion, d'un bâtiment, d'un progiciel, d'un programme cobol avant que ces choses sont construites et terminées. Il n'est pas pratique de vouloir obliger de se référer au listing d'une query pour toute étude de la query car le listing est trop verbeux et trop dépendant d'une syntaxe d'un langage informatique et à certaines étapes de réflexions on n'a pas besoin d'aller au niveau de la programmation on a au contraire besoin de faire abstraction du niveau de la programmation et on a besoin de rester au niveau de l'analyse et au niveau du français en faisant abstraction de l'implantation informatique en langage pour la machine. Si on est obligé de lire le code informatique, cela ralentit. Si on est obliger de sauter le code informatique pour retrouver les phrases en français dans le listing, cela ralentit aussi. La seule solution la plus rapide pour lire ce qu'on veut lire (le français) c'est de ne se faire afficher que le français sans le langage informatique qui gêne la lecture rapide et ralentit la recherche et la réflexion.

 

 

Cinquième raison:

dans la quatrième raison on a besoin de manipuler l'intention de la query avant que la query soit livrée à la recette (pendant que la query est en développement). La cinquième raison c'est qu'on a besoin de manipuler la query sous sa forme en français et de description au moment de sa conception au moment où elle n'existe pas encore où elle passe de l'état de non existance à l'état d'existance. Dans ce cas précis il n'y a pas de raison de dire de regarder le listing de la query puisque la query n'existait pas donc son listing n'existe pas encore. Il est également hors de question de dire de regarder le résumé de la query dans l'organigramme (sujet-verbe-complément) car étant donné que la query n'existe pas, alors son organigramme n'existe pas non plus. Donc au moment de sa naissance, de son passage du néant à l'existance il faut bien lui donner 1°) son nom 2°) sa description en langage humain et 3°) éventuellement une série de ses caractéristiques comme par exemple sa date de naissance, son lieu de naissance. Et se travail là, au lieu de se dérouler sur un bout de papier au crayon ou sur un bout de texte sous word, peut très bien se dérouler directement dans une table bien structurée sous DB2 ou ACCESS ou EXCEL ou un tableau WORD ou n'importe quel logiciel une peu structuré sous forme tableau qui puisse contenir des colonnes, des lignes, des cellules, des données du texte. (même si c'est du FLOW avec un tableau) ainsi la réflexion n'est pas perdue, elle est structurée et réutilisable jusqu'à la fin de la vie qe la QUERY. (on lui donne son nom une fois dans sa vie on la baptise une fois et on la décrit une fois dans sa vie sauf si elle évolue, mais pour la plupart des queris on les décrit une fois)

exemple: le travail de conception des queries doit se faire comme ceci:

nom, description

nom, description

nom, description

 

et ce travail de conception ne doit pas se faire en dehors du data ware house car sinon il y aurait besoin d'une resaisie dans le data ware house de la description des queries

étant donné que les queries sont décrites au moment où les queries sont crées, alors le chemin le plus court entre la conception des queries et le référencement répertoriation des queries est le chemin dont la longueur est égale à zéro: si on conçoit en saisissant dans le dataware house au fur et à mesure qu'on conçoit alors la conception est automatiquement répertoriée, référencée dans le data ware house consultable par tous pour faire de la programmation réalisation et du développement. Ensuite une fois que c'est développé, programmé réalisé, testé, validé, recetté, livré, expérimenté, généralisé, alors le reste de la query c'est à dire son corps, son listing, la suite de ses caractéristiques seront référenciés et répertoriés dans le dataware house aussi. Mais au début, à la naissance de la query à sa conception, étant donné que ce n'est qu'une ligne (éventuellement complétable et extensible, amendable, avenable, évolutive, modifiable) il n'y a aucune raison de ne pas la référencer immédiatement dans le data ware house puisque sa structure (de conception) est exactement pareil à sa structure définitive (en exploitation).

ainsi lorsque plus tard on cherche une query concernant un sujet pour réutiliser ou faire évoluer, on aura une bibliothèque de queries bien documentée à accès rapide comme un système expert de gestion de bibliothèque de queries composants logiciels réutilisables.

 

 

Illustration

On doit pouvoir se mettre comme devant un mur entier avec plusieurs armoires et lire les étiquettes des armoires et ouvrir la bonne armoire sans être obligé d'ouvrir toutes les armoires en séquence dans le cas où il n'y a pas d'étiquette, on doit pouvoir jeter un rapide coup d'oeil sur plusieurs mètres carrés de tiroir et capturer instentanément avec les yeux les étiquettes des tiroir, repérer en une fraction de seconde le bon tiroir et n'ouvrir que ce tiroir et pas les autres (au cas où il n'y aurait pas d'étiquettes on serait obligé d'ouvrir tous les tiroirs en s'arrachant les cheveux) et ensuite, on devrait pouvoir parcourir rapidement d'un seul doigt les onglets des dossiers pour sortir élégemment avec seulement deux doigts le précieux dossier recherché au lieu d'être obligé de parcourir en séquence toutes les armoires du bureau, ouvrir tous les tiroirs des armoires, sortir tous les dossier des tiroir ceci est le scénario catastrophe de quelqu'un qui aura refusé de mettre des étiquettes sur ses armoires, et dans ses armoires sur ses tiroire et dans ses tiroirs sur ses dossiers, quelqu'un qui aurait refusé de faire le rangement, la classification, la segmentation, l'oraganisation, l'ordonnencement de ses dossiers.

Dans le système d'information de PROJETRIM c'est pareil: il faut ranger, classifier, segmenter, organiser, ordonner, il faut étiqueter et décrire essentiellement en un ligne chaque query, mettre cette description quelque part de facile d'accès et rapide d'accès pour pouvoir trouver les queries de la façon la plus rapide possible et la plus précise possible. le graphique est bien pais le graphique est limité dans le nombre de mots à allouer à chaque query (seulement trois mots) et le graphique n'est pas toujours existant et à jour. A certaines étapes le graphique n'existe pas encore et donc le graphique est nécessaire pour une recherche rapide et visuelle mais une fois le graphique vu et bien lu il doit être complété par un niveau d'abstraction plus bas que le graphique mais quand même plus haut que le listing de la query . Car il existe aujoud'hui un trou (fossé, gap, vide) entre le niveau d'abstraction du graphique (organigramme) (qui ne traite que les queries et pas les SELECT qui n'a que trois mots et pas trois lignes) et le niveau de la query où on est gêné par le listing verbeux quand on recherche une description succinte précise mais sur des centaines de queries. A priori on ne sait pas laquelle qu'on veut chercher on ne connait pas son nom, on ne sait pas ou elle se trouve tout ce qu'on sait c'est qu'on recherche une query qui fait telle ou telle fonction, et la fonction est décrite plus clairement dans la description de query que dans l'organigramme où les dessinteurs on tendance à supprimer des informations vitales pour la recherche (s'il manque trois caractères vitaux dans l'organigramme (comme 104 = pertes) alors on ne trouve pas la query qu'on cherche en regardant l'organigramme, dans ce cas il ne reste plus qu'aller perdre son temps à plonger de façon fastidieuse dans toutes les queries au hasard avant de trouver la bonne.

ce qu'il faut éviter c'est être obligés de faire constamment p7 et p8 pour avancer et reculer dans les queries alors qu'on veut à tout prix éviter le corps des queries indésirables qui encombrent et on ne veut que les entêtes des queries pour trouver la query cible. En somme la démarche c'est, dans un texte encombré d'informations encombrantes effacer toutes les informations inutiles et encombrantes pour ne laisser que les informations précieuses qu'on veut trouver à un moment donné. il ne faut pas avoir à dérouler le texte en entier car la fenêtre est toute petite et on est aveugle quand on est sur un SELECT on ne voit pas les autres SELECT à moins de fait p7 p7 ou p8 p8 p8 et lorsqu'on se trouve sur le nouveau on ne voit plus l'ancien. Le problème c'est aussi qu'on doit voyager de query en query en sortant d'un membre d'une query et en entrant dans un autre membre ce qui est lent fastidieux et fait beaucoup de manipulation alors qu'il serait beaucoup plus simple, beaucoup plus rapide de rester dans un même membre avec toutes les descriptions de queries collées les unes aux autres faciles à englober d'un seul coup d'oeil facile à dérouler rapidement, facile à scanner facile à lire, facile à parcourir vers l'avant et/ou vers l'arrière pour faire des recherches, c'est un membre beaucoup plus petit que le listing entier et il y beaucoup moins de bruit. cela s'appelle le nettoyage.

 

 

Résumé:

Il faut faire le rangement, la classification (par types), la segmentation (par niveaux), l'ordonnancement (mettre dans l'ordre: ex: l'ordre de la CLIST), et aussi faire le nettoyage (comme enlever les inutilités) faire le raffinement (comme raffinage du pétrole brut pour faire le kérosène) le filtrage (comme le tamisage pour enlever la boue pour retenir l'or)

en clair il faut faire le DELETE, le ERASE de tout ce qui n'est pas nécessaire pour ce type de recherche qui revient très souvent. Il faut faire le SELECT faire une sélection au préalable de ce qu'on sait pertinemment qui est utile précieux et nécessaire et qui revient souvent (la même question revient tout le temps: quelle est la query qui fait telle chose? traite telle donnée? ou se trouve-t-elle? quel est son nom?). Il faut isoler la description de queries qui est précieuse et la séparer du reste des queries dont on n' a que faire parce que ce ne sont pas des queries qu'on cherche et qu'on veut voir.

 

Lorsqu'on cherche une query, il ne faut pas que cette recherche soit gênée par le contenu des autres queries qu'on ne cherche pas.

il faut séparer l'entête des queries du corps des queries pour qu'on puisse ne parcourir que l'entête des queries afin de trouver plus rapidement la query qu'on cherche et seulement alors on peut aller à un endroit de référence lire le listing d'une seule query la query cible et ne pas être obligé de lire comme parcourir dans la jungle de sables mouvants et gluants, de racines et de branches toutes les queries inutiles avant de tomber enfin à bout de souffle et de journée dans la query qu'on cherche c'est du gaspillage d'énergie bêtement.

 

 

 

 

Description de la table de dimension objectifs

 

nom colonne description de la colonne nb

car

type
nom_query nom de la query 8 alphanumerique
nom_select nom du select 1 alphanumerique
num_ligne numéro de la ligne entête 2 alphanumerique
Mois mois concerné 1 alphanumerique
Trimestre trimestre concerné 1 alphanumerique
Année année 2 alphanumerique
type_query grande tâche pro cré gen lec cal tot mef gpe ca 3 alphanumerique
descr_query description de query 71 alphanumerique

 

71 caractères pour reprendre l'existant sous DB2