• Nenhum resultado encontrado

Ανάπτυξη πληροφοριακού συστήματος αλυσίδας Video Club με χρήση κατανεμημένων βάσεων δεδομένων

N/A
N/A
Protected

Academic year: 2023

Share "Ανάπτυξη πληροφοριακού συστήματος αλυσίδας Video Club με χρήση κατανεμημένων βάσεων δεδομένων"

Copied!
124
0
0

Texto

(1)

Τ.Ε.Ι. ΚΑΒΑΛΑΣ

ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΏΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Ανάπτυξη πληροφοριακού συστήματος αλυσίδας Video Club με χρήση κατανεμημένων βάσεων δεδομένων

Εκπόνηση

Δημητριάδης Δημήτρης [ 1 " " Τ ’ ’ΎΊ Επίβλεψη'Χ |

Αλεβίζος Θεόδωρος

(2)

Τ.Ε.Ι. ΚΑΒΑΛΑΣ

ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Πληροφοριακό Σύστημα Αλυσίδας Video Club με Κατανεμημένη Βάση Δεδομένων

Εκπόνηση

Δημητριάδης Δημήτρης Α.Ε.Μ586 '

Επίβλεψη

Αλεβίζος Θεόδωρος

(3)

ΠΕΡΙΛΗΨΗ

Η παρούσα πτυχιακή εργασία αποτελεί επέκταση της πτυχιακής εργασίας με τίτλο

“Λογισμικό για τη Λειτουργία Δικτύου Video Club”, που εκπόνησε η Φρύνη-Μαρία Κολλιοπούλου. Το παρόν σύγγραμμα ωστόσο, περιέχει όλες τις απαραίτητες πληροφορίες που το καθιστούν αυτόνομο.

Το θέμα και των δύο εργασιών αφορά την κατασκευή ενός συστήματος για την υποστήριξη μίας αλυσίδας καταστημάτων ενοικίασης ταινιών, η οποία αποτελείται από πολλά υποκαταστήματα σε όλη τη χώρα και σε αρκετές περιπτώσεις η ανταλλαγή πληροφοριών των υποκαταστημάτων μέσω του συστήματος κρίνεται απαραίτητη. Ένας κοινός σκοπός των εργασιών είναι η ενσωμάτωση των θεμάτων που πραγματεύονται, στο μάθημα “Βάσεις Δεδομένων 2”, που διδάσκεται από τον Κ.

Θεόδωρο Αλεβίζο.

Κατά την υλοποίηση της προηγούμενης πτυχιακής, πραγματοποιήθηκε η φυσική και λογική σχεδίαση της σχεσιακής βάσης δεδομένων, για την υποστήριξη του δικτύου ενοικίασης ταινιών μέσω της συγκεντρωτικής προσέγγισης(centralized approach). Όπως επίσης και η σχεδίαση της διεπαφής χρήστη (user interface), σε περιβάλλον DOS, όπου η εκτέλεση των εργασιών πραγματοποιείται μέσω καταλόγων οδήγησης (Menu Driven) του χρήστη.

Στην παρούσα εργασία, για την σχεδίαση και κατασκευή της βάσης δεδομένων, ακολουθείται η αποκεντρωτική προσέγγιση (decentralized approach) μέσω των κατανεμημένων βάσεων δεδομένων.

Αρχικά πραγματοποιήθηκε επέκταση του μοντέλου οντοτήτων συσχετίσεων, που είχε κατασκευαστεί κατά τη λογική σχεδίαση, για την υποστήριξη των απαιτήσεων του αγοραστή ταινιών και του διευθυντή της εταιρείας. Επίσης κατά τη φυσική σχεδίαση πραγματοποιήθηκε ανάλυση και διόρθωση των τύπων των πεδίων και των κύριων κλειδιών, όπου κρίθηκε απαραίτητο, ώστε η βάση να υποστηρίζει τις λειτουργίες της εταιρείας σε βάθος χρόνου, σύμφωνα με τους ρυθμούς ανάπτυξης, όπως αυτοί περιγράφονται από τον διευθυντή και τους υπεύθυνους υποκαταστημάτων της εταιρείας. Με την ολοκλήρωση των παραπάνω ενεργειών προέκυψε το καθολικό σχήμα της βάσης δεδομένων (Global Database Schema). Έπειτα πραγματοποιήθηκε ανάλυση του σχήματος της βάσης δεδομένων και των λειτουργιών της εταιρείας ώστε να πραγματοποιηθεί η κατανομή του και να καθοριστεί το ποιες πληροφορίες θα διατηρούνται σε ποια βάση δεδομένων.

Τέλος, κατασκευάστηκε η διεπαφή χρήστη (User Interface) σε παραθυρικό περιβάλλον Windows, για την υποστήριξη των εργασιών από τα μέλη της εταιρείας.

(4)

ΠΡΟΛΟΓΟΣ

Πέρα από την παρουσίαση του πρακτικού μέρος, στην παρούσα πτυχιακή εργασία, παρατίθεται συνοπτικά και το θεωρητικό υπόβαθρο, τόσο της κατασκευής κατανεμημένων βάσεων δεδομένων, όσο και των βασικών αρχών σχεδίασης της διεπαφής χρήστη.

Αναλυτικότερα:

Στο κεφάλαιο 1 πραγματοποιείται μία εισαγωγή στις κατανεμημένες βάσεις δεδομένων. Περιγράφονται οι κατηγορίες των κατανεμημένων συστημάτων, τα πλεονεκτήματα και τα μειονεκτήματα τους. Ακόμη, αναπτύσσονται οι στόχοι ενός κατανεμημένου συστήματος, όπως ορίστηκαν από τον Chris Date. Και τέλος περιγράφονται τα είδη κατάτμησης και η μεθοδολογία σχεδίασης ενός κατανεμημένου συστήματος.

Στο κεφάλαιο 2 παρατίθεται η περιγραφή του προβλήματος του πληροφοριακού συστήματος της αλυσίδας Video Club. Ακόμη, παρουσιάζεται ο τρόπος επέκτασης του μοντέλου της υπάρχουσα βάσης δεομένων και η φυσική σχεδίαση της κατανεμημένης βάσης.

Στο Κεφάλαιο 3, εξετάζεται η φυσική σχεδίαση του κατανεμημένου συστήματος μέσα σε ένα ομογενές περιβάλλον της Oracle. Οι διαθέσιμες επιλογές που παρέχει το προϊόν, όπως επίσης και η λύση που επιλέχθηκε.

Το Κεφάλαιο 4, παρουσιάζει τις εννιά βασικές αρχές σχεδίασης της διεπαφής χρήστη (user interface) που πρέπει να λαμβάνονται υπόψη κατά τη σχεδίαση μίας εφαρμογής.

Στο παράτημα Α, περιέχεται το εγχειρίδιο χρήστη, στο οποίο περιγράφεται η διαδικασία παραμετροποίησης των βάσεων δεδομένων του συστήματος.

Στο παράρτημα Β, περιέχεται το λεξικό δεδομένων του συστήματος.

Στο παράρτημα Γ, παρατίθενται οι απαιτήσεις για τους προγραμματιστές.

Το παράρτημα Δ, περιέχει τις προδιαγραφές του συστήματος και τέλος,

Στο παράρτημα Ε, περιέχονται τα έγγραφα τεκμηρίωσης της βάσης δεδομένων.

(5)

Περιεχόμενα

Περίληψη... I Πρόλογος...II Περιεχόμενα... ΙΙΙ

Κεφάλαιο 1. Θεωρία Κατανεμημένων Βάσεων Δεδομένων... 1

1.1 Εισαγωγή στις κατανεμημένες βάσεις δεδομένων... 1

1.1.1 Κατηγορίες κατανεμημένων συστημάτων... 1

1.1.1.1 Ομογενή κατανεμημένα συστήματα...2

1.1.1.2 Ετερογενή κατανεμημένα συστήματα...2

1.1.1.3 Ομοσπονδιακά κατανεμημένα συστήματα...2

1.1.1.4 Συστήματα πλεονασμού αντιγράφων ασφαλείας...3

1.2 Εφαρμογή, πλεονεκτήματα και μειονεκτήματα κατανεμημένων Β .Δ ...3

1.3 Στόχοι κατανεμημένων συστημάτων...5

1.3.1 Τοπική αυτονομία...6

1.3.2 Ανεξαρτησία τοποθεσιών...6

1.3.3 Συνεχόμενη λειτουργία...6

1.3.4 Διαφάνεια τοποθεσιών (κατανομής)...6

1.3.5 Ανεξαρτησία κατάτμησης...7

1.3.6 Ανεξαρτησία αντιγραφής ...8

1.3.7 Διαδικασίες κατανεμημένων ερωτημάτων...8

1.3.8 Διαχείριση κατανεμημένων δοσοληψιών...9

1.3.9 Ανεξαρτησία υλικού...9

1.3.10 Ανεξαρτησία λειτουργικών συστημάτων...9

1.3.11 Ανεξαρτησία δικτύου...9

1.3.12 Ανεξαρτησία RDBMS...9

1.4 Διαφάνεια στην κατανομή... 10

1.4.1 Αφαιρετική κατανομή των κατανεμημένων βάσεων δεδομένων... 10

1.4.2 Είδη κατάτμησης... 12

1.4.3 Οριζόντια κατάτμηση... 12

(6)

1.4.5 Μεικτή κατάτμηση... 15

1.5 Σχεδίαση κατανεμημένων βάσεων δεδομένων... 15

1.5.1 Κατάτμηση... 17

1.5.1.1 Οριζόντια κατάτμηση... 17

1.5.1.2 Κάθετη και μεικτή κατάτμηση...20

1.5.2 Τοποθέτηση τμημάτων...21

1.5.2.1 Οριζόντιας κατάτμηση...21

1.5.2.2 Κάθετης κατάτμηση...22

Κεφάλαιο 2. Φυσική Σχεδίαση Κατανεμημένης Βάσης Δεδομένων, της Αλυσίδας Video Club...25

2.1 Περιγραφή της δομής της εταιρείας...25

2.1.1 Οι σκοποί που θα εκπληρώνει το σύστημα...26

2.1.2 Πιθανές “έτοιμες” λύσεις...27

2.1.3 Η λύση του προβλήματος...27

2.1.4 Ανάλυση του υπάρχοντος συστήματος της εταιρείας...27

2.1.4.1 Χαρακτηριστικά και λειτουργίες...27

2.1.4.2 Τα όρια της βάσης δεδομένων του συστήματος...28

2.1.4.3 Βασικές όψεις χρηστών...29

2.1.4.4 Το ΜΟΣ της υπάρχουσας βάσης δεδομένων...30

2.1.5 Νέες όψεις και λειτουργίες του συστήματος...30

2.1.6 Ενσωμάτωση των νέων απαιτήσεων στο σύστημα...31

2.1.6.1 Αρχές λειτουργίας της διαδικασίας παραγγελιών...32

2.2 Ανάλυση και κατανομή της βάσης δεδομένων... 32

2.2.1 Κατάτμηση του καθολικού σχήματος... 32

2.2.1.1 Οριζόντια κατάτμηση...33

2.2.1.2 Κάθετη και μεικτή κατάτμηση...35

Κεφάλαιο 3. Φυσική Σχεδίαση και Προσαρμογή στο Oracle RDBMS ...36

3.1 Κατανεμημένα και αντιγραμμένα συστήματα στην πράξη... 36

3.2 Αφαιρετική απεικόνιση του συστήματος της αλυσίδας Video C lub...37

3.3 Κατασκευή του περιβάλλοντος αντιγραφής...38

(7)

3.3.1 Διασύνδεση των βάσεων του κατανεμημένου συστήματος...38

3.3.1.1 Σύνδεσμοι βάσεων δεδομένων...38

3.3.1.2 Ονοματολογία συνδέσμων βάσεων δεδομένων...39

3.3.1.3 Δημιουργία συνδέσμων βάσεων δεδομένων...40

3.3.1.4 Επιλογή συνδέσμων για το σύστημα του Video Club...42

3.3.2 Παραμετροποίηση προχωρημένης αντιγραφής...42

3.3.2.1 Χρήστες ενός κατανεμημένου συστήματος...42

3.3.2.2 Δημιουργία του καθολικού σχήματος...43

3.3.2.3 Υλοποιημένες όψεις...43

3.3.2.4 Μέθοδοι ανανέωσης υλοποιημένων όψεων...45

3.3.2.5 Ομάδες αντιγραφής και ανανέωσης υλοποιημένων όψεων...45

3.3.2.6 Δημιουργία υλοποιημένων όψεων...49

3.3.2.7 Κατασκευή των τοπικών σχημάτων της αλυσίδας Video Club...50

3.3.2.8 Διαφάνεια στην κατανομή του συστήματος...51

3.3.2.9 Επίλυση διενέξεων του συστήματος... 52

Κεφάλαιο 4. Αρχές Σχεδίασης Διεπαφής Χρήστη... 53

4.1 Εστίαση στους χρήστες και τις διεργασίες τους, και όχι στην τεχνολογία...53

4.2 Ο σχεδιασμός των λειτουργιών να προηγείται της παρουσίασης...53

4.2.1 Τι δεν σημαίνει αυτή η αρχή...54

4.2.2 Τι σημαίνει αυτή η αρχή... 54

4.2.3 Το εννοιακό μοντέλο...54

4.2.3.1 Όσο το δυνατόν πιο απλό, αλλά όχι απλούστερο... 55

4.2.3.2 Τα λιγότερα είναι περισσότερα...55

4.2.3.3 Εστίαση στις διεργασίες...55

4.2.3.4 Ανάλυση αντικειμένων/ενεργειών...55

4.2.3.5 Κατασκευή λεξικού...56

4.2.3.6 Δημιουργία σεναρίων διεργασιών...56

4.2.3.7 Η διεπαφή χρήστη να βασίζεται στο εννοιακό μοντέλο...56

(8)

4.2.3.8 Η ανάλυση αντικειμένων/ενεργειών προωθεί την ανάπτυξη... 56

4.2.3.9 Τα πλεονεκτήματα του εννοιακού μοντέλου, συμπερασματικά...57

4.3 Προσαρμογή στις όψεις των χρηστών για τους στόχους...58

4.3.1 Προώθηση της φυσικής ροής...58

4.3.2 Αποτροπή των χρηστών από την εκτέλεση αφύσικων πράξεων...58

4.3.3 Επιβολή αυθαίρετων περιορισμών...58

4.3.4 Διατήρηση του λεξικού του χρήστη... 59

4.3.5 Οι εσωτερικές λειτουργίες της εφαρμογής να παραμένουν κρυφές...59

4.3.6 Η χρυσή τομή ισχύος/πολυπλοκότητας (power/complexity)... 59

4.4 Σχεδιάζοντας για τη συνηθέστερη περίπτωση...61

4.4.1 Τα συνηθισμένα αποτελέσματα πρέπει να επιτυγχάνονται εύκολα...62

4.4.2 Οι δύο κατηγορίες συνηθισμένων: “πόσοι χρήστες” και “πόσο συχνά” 62 4.4.3 Όσο συχνότερα χρησιμοποιείται ένα χαρακτηριστικό τόσο πιο εύκολα πρέπει να προσπελαύνεται...62

4.4.4 Τα χαρακτηριστικά που χρησιμοποιούν οι περισσότεροι χρήστες πρέπει να είναι τα πιο ορατά...63

4.4.5 Συνδυασμοί: Συνηθισμένο από πολλούς, συνηθισμένο από λίγους, σπάνιο από πολλούς, σπάνιο από λίγους...63

4.5 Η προσοχή του χρήστη δεν πρέπει να αποσπάται από τον στόχο το υ ... 64

4.5.1 Το λογισμικό δεν πρέπει να δημιουργεί περισσότερα προβλήματα στους χρήστες ...64

4.6 Ευκολία στην εκμάθηση...65

4.6.1 Η λογική σκέψης “από έξω προς τα μέσα” και “από μέσα προς τα έξω” .. 65

4.6.2 Ο σωστός τρόπος σχεδίασης: η σκέψη από έξω προς τα μέσα...66

4.6.3 Συνέπεια, συνέπεια, συνέπεια...66

4.6.3.1 Η συνέπεια ελαττώνει τις παγίδες...66

4.6.3.2 Κίνδυνοι της φύσης της συνέπειας...67

4.6.3.3 Η συνέπεια είναι καλή, όπως και να ‘χει...67

4.6.3.4 Κάνοντας τη συνέπεια χρηστο-κεντρική (user-centered)... 67

4.6.4 Παροχή περιβάλλοντος χαμηλού κινδύνου...68

4.7 Εμφάνιση πληροφοριών και όχι μόνο δεδομένων...68

4.7.1 Προσεκτική σχεδίαση των προβολών...68

(9)

4.7.2 Διατήρηση σταθερής απεικόνισης...69

4.8 Σχεδίαση για αλληλεπίδραση...70

4.8.1 Με τον όρο “ταχύτητα” δεν εννοείται η πραγματική, αλλά η αντιληπτική...70

4.8.2 Τι είναι η αποκρισημότητα;...71

4.8.3 Σχεδιάζοντας για αποκρισημότητα...72

4.9 Έλεγχος με τους χρήστες και διόρθωση...72

4.9.1 Τα αποτελέσματα ελέγχου συνήθως προκαλούν έκπληξη...72

4.9.2 Χρονοπρογραμματισμός της διόρθωσης προβλημάτων που εντοπίζονται στους ελέγχους...73

4.9.3 Οι δύο στόχοι του ελέγχου: Πληροφοριακός και κοινωνικός...73

4.9.3.1 Πληροφοριακός στόχος...73

4.9.3.2 Κοινωνικός στόχος...73

Συμπεράσματα...75

Παράρτημα Α - Εγχειρίδιο χρήστη...76

Α.1 Παραμετροποίηση κύριας τοποθεσίας...77

Α.2 Παραμετροποίηση τοποθεσίας υλοποιημένων όψεων... 81

Παράρτημα Β - Λεξικό δεδομένων του συστήματος... 84

Παράρτημα Γ - Απαιτήσεις προγραμματιστών...85

Παράρτημα Δ - Προδιαγραφές...93

Παράρτημα Ε - Τεκμηρίωση της βάσης δεδομένων... 112

Ε.1 Λεξικό δεδομένων... 112

Ε.2 Μοντέλο οντοτήτων συσχετίσεων καθολικού σχήματος... 113

Βιβλιογραφία... 114

(10)

Κεφάλαιο 1

Θεωρία Κατανεμημένων Βάσεων Δεδομένων

Κατά την μελέτη των βάσεων δεδομένων συνήθως δίνεται ιδιαίτερη έμφαση στο συγκεντρωτικό μοντέλο (centralized model), όπου όλα τα δεδομένα διατηρούνται σε μία και μοναδική τοποθεσία και, υποτίθεται ότι η επεξεργασία των συναλλαγών είναι στην ουσία σειριακής μορφής. Μία από τις πιο σημαντικές τάσεις στις βάσεις δεδομένων, είναι η όλο αυξανόμενη χρήση του αποκεντρωτικού μοντέλου (decentralized model), όπου τα δεδομένα διατηρούνται σε περισσότερες από μία τοποθεσίες και οι συναλλαγές πραγματοποιούνται είτε παράλληλα, είτε κατανεμημένα.

Σε αυτό το κεφάλαιο γίνεται μία προσπάθεια εισαγωγής στο θεωρητικό επίπεδο του αποκεντρωτικού μοντέλου των σχεσιακών κατανεμημένων βάσεων δεδομένων.

1.1 Εισαγωγή στις κατανεμημένες βάσεις δεδομένων

Μία Κατανεμημένη Βάση Δεδομένων (Distributed Database - DDB) μπορεί να οριστεί σαν μία ομάδα από λογικά συνδεδεμένες βάσεις δεδομένων που είναι διεσπαρμένες σε ένα δίκτυο υπολογιστών.

Μέσα στην κατανεμημένη βάση, τα δεδομένα αποθηκεύονται σε διαφορετικές τοποθεσίες, όπου τυπικά, την κάθε τοποθεσία διαχειρίζεται ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (Database Management System - DBMS), το οποίο λειτουργεί ανεξάρτητα από εκείνα των υπόλοιπων τοποθεσιών.

Ένα Κατανεμημένο Σύστημα Διαχείρισης Βάσεων Δεδομένων (Distributed Database Management System - DDBMS) μπορεί να οριστεί σαν ένα πρόγραμμα που επιτρέπει τη διαχείριση μίας κατανεμημένης βάσης δεδομένων με τρόπο που κάνει την κατανομή της διαφανή προς τους χρήστες, δηλαδή οι χρήστες/προγραμματιστές δεν χρειάζεται να γνωρίζουν την εσωτερική δομή της κατανομής.

1.1.1 Κατηγορίες κατανεμημένων συστημάτων

Τα κατανεμημένα συστήματα που βρίσκουν εφαρμογή κατά κύριο λόγο στις μέρες μας, μπορούν να ενταχθούν σε μία από τις τέσσερις παρακάτω κατηγορίες:

(11)

Ομογενή κατανεμημένα συστήματα

Εάν όλοι οι διακομιστές τρέχουν το ίδιο σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (Relational Database Management System - RDBMS), χωρίς να είναι απαραίτητη η χρήση του ίδιου λειτουργικού συστήματος και υλικού, τότε γίνεται λόγος για ένα ομογενές κατανεμημένο σύστημα (homogenous distributed system).

Τα ομογενή συστήματα είναι τα πιο συνηθισμένα κατανεμημένα συστήματα που συναντώνται. Το δεύτερο χαρακτηριστικό που προσδιορίζει ένα ομογενές κατανεμημένο σύστημα είναι ότι τα δεδομένα συμμετέχουν στρατηγικά, ανάλογα με τη λειτουργικότητα, και/ή γεωγραφικά και χρησιμοποιούν κατανεμημένα ερωτήματα και δοσοληψίες. Επιπλέον, αυτά τα συστήματα διαμοιράζονται το σχήμα μέσω ενός καθολικού λεξικού δεδομένων (global data dictionary). Ολόκληρη η βάση δεδομένων πρακτικά σχηματίζεται από το σύνολο των συμμετεχόντων. Επίσης η κάθε βάση δεδομένων είναι ανεξάρτητη (self-reliant), όπως περιγράφεται από τον Date στις 12 αρχές του (βλ. ενότητα 1.3).

1.1.1.2 Ετερογενή κατανεμημένα συστήματα

Εάν διαφορετικές τοποθεσίες τρέχουν κάτω από τον έλεγχο διαφορετικών RDBMS, ουσιαστικά αυτόνομα, και συνδέονται με κάποιον τρόπο για να ικανοποιούν την πρόσβαση των δεδομένων από πολλές τοποθεσίες, σχηματίζεται ένα ετερογενές κατανεμημένο σύστημα (heterogeneous distributed system).

Ένα ετερογενές κατανεμημένο σύστημα εμπεριέχει όλα τα χαρακτηριστικά του ομογενούς συστήματος συμπεριλαμβανομένου και του διαμοιρασμένου σχήματος, με εξαίρεση ότι οι συμμετέχουσες βάσεις δεδομένων χρησιμοποιούν δύο ή περισσότερες μηχανές RDBMS. Γενικότερα, αυτά τα συστήματα διαμοιράζονται τα δεδομένα αλλά μοιάζουν λιγότερο δεσμευμένα στις κατανεμημένες δοσοληψίες. Αυτός ο περιορισμός εμφανίζεται λόγω της μη δυνατότητας της πλήρους χρήσης της λειτουργικότητας ενός RDBMS, το οποίο αλληλεπιδρά με ένα ξένο. Διαφορετικές εκδόσεις RDBMS από τον ίδιο κατασκευαστή μπορεί να σχηματίζουν ετερογενή κατανεμημένα συστήματα και να περιέχουν περιορισμούς .

1.1.1.3 Ομοσπονδιακά συστήματα βάσεων δεδομένων

Τα ομοσπονδιακά συστήματα βάσεων δεδομένων (federal database systems) διαφέρουν από τα ομογενή και τα ετερογενή συστήματα διότι δεν διαμοιράζονται το σχήμα τους. Αντίθετα, διαμοιράζονται υποσύνολα των δεδομένων τους ώστε να διευκολύνουν τις λειτουργίες σε άλλες τοποθεσίες, με τις οποίες δεν υπάρχει συνήθως λειτουργική συσχέτιση. Τα κοινόχρηστα δεδομένα που διαμοιράζει μία τοποθεσία ονομάζονται εξερχόμενο σχήμα (exported schema), και τα κοινόχρηστα δεδομένα που προσπελαύνει μία τοποθεσία από μία άλλη ονομάζονται εισερχόμενο σχήμα

(12)

δεδομένων είναι πλήρως ανεξάρτητοι μεταξύ τους και είναι πιθανό να χρησιμοποιούν το ίδιο RDBMS.

Αυτή η ανεξαρτησία δεν οφείλεται στον σχεδιασμό του ομοσπονδιακού συστήματος. Οι οργανισμοί συνήθως δημιουργούν συστήματα ομοσπονδιών βάσεων δεδομένων ώστε να ανταποκρίνονται στις ανάγκες που εμφανίζονται μετά την εφαρμογή του πρωτότυπου συστήματος. Αυτό το μοντέλο αποτελεί τον συνηθέστερο τύπο κατανεμημένων συστημάτων βάσεων δεδομένων - ίσως λόγω του ότι οι ομοσπονδίες βάσεων δεδομένων είναι ευκολότερο να δημιουργηθούν με την ελάχιστη ποσότητα σχεδίασης.

1.1.1.4 Συστήματα πλεονασμού αντιγράφων ασφαλείας

Τα συστήματα πλεονασμού αντιγράφων ασφαλείας (Redundant backup system) είναι μία ειδική περίπτωση των ομογενών συστημάτων και αποτελούν μία δημοφιλή εφαρμογή της τεχνολογίας αντιγραφής (replication). Σε αυτήν την στρατηγική δημιουργούνται ακριβή αντίγραφα της κύριας βάσης δεδομένων, τα οποία μπορεί να βρίσκονται σε διαφορετικές τοποθεσίες. Χρησιμοποιώντας την τεχνολογία αντιγραφής, όλες οι δεσμευμένες (committed) δοσοληψίες της κύριας βάσης δεδομένων εκπέμπονται και προς τα άλλα αντίγραφα. Παρόλα αυτά, σε αντίθεση με τα ομογενή συστήματα, οι τοποθεσίες των αντιγράφων δεν είναι διαθέσιμες στους χρήστες για όσο η κύρια βάση δεδομένων βρίσκεται σε λειτουργία. Εάν η κύρια τοποθεσία τεθεί εκτός λειτουργίας, οι χρήστες και οι εφαρμογές μπορούν να ανακατευθυνθούν στην τοποθεσία του αντιγράφου όπου μπορούν να συνεχίσουν τις εργασίες τους.

1.2 Εφαρμογή, πλεονεκτήματα και μειονεκτήματα κατανεμημένων βάσεων δεδομένων

Η ανάγκη του τεμαχισμού μιας βάσης δεδομένων και της κατανομής της γεωγραφικά προέκυψαν από την ανάγκη των μεγάλων οργανισμών να εκμεταλλεύονται το σύνολο των δεδομένων που βρίσκεται αποθηκευμένα σε διάφορα τοπικά μηχανογραφικά συστήματα. Σήμερα λόγω της εξέλιξης της τεχνολογίας των συστημάτων διαχείρισης βάσεων δεδομένων και των δικτύων, οι κατανεμημένες βάσεις δεδομένων χρησιμοποιούνται ευρύτατα, είτε στην πρωταρχική τους μορφή, είτε μέσω τεχνολογιών που βασίστηκαν στις κατανεμημένες βάσεις για την παροχή εξελιγμένων υπηρεσιών που ενσωματώνουν τα πλεονεκτήματα των κατανεμημένων βάσεων δεδομένων (π.χ. κατανεμημένες αποθήκες δεδομένων - Distributed Data Warehouse).

Σε γενικές γραμμές, οι λόγοι που καθιέρωσαν τα κατανεμημένα συστήματα σαν μία αποδεκτή και χρησιμοποιούμενη στην πράξη τεχνολογία είναι οι παρακάτω:

(13)

- Εκφράζουν καλύτερα την οργανωτική δομή των εταιρειών, λόγω του ότι τα δεδομένα τεμαχίζονται (fragmented) και τοποθετούνται στα τμήματα που τους αναλογούν. Τα κατανεμημένα συστήματα προκύπτουν σαν μια φυσική λύση σε εταιρείες που αποτελούνται από γεωγραφικά απομακρυσμένα τμήματα.

- Παρέχουν τοπική αυτονομία, δηλαδή το κάθε τμήμα μπορεί να διαχειριστεί τα δεδομένα που το αφορούν τοπικά.

- Παρέχουν βελτιωμένη διαθεσιμότητα (availability), διότι εάν προκύψει σφάλμα σε κάποια βάση του συστήματος, δεν θα επηρεαστεί ολόκληρο το σύστημα, αλλά μόνο το συγκεκριμένο τμήμα.

- Βελτιώνουν την απόδοση. Λόγω του ότι τα δεδομένα τοποθετούνται συνήθως στην κοντινότερη τοποθεσία με τις περισσότερες απαιτήσεις και τα συστήματα βάσεων δεδομένων παραλληλοποιούνται, επιτρέπεται η εξισορρόπηση του φόρτου εργασίας μεταξύ των εξυπηρετητών (servers). Με αυτήν την στρατηγική εξασφαλίζεται και η μείωση του φόρτου δικτύου.

- Μείωση του κόστους κατασκευής, δεδομένου ότι κοστίζει λιγότερο η δημιουργία ενός δικτύου οικιακών υπολογιστών με την ίδια ισχύ ενός εξυπηρετητή, από ότι η αγορά ενός εξυπηρετητή βάσεων δεδομένων. Και όπως έχει αποδειχθεί πολλές φορές στην πράξη, η συντήρηση κατανεμημένων συστημάτων μπορεί να είναι πιο αποδοτική και οικονομική από τη συντήρηση ενός συγκεντρωτικού συστήματος.

- Παρέχουν ευελιξία στην προσθαφαίρεση υπομονάδων (modularity). Τα συστήματα μπορούν να τροποποιηθούν ευκολότερα, να προστεθούν ή να αφαιρεθούν από την κατανεμημένη βάση χωρίς να επηρεαστούν οι υπόλοιπες μονάδες. Συνεπώς η σταδιακή ανάπτυξη του οργανισμού και η προσαρμογή του συστήματος μπορεί να γίνει πιο εύκολα σε ένα κατανεμημένο, από ότι σε ένα συγκεντρωτικό περιβάλλον.

Βέβαια, από την άλλη πλευρά, όπως κάθε τεχνολογία, έτσι και η τεχνολογία των κατανεμημένων βάσεων δεδομένων έχει και αυτή τα μειονεκτήματα της.

- Αυξάνει την πολυπλοκότητα του συστήματος και οι διαχειριστές των βάσεων δεδομένων (DBA) αποκτούν περισσότερες εργασίες, ώστε να εξασφαλιστεί ότι η κατανεμημένη φύση του συστήματος είναι διαφανής.

- Μπορεί το κόστος του υλικού και της συντήρησης να μειώνεται, όπως αναφέρθηκε παραπάνω, αλλά το κόστος της σχεδίασης ενός κατανεμημένου συστήματος αυξάνεται ανάλογα με την πολυπλοκότητα του. Μία επιπλέον οικονομική επιβάρυνση αποτελεί το κόστος του λογισμικού για κάθε ένα από τα μηχανήματα, αν και με τη χρήση λογισμικού ανοιχτού κώδικα μπορεί να επιτευχθεί η δημιουργία ενός κατανεμημένου συστήματος.

- Αυξάνει την πολυπλοκότητα της διαδικασίας διαχείρισης της ασφάλειας. Λόγω της αποκέντρωσης της βάσης, όλα τα τεμάχια των απομακρυσμένων τοποθεσιών και η υποδομή του συστήματος θα πρέπει να είναι ασφαλή (π.χ.

(14)

κρυπτογραφώντας τους συνδέσμους δικτύου μεταξύ των απομακρυσμένων τοποθεσιών).

- Αυξάνεται η δυσκολία διατήρησης της ακεραιότητας των δεδομένων. Σε ένα κατανεμημένο σύστημα, η επιβολή της ακεραιότητας στις βάσεις που συμμετέχουν στο κατανεμημένο σύστημα μέσω του δικτύου, μπορεί να δεσμεύσει πολλούς πόρους δικτύου για να επιτευχθεί.

1.3 Στόχοι κατανεμημένων συστημάτων

Ο C. J. Date, στο βιβλίο “An Introduction to Database Systems (Addison-Wesley, 1995)”, καθορίζει τη βασικότερη αρχή των κατανεμημένων συστημάτων, ως εξής:

“Για τον χρήστη, ένα κατανεμημένο σύστημα θα πρέπει να μοιάζει ακριβώς με ένα μη-κατανεμημένο σύστημα ”.

Ο Date συνεχίζει καταγράφοντας τους παρακάτω δώδεκα στόχους που θα πρέπει να καλύπτονται ώστε να ικανοποιούν αυτήν τη βασική αρχή:

01. Τοπική αυτονομία (Local autonomy)

02. Ανεξαρτησία σε κάθε τοποθεσία (No reliance on a single site) 03. Συνεχόμενη λειτουργία (Continuous operation)

04. Διαφάνεια τοποθεσίας - κατανομής (Location transparency) 05. Ανεξαρτησία κατάτμησης (Fragmentation independence) 06. Ανεξαρτησία αντιγραφής (Replication independence)

07. Διαδικασίες κατανεμημένων ερωτημάτων (Distributed query processing) 08. Διαχείριση κατανεμημένων δοσοληψιών (Distributed transaction management) 09. Ανεξαρτησία υλικού (Hardware independence)

10. Ανεξαρτησία λειτουργικών συστημάτων (Operating system independence) 11. Ανεξαρτησία δικτύων (Network independence)

12. Ανεξαρτησία σχεσιακών ΣΔΒΔ (RDBMS independence)

Κάποιες από αυτές τις απαιτήσεις είναι τελείως εξωπραγματικές και ο ίδιος ο Chris Date αναγνώρισε ότι αυτοί οι κανόνες δεν μπορούν να επιτευχθούν πλήρως.

Κατά κάποιο τρόπο όμως, μπορούν να χρησιμοποιηθούν ως “οδηγός” στη σχεδίαση και ανάπτυξη κατανεμημένων συστημάτων. Παρόλα αυτά, μπορεί να σχεδιαστεί επιτυχώς ένα κατανεμημένο σύστημα, το οποίο δεν καλύπτει καμία από τις παραπάνω αρχές. Επίσης, αρκετοί από αυτούς τους στόχους αποτελούν αρμοδιότητα των σχεσιακών συστημάτων διαχείρισης βάσεων δεδομένων (Relational Database Management System), και όχι του σχεδιαστή του συστήματος.

(15)

1.3.1 Τοπική αυτονομία

Για τη θεωρητική ικανοποίηση αυτού του κανόνα, κάθε βάση δεδομένων που συμμετέχει στο κατανεμημένο σύστημα θα πρέπει να είναι λειτουργικά αδιάφορη στο θέμα της επικοινωνίας με τις υπόλοιπες. Συνεπώς, τα δεδομένα που ανήκουν σε κάθε συμμετέχουσα βάση δεδομένων ανήκουν μόνο σε αυτή, με την έννοια ότι η ακεραιότητα των δεδομένων, η ασφάλεια και η διαχείριση είναι ανεξάρτητες από τις άλλες τοποθεσίες.

1.3.2 Ανεξαρτησία τοποθεσιών

Αυτός ο κανόνας είναι συμπληρωματικός του κανόνα της τοπικής αυτονομίας.

Εφόσον κάθε τοποθεσία είναι αυτόνομη (self-sufficient) δεν υπάρχει καμία κύρια τοποθεσία, από την οποία εξαρτώνται οι υπόλοιπες μέσα στο ιδεατό κατανεμημένο περιβάλλον. Με άλλα λόγια, η αποτυχία μιας οποιασδήποτε τοποθεσίας δεν επιβαρύνει τις υπόλοιπες και η συνολική απόδοση του συστήματος δεν εξαρτάται από μία τοποθεσία.

1.3.3 Συνεχόμενη λειτουργία

Ένας από τους συνηθέστερους λόγους για την ανάπτυξη κατανεμημένων συστημάτων βάσεων δεδομένων είναι η παροχή πλεονασμού πληροφοριών και ανοχής σφαλμάτων. Για τον ίδιο λόγο, ένα κατανεμημένο σύστημα δεν προβλέπει προγραμματισμένες διακοπές (scheduled outages) για λειτουργίες συντήρησης, όπως η προσθήκη και η αφαίρεση τοποθεσιών ή, η αναβάθμιση του λογισμικού. Φυσικά, σε θεωρητικό επίπεδο είναι δυνατό να επιτευχθεί μηδενικός χρόνος διακοπής, προγραμματισμένης ή μη, αλλά ακόμη και ο Chris Date αποδέχτηκε ότι “οι απρογραμμάτιστες διακοπές είναι δύσκολο να αποφευχθούν ολοκληρωτικά”.

1.3.4 Διαφάνεια τοποθεσιών (κατανομής)

Η διαφάνεια κατανομής σημαίνει ότι τα δεδομένα και οι λειτουργίες του συστήματος φαίνονται ίδιες προς τον χρήστη (και τους σχεδιαστές), ανεξάρτητα από το πού βρίσκονται τα δεδομένα. Οι χρήστες δεν πρέπει να λαμβάνουν ειδικά μέτρα για να προσπελάσουν δεδομένα που βρίσκονται σε πολλαπλές τοποθεσίες, και οι σχεδιαστές δεν απαιτείται να γράψουν επιπλέον κώδικα για την εκτέλεση κάποιας κατανεμημένης δοσοληψίας. Τα δεδομένα, οι πίνακες, και άλλα αντικείμενα μπορεί να φαίνονται σαν λογικές οντότητες, ένα βήμα πίσω από την φυσική τους υλοποίηση.

Η διαφάνεια κατανομής εξετάζεται αναλυτικότερα στην ενότητα1.4.

(16)

1.3.5 Ανεξαρτησία κατάτμησης

Η έννοια της ανεξαρτησίας κατάτμησης πηγαίνει την ανεξαρτησία δεδομένων ένα βήμα παρακάτω. Ενώ η διαφάνεια κατανομής αναφέρεται στην ικανότητα διαφανούς τοποθέτησης ολόκληρων πινάκων και όψεων, η ανεξαρτησία κατάτμησης είναι η δυνατότητα κατάτμησης των δεδομένων μέσα σε πίνακα(ή, πιο σωστά, μέσα σε μία σχέση) διαφανώς. Αυτή η υποδιαίρεση των δεδομένων είναι επίσης γνωστή και ως κατακερματισμός δεδομένων (data partitioning). Για παράδειγμα, ένας οργανισμός μπορεί να διατηρεί τις επεκτάσεις των τηλεφωνικών αριθμών σε έναν πίνακα στην βάση δεδομένων εταιρικών επικοινωνιών και τους κωδικούς τμημάτων σε άλλον πίνακα στη βάση δεδομένων HR. Όμως ένας χρήστης (ή μία εφαρμογή) μπορεί να συνδέσει αυτά τα δεδομένα μεταξύ τους και να τα προβάλλει σαν να ανήκουν στον ίδιο πίνακα, όπως παρουσιάζεται και στην εικόνα 1.1.

Εικόνα 1.1 Κάθετος Κατακερματισμός

Επίσης τα δεδομένα μπορούν να κατατμηθούν οριζόντια. Για παράδειγμα, η κάθε φίρμα (franchises) μίας αλυσίδας καταστημάτων ποδηλάτων εντοπίζει τις διευθύνσεις των πελατών της και τις αγορές τους, αλλά οι αναλυτές της κύριας τοποθεσίας είναι σε θέση να δουν όλες τις καταγεγραμμένες πωλήσεις μέσω των εγγραφών μόνο ενός πίνακα, όπως παρουσιάζεται στην εικόνα 1.2.

Οι ίδιοι περιορισμοί εφαρμόζονται και στις ενημερώσιμες όψεις ενώσεων (updateable join views) και στην ανεξαρτησία κατάτμησης. Το γεγονός ότι η ανεξαρτησία κατάτμησης είναι σχετικά απλή διαδικασία στις τεχνολογίες σχεσιακών βάσεων δεδομένων είναι ένας από τους λόγους που οι κατανεμημένες βάσης είναι σταθερά σχεσιακές βάσεις δεδομένων.

Περισσότερες πληροφορίες για τον οριζόντιο και τον κάθετο κατακερματισμό περιέχονται στην ενότητα 1.4.2.

(17)

Εικόνα 1.2 Οριζόντιος Κατακερματισμός

1.3.6 Ανεξαρτησία αντιγραφής

Για την επίτευξη του στόχου της ανεξαρτησίας αντιγραφής, το κατανεμημένο σύστημα πρέπει να διαθέτει μηχανισμούς διατήρησης αντιγράφων των ίδιων δεδομένων και αντικειμένων (π.χ. πινάκων) σε πολλαπλές τοποθεσίες. Ένας από τους λόγους της αντιγραφής είναι η βελτίωση της απόδοσης και η ικανότητα ανάκαμψης (failover) του συστήματος. Ένα ακόμη κρίσιμο τμήμα της ανεξαρτησίας αντιγραφής είναι αυτό της ενημέρωσης δεδομένων. Η ενημέρωση πρέπει να επιτυγχάνεται όσο το δυνατόν γρηγορότερα. Οι χρήστες και οι εφαρμογές δεν πρέπει να ενδιαφέρονται για το πώς και το πότε μεταδίδονται οι αλλαγές σε αντιγραμμένους πίνακες ή για το πότε ενημερώνονται οι δικοί τους. Τεχνικά, η ανεξαρτησία αντιγραφής απαιτεί οι αλλαγές να μεταδίδονται σε όλες τις συμμετέχουσες τοποθεσίες και να δεσμεύονται ως μία δοσοληψία χρησιμοποιώντας το πρωτόκολλο δέσμευσης δύο φάσεων (two- phase commit protocol). Ωστόσο, η επιβολή αυτής της συνθήκης μπορεί να ακυρώσει τον σκοπό της αντιγραφής της πρώτης τοποθεσίας διότι η επιπλέον απαιτούμενη επικοινωνία επηρεάζει την απόδοση και οι διεργασίες σταματούν εάν έστω και μία τοποθεσία δεν είναι διαθέσιμη.

1.3.7 Διαδικασίες κατανεμημένων ερωτημάτων

Η απόδοση ενός ερωτήματος δεν πρέπει να εξαρτάται από το πού ανήκουν τα δεδομένα. Η βελτιστοποίηση ενός κατανεμημένου ερωτήματος είναι ζωτικής σημασίας λόγω του ότι ένα ανεπαρκές σχέδιο εκτέλεσης ερωτημάτων μπορεί να χρειαστεί πολύ περισσότερο χρόνο εκτέλεσης καθώς και την επεξεργασία μεγαλύτερου όγκου πληροφοριών από ότι ένα “σωστά” σχεδιασμένο. Για παράδειγμα, εάν ένα ερώτημα περιλαμβάνει ένα μεγάλο ενδιάμεσο σύνολο αποτελεσμάτων, τότε τα δεδομένα πιθανότατα, να μην πρέπει να φορτωθούν από το

(18)

δίκτυο προς τη βάση που διαθέτει έναν μικρό πίνακα, ο οποίος συνδέεται με το σύνολο αποτελέσματος.

1.3.8 Διαχείριση κατανεμημένων δοσοληψιών

Ένα κατανεμημένο σύστημα θα πρέπει να εξασφαλίζει τον ταυτοχρονισμό των κατανεμημένων δοσοληψιών. Με άλλα λόγια, εάν μία δοσοληψία ενημερώνει πίνακες σε δύο διαφορετικές τοποθεσίες, τότε η δοσοληψία θα πρέπει να εκτελεστεί επιτυχώς, ή να αποτύχει και στις δύο τοποθεσίες. Αυτό, φυσικά, πραγματοποιείται μέσω του πρωτοκόλλου αποθήκευσης δύο φάσεων (two-phase commit).

1.3.9 Ανεξαρτησία υλικού

Οι διάφοροι συμμετέχοντες σε ένα κατανεμημένο σύστημα θα πρέπει να είναι σε θέση να εκτελούνται σε οποιαδήποτε πλατφόρμα υλικού επιθυμούν. Πρακτικά, αυτό σημαίνει ότι το σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων πρέπει να εκτελείται σε όλες τις πλατφόρμες και να παρέχει την ίδια λειτουργικότητα σε καθεμία από αυτές.

1.3.10 Ανεξαρτησία λειτουργικών συστημάτων

Το RDBMS θα πρέπει να είναι σε θέση να εκτελείται υπό τον έλεγχο οποιουδήποτε λειτουργικού συστήματος ή τουλάχιστον υπό τον έλεγχο των πιο δημοφιλών λειτουργικών συστημάτων. Δεν πρέπει η επιλογή του RDBMS να δεσμεύει την χρήση κάποιου συγκεκριμένου λειτουργικού συστήματος.

1.3.11 Ανεξαρτησία δικτύου

Όπως είναι επιθυμητό το RDBMS να λειτουργεί σε οποιοδήποτε υλικό και λειτουργικό σύστημα, είναι επίσης επιθυμητό να μπορεί να επικοινωνεί με τους πελάτες (clients) και άλλες βάσεις δεδομένων αδιαφορώντας για τα πρωτόκολλα και την αρχιτεκτονική του δικτύου.

1.3.12 Ανεξαρτησία RDBMS

Σε ιδανικές καταστάσεις, θα πρέπει να είναι δυνατή η δημιουργία ετερογενών κατανεμημένων συστημάτων (heterogeneous distributed systems). Για παράδειγμα, θα πρέπει να είναι δυνατή η αντιγραφή των δεδομένων μεταξύ βάσεων δεδομένων της Oracle και της Sybase. Στην πράξη όμως, μπορεί να είναι δύσκολη ακόμη και η κατανομή των δεδομένων μεταξύ διαφορετικών εκδόσεων του ίδιου RDBMS.

(19)

1.4 Διαφάνεια στην κατανομή

Στις εφαρμογές βάσεων δεδομένων, ένας γενικός στόχος είναι η ανεξαρτησία των εφαρμογών από την τοποθεσία των δεδομένων. Στην περίπτωση των κατανεμημένων βάσεων δεδομένων, εκτός από την κλασική προσέγγιση στο πρόβλημα αυτό, υπάρχει και ένας επιπλέον παράγοντας δυσκολίας που πρέπει να ληφθεί υπόψη: η κατανομή των δεδομένων σε περισσότερες από μια τοποθεσίες.

Στη συνέχεια αυτής της ενότητας παρουσιάζεται μια αφαιρετική αρχιτεκτονική για ένα σύστημα κατανεμημένων βάσεων δεδομένων, καθώς και οι τρόποι κατάτμησης.

1.4.1 Αφαιρετική κατανομή των κατανεμημένων βάσεων δεδομένων

Στο Σχήμα 1.3 φαίνεται μια αφαιρετική αρχιτεκτονική μιας κατανεμημένης βάσης δεδομένων. Στη συνέχεια αναλύονται ένα προς ένα τα διάφορα στοιχεία της.

Σχήμα 1.3 Μία αφαιρετική αρχιτεκτονική κατανεμημένης βάσης δεδομένων

Στο υψηλότερο επίπεδο βρίσκεται το καθολικό σχήμα (global schema). Το καθολικό σχήμα ορίζει όλα τα δεδομένα που βρίσκονται στην κατανεμημένη βάση δεδομένων, σε μια μορφή όπου η κατανομή είναι μη ορατή. Έτσι, το σχήμα είναι το

(20)

(στην περίπτωση του σχεσιακού μοντέλου) αποτελείται από καθολικές σχέσεις (global relations).

Κάθε καθολική σχέση μπορεί να διαχωριστεί σε διάφορα, μη επικαλυπτόμενα κομμάτια, τα οποία ονομάζονται τμήματα (fragments). Η αντιστοίχιση των διαφόρων τμημάτων με τις καθολικές σχέσεις, ονομάζεται σχήμα κατάτμησης (fragmentation schema). Στη συνέχεια, τα διάφορα τμήματα συμβολίζονται με το όνομα της καθολικής σχέσης στην οποία ανήκουν, έχοντας σαν δείκτη το όνομά τους. Έτσι, για παράδειγμα, με Ri ονομάζεται το τμήμα i της καθολικής σχέσης R.

Τα τμήματα είναι οντότητες που ανήκουν στο λογικό μοντέλο της βάσης. Κάθε ένα από αυτά, κατά συνέπεια, έχει ένα ή περισσότερα αντίστοιχα τμήματα στο φυσικό μοντέλο. Έτσι, τα τμήματα μπορούν να είναι τοποθετημένα σε μία ή περισσότερες τοποθεσίες του δικτύου. Η αντιστοίχιση αυτή καθορίζεται από το σχήμα τοποθέτησης (allocation schema). Είναι σαφές ότι στην περίπτωση που ένα τμήμα απεικονίζεται σε περισσότερες της μίας τοποθεσίες, έχουμε πλεονάζουσα πληροφορία - πράγμα που δεν είναι πάντα ανεπιθύμητο. Όλα τα τμήματα που αντιστοιχούν στην ίδια καθολική σχέση R και βρίσκονται στην ίδια τοποθεσία j αποτελούν τη φυσική εικόνα (physical image) της σχέσης R στην τοποθεσία j, η οποία συμβολίζεται με Rj. Το αντίγραφο ενός τμήματος (copy of a fragment) Ri στην τοποθεσία j συμβολίζεται με Ri j.

Τέλος, η απεικόνιση των φυσικών εικόνων στις διάφορες τοποθεσίες στα συγκεκριμένα ΣΔΒΔ που εξυπηρετούν τις τοποθεσίες αυτές, γίνεται μέσα από ένα τοπικό σχήμα απεικόνισης (location mapping schema) που είναι διαφορετικό για κάθε ΣΔΒΔ και εξαρτάται από αυτό.

Η γενική αυτή αρχιτεκτονική προέκυψε σαν μια αφαίρεση από τις αρχιτεκτονικές των υπαρχόντων συστημάτων. Τα συστήματα κατανεμημένων βάσεων δεδομένων μέσα στα πλαίσια αυτής της αρχιτεκτονικής προσπαθούν να επιτύχουν τους εξής σκοπούς:

• Να διαχωρίσει τη διαδικασία κατάτμησης από τη διαδικασία τοποθέτησης των δεδομένων. Υπάρχουν δύο επίπεδα διαφάνειας στην κατανομή: η διαφάνεια στην κατάτμηση (fragmentation transparency) και η διαφάνεια στην τοποθεσία (location transparency). Η διαφάνεια στην κατάτμηση προσφέρει τη δυνατότητα στις εφαρμογές να μπορούν να γραφτούν γνωρίζοντας μόνο τις καθολικές σχέσεις, ενώ η διαφάνεια στην τοποθεσία επιτρέπει στις εφαρμογές να μπορούν να γραφτούν με γνώση μόνο των διαφορετικών τμημάτων. Στην ενότητα "Σχεδίαση Κατανεμημένων Βάσεων Δεδομένων" οι έννοιες αυτές θα αναδειχτούν περαιτέρω.

• Ανεξαρτησία από το χρησιμοποιούμενο ΣΔΒΔ. Το συγκεκριμένο ΣΔΒΔ που χρησιμοποιείται σε κάθε τοποθεσία, λαμβάνεται υπόψη μόνο στο επίπεδο του τοπικού σχήματος απεικόνισης. Η ιδιότητα αυτή ονομάζεται διαφάνεια τοπικής απεικόνισης (location mapping transparency) και ουσιαστικά διευκολύνει σημαντικά τη διαδικασία σχεδίασης της κατανεμημένης βάσης δεδομένων.

(21)

• Διαχείριση της πλεονάζουσας πληροφορίας. Η πλεονάζουσα πληροφορία είναι ιδιαίτερα χρήσιμη στις εφαρμογές των κατανεμημένων βάσεων δεδομένων, κυρίως για λόγους απόδοσης. Ο σαφής ορισμός του πλεονασμού της πληροφορίας βοηθά στη σωστή σχεδίαση, αλλά και συντήρηση ενός τέτοιου συστήματος. Ιδιαίτερα στην περίπτωση, που ο προγραμματιστής μπορεί να κατασκευάσει εφαρμογές χωρίς να χρειάζεται να λαμβάνει υπόψη του την τοποθεσία των αντιγράφων, τότε επιτυγχάνεται η περίπτωση της διαφάνειας αντιγραφής (replication transparency).

Παρακάτω παρουσιάζονται οι τρόποι με τους οποίους μπορεί να κατατμηθεί μια κατανεμημένη βάση δεδομένων.

1.4.2 Είδη κατάτμησης

Υπάρχουν δύο βασικοί τρόποι διαμερισμού μιας σχέσης, η οριζόντια κατάτμηση (horizontal fragmentation) και η κάθετη κατάτμηση (vertical fragmentation).

Βέβαια, μπορεί να χρησιμοποιηθεί και ο συνδυασμός τους, όταν αυτό είναι απαραίτητο. Οι τρεις βασικές προϋποθέσεις που πρέπει να πληροί ένα σχήμα κατάτμησης είναι:

1. Συνθήκη πληρότητας (completeness). Όλα τα δεδομένα μιας καθολικής σχέσης πρέπει να απεικονιστούν σε τμήματα, με άλλα λόγια δεν πρέπει να υπάρχουν δεδομένα που να ανήκουν στην καθολική σχέση, αλλά όχι σε κάποιο τμήμα.

2. Συνθήκη ανασύνθεσης (reconstruction). Πρέπει να είναι πάντα δυνατή η ανασύνθεση μιας καθολικής σχέσης από τα διάφορα τμήματά της. Η συνθήκη αυτή είναι απαραίτητη καθώς η καθολική σχέση είναι, εν γένει, ιδεατή και πρέπει να είναι δυνατή η ανασύνθεση από τα διάφορα τμήματά της, που είναι οι οντότητες που αποθηκεύονται στην πράξη.

3. Συνθήκη διαχωρισιμότητας (disjointness). Έχει αποδειχτεί στην πράξη, ότι είναι χρήσιμο τα τμήματα να είναι διαφορετικά μεταξύ τους (να μην έχουν, δηλαδή, επικαλύψεις). Η διαχείριση των αντιγράφων είναι βολικό να γίνεται στο επίπεδο του σχήματος τοποθέτησης.

1.4.3 Οριζόντια κατάτμηση

Η οριζόντια κατάτμηση συνίσταται στο διαχωρισμό των πλειάδων (tuples) μιας καθολικής σχέσης σε υποσύνολα (για παράδειγμα, σε μια γεωγραφικά κατανεμημένη βάση, να κρατούνται σε κάθε τοποθεσία μόνο τα τοπικά δεδομένα). Αυτό μπορεί να επιτευχθεί με μια συνθήκη επιλογής (selection) στην καθολική σχέση. Έστω για παράδειγμα η καθολική σχέση:

(22)

PROJECT (PNUM, NAME, BUDGET, CITY) Και μια πιθανή κατάτμηση:

PROJECTi = σ^= Ά Τ Η ' PROJECT PROJECT2 = σ ^ = '8ΑΕ PROJECT

Η παραπάνω κατάτμηση πληρο ί τις συνθήκες πο υ έχουν ήδη προαναφερθεί, καθώς:

- Η συνθήκη πληρότητας καλύπτεται εάν υποτεθεί ότι δεν υπάρχουν άλλες τιμές στο πεδίο CITY στην καθολική σχέση PROJECT.

- Η συνθήκη ανασύνθεσης πληρείται γιατί μπορεί πάντα να εφαρμοστεί η πράξη της ένωσης, PROJECT = PROJECTI U PR0JECT2.

- Και η συνθήκη διαχωρισιμότητας πληρείται εμφανώς.

Γενικεύοντας τα παραπάνω, παρατηρείται ότι η συνθήκη πληρότητας ικανοποιείται αν όλες οι πιθανές τιμές καλύπτονται από τις συνθήκες των διαφόρων τμημάτων. Η συνθήκη ανασύνθεσης ικανοποιείται πάντα από την πράξη ένωσης, ενώ η συνθήκη διαχωρισιμότητας απαιτεί τον αμοιβαίο αποκλεισμό (XOR) των συνθηκών.

Είναι ενδιαφέρον ότι η οριζόντια κατάτμηση μιας σχέσης μπορεί να γίνει, όχι με βάση τα πεδία της ίδιας της σχέσης, αλλά με βάση τις τιμές των πεδίων μιας άλλης σχέσης. Έστω, για παράδειγμα, η σχέση

DEPT_TASK (EMPNUM, PNUM, ROLE)

όπου EMPNUM είναι ο κωδικός κάποιου υπαλλήλου που εργάζεται στο PROJECT με κωδικό PNUM. Μπορεί να έχει νόημα να κατακερματιστεί η σχέση DEPT_TASK με βάση τις πόλεις στις οποίες διεξάγεται το έργο στο οποίο εργάζεται ο κάθε υπάλληλος. Αυτό μπορεί να γίνει εφικτό, ακόμα και αν το πεδίο CITY δεν ανήκει στη σχέση DEPT_TASK. Δηλαδή:

DEPT_TASKi = DEPT_TASK ix pnum= pnumPROJECTi DEPT_TASK2 = DEPT_TASK ix pnum= pnumPROJECT2

Το semi-join1 εγγυάται ότι αφενός το DEPT_TASK1 θα έχει το ίδιο σχήμα με το DEPT_TASK αλλά και τις σωστές πλειάδες. Η κατάτμηση αυτού του είδους ονομάζεται παραγόμενη κατάτμηση (derived fragmentation). Στη γενική περίπτωση

1 Ο τελεστής semi-join συμβολίζεται με x και ορίζεται ως: R x A = B S = π < attributes (R )> (R x A = B S)

(23)

οι συνθήκες που πρέπει να πληρούνται για μια σωστή παραγόμενη κατάτμηση είναι οι εξής:

- Η πληρότητα απαιτεί να μην υπάρχει έργο στη σχέση DEPT_TASK που δεν βρίσκεται και στη σχέση PROJECT (συνθήκη που μπορεί να υλοποιηθεί άνετα με ένα περιορισμό ξένου κλειδιού).

- Η ανασύνθεση γίνεται πάλι με την πράξη της ένωσης.

- Η διαχωρισιμότητα ικανοποιείται όταν μια πλειάδα της σχέσης DEPT_TASK δεν αντιστοιχεί σε δύο πλειάδες της σχέσης PROJECT που ανήκουν σε διαφορετικά τμήματα. Στην περίπτωση που ο διαχωρισμός γίνεται με βάση ένα πρωτεύον κλειδί, αυτό μπορεί να επιβεβαιωθεί εύκολα - διαφορετικά είναι δύσκολο να αποδειχτεί η συνθήκη διαχωρισιμότητας.

1.4.4 Κάθετη κατάτμηση

Η κάθετη κατάτμηση αποτελεί το διαχωρισμό της καθολικής σχέσης με βάση την προβολή της σχέσης σε ομάδες πεδίων. Η κάθετη κατάτμηση είναι ορθή αν για κάθε πεδίο της καθολικής σχέσης υπάρχει τουλάχιστον ένα πεδίο σε κάποιο τμήμα και η καθολική σχέση μπορεί να ανασυντεθεί συνδέοντας τα διάφορα τμήματα. Για παράδειγμα, έστω η καθολική σχέση:

EMP (EMPNUM, NAME, SALARY, TAX, MGRNUM, DEPTNUM) Μια κάθετη κατάτμηση αυτής της σχέσης μπορεί να είναι

EMPi = Π EMPNUM, NAME, MGRNUM, DEPTNUM EMP EMP2 = Π EMPNUM, SAL, TAX EMP

Η ανασύνθεση της καθολικής σχέσης μπορεί να γίνει ως εξής:

EMP = EMPi Μ EMPNUM = EMPNUM EMP2

Η λύση αυτή είναι εφικτή γιατί το EMPNUM είναι κλειδί στο EMP. Η συμμετοχή του πρωτεύοντος κλειδιού σε κάθε τμήμα είναι ο πιο σίγουρος τρόπος για την εξασφάλιση ότι η ανασύνθεση είναι εφικτή με μια πράξη σύνδεσης. Εναλλακτικά, θα μπορούσαν να παραχθούν τεχνητά κλειδιά στα τμήματα, τα οποία αφενός να μην είναι πολύ μεγάλα σε μέγεθος και αφετέρου να μην ανανεώνονται από τους χρήστες.

Να σημειωθεί επίσης, ότι η παραπάνω φόρμουλα παράγει στη ανασυνθεμένη σχέση δύο πεδία EMPNUM, πράγμα που μπορεί να εξουδετερωθεί με μια απλή προβολή.

Τέλος, σε ότι αφορά στη διαχωρισιμότητα των τμημάτων, παρατηρείται ότι δεν είναι και τόσο σημαντική όσο στην οριζόντια κατάτμηση. Ήδη, στο παράδειγμα που

Referências

Documentos relacionados

Μεταξύ των κύριων δραστηριοτήτων που σχετίζονται με τον κύκλο ζωής μιας εφαρμογής βάσης δεδομένων, είναι ο σχεδιασμός της βάσης δεδομένων, που δεν είναι τίποτε άλλο, από το να