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

Εμμανουήλ Γιαννακουδάκης

 

Β΄ Έκδοση

 

Εκδότης: Μπένου E.
Μορφή: Μαλακό εξώφυλλο
Αριθμός σελίδων: 608
Κωδικός ISBN: 978-960-851-227-6
Διαστάσεις: 17 × 24 εκ.
Κωδ. Εύδοξος: 112695399

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

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

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

Η ακρίβεια των εννοιών που υπεισέρχονται στο σχεδιασμό, καθώς και η σχετική ορολογία, αποτελούν καθοριστικό παράγοντα στην κατανόηση της μεθοδολογίας του σχεδιασμού. Το βιβλίο δίνει ιδιαίτερη βαρύτητα στο θέμα αυτό, ενώ, παράλληλα, κάθε ορισμός συνοδεύεται από πολλαπλά και ποικίλα παραδείγματα. Δοθέντος ότι η αγγλική ορολογία πολλές φορές αδικεί τις υποκείμενες έννοιες, καθότι αφήνει περιθώρια παρείσακτων όρων, καταβλήθηκε κάθε προσπάθεια για την υιοθέτηση κατανοητή ς ελληνικής ορολογίας σε όλα τα επιμέρους στάδια του σχεδιασμού. Τυπικά παραδείγματα είναι οι έννοιες: πλειάδα (tuple), τελεστές θήτα (theta operators), αναπωλειακή σύνδεση (loss join), ενημερωσιμότητα όψεων (updatability of views), κανονική σύνθεση (canonical synthesis), αποσύνθεση : iecomposition), πολυγενετισμός (polygeneticism), εντροπία (entropy), πολυγλωσσική διεπαφή (multilingual interface), δεικτοδότηση (indexing), κ.τ.λ.

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

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

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

Βασική έννοια εδώ αποτελεί η λεγάμενη πλειάδα, δηλαδή μια σειρά τιμών που συμβάλλουν στην περιγραφή ενός συγκεκριμένου αντικειμένου του πραγματικού κόσμου όπως είναι, για παράδειγμα, ο αριθμός ταυτότητας και τα σχετικά με έναν πολίτη στοιχεία. Με την ευκαιρία, αναφέρω ότι πλειάδες ή πληιάδες ήταν οι επτά κόρες του Άτλαντος, τις οποίες ο Δίας μετέφερε στον ουρανό. Ωστόσο, μόνο οι έξι είναι ορατές, με αποτέλεσμα να δημιουργηθεί ο μύθος περί χαμένης πλειάδας. Πολλοί ποιητές αναφέρονται στις Πλειάδες ονομάζοντάς τις ως Πελειάδες και παριστάνοντάς τις ως περιστερές, ενώ ο Ησίοδος (Εργα και Ημέραι, στίχ. 383, 384), αναφέρει: «Πληιάδων Ατλαγενέων επιτελλομενάων άρχεσθ’ αμήτου, αρότοιο δέ δυσομενάων»: Όταν ανατέλλουν ον Πλειάδες («συστροφή» αστέρων) ανερχόμενες εκ του Ωκεανού ως να τις γεννά ο Άτλας, τότε αρχίζει το θέρισμα και, όταν αυτές δύουν βυθιζόμενες εκ νέου στον Ωκεανό, αρχίζει το όργωμα.

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

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

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

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

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

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

Κεφάλαιο 3: Στο κεφάλαιο αυτό παρουσιάζεται το θεωρητικό υπόβαθρο της μεθοδολογίας της κανονικοποίησης, η οποία αναλύεται διεξοδικά, καθώς επίσης και όλα τα επαγωγικά αξιώματα που αφορούν τόσο τις συναρτησιακές εξαρτήσεις όσο και τις εξαρτήσεις πολλαπλών τιμών. Πέραν των 5 γνωστών πλέον κανονικών μορφών, παρουσιάζονται η μηδενική κανονική μορφή (0NF), καθώς και η μορφή που εξετάζει τις εξαρτήσεις που προκύπτουν από τον ορισμό των πεδίων-κλειδιών (DKNF).

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

Ο αναλυτής που εκτελεί την κανονικοποίηση των ομάδων των γνωρισμάτων πρέπει να είναι ιδιαίτερα προσεκτικός κατά τη μετάβαση από την 1NF στην 5NF, έτσι ώστε - όπου είναι αναγκαίο - μια σχέση χαμηλής μορφής να μπορεί να αναπαρασταθεί από μία ή από περισσότερες σχέσεις υψηλότερης μορφής. Λέγοντας «αναπαράσταση» εννοούμε τη σύνθεση μιας σχέσης από άλλες μέσω του τελεστή της σύνδεσης των υποκείμενων πινάκων.

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

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

Όσον αφορά την πρακτική της επεξεργασίας όψεων, η δομή της SQL παρέχει τα μέσα για τη δυναμική δήλωση μιας όψης (π.χ. μέσω της εντολής CREATE VIEW) και, βεβαίως, για την άμεση διάθεση αυτής για επερωτήσεις από εξουσιοδοτημένους χρήστες. Οι επερωτήσεις που τίθενται πάνω στην όψη μεταφράζονται σε αντίστοιχες επερωτήσεις πάνω στους υποκείμενους πίνακες της βάσης, χωρίς να δημιουργείται κανένα ιδιαίτερο πρόβλημα.

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

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

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

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

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

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

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

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

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

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

Από την ανάλυση του προβλήματος γίνεται αισθητή η απουσία ενός «χρυσού αριθμού», ενός μέτρου αξιολόγησης, προκειμένου να κατασκευάσουμε ένα λογικό σχήμα και ένα αντίστοιχο φυσικό, με τον ίδιο τρόπο που οι πρόγονοί μας υιοθετούσαν το λεγόμενο χρυσό αριθμό Φ=1,618 που συνδύαζαν με έναν άλλο αριθμό, τον Π=3,1415, για να κατασκευαστούν όλα τα θαύματα της αρχαιότητας.

Όπως αναφέρει ο αξιόλογος ερευνητής Ιπποκράτης Δάκογλου (Ο μυστικός κώδικας του Πυθαγόρα, Τόμος I, σ. 119) «οι αριθμοί αυτοί αποτελούν το θεϊκό κλειδί, που θα μας βοηθήσει ν’ ανοίξουμε όλες τις πόρτες των αινιγματικών κατασκευών της προϊστορίας και να βρούμε τους εμπνευστές τους». Όλα τα αρχαία κτίσματα, από τις πυραμίδες ίσαμε τις ρωμάνικες εκκλησίες, κατασκευάστηκαν με βάση τη σχέση που υπάρχει ανάμεσα στο χρυσό αριθμό και τον τετραγωνισμένο κύκλο. Από το Π οι Έλληνες έπαιρναν το λεγόμενο ιερό μέτρο, άλλως τον πήχυ 0,5236=Π/6 και τη σπιθαμή 0,2618=Π/12. Η σχέση μεταξύ Φ και Π είναι: π=12/10χΦ2 £ 3,1416. Ελπίζω ότι θα εμφανιστεί υποψήφιος Διδάκτορας ικανός να αναλάβει έρευνα πάνω σε αυτό το τόσο ζωτικής σημασίας θέμα για το σχεδίασμά βάσεων δεδομένων, που είναι η αναζήτηση της χρυσής τομής ομαδοποίησης γνωρισμάτων.

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10: Σκοπός του κεφαλαίου αυτού είναι να παρουσιάσει τις βασικότερες από τις παραμέτρους της φυσικής σχεδίασης, ιδιαίτερα εκείνες που επηρεάζουν άμεσα το χρόνο απόκρισης του συστήματος. Δοθέντος ότι σε όλες τις βασικές πράξεις (αναζήτηση, εισαγωγή, τροποποίηση και διαγραφή) που εκτελούνται σε μια βάση, συνήθως, υπεισέρχεται η διεργασία του εντοπισμού συγκεκριμένης ομάδας πλειάδων με σαφώς προσδιορισμένα κοινά χαρακτηριστικά, εστιάζουμε την προσοχή μας στους ακόλουθους πέντε τύπους κριτηρίων αναζήτησης: (α) ολοκληρωμένο, (β) ημιτελές, (γ) διαστήματος, (δ) τύπου Boolean, και (ε) εννοιολογικό.

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

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

Το βιβλίο αυτό αποτελεί συνέχεια του βιβλίου μου «Συστήματα βάσεων δεδομένων SQL», το οποίο παρουσιάζει και αναλύει όλες τις κατηγορίες εντολών ενός DBMS, ιδιαίτερα εκείνες της καθιερωμένης πλέον γλώσσας SQL. Το παρόν βιβλίο πιστεύω ότι θα είναι χρήσιμο σε όλους τους φοιτητές Πληροφορικής, στους διευθυντές τμημάτων μηχανογράφησης, αλλά προπάντων σε όσους έχουν σχεδιάσει βάσεις και επιδιώκουν την επαλήθευση του τελικού σχεδιασμού, σε όσους σχεδιάζουν αυτή τη στιγμή βάσεις και έχουν “πελαγώσει”, και τέλος σε όσους προτίθενται να σχεδιάσουν βάσεις και δεν έχουν το χρόνο να μελετήσουν τις εκατοντάδες των επιστημονικών εργασιών προκειμένου να αρχίσουν να αναλύουν τα γνωρίσματα ενός οργανισμού.

Ευχαριστώ τη Ζωή Σαράντη-Βαρναλίδη και την Ελένη Ξιάρχου για τις υποδείξεις που έκαναν πάνω στα κείμενα.

Εμμανουήλ I. Γιαννακουδάκης
eyan@aueb.gr

 

Περιεχόμενα

ΠΡΟΛΟΓΟΣ 15
ΚΕΦΑΛΑΙΟ 1 21
ΑΡΧΕΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ
1.1 ΑΕΑΟΜΕΝΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΕΣ 21
1.2 ΕΠΙΚΟΙΝΩΝΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΑΡΧΕΙΟ 27
1.3 ΕΠΙΚΟΙΝΩΝΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΜΕΤΑ-ΑΡΧΕΙΟ 33
1.4 ΠΡΟΣ ΕΝΑ ΣΥΣΤΗΜΑ ΒΑΣΗΣ ΑΕΑΟΜΕΝΩΝ. 40
1.4.1 Η ΕΝΝΟΙΟΛΟΓΙΚΗ ΑΡΧΗ. 47
1.4.2 Η ΑΡΧΗ ΤΗΣ ΑΥΤΑΡΚΕΙΑΣ 47
1.5 ΛΟΓΙΣΜΙΚΟ ΥΨΗΛΟΥ ΕΠΙΠΔΟΥ 47
1.5.1 ΕΝΤΟΛΗ CREATE TABLE 49
1.5.2 ΕΝΤΟΛΗ ALTER TABLE 54
1.5.3 ΕΝΤΟΛΗ DROP TABLE 56
1.5.4 ΕΝΤΟΛΗ INSERT INTO TABLE 57
1.5.5 ΕΝΤΟΛΗ UPDATE TABLE 59
1.5.6 ΕΝΤΟΛΗ DELETE FROM TABLE 61
1.5.7 ΕΝΤΟΛΗ SELECT FROM TABLE 62
1.6 ΣΥΝΟΛΑ ΧΑΡΑΚΤΗΡΩΝ 68
1.6.1 ΟΡΙΣΜΟΣ ΣΥΝΟΛΟΥ ΧΑΡΑΚΤΗΡΩΝ 70
1.6.2 ΟΡΙΣΜΟΣ ΔΙΑ ΤΑΞΙΝΟΜΙΚΗΣ ΣΕΙΡΑΣ 71
1.6.3 ΟΡΙΣΜΟΣ ΚΑΝΟΝΩΝ ΜΕΤΑΤΡΟΠΗΣ 72
1.6.4 ΣΥΝΑΡΤΗΣΕΙΣ ΣΥΜΒΟΑΟΣΕΙΡΩΝ 73
1.7 ΑΣΦΑΛΕΙΑ ΑΕΑΟΜΕΝΩΝ 75
1.7.1 ΠΙΝΑΚΕΣ ΚΑΙ ΟΨΕΙΣ 75
1.7.2 ΠΕΔΙΑ ΟΡΙΣΜΟΥ ΚΑΙ ΣΥΝΟΛΑ ΧΑΡΑΚΤΗΡΩΝ 78
1.8 ΠΕΡΙΛΗΨΗ. 80
ΚΕΦΑΛΑΙΟ 2 83
ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΒΑΣΗΣ
2.1 ΑΡΧΕΣ ΑΝΕΞΑΡΤΗΣΙΑΣ ΔΕΔΟΜΕΝΩΝ 83
2.2 ΦΥΣΙΚΗ ΑΝΕΞΑΡΤΗΣΙΑ 86
2.3 ΛΟΓΙΚΗ ΑΝΕΞΑΡΤΗΣΙΑ 89
2.4 ΠΡΟΤΥΠΟ ΛΟΓΙΣΜΙΚΟ ΚΑΙ Η ΒΑΣΗ. 92
2.5 ΦΙΛΟΞΕΝΟΥΣΑ ΓΛΩΣΣΑ 97
2.6 ΤΡΙΑ ΑΡΧΙΤΕΚΤΟΝΙΚΑ ΕΠΙΠΕΔΑ 101
2.6.1 ΛΟΓΙΚΟ ΣΧΗΜΑ 102
2.6.2 ΛΟΓΙΚΟ ΥΠΟΣΧΗΜΑ 106
2.6.3 ΕΣΩΤΕΡΙΚΟ ΣΧΗΜΑ 111
2.7 ΔΥΝΑΜΙΚΗ ΣΥΝΘΕΣΗ ΕΝΤΟΛΩΝ 116
2.8 ΔΥΝΑΜΙΚΗ ΚΛΗΣΗ CLI 118
2.9 ΚΑΤΗΓΟΡΙΕΣ ΧΡΗΣΤΩΝ 121
2.9.1 ΔΙΑΧΕΙΡΙΣΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ 122
2.9.2 ΜΗΧΑΝΙΚΟΣ ΛΟΓΙΣΜΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ 124
2.9.3 ΑΝΑΛΥΤΗΣ ΕΦΑΡΜΟΓΩΝ 125
2.9.4 ΠΡΟΓΡΑ ΜΜΑ ΤΙΣΤΗΣ ΕΦΑΡΜΟΓΩΝ 126
2.9.5 ΓΕΝΙΚΟΣ ΧΡΗΣΤΗΣ 127
2.10 ΟΛΟΚΛΗΡΩΣΗ ΛΟΓΙΣΜΙΚΟΥ 127
2.11 ΠΕΡΙΛΗΨΗ 133
ΚΕΦΑΛΑΙΟ 3 135
ΔΟΜΕΣ ΚΑΙ ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ
3.1 ΕΙΣΑΓΩΓΗ 135
3.2 ΣΥΝΔΕΣΗ ΣΤΟΙΧΕΙΩΝ 137
3.3 ΔΟΜΕΣ ΚΑΙ ΣΥΣΧΕΤΙΣΕΙΣ 142
3.3.1 Δ Ο ΜΕΣ ΜΕ ΚΛΕΙΔΙΑ 142
3.3.2 ΔΟΜΕΣ ΔΕΝΔΡΩΝ 152
3.4 ΙΕΡΑΡΧΙΚΑ ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ 155
3.5 ΔΙΚΤΥΩΤΑ ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ 159
3.6 ΣΧΕΣΙΑΚΑ ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ 171
3.6.1 ΣΧΕΣΙΑΚΗ ΟΡΟΛΟΓΙΑ 173
3.6.2 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΣΧΕΣ1ΑΚΩΝ ΜΟΝΤΕΛΩΝ 175
3.6.3 ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΣΧΕΣΕΩΝ 180
3.7 ΠΕΡΙΛΗΨΗ 188
ΚΕΦΑΛΑΙΟ 4 191
ΔΙΑΚΗΡΥΞΕΙΣ ΑΡΧΩΝ
4.1 ΕΙΣΑΓΩΓΗ 191
4.2 ΚΑΝΟΝΕΣ CODD: ΠΡΩΤΗ ΕΚΔΟΣΗ 193
4.3 ΚΑΝΟΝΕΣ CODD: ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ 199
4.4 ΚΑΝΟΝΕΣ ΑΝΉΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΜΟΝΤΕΛΟΥ 207
4.5 ΚΑΝΟΝΕΣ ΤΡΙΤΗΣ ΓΕΝΙΑΣ 210
4.6 ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ 213
4.7 ΣΥΝΑΡΤΗΣΕΙΣ 225
4.8 ΑΚΕΡΑΙΟΤΗΤΑ ΕΓΓΡΑΦΩΝ 235
4.8.1 ΠΕΡΙΟΡΙΣΜΟΙ 237
4.8.2 ΠΕΔΙΑ ΤΙΜΩΝ 246
4.9 ΜΕΤΑΤΡΟΠΕΣ ΚΑΙ ΣΥΓΚΡΙΣΕΙΣ 251
4.10 ΣΥΝΘΕΣΗ ΣΧΗΜΑΤΟΣ 256
ΚΕΦΑΛΑΙΟ 5 265
ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΑΡΑΔΕΙΓΜΑ ΜΟΝΤΕΛΟΥ
5.1 ΕΙΣΑΓΩΓΗ 265
5.2 ΑΝΑΛΥΣΗ ΟΝΤΟΤΗΤΩΝ 267
5.3 ΑΝΑΛΥΣΗ ΣΥΣΧΕΤΙΣΕΩΝ 270
5.4 ΔΗΜΙΟΥΡΓΙΑ ΛΟΓΙΚΟΥ ΜΟΝΤΕΛΟΥ 274
5.4.1 ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΣΧΗΜΑ ΤΟΣ 277
5.4.2 ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΚΟΥ ΣΧΗΜΑΤΟΣ 282
5.5 ΔΗΜΙΟΥΡΓΙΑ ΛΕΞΙΚΟΥ ΔΕΔΟΜΕΝΩΝ 289
5.6 ΔΗΜΙΟΥΡΓΙΑ ΥΠΟΣΧΗΜΑΤΟΣ 291
5.6.1 ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΥΠΟΣΧΗΜΑΤΟΣ 292
5.6.2 ΥΛΟΠΟΙΗΣΗ ΥΠΟΣΧΗΜΑΤΟΣ 294
5.7 ΠΕΡΙΛΗΨΗ
ΚΕΦΑΛΑΙΟ 6 297
ΠΟΛΥΣΧΗΜΑΤΙΚΕΣ ΒΑΣΕΙΣ
6.1 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ 297
6.2 ΜΕΤΑ-ΣΧΗΜΑΤΑ 300
6.2.1 ΜΕΤΑ-ΣΤΟΙΧΕΙΑ TOY INFORMATION SCHEMA 301
6.3 ΛΕΞΙΚΟ ΔΕΔΟΜΕΝΩΝ 302
6.3.1 ΣΤΟΧΟΙ ΚΑΙ ΣΚΟΠΟΙ 302
6.3.2 ΤΟ ΛΕΞΙΚΟ ΚΑΙ Η ΒΑΣΗ. 307
6.4 ΦΙΛΟΞΕΝΟΥΣΑ ΓΛΩΣΣΑ 313
6.4.1 ΕΝΣΩΜΑΤΩΣΗ ΕΝΤΟΛΩΝ SQL 314
6.4.2 ΣΥΝΘΕΣΗ ΕΝΟΤΗΤΩΝ. 317
6.4.3 ΑΝΤΙΣΤΟΙΧΙΑ ΤΥΠΩΝ ΔΕΔΟΜΕΝΩΝ. 319
6.5 ΠΡΟΣΩΡΙΝΟΙ ΠΙΝΑΚΕΣ 321
6.5.1 ΔΗΛΩΣΗ ΠΡΟΣΩΡΙΝΩΝ ΠΙΝΑΚΩΝ. 322
6.5.2 ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΣΩΡΙΝΩΝ ΠΙΝΑΚΩΝ. 324
6.6 ΔΡΟΜΕΙΣ 326
6.6.1 ΔΗΜΙΟΥΡΓΙΑ ΔΡΟΜΕΩΝ. 328
6.6.2 ΑΝΟΙΓΜΑ ΔΡΟΜΕΩΝ 330
6.6.3 ΚΛΕΙΣΙΜΟ ΔΡΟΜΕΩΝ 331
6.6.4 ΠΡΟΣΠΕΛΑΣΗ ΠΛΕΙΑΔΩΝ ΔΡΟΜΕΩΝ 331
6.6.5 ΔΙΑΓΡΑΦΗ ΠΛΕΙΑΔΩΝ ΔΡΟΜΕΩΝ 333
6.6.6 ΤΡΟΠΟΠΟΙΗΣΗ ΠΛΕΙΑΔΩΝ ΔΡΟΜΕΩΝ. 333
6.7 ΔΙΑΔΙΚΑΣΙΕΣ 335
6.8 ΣΥΝΔΕΣΗ ΜΕ ΤΗ ΒΑΣΗ 340
6.8.1 ΣΥΝΔΕΣΗ ΜΕ ΕΞΥΠΗΡΕΤΗΤΗ. 341
6.8.2 ΕΠΙΛΟΓΗ ΣΥΝΔΕΣΗΣ 341
6.8.3 ΔΙΑΚΟΠΗ ΣΥΝΔΕΣΗΣ 342
6.9 ΣΥΝΟΔΟΙ 342
6.10 ΣΥΝΑΛΛΑΓΕΣ 344
6.10.1 ΔΕΣΜΕΥΣΗ ΤΡΟΠΟΠΟΙΗΣΕΩΝ. 344
6.10.2 ΑΚΥΡΩΣΗ ΤΡΟΠΟΠΟΙΗΣΕΩΝ 345
6.10.3 ΠΡΟΕΤΟΙΜΑΣΙΑ ΝΕΑΣ ΣΥΝΑΛΛΑΓΗΣ 345
6.10.4 ΕΝΕΡΓΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ 347
6.10.5 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ 349
6.11 ΕΛΕΓΧΟΣ ΣΦΑΛΜΑ ΤΩΝ 353
6.11.1 ΕΝΤΟΛΗ WHENEVER 355
6.11.2 ΕΝΤΟΛΗ GET DIAGNOSTICS 357
ΚΕΦΑΛΑΙΟ 7 361
ΠΑΡΑΔΕΙΓΜΑ ΣΥΝΔΕΣΗΣ ΜΕ ΤΗ ΒΑΣΗ
7.1 ΛΟΓΙΚΟ ΣΧΗΜΑ 361
7.2 ΛΟΓΙΚΟ ΥΠΟΣΧΗΜΑ 363
7.3 ΟΡΙΣΜΟΣ ΕΝΟΤΗΤΑΣ 365
7.4 ΦΙΛΟΞΕΝΟΥΣΑ ΓΛΩΣΣΑ C – MODULE 370
7.5 ΦΙΛΟΞΕΝΟΥΣΑ ΓΛΩΣΣΑ C – EXEC 373
ΚΕΦΑΛΑΙΟ 8 379
ΘΕΜΕΛΙΩΔΕΙΣ ΑΛΓΕΒΡΙΚΟΙ ΧΕΙΡΙΣΜΟΙ
8.1 ΕΙΣΑΓΩΓΗ. 379
8.2 ΑΝΑΚΥΚΛΩΣΕΙΣ 380
8.3 ΠΕΡΙΒΑΛΛΟΝ ΧΕΙΡΙΣΜΟΥ. 383
8.4 ΘΕΜΕΛΙΩΔΕΙΣ ΑΛΓΕΒΡΙΚΕΣ ΠΡΑΞΕΙΣ 385
8.4.1 ΕΝΩΣΗ. 386
8.4.2 ΤΟΜΗ. 387
8.4.3 ΔΙΑΦΟΡΑ 388
8.4.4 ΕΠΙΛΟΓΗ. 389
8.4.5 ΠΡΟΒΟΛΗ. 391
8.4.6 ΣΥΝΔΕΣΗ. 392
8.4.7 ΔΙΑΙΡΕΣΗ 394
8.4.8 ΓΙΝΟΜΕΝΟ 395
8.5 ΟΡΙΣΜΟΣ ΥΠΟΣΧΗΜΑΤΩΝ 397
8.6 ΕΝΑΛΛΑΚΤΙΚΑ ΣΥΝΟΛΑ ΠΡΑΞΕΩΝ. 400
8.7 ΙΣΟΔΥΝΑΜΙΑ ΑΛΓΕΒΡΙΚΩΝ ΠΡΑΞΕΩΝ 402
8.8 ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΠΕΡΩΤΗΣΕΩΝ 409
ΚΕΦΑΛΑΙΟ 9 413
ΛΟΓΙΚΟΙ ΕΛΕΓΧΟΙ ΚΑΙ ΣΥΝΘΕΣΗ ΠΙΝΑΚΩΝ
9.1 ΜΕΤΟΝΟΜΑΣΙΑ ΣΤΟΙΧΕΙΩΝ 413
9.2 ΑΥΤΟΣΥΝΔΕΣΗ 416
9.3 ΤΡΙΑΔΙΚΗ ΛΟΓΙΚΗ 418
9.4 ΦΡΑΣΕΙΣ ΕΛΕΓΧΟΥ ΤΙΜΩΝ. 420
9.5 ΕΝΩΣΗ ΠΙΝΑΚΩΝ 428
9.6 ΤΟΜΗ ΠΙΝΑΚΩΝ 430
9.7 ΔΙΑΦΟΡΑ ΠΙΝΑΚΩΝ 431
9.8 ΕΠΙΛΟΓΗ ΠΛΕΙΑΔΩΝ 432
9.9 ΠΡΟΒΟΛΗ ΣΤΗΛΩΝ 433
9.10 ΣΥΝΔΕΣΗ ΠΙΝΑΚΩΝ 434
9.11 ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ 439
ΚΕΦΑΛΑΙΟ 10 441
ΔΙΚΤΥΩΤΗ ΓΛΩΣΣΑ ΒΑΣΗΣ
10.1 ΕΙΣΑΓΩΓΗ 441
10.2 ΔΟΜΗ ΛΟΓΙΚΟΥ ΣΧΗΜΑΤΟΣ 443
10.3 ΤΑΞΙΝΟΜΗΣΗ ΕΓΓΡΑΦΩΝ 448
10.4 ΕΝΤΑΞΗ ΕΓΓΡΑΦΩΝ ΣΕ ΣΥΝΟΛΑ 450
10.5 ΕΠΙΛΟΓΗ ΣΥΝΟΛΟΥ. 454
10.6 ΟΡΙΣΜΟΣ ΥΠΟΣΧΗΜΑΤΟΣ 457
10.7 ΧΕΙΡΙΣΜΟΣ ΕΓΓΡΑΦΩΝ 458
10.8 ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΑΡΑΔΕΙΓΜΑ 465
10.8.1 ΛΟΓΙΚΟ ΣΧΗΜΑ 465
10.8.2 ΛΟΓΙΚΟ ΥΠΟΣΧΗΜΑ 471
ΚΕΦΑΛΑΙΟ 11 473
ΠΑΡΟΝ ΚΑΙ ΜΕΛΛΟΝ
11.1 ΕΙΣΑΓΩΓΗ 473
11.2 ΔΥΝΑΜΙΚΗ ΚΛΗΣΗ CLI ΚΑΙ ODBC 474
11.2.1 Η ΕΞΕΛΙΞΗ TOY ODBC 475
11.2.2 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ TOY ODBC 477
11.2.3 ΕΝΑΛΛΑΚΤΙΚΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ 481
11.2.4 ΕΠΙΠΕΑΑ ΣΥΜΒΑΤΟΤΗΤΑΣ API 483
11.2.5 ΕΠΙΠΕΔΑ ΣΥΜΒΑΤΟΤΗΤΑΣ SQL 485
11.2.6 ΤΥΠΟΙ ΟΔΗΓΩΝ ODBC 487
11.2.7 ΑΞΙΟΠΟΙΗΣΗ ΠΟΛΛΑΠΛΩΝ ΣΧΗΜΑ ΤΩΝ 488
11.2.8 ΠΑΡΑΔΕΙΓΜΑ ΕΦΑΡΜΟΓΗΣ ODBC 489
11.2.9 MFC ΚΑΙ ODBC 491
11.2.10 ODBC ΚΑΙ OLE 492
11.3 ΔΗΜΙΟΥΡΓΙΑ ΕΝΟΤΗΤΩΝ PSM 493
11.3.1 ΕΝΤΟΛΕΣ ΤΥΠΟΥ PSM. 495
11.3.2 ΠΑΡΑΔΕΙΓΜΑΤΑ ΤΥΠΟΥ PSM. 504
11.4 ΔΙΕΓΕΡΤΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ 506
11.5 ΑΝΑΔΡΟΜΙΚΕΣ ΣΥΝΔΕΣΕΙΣ 5/0
11.6 ΤΟ ΜΕΛΛΟΝ 513
ΠΑΡΑΡΤΗΜΑ A 517
ΓΡΑΜΜΑΤΙΚΗ ΤΗΣ SQL
Α.1 ΓΕΝΙΚΟΙ ΟΡΙΣΜΟΙ 518
Α.2 ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ 520
Α.3 ΟΡΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ. 522
Α.4 ΣΥΝΘΕΣΗ ΠΙΝΑΚΩΝ 527
Α.5 ΠΕΡΙΟΡΙΣΜΟΙ 528
Α.6 ΕΝΟΤΗΤΕΣ ΛΟΓΙΣΜΙΚΟΥ. 530
Α.7 ΣΥΝΔΕΣΗ ΜΕ ΤΗ ΒΑΣΗ ΚΑΙ ΣΥΝΑΛΛΑΓΕΣ. 530
Α.8 ΧΕΙΡΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ. 532
Α.9 ΛΟΓΙΚΕΣ ΣΥΝΘΗΚΕΣ 533
Λ. 10 ΔΥΝΑΜΙΚΑ ΟΡΙΖΟΜΕΝΕΣ ΦΡΑΣΕΙΣ 535
ΠΑΡΑΡΤΗΜΑ Β 539
ΠΑΡΑΔΕΙΓΜΑΤΑ ΕΠΙΚΛΗΣΗΣΕΝΤΟΑΩΝ SQL
Β.1 ΣΥΝΘΕΣΗ ΕΝΤΟΛΩΝ – ΕΝΕΣΕΙΣ 539
Β.2 ΠΑΡΑΔΕΙΓΜΑ ΤΑ ΣΕ ASP.NET. 540
Β. 3 ΠΑΡΑΔΕΙΓΜΑ ΣΕ Java 544
Β.4 ΠΑΡΑΔΕΙΓΜΑ ΔΙΑΔΙΚΑΣΙΑΣ SQL 552
ΠΑΡΑΡΤΗΜΑ Γ 555
ΚΩΔΙΚΟΙ ΣΦΑΛΜΑΤΩΝ SQL
ΒΙΒΛΙΟΓΡΑΦΙΑ 559
ΑΚΡΩΝΥΜΙΑ 565
ΕΥΡΕΤΗΡΙΟ 569