OVH Cloud OVH Cloud

un appercu de la puissance d'un sgbdr mv

91 réponses
Avatar
helios
voici un test sur un duron700 (une machine la plus faible que j'ai
trouvé avec HD déplorable 128mo ram .....) de openqm

GLOBAL FILE STATISTICS 11:55:17

....System .....Total .......... ...Average
.....Total ..this run ...Per sec ...per sec
Period 00:02:37 00:02:28
Opens 92 86 0 0.6
Reads 535310 535289 0 3616.8
Writes 2 1 0 0.0
Deletes 4 2 0 0.0
Clears 0 0 0 0.0
Selects 1 1 0 0.0
Splits 0 0 0 0.0
Merges 0 0 0 0.0
AK Reads 0 0 0 0.0
AK Writes 0 0 0 0.0
AK Deletes 0 0 0 0.0

Press any key to quit

la requête lancé pour le test contient la gestion de 90 items et
l'équivalent de 58 jointures en SQL le tout sur 5 fichiers multivalué
(en SQL il aurait fallu 63 tables)


Dr Thierry HOLZ
helios services
180 rue de la croix du chene
60250 HEILLES
www.openqm.com02.net
www.pick.com02.net

10 réponses

Avatar
Gilles TOURREAU
Le Sat, 27 Jan 2007 11:00:28 +0100, Jerome PAULIN a écrit:

helios a écrit :

en SQL toute la base est impacté par le changement (donc arret
exploitation) tandis que un MV seul le champ 150 des enregistrements
concerné le sont (donc exploitation non arreté)




Oui mais non, c'est plus un problème de conception de la base (il faut
la prévoir suffisament ouverte, et mettre des points d'entrée sous forme
de procédure stockée par exemple) et de travail de DBA que de
supériorité de l'un ou l'autre système.

D'après ce que comprends, j'aurai tendance à dire que le SQL impose de
structurer la démarche d'évolution, alors que le MV permet de mettre des
rustines sur la base (ne pas considérer le terme "rustine" comme
péjoratif, je ne veux pas entrer dans le débat "c'est mieux", juste
comprendre). Ceci dit, dans les deux cas, il est indispensable de mettre
à jour le programme pour refleter les modifications au niveau de
l'utilisateur).

Au fait, dans les systèmes MV, comment accède t on aux données en dehors
du client intégré (comprendre : ligne de commande)?

gg



Existe-t-il des clients (ou pilotes, ou autre chose) permettant de
manipuler les OpenQM sous .NET ? Java ?

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
helios
Jerome PAULIN a écrit :
helios a écrit :

en SQL toute la base est impacté par le changement (donc arret
exploitation) tandis que un MV seul le champ 150 des enregistrements
concerné le sont (donc exploitation non arreté)




Oui mais non, c'est plus un problème de conception de la base (il faut
la prévoir suffisament ouverte, et mettre des points d'entrée sous forme
de procédure stockée par exemple) et de travail de DBA que de
supériorité de l'un ou l'autre système.

D'après ce que comprends, j'aurai tendance à dire que le SQL impose de
structurer la démarche d'évolution, alors que le MV permet de mettre des
rustines sur la base (ne pas considérer le terme "rustine" comme
péjoratif, je ne veux pas entrer dans le débat "c'est mieux", juste
comprendre). Ceci dit, dans les deux cas, il est indispensable de mettre
à jour le programme pour refleter les modifications au niveau de
l'utilisateur).




oui les SGBDRMV permette le "rustinage" dans le sens noble de "rustinage"

la mise a jours des programmes n'est pas necessaire mais cela obligerait
l'utilisateur a entre lui meme le separateur de valeur / sous valeur
...... pour les saisies

par contre les requetes s'adaptent automatiquement (elle gerent le MV)



Au fait, dans les systèmes MV, comment accède t on aux données en dehors
du client intégré (comprendre : ligne de commande)?

gg



les SGBDRMV peuvent acceder au données par le DATABASIC , PROC et TCL
mais ont peut aussi utilisé des logiciels exterieur tel python, perl ,
ultraedit ....... ou des exterieurs plus specifiques tel winnix,
wintergrate, accuterm, staremul
Avatar
helios
Jerome PAULIN a écrit :
helios a écrit :

je reformules

les champs ne sont pas des enregistrements

un fichiers de 8000 champs a des enregistrements de 8000 champs

en SQL un enregistrement se nomme ligne
en SQL un champ se nomme colonne
en SQL une valeur est une valeur
en SQL une valeur multivalué est une jointure avec une table
en SQL une sous-valeur est la valeur de la table jointe
en SQL une sous-valeur multivalué est une jointure avec une table qui
est dans une table jointe
en SQL une sous-sous-valeur est le la valeur qui est dans la table de
la jointe à la table jointe
en sql une sous-sous-valeur multivalué est la jointure ......

donc un SGBDRMV peut gerer une table SQL puisque dans ce cas il se
limite à table,enregistrement,colonne,valeur jointure puisque SQL ne
sait pas gerer le reste




Ca revient à faire ça (je cherche à comprendre la différence)?

http://www.gg-s.net/helios2.png

gg





oui et tu as eux besoin de 7 tables et 6 jointures alors que pour la
meme chose MV a une table et aucune jointure

et cela juste pour 2 champs multivalué a 2 niveaux alors imagine une
base ou il y a 1000 champs par enregistrement et qu'il y a 6 niveaux par
exemple
Avatar
Jerome PAULIN

oui et tu as eux besoin de 7 tables et 6 jointures alors que pour la
meme chose MV a une table et aucune jointure

et cela juste pour 2 champs multivalué a 2 niveaux alors imagine une
base ou il y a 1000 champs par enregistrement et qu'il y a 6 niveaux par
exemple



Ok, j'ai maintenant compris le concept, je trouve qu'il est domage que
cette discussion n'ait pas eu lieu plus tot, ca aurait evité, je pense,
pas mal de paroles "mal placées"...

gg
Avatar
François Girault
helios a écrit :

on est sur internet pas dans zoologie :-)



Vous parlez bien de jardinage (google "helios sgbd brouette").

en informatique, un processus est une tâche en train de s'exécuter. On
appelle processus l'image de l'état du processeur et de la mémoire au
cours de l'exécution d'un programme.




Il n'est pas une tâche en train de s'exécuter. Il *est* l'exécution. Il
peut être inactif, dormant, zombie, ... (cf les liens de mon post précédent)

une jointure une jointure



Ah dans ce cas vous pouvez la définir, non ?



En gestion de base de données relationnelle, une jointure est un lien
combinant les enregistrements de deux tables disposant de valeurs
correspondantes dans un champ commun.




Oua, vous pouvez presque répondre au sujet ! Même si je préfère :

"On appelle jointure selon une qualification Q l'ensemble des tuples
provenant du produit cartésien de deux relations et satisfaisant la
qualification, c'est-à-dire la condition exprimée à l'aide de comparateurs."

en informatique, un processus est une tâche en train de s'exécuter. On
appelle processus l'image de l'état du processeur et de la mémoire au
cours de l'exécution d'un programme.




Ah, la sénilité et le copier-coller. C'est bien, vous savez faire ctrl-c.

Je peux vous montrer ce qu'est un processus unix :



je le peut aussi mais qui t'a parler de processus UNIX ont est dans les
SGBD donc je parle de processus de SGBR sinon pourquoi ne pas parler de
processus anatomique



J'ai parlé de processus UNIX, car c'est le type d'OS que j'utilise pour
faire tourner mes sgbd. Et un process sgbd est par conséquent un process
unix sur mes machines. c'est pourquoi je ne parle pas de processus
anatomique.

Comme vous affirmez toujours que vos sgbdmv font des accès directs sans
sales couches avec des processus intégrés, je me penche sur l'OS que
j'ai sous la main pour comprendre.

Et quand un processus (un script php par exemple) veut communiquer une
requête au sgbd (un postgresql) et recevoir un résultat, il utilise un
mécanisme IPC. Comme les autres, et comme peut-être les processus coyote
et openqm auquels vous garantissez un "accès direct sans sale couche".

si tu confonds SGBD et DOS ce n'est pas ma faute



DOS ? je n'en ai jamais parlé. Vous confondez DOS et UNIX. C'est pas ma
faute, j'ai mis des liens pourtant.




UNIX est un DOS mais un ignorant ne voit que MSDOS comme DOS



Celle-là je l'encadre !

Alors où est DOS sur ce schéma :
http://fr.wikipedia.org/wiki/Image:Unix_histoire.png ?
et sur celui-ci :
http://fr.wikipedia.org/wiki/Image:Unix_history-simple.png ?

http://fr.wikipedia.org/wiki/DOS



Où est-il écrit que UNIX est un DOS ?

Si vous saviez lire le lien que vous avez donné, on apprend que DOS est
un système basique pour micro-ordinateurs. Certes, l'article prévient
brièvement de l'homonymie avec des OS de mainframes (DOS/VS, DOS/360,
etc...) mais ne décrit *que* l'OS des micros. C'est vous qui ne voyez
DOS que comme un OS de micro en fournissant ce lien.

Unix, c'est un peu plus ambitieux et antérieur à la micro.

si tu confonds couches DOS et couches applicatives ce n'est pas ma faute



Maintenant on est fixé : un OS pour vous, c'est DOS. On comprend mieux
votre inculture du multiprocessus et parfaitement votre ignorance des
IPC.

Vous confondez persistance et présentation.




oui un OS est un DOS et ton inculture est évidente



Non, DOS est un OS, pas l'inverse. Faut lire plus que les 3 premières
lignes des articles qu'on cite.

pour info je suis Administrateur PICK depuis 1985 Administrateur MOS
depuis 1987 administrateur UNIX depuis 1997 et j'ai deja utilisé aussi
CPM86 et prologue ainsi que DPS6 DPS7 DPS8 sans parler des divers
compatible MSDOS (msdos,opendos,freedos ......) et divers unix




Quel déballage ! Vous êtes à la pointe du progrès ! Admin Unix, c'est
aussi un bout de papier acheté dans des îles tropicales ? Car pour dire
qu'Unix est un Dos et prétendre la communication directe sans sale
couche entre processus intégrés, faut vraiment n'avoir jamais ouvert un
seul bouquin de système d'exploitation.

--
FG

En 2007, faudrait que j'arrête de parler aux sourds.
Avatar
Jerome PAULIN
helios a écrit :

les SGBDRMV peuvent acceder au données par le DATABASIC , PROC et TCL
mais ont peut aussi utilisé des logiciels exterieur tel python, perl ,
ultraedit ....... ou des exterieurs plus specifiques tel winnix,
wintergrate, accuterm, staremul





OK, mais quid des interfaces "à la windows" ? Je crois comprendre que
les exemples que tu cites sont plustot orientés "interface texte"
(encore une fois, ne pas comprendre le terme "texte" comme péjoratif, je
voudrai que l'on fasse un tour du proprietaire et que les debats
inutiles cessent, ca fait perdre du temps a tout le monde). j'ai compris
les idées que tu essaye de véhiculer dans l'autre partie du thread (les
quelques schemas), je voudrai maintenant (et je ne pense pas etre le
seul) voire ce que ca peut donner du coté "utilisateur".

Si je fais une interface "à la windows", il faudra surement que je
modifie cette partie si j'applique une modification structurelle à la
base ou bien est ce que les tableaux de resultats sont uniquement
dynamiques (du point de vue des données). Comment va se présenter un
champ multivalué sur une interface graphique ?

Peux tu, s'il te plait, nous donner un lien sur une/des application(s)
qui utilise le MV, mais quelque chose dont on puisse se faire une idée
(=pas de référence au système des gestion des lignes téléphoniques ou au
système des gestion du cadastre d'une ville)?

gg
Avatar
ALain Montfranc
helios a écrit
ALain Montfranc a écrit :
helios a écrit

c'est un champ qui contient des valeurs multiples par exemples les prénoms
, ou les numéros de téléphone ou toute information ayant plusieurs
occurrences



Dans ton exemple date_acte / notaire sont multivalués ?

Comment se fait la jonction date <=> notaire ? On suppose que date[0] est
associé à notaire[0] et ainsi de suite ?





par pédagogie je simplie la notation sans la suite

date_acte [1] correspond a notaire [1]
date_acte [2] correspond a notaire [2]

mais si il y a plusieurs date pour le notaire3

date_acte [3,1] correspond a notaire [3]
date_acte [3,2] correspond a notaire [3]




Ok, effectivement c'est pas mal pour le 1..n

Mais pour le n..n ?
Avatar
helios
Jerome PAULIN a écrit :
helios a écrit :

les SGBDRMV peuvent acceder au données par le DATABASIC , PROC et TCL
mais ont peut aussi utilisé des logiciels exterieur tel python, perl ,
ultraedit ....... ou des exterieurs plus specifiques tel winnix,
wintergrate, accuterm, staremul





OK, mais quid des interfaces "à la windows" ? Je crois comprendre que
les exemples que tu cites sont plustot orientés "interface texte"
(encore une fois, ne pas comprendre le terme "texte" comme péjoratif, je
voudrai que l'on fasse un tour du proprietaire et que les debats
inutiles cessent, ca fait perdre du temps a tout le monde). j'ai compris
les idées que tu essaye de véhiculer dans l'autre partie du thread (les
quelques schemas), je voudrai maintenant (et je ne pense pas etre le
seul) voire ce que ca peut donner du coté "utilisateur".




winnix,wintergrate, accuterm, staremul sont des interfaces a la windows
(pas forcement sous windows) menu deroulant souris icones .....

coté utilisateurs tout est transparent il y a aucune difference d'interface


Si je fais une interface "à la windows", il faudra surement que je
modifie cette partie si j'applique une modification structurelle à la
base ou bien est ce que les tableaux de resultats sont uniquement
dynamiques (du point de vue des données). Comment va se présenter un
champ multivalué sur une interface graphique ?




la presentation du multivalué peut étre sous forme de menu ou tout autre
presentation grace a des programme d'interface a la "windows"


Peux tu, s'il te plait, nous donner un lien sur une/des application(s)
qui utilise le MV, mais quelque chose dont on puisse se faire une idée
(=pas de référence au système des gestion des lignes téléphoniques ou au
système des gestion du cadastre d'une ville)?

gg




le probleme est que les applications SGBDRMV sont tellement bien
integres avec les interfaces a la windows que si on ne sait pas que
c'est du SGBDRMV il y a aucun moyen de le deviné

par exemple il y a la gestion commerciale du groupe Rapp qui est dans
chaque magasin du groupe (atlas, crozatier, meuble7, fly)
Avatar
helios
Jerome PAULIN a écrit :


oui et tu as eux besoin de 7 tables et 6 jointures alors que pour la
meme chose MV a une table et aucune jointure

et cela juste pour 2 champs multivalué a 2 niveaux alors imagine une
base ou il y a 1000 champs par enregistrement et qu'il y a 6 niveaux
par exemple



Ok, j'ai maintenant compris le concept, je trouve qu'il est domage que
cette discussion n'ait pas eu lieu plus tot, ca aurait evité, je pense,
pas mal de paroles "mal placées"...

gg




je le penses aussi

en fait le marché francais est un des seul ou le MV est mal representé
et ou Oracle est leader

mais au niveau mondial le 5eme editeur de SGBDR edite un SGBDR MD-MV

il y a plus un seul SGBDR MD et celui ci a integres le MV donc est aussi MV

le parc de cet editeur est de 5millions d'utilisateurs et le parc des
autres MV est de 6millions d'utilisateurs

a l'origine il y avait de nombreux SGBDRMD et une concentration s'est
faite tandis qu'il y avait un standard MV avec des licences tres
onereuse et ce standart a explosé car chaque acheteur de licence a
decliner le standard et le passage en domaine public du standart a
encore accelerer les deviances et adaptations
Avatar
helios
ALain Montfranc a écrit :
helios a écrit
ALain Montfranc a écrit :
helios a écrit

c'est un champ qui contient des valeurs multiples par exemples les
prénoms , ou les numéros de téléphone ou toute information ayant
plusieurs occurrences



Dans ton exemple date_acte / notaire sont multivalués ?

Comment se fait la jonction date <=> notaire ? On suppose que date[0]
est associé à notaire[0] et ainsi de suite ?





par pédagogie je simplie la notation sans la suite

date_acte [1] correspond a notaire [1]
date_acte [2] correspond a notaire [2]

mais si il y a plusieurs date pour le notaire3

date_acte [3,1] correspond a notaire [3]
date_acte [3,2] correspond a notaire [3]




Ok, effectivement c'est pas mal pour le 1..n

Mais pour le n..n ?




tu peux avoir pour le n..m

date_acte [5,1] correspond a notaire [5,1]
date_acte [5,2] correspond a notaire [5,1]
date_acte [5,3] correspond a notaire [5,1]
date_acte [5,1] correspond a notaire [5,2]
date_acte [5,2] correspond a notaire [5,2]
date_acte [5,3] correspond a notaire [5,2]



le sql ne gere que de 1...1
le MV gere aussi 1...n n...1 et n...m