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



Σχετικά έγγραφα
ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγή στην πληροφορική

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Διαχείρισης Βάσεων Δεδομένων

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Αρχιτεκτονική Λογισμικού

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

ΑΚΑΔΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Βάσεις Δεδομένων. Ενότητα 3: Σχεδιασμός και Διαχείριση Βάσεων Δεδομένων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Συστήματα Πληροφοριών Διοίκησης

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Λειτουργικά Συστήματα Η/Υ

Βάσεις Δεδομένων Εισαγωγή

Κεφάλαιο 4: Λογισμικό Συστήματος

Δεδομένα και Πληροφορίες

Εισαγωγή στην Πληροφορική

Επισκόπηση Μαθήµατος

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: Στόχος Σκοπός μαθήματος

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Σχεδιασµός. Κατανεµηµένες Βάσεις εδοµένων Από πάνω προς τα κάτω Κυρίως στο σχεδιασµό συστηµάτων από την αρχή Κυρίως σε οµογενή συστήµατα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Εαρινό Εξάμηνο

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)


Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

SGA Διαχείριση Πρωτόκολλου

Πληροφορική 2. Τεχνολογία Λογισμικού

Information Technology for Business

Σχεδίαση Σχεσιακών ΒΔ

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρομεσαίες Επιχειρήσεις»

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Περίληψη Λαμπρόπουλος

Λάμπρος Καφίδας Εργασία Σχεδιασμός & Διοίκηση Έργου Ιανουάριος 2005 ΚΕΦΑΛΑΙΟ 1

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων

Θεωρία Κανονικοποίησης

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Σχεδίαση Βάσεων Δεδομένων

Εξαγωγή Μετασχηματισμός Εισαγωγή Δεδομένων στην Αποθήκη Πληροφοριών (ETL) ETL) Αριστομένης Μακρής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επιβλέπων: ΠΟΤΗΡΑΚΗΣ ΑΝΤΩΝΙΟΣ

Μοντελοποίηση Πεδίου

Αρχιτεκτονικές Συστημάτων

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής

Βάσεις Δεδομένων Ι. 5 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

Διαχείριση Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Εισαγωγή στα Συστήματα Βάσεων Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Προγράμματα Η /Υ / Εφαρμογές σε συστ ήματα Π ό οι τητας Αριστομένης Μακρής

Κεφάλαιο 2 ο. Συστήματα Πληροφοριών στην επιχείρηση

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΤΥΧΙΑΚΩΝ ΕΡΓΑΣΙΩΝ

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι:

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Transcript:

Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΏΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πληροφοριακού συστήματος αλυσίδας Video Club με χρήση κατανεμημένων βάσεων δεδομένων Εκπόνηση [ 1 " " Τ ΎΊ Επίβλεψη'Χ Αλεβίζος Θεόδωρος Καβάλα 2008

Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Πληροφοριακό Σύστημα Αλυσίδας Video Club με Κατανεμημένη Βάση Δεδομένων Εκπόνηση Α.Ε.Μ586 ' Επίβλεψη Αλεβίζος Θεόδωρος Καβάλα 2008

ΠΕΡΙΛΗΨΗ Η παρούσα πτυχιακή εργασία αποτελεί επέκταση της πτυχιακής εργασίας με τίτλο Λογισμικό για τη Λειτουργία Δικτύου Video Club, που εκπόνησε η Φρύνη-Μαρία Κολλιοπούλου. Το παρόν σύγγραμμα ωστόσο, περιέχει όλες τις απαραίτητες πληροφορίες που το καθιστούν αυτόνομο. Το θέμα και των δύο εργασιών αφορά την κατασκευή ενός συστήματος για την υποστήριξη μίας αλυσίδας καταστημάτων ενοικίασης ταινιών, η οποία αποτελείται από πολλά υποκαταστήματα σε όλη τη χώρα και σε αρκετές περιπτώσεις η ανταλλαγή πληροφοριών των υποκαταστημάτων μέσω του συστήματος κρίνεται απαραίτητη. Ένας κοινός σκοπός των εργασιών είναι η ενσωμάτωση των θεμάτων που πραγματεύονται, στο μάθημα Βάσεις Δεδομένων 2, που διδάσκεται από τον Κ. Θεόδωρο Αλεβίζο. Κατά την υλοποίηση της προηγούμενης πτυχιακής, πραγματοποιήθηκε η φυσική και λογική σχεδίαση της σχεσιακής βάσης δεδομένων, για την υποστήριξη του δικτύου ενοικίασης ταινιών μέσω της συγκεντρωτικής προσέγγισης(centralized approach). Όπως επίσης και η σχεδίαση της διεπαφής χρήστη (user interface), σε περιβάλλον DOS, όπου η εκτέλεση των εργασιών πραγματοποιείται μέσω καταλόγων οδήγησης (Menu Driven) του χρήστη. Στην παρούσα εργασία, για την σχεδίαση και κατασκευή της βάσης δεδομένων, ακολουθείται η αποκεντρωτική προσέγγιση (decentralized approach) μέσω των κατανεμημένων βάσεων δεδομένων. Αρχικά πραγματοποιήθηκε επέκταση του μοντέλου οντοτήτων συσχετίσεων, που είχε κατασκευαστεί κατά τη λογική σχεδίαση, για την υποστήριξη των απαιτήσεων του αγοραστή ταινιών και του διευθυντή της εταιρείας. Επίσης κατά τη φυσική σχεδίαση πραγματοποιήθηκε ανάλυση και διόρθωση των τύπων των πεδίων και των κύριων κλειδιών, όπου κρίθηκε απαραίτητο, ώστε η βάση να υποστηρίζει τις λειτουργίες της εταιρείας σε βάθος χρόνου, σύμφωνα με τους ρυθμούς ανάπτυξης, όπως αυτοί περιγράφονται από τον διευθυντή και τους υπεύθυνους υποκαταστημάτων της εταιρείας. Με την ολοκλήρωση των παραπάνω ενεργειών προέκυψε το καθολικό σχήμα της βάσης δεδομένων (Global Database Schema). Έπειτα πραγματοποιήθηκε ανάλυση του σχήματος της βάσης δεδομένων και των λειτουργιών της εταιρείας ώστε να πραγματοποιηθεί η κατανομή του και να καθοριστεί το ποιες πληροφορίες θα διατηρούνται σε ποια βάση δεδομένων. Τέλος, κατασκευάστηκε η διεπαφή χρήστη (User Interface) σε παραθυρικό περιβάλλον Windows, για την υποστήριξη των εργασιών από τα μέλη της εταιρείας. Τμήμα Βιομηχανικής Πληροφορικής I

ΠΡΟΛΟΓΟΣ Πέρα από την παρουσίαση του πρακτικού μέρος, στην παρούσα πτυχιακή εργασία, παρατίθεται συνοπτικά και το θεωρητικό υπόβαθρο, τόσο της κατασκευής κατανεμημένων βάσεων δεδομένων, όσο και των βασικών αρχών σχεδίασης της διεπαφής χρήστη. Αναλυτικότερα: Στο κεφάλαιο 1 πραγματοποιείται μία εισαγωγή στις κατανεμημένες βάσεις δεδομένων. Περιγράφονται οι κατηγορίες των κατανεμημένων συστημάτων, τα πλεονεκτήματα και τα μειονεκτήματα τους. Ακόμη, αναπτύσσονται οι στόχοι ενός κατανεμημένου συστήματος, όπως ορίστηκαν από τον Chris Date. Και τέλος περιγράφονται τα είδη κατάτμησης και η μεθοδολογία σχεδίασης ενός κατανεμημένου συστήματος. Στο κεφάλαιο 2 παρατίθεται η περιγραφή του προβλήματος του πληροφοριακού συστήματος της αλυσίδας Video Club. Ακόμη, παρουσιάζεται ο τρόπος επέκτασης του μοντέλου της υπάρχουσα βάσης δεομένων και η φυσική σχεδίαση της κατανεμημένης βάσης. Στο Κεφάλαιο 3, εξετάζεται η φυσική σχεδίαση του κατανεμημένου συστήματος μέσα σε ένα ομογενές περιβάλλον της Oracle. Οι διαθέσιμες επιλογές που παρέχει το προϊόν, όπως επίσης και η λύση που επιλέχθηκε. Το Κεφάλαιο 4, παρουσιάζει τις εννιά βασικές αρχές σχεδίασης της διεπαφής χρήστη (user interface) που πρέπει να λαμβάνονται υπόψη κατά τη σχεδίαση μίας εφαρμογής. Στο παράτημα Α, περιέχεται το εγχειρίδιο χρήστη, στο οποίο περιγράφεται η διαδικασία παραμετροποίησης των βάσεων δεδομένων του συστήματος. Στο παράρτημα Β, περιέχεται το λεξικό δεδομένων του συστήματος. Στο παράρτημα Γ, παρατίθενται οι απαιτήσεις για τους προγραμματιστές. Το παράρτημα Δ, περιέχει τις προδιαγραφές του συστήματος και τέλος, Στο παράρτημα Ε, περιέχονται τα έγγραφα τεκμηρίωσης της βάσης δεδομένων. Τμήμα Βιομηχανικής Πληροφορικής II

Περιεχόμενα Περίληψη... 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 1.4.4 Κάθετη κατάτμηση... 14 Τμήμα Βιομηχανικής Πληροφορικής III

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 Club...37 3.3 Κατασκευή του περιβάλλοντος αντιγραφής...38 Τμήμα Βιομηχανικής Πληροφορικής IV

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 Τμήμα Βιομηχανικής Πληροφορικής V

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 Τμήμα Βιομηχανικής Πληροφορικής V I

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 Τμήμα Βιομηχανικής Πληροφορικής V II

Κεφάλαιο 1 Θεωρία Κατανεμημένων Βάσεων Δεδομένων Κατά την μελέτη των βάσεων δεδομένων συνήθως δίνεται ιδιαίτερη έμφαση στο συγκεντρωτικό μοντέλο (centralized model), όπου όλα τα δεδομένα διατηρούνται σε μία και μοναδική τοποθεσία και, υποτίθεται ότι η επεξεργασία των συναλλαγών είναι στην ουσία σειριακής μορφής. Μία από τις πιο σημαντικές τάσεις στις βάσεις δεδομένων, είναι η όλο αυξανόμενη χρήση του αποκεντρωτικού μοντέλου (decentralized model), όπου τα δεδομένα διατηρούνται σε περισσότερες από μία τοποθεσίες και οι συναλλαγές πραγματοποιούνται είτε παράλληλα, είτε κατανεμημένα. Σε αυτό το κεφάλαιο γίνεται μία προσπάθεια εισαγωγής στο θεωρητικό επίπεδο του αποκεντρωτικού μοντέλου των σχεσιακών κατανεμημένων βάσεων δεδομένων. 1.1 Εισαγωγή στις κατανεμημένες βάσεις δεδομένων Μία Κατανεμημένη Βάση Δεδομένων (Distributed Database - DDB) μπορεί να οριστεί σαν μία ομάδα από λογικά συνδεδεμένες βάσεις δεδομένων που είναι διεσπαρμένες σε ένα δίκτυο υπολογιστών. Μέσα στην κατανεμημένη βάση, τα δεδομένα αποθηκεύονται σε διαφορετικές τοποθεσίες, όπου τυπικά, την κάθε τοποθεσία διαχειρίζεται ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (Database Management System - DBMS), το οποίο λειτουργεί ανεξάρτητα από εκείνα των υπόλοιπων τοποθεσιών. Ένα Κατανεμημένο Σύστημα Διαχείρισης Βάσεων Δεδομένων (Distributed Database Management System - DDBMS) μπορεί να οριστεί σαν ένα πρόγραμμα που επιτρέπει τη διαχείριση μίας κατανεμημένης βάσης δεδομένων με τρόπο που κάνει την κατανομή της διαφανή προς τους χρήστες, δηλαδή οι χρήστες/προγραμματιστές δεν χρειάζεται να γνωρίζουν την εσωτερική δομή της κατανομής. 1.1.1 Κατηγορίες κατανεμημένων συστημάτων Τα κατανεμημένα συστήματα που βρίσκουν εφαρμογή κατά κύριο λόγο στις μέρες μας, μπορούν να ενταχθούν σε μία από τις τέσσερις παρακάτω κατηγορίες: Τμήμα Βιομηχανικής Πληροφορικής 1

Ομογενή κατανεμημένα συστήματα Εάν όλοι οι διακομιστές τρέχουν το ίδιο σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (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), και τα κοινόχρηστα δεδομένα που προσπελαύνει μία τοποθεσία από μία άλλη ονομάζονται εισερχόμενο σχήμα (imported schema). Οι συμμετέχοντες σε ένα ομοσπονδιακό σύστημα βάσεων Τμήμα Βιομηχανικής Πληροφορικής 2

δεδομένων είναι πλήρως ανεξάρτητοι μεταξύ τους και είναι πιθανό να χρησιμοποιούν το ίδιο RDBMS. Αυτή η ανεξαρτησία δεν οφείλεται στον σχεδιασμό του ομοσπονδιακού συστήματος. Οι οργανισμοί συνήθως δημιουργούν συστήματα ομοσπονδιών βάσεων δεδομένων ώστε να ανταποκρίνονται στις ανάγκες που εμφανίζονται μετά την εφαρμογή του πρωτότυπου συστήματος. Αυτό το μοντέλο αποτελεί τον συνηθέστερο τύπο κατανεμημένων συστημάτων βάσεων δεδομένων - ίσως λόγω του ότι οι ομοσπονδίες βάσεων δεδομένων είναι ευκολότερο να δημιουργηθούν με την ελάχιστη ποσότητα σχεδίασης. 1.1.1.4 Συστήματα πλεονασμού αντιγράφων ασφαλείας Τα συστήματα πλεονασμού αντιγράφων ασφαλείας (Redundant backup system) είναι μία ειδική περίπτωση των ομογενών συστημάτων και αποτελούν μία δημοφιλή εφαρμογή της τεχνολογίας αντιγραφής (replication). Σε αυτήν την στρατηγική δημιουργούνται ακριβή αντίγραφα της κύριας βάσης δεδομένων, τα οποία μπορεί να βρίσκονται σε διαφορετικές τοποθεσίες. Χρησιμοποιώντας την τεχνολογία αντιγραφής, όλες οι δεσμευμένες (committed) δοσοληψίες της κύριας βάσης δεδομένων εκπέμπονται και προς τα άλλα αντίγραφα. Παρόλα αυτά, σε αντίθεση με τα ομογενή συστήματα, οι τοποθεσίες των αντιγράφων δεν είναι διαθέσιμες στους χρήστες για όσο η κύρια βάση δεδομένων βρίσκεται σε λειτουργία. Εάν η κύρια τοποθεσία τεθεί εκτός λειτουργίας, οι χρήστες και οι εφαρμογές μπορούν να ανακατευθυνθούν στην τοποθεσία του αντιγράφου όπου μπορούν να συνεχίσουν τις εργασίες τους. 1.2 Εφαρμογή, πλεονεκτήματα και μειονεκτήματα κατανεμημένων βάσεων δεδομένων Η ανάγκη του τεμαχισμού μιας βάσης δεδομένων και της κατανομής της γεωγραφικά προέκυψαν από την ανάγκη των μεγάλων οργανισμών να εκμεταλλεύονται το σύνολο των δεδομένων που βρίσκεται αποθηκευμένα σε διάφορα τοπικά μηχανογραφικά συστήματα. Σήμερα λόγω της εξέλιξης της τεχνολογίας των συστημάτων διαχείρισης βάσεων δεδομένων και των δικτύων, οι κατανεμημένες βάσεις δεδομένων χρησιμοποιούνται ευρύτατα, είτε στην πρωταρχική τους μορφή, είτε μέσω τεχνολογιών που βασίστηκαν στις κατανεμημένες βάσεις για την παροχή εξελιγμένων υπηρεσιών που ενσωματώνουν τα πλεονεκτήματα των κατανεμημένων βάσεων δεδομένων (π.χ. κατανεμημένες αποθήκες δεδομένων - Distributed Data Warehouse). Σε γενικές γραμμές, οι λόγοι που καθιέρωσαν τα κατανεμημένα συστήματα σαν μία αποδεκτή και χρησιμοποιούμενη στην πράξη τεχνολογία είναι οι παρακάτω: Τμήμα Βιομηχανικής Πληροφορικής 3

- Εκφράζουν καλύτερα την οργανωτική δομή των εταιρειών, λόγω του ότι τα δεδομένα τεμαχίζονται (fragmented) και τοποθετούνται στα τμήματα που τους αναλογούν. Τα κατανεμημένα συστήματα προκύπτουν σαν μια φυσική λύση σε εταιρείες που αποτελούνται από γεωγραφικά απομακρυσμένα τμήματα. - Παρέχουν τοπική αυτονομία, δηλαδή το κάθε τμήμα μπορεί να διαχειριστεί τα δεδομένα που το αφορούν τοπικά. - Παρέχουν βελτιωμένη διαθεσιμότητα (availability), διότι εάν προκύψει σφάλμα σε κάποια βάση του συστήματος, δεν θα επηρεαστεί ολόκληρο το σύστημα, αλλά μόνο το συγκεκριμένο τμήμα. - Βελτιώνουν την απόδοση. Λόγω του ότι τα δεδομένα τοποθετούνται συνήθως στην κοντινότερη τοποθεσία με τις περισσότερες απαιτήσεις και τα συστήματα βάσεων δεδομένων παραλληλοποιούνται, επιτρέπεται η εξισορρόπηση του φόρτου εργασίας μεταξύ των εξυπηρετητών (servers). Με αυτήν την στρατηγική εξασφαλίζεται και η μείωση του φόρτου δικτύου. - Μείωση του κόστους κατασκευής, δεδομένου ότι κοστίζει λιγότερο η δημιουργία ενός δικτύου οικιακών υπολογιστών με την ίδια ισχύ ενός εξυπηρετητή, από ότι η αγορά ενός εξυπηρετητή βάσεων δεδομένων. Και όπως έχει αποδειχθεί πολλές φορές στην πράξη, η συντήρηση κατανεμημένων συστημάτων μπορεί να είναι πιο αποδοτική και οικονομική από τη συντήρηση ενός συγκεντρωτικού συστήματος. - Παρέχουν ευελιξία στην προσθαφαίρεση υπομονάδων (modularity). Τα συστήματα μπορούν να τροποποιηθούν ευκολότερα, να προστεθούν ή να αφαιρεθούν από την κατανεμημένη βάση χωρίς να επηρεαστούν οι υπόλοιπες μονάδες. Συνεπώς η σταδιακή ανάπτυξη του οργανισμού και η προσαρμογή του συστήματος μπορεί να γίνει πιο εύκολα σε ένα κατανεμημένο, από ότι σε ένα συγκεντρωτικό περιβάλλον. Βέβαια, από την άλλη πλευρά, όπως κάθε τεχνολογία, έτσι και η τεχνολογία των κατανεμημένων βάσεων δεδομένων έχει και αυτή τα μειονεκτήματα της. - Αυξάνει την πολυπλοκότητα του συστήματος και οι διαχειριστές των βάσεων δεδομένων (DBA) αποκτούν περισσότερες εργασίες, ώστε να εξασφαλιστεί ότι η κατανεμημένη φύση του συστήματος είναι διαφανής. - Μπορεί το κόστος του υλικού και της συντήρησης να μειώνεται, όπως αναφέρθηκε παραπάνω, αλλά το κόστος της σχεδίασης ενός κατανεμημένου συστήματος αυξάνεται ανάλογα με την πολυπλοκότητα του. Μία επιπλέον οικονομική επιβάρυνση αποτελεί το κόστος του λογισμικού για κάθε ένα από τα μηχανήματα, αν και με τη χρήση λογισμικού ανοιχτού κώδικα μπορεί να επιτευχθεί η δημιουργία ενός κατανεμημένου συστήματος. - Αυξάνει την πολυπλοκότητα της διαδικασίας διαχείρισης της ασφάλειας. Λόγω της αποκέντρωσης της βάσης, όλα τα τεμάχια των απομακρυσμένων τοποθεσιών και η υποδομή του συστήματος θα πρέπει να είναι ασφαλή (π.χ. Τμήμα Βιομηχανικής Πληροφορικής 4

κρυπτογραφώντας τους συνδέσμους δικτύου μεταξύ των απομακρυσμένων τοποθεσιών). - Αυξάνεται η δυσκολία διατήρησης της ακεραιότητας των δεδομένων. Σε ένα κατανεμημένο σύστημα, η επιβολή της ακεραιότητας στις βάσεις που συμμετέχουν στο κατανεμημένο σύστημα μέσω του δικτύου, μπορεί να δεσμεύσει πολλούς πόρους δικτύου για να επιτευχθεί. 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), και όχι του σχεδιαστή του συστήματος. Τμήμα Βιομηχανικής Πληροφορικής 5

1.3.1 Τοπική αυτονομία Για τη θεωρητική ικανοποίηση αυτού του κανόνα, κάθε βάση δεδομένων που συμμετέχει στο κατανεμημένο σύστημα θα πρέπει να είναι λειτουργικά αδιάφορη στο θέμα της επικοινωνίας με τις υπόλοιπες. Συνεπώς, τα δεδομένα που ανήκουν σε κάθε συμμετέχουσα βάση δεδομένων ανήκουν μόνο σε αυτή, με την έννοια ότι η ακεραιότητα των δεδομένων, η ασφάλεια και η διαχείριση είναι ανεξάρτητες από τις άλλες τοποθεσίες. 1.3.2 Ανεξαρτησία τοποθεσιών Αυτός ο κανόνας είναι συμπληρωματικός του κανόνα της τοπικής αυτονομίας. Εφόσον κάθε τοποθεσία είναι αυτόνομη (self-sufficient) δεν υπάρχει καμία κύρια τοποθεσία, από την οποία εξαρτώνται οι υπόλοιπες μέσα στο ιδεατό κατανεμημένο περιβάλλον. Με άλλα λόγια, η αποτυχία μιας οποιασδήποτε τοποθεσίας δεν επιβαρύνει τις υπόλοιπες και η συνολική απόδοση του συστήματος δεν εξαρτάται από μία τοποθεσία. 1.3.3 Συνεχόμενη λειτουργία Ένας από τους συνηθέστερους λόγους για την ανάπτυξη κατανεμημένων συστημάτων βάσεων δεδομένων είναι η παροχή πλεονασμού πληροφοριών και ανοχής σφαλμάτων. Για τον ίδιο λόγο, ένα κατανεμημένο σύστημα δεν προβλέπει προγραμματισμένες διακοπές (scheduled outages) για λειτουργίες συντήρησης, όπως η προσθήκη και η αφαίρεση τοποθεσιών ή, η αναβάθμιση του λογισμικού. Φυσικά, σε θεωρητικό επίπεδο είναι δυνατό να επιτευχθεί μηδενικός χρόνος διακοπής, προγραμματισμένης ή μη, αλλά ακόμη και ο Chris Date αποδέχτηκε ότι οι απρογραμμάτιστες διακοπές είναι δύσκολο να αποφευχθούν ολοκληρωτικά. 1.3.4 Διαφάνεια τοποθεσιών (κατανομής) Η διαφάνεια κατανομής σημαίνει ότι τα δεδομένα και οι λειτουργίες του συστήματος φαίνονται ίδιες προς τον χρήστη (και τους σχεδιαστές), ανεξάρτητα από το πού βρίσκονται τα δεδομένα. Οι χρήστες δεν πρέπει να λαμβάνουν ειδικά μέτρα για να προσπελάσουν δεδομένα που βρίσκονται σε πολλαπλές τοποθεσίες, και οι σχεδιαστές δεν απαιτείται να γράψουν επιπλέον κώδικα για την εκτέλεση κάποιας κατανεμημένης δοσοληψίας. Τα δεδομένα, οι πίνακες, και άλλα αντικείμενα μπορεί να φαίνονται σαν λογικές οντότητες, ένα βήμα πίσω από την φυσική τους υλοποίηση. Η διαφάνεια κατανομής εξετάζεται αναλυτικότερα στην ενότητα1.4. Τμήμα Βιομηχανικής Πληροφορικής 6

1.3.5 Ανεξαρτησία κατάτμησης Η έννοια της ανεξαρτησίας κατάτμησης πηγαίνει την ανεξαρτησία δεδομένων ένα βήμα παρακάτω. Ενώ η διαφάνεια κατανομής αναφέρεται στην ικανότητα διαφανούς τοποθέτησης ολόκληρων πινάκων και όψεων, η ανεξαρτησία κατάτμησης είναι η δυνατότητα κατάτμησης των δεδομένων μέσα σε πίνακα(ή, πιο σωστά, μέσα σε μία σχέση) διαφανώς. Αυτή η υποδιαίρεση των δεδομένων είναι επίσης γνωστή και ως κατακερματισμός δεδομένων (data partitioning). Για παράδειγμα, ένας οργανισμός μπορεί να διατηρεί τις επεκτάσεις των τηλεφωνικών αριθμών σε έναν πίνακα στην βάση δεδομένων εταιρικών επικοινωνιών και τους κωδικούς τμημάτων σε άλλον πίνακα στη βάση δεδομένων HR. Όμως ένας χρήστης (ή μία εφαρμογή) μπορεί να συνδέσει αυτά τα δεδομένα μεταξύ τους και να τα προβάλλει σαν να ανήκουν στον ίδιο πίνακα, όπως παρουσιάζεται και στην εικόνα 1.1. Εικόνα 1.1 Κάθετος Κατακερματισμός Επίσης τα δεδομένα μπορούν να κατατμηθούν οριζόντια. Για παράδειγμα, η κάθε φίρμα (franchises) μίας αλυσίδας καταστημάτων ποδηλάτων εντοπίζει τις διευθύνσεις των πελατών της και τις αγορές τους, αλλά οι αναλυτές της κύριας τοποθεσίας είναι σε θέση να δουν όλες τις καταγεγραμμένες πωλήσεις μέσω των εγγραφών μόνο ενός πίνακα, όπως παρουσιάζεται στην εικόνα 1.2. Οι ίδιοι περιορισμοί εφαρμόζονται και στις ενημερώσιμες όψεις ενώσεων (updateable join views) και στην ανεξαρτησία κατάτμησης. Το γεγονός ότι η ανεξαρτησία κατάτμησης είναι σχετικά απλή διαδικασία στις τεχνολογίες σχεσιακών βάσεων δεδομένων είναι ένας από τους λόγους που οι κατανεμημένες βάσης είναι σταθερά σχεσιακές βάσεις δεδομένων. Περισσότερες πληροφορίες για τον οριζόντιο και τον κάθετο κατακερματισμό περιέχονται στην ενότητα 1.4.2. Τμήμα Βιομηχανικής Πληροφορικής 7

Εικόνα 1.2 Οριζόντιος Κατακερματισμός 1.3.6 Ανεξαρτησία αντιγραφής Για την επίτευξη του στόχου της ανεξαρτησίας αντιγραφής, το κατανεμημένο σύστημα πρέπει να διαθέτει μηχανισμούς διατήρησης αντιγράφων των ίδιων δεδομένων και αντικειμένων (π.χ. πινάκων) σε πολλαπλές τοποθεσίες. Ένας από τους λόγους της αντιγραφής είναι η βελτίωση της απόδοσης και η ικανότητα ανάκαμψης (failover) του συστήματος. Ένα ακόμη κρίσιμο τμήμα της ανεξαρτησίας αντιγραφής είναι αυτό της ενημέρωσης δεδομένων. Η ενημέρωση πρέπει να επιτυγχάνεται όσο το δυνατόν γρηγορότερα. Οι χρήστες και οι εφαρμογές δεν πρέπει να ενδιαφέρονται για το πώς και το πότε μεταδίδονται οι αλλαγές σε αντιγραμμένους πίνακες ή για το πότε ενημερώνονται οι δικοί τους. Τεχνικά, η ανεξαρτησία αντιγραφής απαιτεί οι αλλαγές να μεταδίδονται σε όλες τις συμμετέχουσες τοποθεσίες και να δεσμεύονται ως μία δοσοληψία χρησιμοποιώντας το πρωτόκολλο δέσμευσης δύο φάσεων (twophase commit protocol). Ωστόσο, η επιβολή αυτής της συνθήκης μπορεί να ακυρώσει τον σκοπό της αντιγραφής της πρώτης τοποθεσίας διότι η επιπλέον απαιτούμενη επικοινωνία επηρεάζει την απόδοση και οι διεργασίες σταματούν εάν έστω και μία τοποθεσία δεν είναι διαθέσιμη. 1.3.7 Διαδικασίες κατανεμημένων ερωτημάτων Η απόδοση ενός ερωτήματος δεν πρέπει να εξαρτάται από το πού ανήκουν τα δεδομένα. Η βελτιστοποίηση ενός κατανεμημένου ερωτήματος είναι ζωτικής σημασίας λόγω του ότι ένα ανεπαρκές σχέδιο εκτέλεσης ερωτημάτων μπορεί να χρειαστεί πολύ περισσότερο χρόνο εκτέλεσης καθώς και την επεξεργασία μεγαλύτερου όγκου πληροφοριών από ότι ένα σωστά σχεδιασμένο. Για παράδειγμα, εάν ένα ερώτημα περιλαμβάνει ένα μεγάλο ενδιάμεσο σύνολο αποτελεσμάτων, τότε τα δεδομένα πιθανότατα, να μην πρέπει να φορτωθούν από το Τμήμα Βιομηχανικής Πληροφορικής 8

δίκτυο προς τη βάση που διαθέτει έναν μικρό πίνακα, ο οποίος συνδέεται με το σύνολο αποτελέσματος. 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. Τμήμα Βιομηχανικής Πληροφορικής 9

1.4 Διαφάνεια στην κατανομή Στις εφαρμογές βάσεων δεδομένων, ένας γενικός στόχος είναι η ανεξαρτησία των εφαρμογών από την τοποθεσία των δεδομένων. Στην περίπτωση των κατανεμημένων βάσεων δεδομένων, εκτός από την κλασική προσέγγιση στο πρόβλημα αυτό, υπάρχει και ένας επιπλέον παράγοντας δυσκολίας που πρέπει να ληφθεί υπόψη: η κατανομή των δεδομένων σε περισσότερες από μια τοποθεσίες. Στη συνέχεια αυτής της ενότητας παρουσιάζεται μια αφαιρετική αρχιτεκτονική για ένα σύστημα κατανεμημένων βάσεων δεδομένων, καθώς και οι τρόποι κατάτμησης. 1.4.1 Αφαιρετική κατανομή των κατανεμημένων βάσεων δεδομένων Στο Σχήμα 1.3 φαίνεται μια αφαιρετική αρχιτεκτονική μιας κατανεμημένης βάσης δεδομένων. Στη συνέχεια αναλύονται ένα προς ένα τα διάφορα στοιχεία της. Σχήμα 1.3 Μία αφαιρετική αρχιτεκτονική κατανεμημένης βάσης δεδομένων Στο υψηλότερο επίπεδο βρίσκεται το καθολικό σχήμα (global schema). Το καθολικό σχήμα ορίζει όλα τα δεδομένα που βρίσκονται στην κατανεμημένη βάση δεδομένων, σε μια μορφή όπου η κατανομή είναι μη ορατή. Έτσι, το σχήμα είναι το ίδιο με την περίπτωση όπου η βάση είναι μη κατανεμημένη. Το καθολικό σχήμα Τμήμα Βιομηχανικής Πληροφορικής 10

(στην περίπτωση του σχεσιακού μοντέλου) αποτελείται από καθολικές σχέσεις (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) και ουσιαστικά διευκολύνει σημαντικά τη διαδικασία σχεδίασης της κατανεμημένης βάσης δεδομένων. Τμήμα Βιομηχανικής Πληροφορικής 11

Διαχείριση της πλεονάζουσας πληροφορίας. Η πλεονάζουσα πληροφορία είναι ιδιαίτερα χρήσιμη στις εφαρμογές των κατανεμημένων βάσεων δεδομένων, κυρίως για λόγους απόδοσης. Ο σαφής ορισμός του πλεονασμού της πληροφορίας βοηθά στη σωστή σχεδίαση, αλλά και συντήρηση ενός τέτοιου συστήματος. Ιδιαίτερα στην περίπτωση, που ο προγραμματιστής μπορεί να κατασκευάσει εφαρμογές χωρίς να χρειάζεται να λαμβάνει υπόψη του την τοποθεσία των αντιγράφων, τότε επιτυγχάνεται η περίπτωση της διαφάνειας αντιγραφής (replication transparency). Παρακάτω παρουσιάζονται οι τρόποι με τους οποίους μπορεί να κατατμηθεί μια κατανεμημένη βάση δεδομένων. 1.4.2 Είδη κατάτμησης Υπάρχουν δύο βασικοί τρόποι διαμερισμού μιας σχέσης, η οριζόντια κατάτμηση (horizontal fragmentation) και η κάθετη κατάτμηση (vertical fragmentation). Βέβαια, μπορεί να χρησιμοποιηθεί και ο συνδυασμός τους, όταν αυτό είναι απαραίτητο. Οι τρεις βασικές προϋποθέσεις που πρέπει να πληροί ένα σχήμα κατάτμησης είναι: 1. Συνθήκη πληρότητας (completeness). Όλα τα δεδομένα μιας καθολικής σχέσης πρέπει να απεικονιστούν σε τμήματα, με άλλα λόγια δεν πρέπει να υπάρχουν δεδομένα που να ανήκουν στην καθολική σχέση, αλλά όχι σε κάποιο τμήμα. 2. Συνθήκη ανασύνθεσης (reconstruction). Πρέπει να είναι πάντα δυνατή η ανασύνθεση μιας καθολικής σχέσης από τα διάφορα τμήματά της. Η συνθήκη αυτή είναι απαραίτητη καθώς η καθολική σχέση είναι, εν γένει, ιδεατή και πρέπει να είναι δυνατή η ανασύνθεση από τα διάφορα τμήματά της, που είναι οι οντότητες που αποθηκεύονται στην πράξη. 3. Συνθήκη διαχωρισιμότητας (disjointness). Έχει αποδειχτεί στην πράξη, ότι είναι χρήσιμο τα τμήματα να είναι διαφορετικά μεταξύ τους (να μην έχουν, δηλαδή, επικαλύψεις). Η διαχείριση των αντιγράφων είναι βολικό να γίνεται στο επίπεδο του σχήματος τοποθέτησης. 1.4.3 Οριζόντια κατάτμηση Η οριζόντια κατάτμηση συνίσταται στο διαχωρισμό των πλειάδων (tuples) μιας καθολικής σχέσης σε υποσύνολα (για παράδειγμα, σε μια γεωγραφικά κατανεμημένη βάση, να κρατούνται σε κάθε τοποθεσία μόνο τα τοπικά δεδομένα). Αυτό μπορεί να επιτευχθεί με μια συνθήκη επιλογής (selection) στην καθολική σχέση. Έστω για παράδειγμα η καθολική σχέση: Τμήμα Βιομηχανικής Πληροφορικής 12

Και μια πιθανή κατάτμηση: 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 = pnum PROJECTi DEPT_TASK2 = DEPT_TASK ix pnum = pnum PROJECT2 Το semi-join1εγγυάται ότι αφενός το DEPT_TASK1 θα έχει το ίδιο σχήμα με το DEPT_TASK αλλά και τις σωστές πλειάδες. Η κατάτμηση αυτού του είδους ονομάζεται παραγόμενη κατάτμηση (derived fragmentation). Στη γενική περίπτωση 1 Ο τελεστής semi-join συμβολίζεται με x και ορίζεται ως: R x A = B S = π < attributes (R)> (R x A = B S) Τμήμα Βιομηχανικής Πληροφορικής 13

οι συνθήκες που πρέπει να πληρούνται για μια σωστή παραγόμενη κατάτμηση είναι οι εξής: - Η πληρότητα απαιτεί να μην υπάρχει έργο στη σχέση DEPT_TASK που δεν βρίσκεται και στη σχέση PROJECT (συνθήκη που μπορεί να υλοποιηθεί άνετα με ένα περιορισμό ξένου κλειδιού). - Η ανασύνθεση γίνεται πάλι με την πράξη της ένωσης. - Η διαχωρισιμότητα ικανοποιείται όταν μια πλειάδα της σχέσης DEPT_TASK δεν αντιστοιχεί σε δύο πλειάδες της σχέσης PROJECT που ανήκουν σε διαφορετικά τμήματα. Στην περίπτωση που ο διαχωρισμός γίνεται με βάση ένα πρωτεύον κλειδί, αυτό μπορεί να επιβεβαιωθεί εύκολα - διαφορετικά είναι δύσκολο να αποδειχτεί η συνθήκη διαχωρισιμότητας. 1.4.4 Κάθετη κατάτμηση Η κάθετη κατάτμηση αποτελεί το διαχωρισμό της καθολικής σχέσης με βάση την προβολή της σχέσης σε ομάδες πεδίων. Η κάθετη κατάτμηση είναι ορθή αν για κάθε πεδίο της καθολικής σχέσης υπάρχει τουλάχιστον ένα πεδίο σε κάποιο τμήμα και η καθολική σχέση μπορεί να ανασυντεθεί συνδέοντας τα διάφορα τμήματα. Για παράδειγμα, έστω η καθολική σχέση: EMP (EMPNUM, NAME, SALARY, TAX, MGRNUM, DEPTNUM) Μια κάθετη κατάτμηση αυτής της σχέσης μπορεί να είναι EMPi = Π EMPNUM, NAME, MGRNUM, DEPTNUMEMP EMP2 = Π EMPNUM, SAL, TAXEMP Η ανασύνθεση της καθολικής σχέσης μπορεί να γίνει ως εξής: EMP = EMPi Μ EMPNUM= EMPNUMEMP2 Η λύση αυτή είναι εφικτή γιατί το EMPNUM είναι κλειδί στο EMP. Η συμμετοχή του πρωτεύοντος κλειδιού σε κάθε τμήμα είναι ο πιο σίγουρος τρόπος για την εξασφάλιση ότι η ανασύνθεση είναι εφικτή με μια πράξη σύνδεσης. Εναλλακτικά, θα μπορούσαν να παραχθούν τεχνητά κλειδιά στα τμήματα, τα οποία αφενός να μην είναι πολύ μεγάλα σε μέγεθος και αφετέρου να μην ανανεώνονται από τους χρήστες. Να σημειωθεί επίσης, ότι η παραπάνω φόρμουλα παράγει στη ανασυνθεμένη σχέση δύο πεδία EMPNUM, πράγμα που μπορεί να εξουδετερωθεί με μια απλή προβολή. Τέλος, σε ότι αφορά στη διαχωρισιμότητα των τμημάτων, παρατηρείται ότι δεν είναι και τόσο σημαντική όσο στην οριζόντια κατάτμηση. Ήδη, στο παράδειγμα που Τμήμα Βιομηχανικής Πληροφορικής 14

αναφέρθηκε, παραβιάστηκε η διαχωρισιμότητα καθώς το κλειδί κάθε υπαλλήλου επαναλαμβάνεται σε κάθε τμήμα. Η επανάληψη ενός πεδίου (ακόμα και διαφορετικού από το κλειδί) μπορεί -εν γένει- να εξουδετερωθεί κατά την ανασύνθεση της σχέσης, με τις κατάλληλες προβολές. 1.4.5 Μεικτή κατάτμηση Τα τμήματα που προκύπτουν από τις προαναφερθείσες κατατμήσεις είναι και αυτά σχέσεις και μπορούν με τη σειρά τους να κατατμηθούν και αυτές. Η ανασύνθεση μπορεί να γίνει εφαρμόζοντας τους κατάλληλους κανόνες με αντίστροφη σειρά από τη σειρά κατάτμησης. Έστω, για παράδειγμα ξανά η σχέση EMP (EMPNUM, NAME, SALARY, TAX, MGRNUM, DEPTNUM) και η εξής μεικτή κατάτμηση: EMP1= ^EPTNUM < 10 Π EMPNUM, NAME, MGRNUM, DEPTNUMEMP EMP2 = σ10 < DEPTNUM< 20 I IeMPNUM, NAME, MGRNUM, DEPTNUMEMP EMP 3 = DEPTNUM > 20 I IemPNUM, NAME, MGRNUM, DEPTNUMEMP EMP4 = Π EMPNUM, NAME, SAL, TAXEMP Η ανασύνθεσης της καθολικής σχέσης προκύπτει από την εξής φόρμουλα: EMP = U(EMP1,EMP2, EMP3) Μ EMPNUM= EMPNUM(Π EMPNUM, SAL, TAX EMP4) Η μεικτή αυτή κατάτμηση μπορεί να αναπαρασταθεί σχηματικά όπως φαίνεται στο σχήμα 1.4. Έτσι, κατασκευάζεται ένα δέντρο κατάτμησης (fragmentation tree), στο οποίο η ρίζα αντιστοιχεί στην καθολική σχέση, τα φύλλα στα τελικά τμήματα και οι ενδιάμεσοι κόμβοι στα ενδιάμεσα στάδια κατάτμησης. 1.5 Σχεδίαση κατανεμημένων βάσεων δεδομένων Για τη σχεδίαση κατανεμημένων βάσεων δεδομένων υπάρχουν δύο κύριες στρατηγικές, η από πάνω προς τα κάτω (Top-Down) και η από κάτω προς τα πάνω (Bottom-Up). Όπως φαίνεται από τα ονόματά τους, οι δύο σχεδιαστικές Τμήμα Βιομηχανικής Πληροφορικής 15

στρατηγικές είναι πολύ διαφορετικές μεταξύ τους. Πολλές φορές, όμως, μπορούν (ή είναι αναγκαίο) να εφαρμοστούν συμπληρωματικά. Η bottom-up στρατηγική χρησιμοποιείται στην περίπτωση που υπάρχουν ήδη υλοποιημένες βάσεις δεδομένων σε έναν αριθμό από κόμβους, μέσα σε ένα κατανεμημένο σύστημα, και απαιτείται η επέκταση του συστήματος. Η top-down στρατηγική είναι και η πλέον δημοφιλής, ιδιαίτερα στην περίπτωση που η κατανεμημένη βάση σχεδιάζεται από την αρχή, ή όταν η σχεδίαση πραγματοποιείται με σκοπό την εφαρμογή σε ομογενές κατανεμημένο σύστημα. Στο σχήμα1.5 παρουσιάζεται σχηματικά η top-down στρατηγική. Αρχικά, η διαδικασία ξεκινά με την αποτύπωση των απαιτήσεων του χρήστη που αποτελούν και το στόχο του συστήματος. Το έγγραφο όπου περιγράφονται οι απαιτήσεις των χρηστών αποτελεί είσοδο για δύο παράλληλες διαδικασίες: τη σχεδίαση της διεπαφής χρήστη (user interface) και τη σχεδίαση του ιδεατού σχήματος (conceptual design). Η διαδικασία αυτή έχει σκοπό την ανακάλυψη οντοτήτων και συσχετίσεων μεταξύ τους, στο περιβάλλον του υπό μοντελοποίηση οργανισμού. Η σχεδίαση του ιδεατού σχήματος, μπορεί να σπάσει σε δύο διαδικασίες: αφενός στην ανάλυση των οντοτήτων και των συσχετίσεων και αφετέρου στη λειτουργική ανάλυση, η οποία ασχολείται με τη μοντελοποίηση των βασικών διαδικασιών του υπό μοντελοποίηση οργανισμού. Οι διαδικασίες σχεδίασης της διεπαφής χρήστη και του ιδεατού σχήματος πρέπει να ελεγχθούν ως προς την συνέπεια μεταξύ τους. Συνέπεια της διαδικασίας σχεδίασης είναι η παραγωγή του καθολικού ιδεατού σχήματος (global conceptual schema) αφενός, και των δικαιωμάτων πρόσβασης στην πληροφορία αφετέρου. Πρέπει να σημειωθεί ότι μέχρι στιγμής η διαδικασία δεν έχει ασχοληθεί καθόλου με Σχήμα 1.5 Μοντέλο Σχεδίασης Top-Down προβλήματα κατανομής της πληροφορίας και είναι ίδια με τη διαδικασία που ακολουθείται σε μη κατανεμημένα συστήματα. Τμήμα Βιομηχανικής Πληροφορικής 16

Το επόμενο στάδιο είναι η διαδικασία κατανομής που σκοπό έχει να παράγει τα τοπικά ιδεατά σχήματα (local conceptual schemas). Δηλαδή, οι διαδικασίες κατάτμησης και τοποθέτησης με την κατασκευή των αντίστοιχων σχημάτων. Στο τελικό στάδιο, υπάρχει η διαδικασία φυσικής σχεδίασης, η οποία λαμβάνει υπόψη της τα φυσικά χαρακτηριστικά των χρησιμοποιούμενων ΣΔΒΔ ανά τοποθεσία και έχει ως αποτέλεσμα την παραγωγή του φυσικού σχήματος. Η διαδικασία ελέγχου και προσαρμογής έρχεται όπως πάντα ως συμπληρωματική της ανάπτυξης ενός ολοκληρωμένου συστήματος. Στη συνέχεια, εξετάζεται το πρόβλημα της σχεδίασης κατανεμημένων βάσεων δεδομένων σε δύο επίπεδα: το επίπεδο της κατάτμησης και το επίπεδο της τοποθέτησης των διαφόρων τμημάτων. 1.5.1 Κατάτμηση Το πρώτο πρόβλημα που πρέπει να αντιμετωπιστεί στη διαδικασία σχεδίασης είναι η κατάτμηση των καθολικών σχέσεων. Η πρώτη ιδέα είναι ο προσανατολισμός στον οριζόντιο διαχωρισμό των σχέσεων, στοχεύοντας στη δημιουργία "ομάδων" από πλειάδες. Κάθε τέτοια ομάδα θα πρέπει να παρουσιάζει μια ομοιογένεια που να εξυπηρετεί μια λογική τοποθέτηση στη συνέχεια. Δηλαδή, αν δύο πλειάδες πληρούν τις προϋποθέσεις για συμμετοχή σε μία ομάδα (από την πλευρά της τοποθέτησης), τότε η στρατηγική τοποθέτησης θα τις εντάξει στην ίδια τοποθεσία. Ο τελικός στόχος είναι η κατασκευή τμημάτων που να είναι πολύ κοντά στις φυσικές εικόνες των διαφόρων τοποθεσιών. Περαιτέρω, υπάρχει και η περίπτωση της κάθετης (ή της μεικτής) τοποθέτησης για ειδικότερες περιπτώσεις εφαρμογών. Στη συνέχεια μελετώνται αναλυτικότερα οι διαφορετικοί τρόποι κατάτμησης. 1.5.1.1 Οριζόντια κατάτμηση Η οριζόντια κατάτμηση οφείλει να γίνεται με τέτοιο τρόπο, ώστε να πληρούνται -όσο το δυνατό αυτό είναι εφικτό- οι συνθήκες πληρότητας, διαχωρισιμότητας και αναδόμησης. Υπάρχουν δύο είδη κατάτμησης, η πρωτεύουσα (primary), όπου οι συνθήκες κατάτμησης μιας καθολικής σχέσης αφορούν αποκλειστικά τη σχέση αυτή και η παραγόμενη (derived), όπου οι συνθήκες κατάτμησης μιας καθολικής σχέσης μπορεί να χρησιμοποιούν και άλλες σχέσεις. Κατ' αρχήν, θα εξεταστεί η πρωτεύουσα κατάτμηση. Πριν από την παρουσίαση του αλγόριθμου κατάτμησης όμως, θα δοθούν μερικοί χρήσιμοι ορισμοί. Έστω R η καθολική σχέση η οποία κατακερματίζεται οριζόντια. Ως απλό κατηγόρημα (simple predicate) ορίζεται το κατηγόρημα της μορφής: πεδίο = τιμή Τμήμα Βιομηχανικής Πληροφορικής 17

Σύνθετο κατηγόρημα (minterm predicate) y για ένα σύνολο απλών κατηγορημάτων P, ονομάζεται η σύζευξη όλων των κατηγορημάτων που εμφανίζονται στο P είτε στην κανονική τους μορφή, είτε στην άρνησή τους, αρκεί η έκφραση που παράγεται να μην έχει λογικές αντιφάσεις. Δηλαδή: y = AND (pi*), όπου pi e P, pi* = pi ή pi* = ΝΟΤ pi, y Φ false Τμήμα (fragment) ονομάζεται το σύνολο των πλειάδων που ικανοποιούν ένα σύνθετο κατηγόρημα. Ακόμα, ένα απλό κατηγόρημα pi είναι σχετικό με ένα σύνολο απλών κατηγορημάτων P αν υπάρχουν τουλάχιστο δύο σύνθετα κατηγορήματα του P, των οποίων η έκφραση διαφέρει μόνο στο pi και τα οποία χρησιμοποιούνται από τουλάχιστο μία εφαρμογή. Με άλλα λό για, το pi εμφανίζεται στο ένα σύνθετο κατηγόρημα ως έχει και στο άλλο εμφανίζεται η άρνησή του, συνεπώς τα δύο σύνθετα κατηγορήματα είναι ίδια. Έστω P = {p1, p2,..., pn} ένα σύνολο από απλά κατηγορήματα. Για να είναι ορθή η κατάτμηση, και το P να αποτλεί τη συνθήκη κατάτμησης, πρέπει το P να είναι πλήρες (complete) και ελάχιστο (minimal). Το P είναι πλήρες αν κάθε δύο πλειάδες που ανήκουν στο τμήμα που ορίζει το P, χρησιμοποιούνται από τις εφαρμογές με την ίδια πιθανότητα. Το P είναι ελάχιστο, αν όλα τα απλά κατηγορήματά του είναι σχετικά με αυτό. Είσοδος: R: σχέση, P: σύνολο απλών κατηγορημάτων Έξοδος: P': σύνολο απλών κατηγορημάτων Μεταβλητές: F: σύνολο σύνθετων κατηγορημάτων (f: τμήμα σύνθετου κατηγορήματος στο P'). Αρχή: βρες ένα pi e P, τέτοιο ώστε το pi χωρίζει την R σε δύο τμήματα τα οποία προσπελαύνονται με διαφορετικό τρόπο από μία τουλάχιστο εφαρμογή; P' = {pi}; P = P - {pi}; F = {fi}; {το σύνθετο τμήμα που ορίζεται από το pi} do begin βρες ένα pj τέτοιο ώστε το pj να χωρίζει ένα τμήμα ή που ορίζεται από ένα σύνθετο κατηγόρημα στο P' σε δύο τμήματα τα οποία προσπελαύνονται με διαφορετικό τρόπο από μία τουλάχιστο εφαρμογή; P' = P' u {pj}; P = P - {pj}; F = F u {fj}; if 3pk E P' που είναι μη σχετικό begin P = P - {pk}; F = F - {fk}; end if until P είναι πλήρες end Τμήμα Βιομηχανικής Πληροφορικής 18

Ο αλγόριθμος αυτός δίνει ένα πλήρες και ελάχιστο σύνολο από κατηγορήματα P', δεδομένου ενός αρχικού συνόλου P. Στην περίπτωση που μια συνολική λύση είναι πολύ δύσκολο να επιτευχθεί από τον αλγόριθμο αυτό, μπορούν να γίνουν κάποιοι συμβιβασμοί (π.χ. αναγωγή του προβλήματος σε ένα υποσύνολο κρίσιμων εφαρμογών, μη διάκριση τμημάτων που είναι παρόμοια κλπ). Για την παραγόμενη οριζόντια κατάτμηση παρατίθεται ο παρακάτω ορισμός: Μια κατανεμημένη σύνδεση (distributed join) είναι μια σύνδεση μεταξύ κατανεμημένων σχέσεων. Κανονικά, όταν πρέπει να γίνει μια σύνδεση μεταξύ δύο καθολικών σχέσεων R και S, πρέπει να συνδεθούν όλα τα τμήματα του R με όλα τα τμήματα του S. Αυτό μπορεί να αποφευχθεί αν είναι γνωστό το ότι οι τιμές του πεδίου στο οποίο γίνεται η σύνδεση, είναι διαφορετικές για δύο τμήματα Ri και Sj. Για την αναπαράσταση μιας κατανεμημένης σύνδεσης μπορεί να χρησιμοποιηθεί ένας γράφος σύνδεσης (join graph). Ένας γράφος σύνδεσης Θ(Ν, Ε) μιας κατανεμημένης σύνδεσης μεταξύ δύο σχέσεων R και S αποτελείται από ένα σύνολο κόμβων Ν που αναπαριστούν τμήματα και ένα σύνολο Ε από μη κατευθυνόμενες ακμές μεταξύ των τμημάτων, οι οποίες δεν έχουν ως αποτέλεσμα το κενό σύνολο. Στο σχήμα 1.6α φαίνεται ένας γράφος σύνδεσης. Ένας γράφος σύνδεσης είναι ολικός (total) αν περιέχει όλες τις πιθανές ακμές, ενώ σε αντίθετη περίπτωση ο γράφος είναι μειωμένος (reduced). Υπάρχουν δύο είδη μειωμένου γράφου που παρουσιάζουν ιδιαίτερο ενδιαφέρον: Ο διαχωρισμένος (partitioned) γράφος αποτελείται από δύο ή περισσότερους υπογράφους που δεν συνδέονται μεταξύ τους. O απλός (simple) γράφος είναι διαχωρισμένος και κάθε υπογράφος αποτελείται από μία μόνο ακμή. Στο Σχήμα 1.6β και γ φαίνονται παραδείγματα διαχωρισμένου και απλού γράφου. Σε έναν απλό γράφο, αν τα συνδεόμενα τμήματα τοποθετηθούν στην ίδια τοποθεσία, οι ενώσεις τους μπορούν να υπολογίζονται τοπικά και να ανασυνθέτουν το ολικό αποτέλεσμα από τα επιμέρους αποτελέσματα (με κέρδος τη μειωμένη μετακίνηση δεδομένων στο δίκτυο). Ακόμα, στην περίπτωση που υπάρχουν semi-join και ισχύουν οι συνθήκες πληρότητας και διαχωρισιμότητας, τότε ο γράφος σύνδεσης είναι απλός. Τμήμα Βιομηχανικής Πληροφορικής 19