Programmation et base de données... Juste une question - Programmation
Marsh Posté le 06-08-2002 à 00:52:25
Je pense que si tu programme un client pour ta base de donnée, tu ne dois pas t'intéressé à l'accès multi-utilisateur, je pense que ces la BDD qui gère le multi-utilisateur ...
Marsh Posté le 06-08-2002 à 02:08:16
Bonsoir a toi c17 et a toi bien sur Olivier51, figure emblematique de se forum qui se revele etre d'une aide precieuse dans la recherche d'information concernant plusieurs domaines de l'informatique comme la programmation mais aussi les os alternatifs.
C17, la premiere question qui me viens a l'idée en lisant ton poste est: D'ou viens ton surnom c17 ? Il est assez probable qu'il soit issue de l'inoubliable dessin animé japonais ?
Qu'il le soit ou pas, je suis curieux d'en connaitre plus sur son origine !
Mais puisqu'il faut parler du sujet, parlons-en.
Le multiUtilisateur.
La gestion du multiutilisateur est a la base de toute system informatique de nouvelle generation grace au developpement constant de l'internet. Windows et Linux ont tout les deux travailler dans cette voie, en developpant un systeme capable de gerer virtuellement plusieurs threads en paralelles. Le mot virtuel n'est pas de trop, puisque les processeurs ne sont en réalité pas capable de réalisé plusieurs taches en meme temps mais bien successivement, et qu'il semble important de garder cette idée dans l'esprit, le processeur ne traite qu'une suite d'instruction. Malgrés cette contrainte, de nombreux developpeurs se sont penchée sur se problème et des solutions ont été mises en avant. Les résultats sont plutôt probant, puisque non seulement les systemes d'exploitations modernes reussissent à accomplir plusieurs taches synchronisées. Qui n'a jamais écouter des mp3s en se detendant contre des bots a counter-strike ? Cette exemple de la vie quotidienne vous permet a tous d'ouvrire les yeux sur le monde de l'informatique: C'est un monde complexe ou le systeme d'exploitation est chef, et l'utilisateur est roi. En effet, l'effet de multithreading offerte donne un effet de total liberté pour les utilisateurs: ces utilisateurs sont libre de pouvoir comblé l'ennui de certaines taches redondantes et assez honnereuse en ressources processeurs ou en access disque. Ainsi, le multithreading me permet d'ecrire se post ( merveilleux n'est-il pas ? ) alors que j'ecoute du jimi hendrix en scannant le disque dur courant avec scandisk. Bref le multithreading est la clé de la gestion multiutilisateur. La gestion multiutilisateur est plus recente encore puisqu'elle necessite apparement un partage des ressources: ce partage des ressources devant etre fait plus ou moins equitablement celon des droits tres precis des utilsateurs sur ce systeme. La repartition des taches est donc essentiel comme l'acces à un meme fichier simultanement par deux utilisateurs different( programmes appelé par un utilisateur ) doit etre possible. Le moyen de parvenir a obtenir un systeme equitablement architecturé est bien entendu un contact parfait entre les deux pseudo-systemes à l'aide entre autres de fichier mais aussi bien sur d'une base de donnée qui est ici, justement, l'axe principale de se thread ( qui n'est pas multi ! ). La base de données est donc un outil essentiel a une gestion multiutilisateur sans problemes pour un transfert d'information rapide, sécurisée, et bien entendu anticipé par les autres threads pour parvenir a etre receptionné correctement des le debut des manoeuvres effectués par les autres utilisateurs. Ce genre de transactions au seins meme du systemes sont suffisament complexe pour en edité un livre en plusieurs tomes, mais la n'est pas le probleme! Comme le rappelle tres justement olivier51 dans le post precedent, Le client est reelement distant de la base de donnée et la conception de la base de donnée se revelant etre un art particulierement eclesiastique, je ne conseil pas a c17 d'y parchever ses travaux, car cette edifice ne peux tenir face au rafal que sont les difficultés engendrés par un tel sacrilège. Bref, l'insuffisance et l'impertinence des propos de c17 me genent dans l'achevement de mon post qui, restera cette fois assez plat, et ne depassera pas les 2000 caractères ce qui est, bien peux usuel pour moi.
Bref, pour conclure rappelons que microsoft corporation a developper l'un des premiers systeme multiutilisateurs avec windows NT qui est encore aujourd'hui un outil professionel et famillial par sa simplicité d'utilisation, mais aussi les modifications temps reel qu'il offre. Ces differents parametre font de lui l'un des systemes fare pour le troisieme millenaire, qui s'annonce avec la montée en fleche de l'internet. Malgrés les deboirs de worldcom, qui risquent de malheuresement, ralentir les travaux des programmeurs et l'ambition des plus jeunes developpeurs, mais aussi les novices de l'informatiques qui parlent sur yahoochat. La chut de worldcom pourrait en effet montrer la fin de ce que certains aurai qualifié comme une aire nouvelle. Cette aire nouvelle pourrait semble-t-il avoir recontré une fin plus precoce que les experts ne l'avait enticipé.
Mon desaroi face a cette situation est de taille, agrandi par ma crainte face a une population civile enclin a la violence et a la haine, et surtout a l'eggoisme dont font parti les peuples de toutes les nations.
Bref ce post est avant tout un appelle a l'aide que je lance a l'ensemble des nations qui boycots les produits anglais, car la base du multiusers, c'est avant tout la liberté d'entreprendre, et la liberté d'expresions, qui sont les fondement même du capitalisme, celui qu'on a crée, et qui nous detruira, comme nous avons detruit Dieu tout puissant.
ProutLol
Marsh Posté le 06-08-2002 à 02:17:12
Olivier51 a écrit a écrit : Je pense que si tu programme un client pour ta base de donnée, tu ne dois pas t'intéressé à l'accès multi-utilisateur, je pense que ces la BDD qui gère le multi-utilisateur ... |
Eh benh c'est du beau
http://didier.deleglise.free.fr/in [...] ansactions
Marsh Posté le 06-08-2002 à 13:02:01
Zion a écrit a écrit : http://didier.deleglise.free.fr/in [...] ansactions |
Tu peux m'en dire un peu plus au niveau transactions (dans la pratique)?
Marsh Posté le 06-08-2002 à 13:48:53
C17 a écrit a écrit : Tu peux m'en dire un peu plus au niveau transactions (dans la pratique)? |
Benh c'est expliqué... si tu dois faire plusieurs modifs qui rendent la BD incohérente tu fais une jolie transaction sinon les autres users risquent d'avoir un truc bizarre...
Enfin, c'est pas un truc qui s'explique en 5 minutes, et faut pas bloquer des tables à outrance non plus, surtout pas sur un site web
Marsh Posté le 06-08-2002 à 19:01:50
Donc, si j'ai bien compris, ce truc (les transactions) n'est à utiliser que si on a plusieurs modifications à effectuer et seulement si les données ont un lien logique entre eux (ex: prix brut, tva, prix net...)
c'est ça?
autre chose:
Ex: si 2 utilisateurs,
Utilisateur 1 affiche une liste de données,
utilsateur 2 efface une de ces données,
si utilisateur1 reprend,dans sa liste qui n'a pas été rafraichie, la donnée supprimée par l'utilisateur2 et la modifie(par exemple), qu'est-ce qui se passe?
Marsh Posté le 06-08-2002 à 19:27:09
Benh c'est bien ce que je t'ai dis, c'est plus complexe que juste bloquer des tables quand tu fais un update, tu as plusieurs niveaux de blocages sur les tables.
La il aurait fallu bloquer la table en prévision d'un update ou un select, mais quand tu prends ca point de vue d'un site web, si tu dois attendre qu'un autre user a fini une modif pour afficher une page, ca risque de prendre un temps certain.
On apprends à un bon petit programmeur de faire des trucs du genre
UPDATE TABLE SET MACHIN = MACHIN +1
plutot qu'un select, un increment dans ton langage favoris puis un update, ici tu peux faire 50 update en même temps, ca crains rien.
Si le sujet t'intéresse, faudrait vraiment que tu te lises un gros tutorial, ou un cours Oracle (ou un autre sgbd), c'est méga important, mais sur un site web les contraintes sont telles que c'est pas vraiment applicable.
Marsh Posté le 06-08-2002 à 20:00:21
Merci,
J'ai justement un bouquin sur Oracle (Le programmeur: Oracle 8 Développement de bases de données) mais il explique pas vraiment en détail cette partie. Si tu connais un bon bouquin...
Merci encore
@+
Marsh Posté le 06-08-2002 à 20:54:08
http://www.informix.com/answers/en [...] 7.toc.html
Ca a l'air pas mal, même si c'est orienté Informix bien sur, mais sur la théorie c'est pareil, juste qqs détails.
Et c'est gratuit
Marsh Posté le 06-08-2002 à 20:58:09
Citation : Bonsoir a toi c17 et a toi bien sur Olivier51, figure emblematique de se forum qui se revele etre d'une aide precieuse dans la recherche d'information concernant plusieurs domaines de l'informatique comme la programmation mais aussi les os alternatifs. |
ctrl + c / ctrl + v
Marsh Posté le 06-08-2002 à 21:02:06
Faux !
cette article a ete entierement réalisé par mon propre cerveau, en direct meme de ce forum, je comprend que ca puisse faire des jaloux !
Marsh Posté le 05-08-2002 à 18:30:32
Salut à tous,
Je voudrai savoir, au niveau de la programmation, quel différence et que doit-on faire de plus lorsque l'on programme avec une base ou plusieurs personnes ont accès en même temps (base multi-utilisateur)
(je ne parle pas du type de base,ni de la sécurité des utilisateurs et non plus de l'accès à la base, mais juste au niveau prog., comment gérer les modifications lorsque plusieurs utilisateurs consultent et 'updatent' la base en même temps)
Merci d'avance!
---------------
C17