IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

exercice sur la sérialisation


Sujet :

Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut exercice sur la sérialisation
    Bonjour tout le monde,

    Je ne sais pas si je suis dans la bonne section mais je ne savais pas ou poster.
    Voila je suis en licence 3 informatique et j'ai une matière ou l'on ne travail que sous oracle. Dans cette matière on m'a donné un exercice qui est le suivant :

    Pour chacune des exécutions suivantes, vous indiquerez si elles sont sérialisables. De plus, en supposant que le SGBD gère un verrouillage à deux phases, dont la granularité se situe au niveau du tuple, vous indiquerez pour chacune des exécutions comment sont positionnés (quand ils sont mis ET quand ils sont enlevés) les verrous.

    1. T1 :R(X),T2 :R(Y), T1 :W(X),T2 :R(Y),T3 :W(Y),T1 :W(X),T2 :R(Y)
    2. T1 :R(X),T2 :R(Y),T2 :W(X),T1 :W(Y)
    3. T1 :R(X),T2 :W(Y),T2 :W(X),T3 :W(Y),T1 :W(Y)
    4. T1 :R(X),T2 :W(X),T1 :W(X),T2 :R(X),T1 :commit,T2 :commit

    Voila je ne vous demande pas de me faire l'exercice mais de m'expliquer la méthode pour le faire. J'ai cherché des trucs sur la sérialisation mais je ne comprend pas.

    Merci d'avance à tout ceux qui pourront m'aider.

    Amicalement Boobs60.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Pourriez-vous nous donner la signification de cette patois ?
    T i égal Transaction i ?
    R égal Read ?
    W égal Write ?
    etc.
    Est-ce que le SGBD est Oracle ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut
    Oui le sgbd est oracle.
    Tout ce que vous avez est bon.
    R = Read;
    W = Write;

    Les transactions sont identifié par Tk : R ( X ) (respectivement W) et indique une lecture (respectivement une écriture) du granule X.

    Voila c'est tout ce que je peu vous dire. N'ayant pas assisté à ce cours je ne comprend pas grand chose.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Les verrous sous Oracle :
    Tu peux toujours lire un enregistrement
    Dès que tu modifies un enregistrement, il devient verrouillé, personne ne peut plus le modifier tant que tu n'as pas libéré le verrou (par un commit)

    Attention aux deadlocks (2 utilisateurs s'auto attendent)
    exemple A locke Table1, B locke table2
    Puis A demande un verrou sur Table2, et B demande un verrou sur Table1
    A attend la libération par B qui lui attend la libération par A

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut
    ok ok merci sa c'est pour les verrous mais est ce que tu serais me dire pour la sérialisation. Pour la question 1 ou il demande si les truc sont sérialisable ? Comment le savoir ?

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Je ne sais pas ce que ça veut dire..
    Quand on bosse on tente plutôt de paralléliser

  7. #7
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Lisez d'abord dans Oracle Concepts Transactions et ensuite Overview of Oracle Database Transaction Isolation Levels

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut
    Désolé mais je n'ai toujours pas comprit et donc pas réussi à faire cette exercice.

    J'ai trouvé quelque truc comme :
    faire un graphe de précédence grâce à 2 loi :
    - un arc relie Ti à Tj ssi :
    - un Ti effectue un Écrire (X) avant qu'un Tj ne fasse un Écrire (X) ou un LIRE (X)
    - un Ti effectue un LIRE (X) avant qu'un Tj ne fasse un Écrire (X)

    Et donc si jamais il y a un cycle dans le graphe alors il n'est pas sérialisable.

    Le problème c'est qu'avec sa je trouve qu'aucun des trucs n'est sérialisable.

    SVP de l'aide.

    Merci d'avance amicalement boobs60

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    La règle pour les transactions sérialisables dans Oracle est:

    Oracle Database permits a serializable transaction to modify a row only if changes to the row made by other transactions were already committed when the serializable transaction began. The database generates an error when a serializable transaction tries to update or delete data changed by a different transaction that committed after the serializable transaction began:
    Voir aussi l'excellent article suivant en français sur les niveaux d'isolation des transactions dans Oracle (traduit d'après un article de Tom Kyte):http://blog.developpez.com/pachot/p8...lation-levels/

    Avec cette règle T1 et T2 transactions sont sérialisables au sens Oracle mais T3 et T4 ne le sont pas car 2 transactions essaient d'écrire la même donnée (W(Y) pour T3 et W(X) pour T4). D'ailleurs cela devrait être facilement confirmé avec un test sous Oracle XE.

    Mais il faut savoir que les niveaux d'isolation des transactions ne fonctionnent pas de la même façon dans 2 bases de données différentes (comme Oracle et SQL Server). Pour répondre précisément à votre question, il faut donc connaître la définition d'une transaction sérialisable dans le contexte de votre exercice.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exercice sur les matrices
    Par massimo dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/03/2007, 17h20
  2. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  3. Exercice sur les tableaux
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 06/11/2006, 19h33
  4. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  5. Réponses: 4
    Dernier message: 28/07/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo