Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Βάσεις Δεδομένων II 2000-2001 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Βάσεις Δεδομένων II 2000-2001 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις."— Μεταγράφημα παρουσίασης:

1 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις

2 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 2 Τεχνικές Ελέγχου Συνδρομικότητας Α tomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία C onsistency (συνέπεια) - διατήρηση συνέπειας της ΒΔ I solation (απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα - ο χρήστης πιστεύει ότι η δοσοληψία του είναι η μόνη που εκτελείται στο σύστημα D urability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Ιδιότητες Δοσοληψιών

3 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 3 Τεχνικές Ελέγχου Συνδρομικότητας Αtomicity (ατομικότητα) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ Consistency (συνέπεια) ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ Isolation (απομόνωση) ΕΛΕΓΧΟΣ ΣΥΝΔΡΟΜΙΚΟΤΗΤΑΣ Durability (μονιμότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ

4 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 4 Τεχνικές Ελέγχου Συνδρομικότητας R 1 (X) W 2 (X) C 2 T1 T2 W 1 (X) R 1 (Y) R 2 (X) W 1 (Y) C 1 R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 Τόσα διαφορετικά χρονοπρογράμματα όσες και πιθανές εκτελέσεις χρονοπρόγραμμα R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 R 2 (X) W 2 (X) C 2 R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 σειριακά χρονοπρογράμματα

5 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 5 Τεχνικές Ελέγχου Συνδρομικότητας σωστό χρονοπρόγραμμα; ισοδύναμο με ένα σειριακό (ονομάζεται σειριοποιήσιμο) Δυο χρονοπρογράμματα είναι ισοδύναμα βάσει συγκρούσεων αν η διάταξη κάθε ζεύγους συγκρουόμενων πράξεων είναι ίδια και στα δυο χρονοπρογράμματα. Σε αυτήν την περίπτωση μπορούμε να αναδιατάξουμε τις μη συγκρουόμενες πράξεις στο S μέχρι να σχηματίσουμε ένα ισοδύναμο σειριακό χρονοπρόγραμμα.

6 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 6 Τεχνικές Ελέγχου Συνδρομικότητας T1: R 1 (A) W 1 (A), R 1 (B) W 1 (B) T2: R 2 (A) W 2 (A) R 2 (B) W 2 (B) T1 T2 A B Ένα χρονοπρόγραμμα είναι σειριοποιήσιμο (βάσει συγκρούσεων) αν και μόνο αν ο γράφος προήγησής του είναι ακυκλικός. Θεώρημα

7 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 7 Τεχνικές Ελέγχου Συνδρομικότητας: Άσκηση Άσκηση Ο γράφος προήγησης για ένα συγκεκριμένο χρονοπρόγραμμα περιέχει μόνο τις παρακάτω ακμές και κόμβους. Πόσα διαφορετικά σειριακά χρονοπρογράμματα είναι ισοδύναμα με αυτό το χρονοπρόγραμμα; T1T2 T3T4

8 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 8 Ισοδυναμία Όψεων zΔυο χρονοπρογράμματα S1 και S2 είναι ισοδύναμα όψεων ανν: y Αν στο S1, η Ti διαβάζει την αρχική τιμή του A, τότε η Ti επίσης διαβάζει την αρχική τιμή του A στο S2 y Αν στο S1, η Ti διαβάζει την τιμή του A που έγραψε η Tj, τότε η Ti διαβάζει την τιμή του A που έγραψε η Tj και στο S2 y Αν στο S1, η Ti γράφει την τελική τιμή του A, τότε η Ti γράφει την τελική τιμή του A και στο S2 T1: R(A) W(A) T2: W(A) T3: W(A) T1: R(A),W(A) T2: W(A) T3: W(A)

9 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 9 Τεχνικές Ελέγχου Συνδρομικότητας  Χρονοπρογράμματα με δυνατότητα ανάκαμψης αν καμιά δοσοληψία Τ στο S δεν επικυρώνεται έως ότου επικυρωθούν όλες οι δοσοληψίες οι οποίες τροποποίησαν ένα δεδομένο που διαβάζει η Τ  Χρονοπρογράμματα χωρίς διάδοση ανακλήσεων αν κάθε δοσοληψία Τ στο S διαβάζει μόνο στοιχεία που έχουν γραφεί από επικυρωμένες δοσοληψίες  Αυστηρά Χρονοπρογράμματα οι δοσοληψίες δεν μπορούν ούτε να διαβάσουν ούτε να γράψουν ένα στοιχείο Χ έως ότου επικυρωθεί η δοσοληψία που έγραψε το Χ

10 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 10 Τεχνικές Ελέγχου Συνδρομικότητας: Ασκήσεις Χαρακτηρίστε καθένα από τα παρακάτω χρονοπρογράμματα: σειριοποιήσιμα, σειριοποιήσιμα βάσει συγκρούσεων, σειριοποιήσιμα βάσει όψεων με δυνατότητα ανάκαμψης, χωρίς διάδοση ανακλήσεων, αυστηρά 1. R 1 (X) R 2 (X) W 1 (X) W 2 (X) R 1 (X) W 1 (X) R 2 (X) W 2 (X) R 2 (X) W 2 (X) R 1 (X) W 1 (X)

11 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 11 Τεχνικές Ελέγχου Συνδρομικότητας: Ασκήσεις σειριοποιήσιμα, σειριοποιήσιμα βάσει συγκρούσεων, σειριοποιήσιμα βάσει όψεων με δυνατότητα ανάκαμψης, χωρίς διάδοση ανακλήσεων, αυστηρά 2. R 1 (X) R 2 (Y) W 3 (X) R 2 (X) R 1 (Y) 3. R 1 (X) W 2 (X) W 1 (X) A 2 C 1 4. W 1 (X) R 2 (X) W 1 (X) C 2 C 1 R 2 (X) C 2 W 1 (X) W 1 (X) C 1 W 1 (X) W 1 (X) C 1 R 2 (X) C 2 5. R 1 (X) W 2 (X) W 1 (X) R 3 (X) C 1 C 2 C 3

12 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 12 Άσκηση Διάγραμμα Venn

13 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 13 Τεχνικές Ελέγχου Συνδρομικότητας Ο χρήστης δεν ασχολείται με τη συνδρομικότητα Το ΣΔΒΔ εξασφαλίζει «σωστή συνδρομικότητα», γενικά δρομολογεί τις πράξεις των δοσοληψιών ώστε να προκύπτουν χρονοπρογράμματα σειριοποιήσιμα βάσει συγκρούσεων μέσω τεχνικών ελέγχου συνδρομικότητας

14 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 14 Τεχνικές Ελέγχου Συνδρομικότητας Τεχνικές 1. Κλειδώματος (locking) για να αποτρέψουν τη συνδρομική (ταυτόχρονη) προσπέλαση των δεδομένων από πολλές δοσοληψίες 2. Διάταξης χρονοσημάτων (timestamps) 3. Πιστοποίησης (validation) μιας δοσοληψίας (αισιόδοξα πρωτόκολλα)

15 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 15 Τεχνικές Κλειδώματος ένα κλειδί ανά δεδομένο μια δοσοληψία πριν προσπελάσει ένα δεδομένο Χ ζητά ένα κλειδί -- αίτηση lock(Χ) μπορεί να προσπελάσει το δεδομένο, μόνο αφού της δοθεί το κλειδί -- πότε παίρνει το κλειδί; μια δοσοληψία μπορεί να άρει το κλειδί στο δεδομένο -- αίτηση unlock (Χ)

16 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 16 Τεχνικές Κλειδώματος Ιδέα: πολλές δοσοληψίες να μπορούν να διαβάσουν ένα δεδομένο ταυτόχρονα Δύο ειδών κλειδιά: διαμοιραζόμενο (shared) κλειδί ή κλειδί ανάγνωσης αποκλειστικό (exclusive) κλειδί ή κλειδί εγγραφής

17 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 17 Τεχνικές Κλειδώματος μια δοσοληψία πριν διαβάσει ένα δεδομένο Χ ζητά ένα διαμοιραζόμενο κλειδί -- αίτηση S-lock(Χ) μια δοσοληψία πριν γράψει ένα δεδομένο Χ ζητά ένα αποκλειστικό κλειδί -- αίτηση Χ-lock(Χ) η αίτηση για κλειδί δίνεται αν δεν υπάρχει «συγκρούμενο κλειδί» (πάλι) μια δοσοληψία μπορεί να άρει το κλειδί στο δεδομένο -- αίτηση unlock (Χ)

18 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 18 Τεχνικές Κλειδώματος Πίνακας συμβατότητας κλειδιών S-Lock(X) X-Lock(X) S-Lock(X)  X-Lock(X)

19 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 19 Τεχνικές Κλειδώματος S-Lock(Y) R 1 (Y) Unlock(Y) T1 T2 S-Lock(X) W 1 (X) Unlock(X) C 1 S-Lock(X) R 2 (X) Unlock(X) X-Lock(Y) W 2 (Y) Unlock(Y) C 2 S: R 1 (Y) R 2 (X) W 2 (Y) C 2 W 1 (X) C 1 Δεν αρκεί για σειριοποιησιμότητα T1 T2 Y X Λύση; Κλείδωμα Δύο Φάσεων

20 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 20 Κλείδωμα Δυο Φάσεων Πρωτόκολλο κλειδώματος δυο φάσεων (Two-Phase Locking 2PL) Όλες οι πράξεις (αιτήσεις ) κλειδώματος μιας δοσοληψίας προηγούνται της πρώτης πράξης (αίτησης) άρσης κλειδώματος της διαδικασίας Δηλαδή, μόλις μια δοσοληψία αφήσει (unlock) ένα κλειδί δεν μπορεί να ζητήσει ξανά κλειδί

21 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 21 Κλείδωμα Δυο Φάσεων: Άσκηση Άσκηση Αποδείξτε ότι το βασικό πρωτόκολλο κλειδώματος δύο φάσεων εξασφαλίζει σειριοποιησιμότητα βάσει συγκρούσεων

22 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 22 Κλείδωμα Δυο Φάσεων: Άσκηση Άσκηση Θεωρείστε το παρακάτω χρονοπρόγραμμα των δοσοληψιών T 1 και Τ 2 : S: b W 1 (X) R 2 (X) W 2 (Y) C 2 W 1 (Z) C 1 e b αρχή και e τέλος του χρονοπρογράμματος. Υποθέστε 2PL. Πότε -- μεταξύ ποιών γεγονότων μπορούν να συμβούν τα παρακάτω π.χ., Τ1 μπορεί να κλειδώσει το X μεταξύ των b και W1(X)

23 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 23 Κλείδωμα Δυο Φάσεων: Άσκηση S: b W 1 (X) R 2 (X) W 2 (Y) C 2 W 1 (Z) C 1 e Πότε -- μεταξύ ποιών γεγονότων μπορούν να συμβούν τα παρακάτω (α) Πότε μπορεί η Τ 1 να κάνει unlock(X) (β) Πότε μπορεί η Τ 1 να κάνει lock(Z)

24 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 24 Κλείδωμα Δυο Φάσεων: Άσκηση S: b W 1 (X) R 2 (X) W 2 (Y) C 2 W 1 (Z) C 1 e Αυτό το χρονοπρόγραμμα δεν μπορεί να προκύψει αν θεωρήσουμε αυστηρό (strict) 2PL Αυστηρό Κλείδωμα Δύο Φάσεων: μια διαδικασία δεν απελευθερώνει κανένα κλειδί πριν επικυρωθεί ή ακυρωθεί Υποθέστε ότι μπορούμε να μετακινήσουμε τις πράξεις του Τ 2, που μπορεί το W 2 (Y) να μετακινηθεί στο νέο χρονοπρόγραμμα;

25 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 25 Αδιέξοδα Οι τεχνικές κλειδώματος μπορεί να προκαλέσουν αδιέξοδα (deadlocks) S-Lock(Y) R 1 (Y) T1 T2 S-Lock(X) R 2 (X) X-Lock(X) X-Lock(Y) H T1 περιμένει την Τ2 να ελευθερώσει το Χ, και η Τ2 περιμένει την Τ1 να ελευθερώσει το Υ

26 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 26 Αντιμετώπιση Αδιεξόδων Δυο τεχνικές: Πρωτόκολλα Πρόληψης Αδιεξόδων (Deadlock Prevention): Αποφυγή δημιουργίας αδιεξόδου Πρωτόκολλα Ανίχνευσης Αδιεξόδου (Deadlock Detection): Eλέγχουμε περιοδικά αν το σύστημα βρίσκεται σε κατάσταση αδιεξόδου

27 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 27 Αντιμετώπιση Αδιεξόδων: Άσκηση Θεωρείστε ότι οι πράξεις υποβάλλονται με την παρακάτω σειρά R 1 (X) W 2 (Y) W 2 (Χ) W 3 (Χ) W 1 (Y) C 1 C 2 C 3 (a) Aυστηρό 2PL με χρήση χρονοσοσημάτων για αποφυγή αδιεξόδου (β) Aυστηρό 2PL με χρήση γράφου αναμονής για ανίχνευση αδιεξόδου

28 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 28 Διάταξη Χρονοσημάτων Το χρονόσημα δημιουργείται από το ΣΔΒΔ και προσδιορίζει μοναδικά μια δοσοληψία Ιδέα: διάταξη των δοσοληψιών με βάση το χρονόσημα τους (δηλαδή, χρονοπρόγραμμα ισοδύναμο με σειριακό στο οποίο οι δοσοληψίες εμφανίζονται διατεταγμένες με βάση τις τιμές των χρονοσημάτων)  άρα η σειρά προσπέλασης στα δεδομένα πρέπει να μη παραβιάζει τη σειριοποιησιμότητα

29 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 29 Διάταξη Χρονοσημάτων Κάθε δοσοληψία Τ έχει ένα μοναδικό χρονόσημα ΧΣ(Τ) Κάθε δεδομένο Χ έχει δύο τιμές χρονοσημάτων: ΧΣΑ(Χ) (χρονόσημα ανάγνωσης) το μεγαλύτερο μεταξύ όλων των χρονοσημάτων των δοσοληψιών που διάβασαν το Χ ΧΣΕ(Χ) (χρονόσημα εγγραφής) το μεγαλύτερο μεταξύ όλων των χρονοσημάτων των δοσοληψιών που έγραψαν το Χ

30 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 30 Διάταξη Χρονοσημάτων Η δοσοληψία T με ΧΣ(Τ) εκτελεί μια πράξη ανάγνωσης R(X) Αν ΧΣ(Τ) < ΧΣE(Χ) (αυτό παραβιάζει τη διάταξη) η Τ ακυρώνεται, μπορεί να ξαναρχίσει αλλά με μεγαλύτερο χρονόσημα (γιατί;) Αν ΧΣ(Τ) > ΧΣE(Χ) η ανάγνωση είναι επιτρεπτή θέσε το ΧΣΑ(Χ) = max{XΣA(T), ΧΣ(ΤΑ)}

31 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 31 Διάταξη Χρονοσημάτων: Άσκηση Άσκηση Εφαρμόστε τον αλγόριθμο διάταξης χρονοσημάτων στα χρονοπρογράμματα (α) και (β)

32 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 32 Διάταξη Χρονοσημάτων: Άσκηση R 1 (X) W 1 (X) T1 T2 Τ3 R 2 (Ζ) R 2 (Y) W 2 (Y) R 3 (Y) R 3 (Z) W 3 (Y) W 3 (Z) R 2 (X) R 1 (Y) W 1 (Y) W 2 (X) ΧΣ(Τ1) ΧΣ(Τ2) ΧΣ(Τ3) ΧΣΑ(Χ) ΧΣΕ(Χ) ΧΣΑ(Υ) ΧΣΕ(Υ) ΧΣΕ(Ζ) σειριοποίησημο;

33 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 33 Διάταξη Χρονοσημάτων: Άσκηση R 1 (X) W 1 (X) T1 T2 Τ3 R 2 (Ζ) R 3 (Y) R 3 (Z) W 3 (Y) W 3 (Z) R 2 (Y) W 2 (Y) R 2 (X) W 2 (X) R 1 (Y) W 1 (Y) ΧΣ(Τ1) ΧΣ(Τ2) ΧΣ(Τ3) ΧΣΑ(Χ) ΧΣΕ(Χ) ΧΣΑ(Υ) ΧΣΕ(Υ) ΧΣΕ(Ζ) σειριοποίησημο;

34 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 34 Αισιόδοξες Τεχνικές Κάθε δοσοληψία έχει τρεις φάσεις ΑΝΑΓΝΩΣΗ: η δοσοληψία διαβάζει από τη βδ, αλλά τροποποιεί προσωπικά αντίγραφα των δεδομένων ΠΙΣΤΟΠΟΙΗΣΗ: έλεγχος για συγκρούσεις ΕΓΓΡΑΦΗ: γράφει τα τοπικά αντίγραφα στη βδ

35 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 35 Πιστοποίηση Έλεγχος συνθηκών που είναι ικανές για να εξασφαλίσουν ότι δεν υπήρχαν συγκρούσεις Κάθε δοσοληψία Τ έχει ένα μοναδικό αριθμό TID (χρονόσημα) To TID ανατίθεται στο τέλος της φάσης ΑΝΑΓΝΩΣΗΣ (ακριβώς πριν αρχίσει η πιστοποίηση) Με κάθε δοσοληψία ReadSet(T): το σύνολο των δεδομένων που διάβασε η T WriteSet(T): το σύνολο των δεδομένων που διάβασε η T

36 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 36 Πιστοποίηση zΓια όλα τα i και j τέτοια ώστε Ti < Tj, η Ti τελειώνει πριν αρχίσει η Tj. Ti Tj RVW RVW ΕΛΕΓΧΟΣ 1

37 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 37 Πιστοποίηση Ti RVW Tj RVW zΓια όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει πριν αρχίσει η φάση εγγραφής της Tj - WriteSet(Ti)  ReadSet(Tj) =  ΕΛΕΓΧΟΣ 2

38 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 38 Πιστοποίηση Ti RVW Tj RVW zΓια όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει τη φάση ανάγνωσης πριν αρχίσει η φάση aνάγνωσης της Τj - WriteSet(Ti)  ReadSet(Tj) =  - WriteSet(Ti)  WriteSet(Tj) =  ΕΛΕΓΧΟΣ 3

39 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 39 Πιστοποίηση zΠιστοποίηση της T (έλεγχος 1 & 2): valid = true; // S = set of Xacts that committed after Begin(T) < foreach Ts in S do { if ReadSet(Ts) does intersect WriteSet(T) then valid = false; } if valid then { install updates; // Write phase Commit T } > else Restart T τέλος κρίσιμης περιοχής

40 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 40 Πιστοποίηση: Άσκηση Θεωρείστε ότι οι πράξεις υποβάλλονται με την παρακάτω σειρά R 1 (X) W 2 (Y) W 2 (Χ) W 3 (Χ) W 1 (Y) C 1 C 2 C 3

41 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 41 Διακριτότητα zΔύσκολο να αποφασίσουμε τη διακριτότητα (granularity) για το κλείδωμα Tuples Tables Pages Database contains

42 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 42 Δυναμικές Βάσεις Δεδομένων Οι τεχνικές ελέγχου συνδρομικότητας δίνουν σειριοποιησιμότητα μόνο όταν τα αντικείμενα στη βδ είναι σταθερά

43 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 43 Πολλαπλές Εκδόσεις O O’ O’’ ΚΥΡΙΟ ΤΜΗΜΑ (Τρέχουσες εκδόσεις των σντικειμένων της ΒΔ) ΣΥΛΛΟΓΗ ΕΚΔΟΣΕΩΝ VERSION POOL (Παλιές εκδόσεις που μπορεί να είναι χρήσιμες σε κάποιους ενεργούς αναγνώστες v Οι αναγνώστες μπορούν πάντα να προχωρήσουν -- αλλά μπορεί να χρειαστεί να περιμένουν μέχρι την επικύρωση των εγγραφών Ιδέα: κάθε εγγραφή παράγει ένα καινούργιο αντίγραφο ενώ οι αναγνώσεις διαβάζουν ένα κατάλληλο παλιό

44 Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 44 Άσκηση Διάγραμμα Venn


Κατέβασμα ppt "Βάσεις Δεδομένων II 2000-2001 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google