ΛΕΥΚΗ ΜΟΤΣΟΒΟΛΕΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ ΑΘΗΝΑ [1]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

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

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

Έννοιες Διαχείρισης Βάσεων Δεδομένων και Αρχιτεκτονική

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

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

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Προγραμματισμός ΙI (Θ)

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

Βασικά ζητήματα μιας βάσης δεδομένων

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Λίγα λόγια από το συγγραφέα...7

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

Διαχείριση Βάσης Δεδομένων (dbadmin)

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Βάσεις δεδομένων και Microsoft Access

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

Μαλούτα Θεανώ Σελίδα 1

Θέματα ανακεφαλαίωσης

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΦΑΚΕΛΟΙ ΚΑΙ ΑΡΧΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Βασίλης Πρέκας Β'3

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

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

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

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

ΚΤΙΡΙΑΚΕΣ ΥΠΟΔΟΜΕΣ Α.Ε. Οδηγίες Λειτουργίας Πληροφοριακού Συστήματος ηλεκτρονικής διαχείρισης Αιτημάτων. v1.3 (23/11/2014)

Σχεδιασμός μιας Β : Βήματα

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

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Βάσεις Δεδομένων Ενότητα 3

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

Βάσεις εδομένων ΘΕΜΑ ΕΡΓΑΣΙΑΣ. Μέρμηγκας Αλέξανδρος Α.Μ ιαχείρηση Πληροφοριακών Συστηματών

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

ΚΤΙΡΙΑΚΕΣ ΥΠΟΔΟΜΕΣ Α.Ε. Οδηγίες χρήσης Τελικού Χρήστη (Σ.Μ.) του Πληροφοριακού Συστήματος ηλεκτρονικής διαχείρισης Αιτημάτων. v1.

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Α Διαγώνισμα 1 ου Τριμήνου στο μάθημα της Πληροφορικής Γ Γυμνασίου Ονοματεπώνυμο:...

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Βάσεις Δεδομένων. Μιχάλης Μαλιάππης

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Διαδικασιακός Προγραμματισμός

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016

Διαδικασία σχεδιασμού Β.Δ.

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

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

Transcript:

ΛΕΥΚΗ ΜΟΤΣΟΒΟΛΕΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ ΑΘΗΝΑ [1]

ΚΕΦΑΛΑΙΟ 1.Βάσεις Δεδομένων Προσέγγιση με ένα παράδειγμα. Σε ένα σχολείο, ο απουσιολόγος κάθε τάξης έχει ένα τετράδιο στο οποίο έχει καταγράψει όλους τους μαθητές του τμήματός του, με τα εξής στοιχεία: ΚΑΤΑΛΟΓΟΣ ΟΝΟΜΑ ΔΙΕΥΘΥΝΣΗ ΑΡΙΘΜΟΣ_ΤΗΛ Μουρμούρας Ν Σάμου 15 11111 Τσιπούρας Κ Δωδώνης 27 22222 Σπάρος Σ Λέσβου 25 33333 Σε περίπτωση ανάγκης ή αδικαιολόγητης απουσίας κάποιου μαθητή, ο διευθυντής του σχολείου, βρίσκει τον απουσιολόγο και ζητά το τηλέφωνο ή τη διεύθυνση του μαθητή. Ο διευθυντής θεώρησε ότι γίνονταν πολλά λάθη στα στοιχεία των μαθητών και ο κατάλογος πολλές φορές δεν ήταν ενημερωμένος, πράγμα που σημαίνει, ότι ενώ πολλοί μαθητές είχαν αλλάξει τηλέφωνο ή διεύθυνση, οι απουσιολόγοι δεν είχαν ενημερώσει τον κατάλογο, δηλαδή δεν είχαν γράψει τις αλλαγές. Αποφάσισε να αναλάβει ο ίδιος τον έλεγχο του καταλόγου των μαθητών. Έτσι, κατέγραψε στο δίσκο ενός πολογιστή του σχολείου για κάθε έναν μαθητή, το όνομά, τη διεύθυνση και τον αριθμό τηλεφώνου του. Μ' άλλα λόγια, έγραψε κάποια συγκεκριμένα γεγονότα ή δεδομένα που αφορούν κάθε έναν μαθητή. Τα γεγονότα αυτά, όνομα, διεύθυνση και τηλέφωνο, επειδή αφορούν τον ίδιο μαθητή, λέμε ότι είναι συσχετισμένα μεταξύ τους. Στην καθημερινή ζωή, δε λέμε συνήθως γεγονότα το όνομα και τη διεύθυνση κάποιου, αλλά τα αναφέρουμε ως γνωρίσματα ή χαρακτηριστικά (attributes) ή ακόμα ως [2]

ιδιότητες. Όταν λέμε για παράδειγμα ότι κάποιος είναι μηχανικός, τότε του προσάπτουμε ένα γνώρισμα (μια ιδιότητα) που τον διαφοροποιεί από άλλους ανθρώπους. Τα γνωρίσματα ενός ανθρώπου ή ενός αντικειμένου ή ακόμα μιας έννοιας, μπορεί να είναι συγκεκριμένα μετρήσιμα μεγέθη ή κάποιες ιδιότητές τους. Ο κατάλογος του σχολείου, όπως είναι στον υπολογιστή, δηλαδή η συλλογή των ονομάτων των διευθύνσεων και των τηλεφώνων των μαθητών που είναι στο δίσκο του υπολογιστή, καλείται βάση δεδομένων (database). Από το παράδειγμα μπορεί να δει κανείς αμέσως κάποια πλεονεκτήματα που προσφέρει η βάση δεδομένων σε σχέση με τον κατάλογο που ήταν σε τετράδιο, όπως ταχύτητα στον εντοπισμό και την ανάκτηση των δεδομένων, ασφάλεια, κ.τ.λ. (Τα πλεονεκτήματα αυτά γίνονται λειτουργικά χαρακτηριστικά κρίσιμης σημασίας, αν αντί για το σχολείο με τους μαθητές του, θεωρήσουμε έναν οργανισμό όπως το ΙΚΑ με τους ασφαλισμένους του). Στις βάσεις δεδομένων, το σύνολο των μαθητών που θέλουμε να γράψουμε στον υπολογιστή, καλείται σύνολο οντοτήτων. Τα μέλη ( δηλαδή τα στοιχεία ) του συνόλου οντοτήτων (οι μαθητές και οι μαθήτριες του σχολείου), καλούνται οντότητες (entities). Κάθε μαθητής ή μαθήτρια είναι μια οντότητα που ανήκει στο σύνολο οντοτήτων Μαθητές. Όπως σε κάθε σύνολο, έτσι και στα σύνολα οντοτήτων τους δίνουμε ονόματα για να αναφερόμαστε σε αυτά και να τα ξεχωρίζουμε μεταξύ τους. Απαιτούμε από ένα σύνολο οντοτήτων, τα μέλη του να έχουν κοινές ιδιότητες. Τα γνωρίσματα που γράψαμε για κάθε μαθητή, δηλαδή οι κοινές τους ιδιότητες που μας ενδιέφεραν στο παράδειγμά μας ήταν: ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ και ΑΡΙΘΜΟΣ_ΤΗΛ Το σημαντικό είναι ότι [3]

τα γνωρίσματα αυτά (οι τιμές τους), προσδιορίζουν κατά μοναδικό τρόπο όλα τα μέλη του συνόλου. Ο διευθυντής που είναι υπεύθυνος για τη βάση, καλείται διαχειριστής της βάσης δεδομένων ( database administator), Ας ξαναπάρουμε τώρα τον κατάλογο της τάξης που είχαμε γράψει στο τετράδιο με τη μορφή: ΚΑΤΑΛΟΓΟΣ ΟΝΟΜΑ ΔΙΕΥΘΥΝΣΗ ΑΡΙΘΜΟΣ_ΤΗΛ Μουρμούρας Ν Σάμου 15 11111 Τσιπούρας Κ Δωδώνης 27 22222 Σπάρος Σ Λέσβου 25 33333 Τοποθετώντας την επικεφαλίδα ΟΝΟΜΑ, θέλουμε να δηλώσουμε ότι στη θέση αυτή και προς τα κάτω, θα γράφουμε τα ονόματα των μαθητών, δηλαδή το ΟΝΟΜΑ είναι επικεφαλίδα μιας στήλης στην οποία γράφουμε τα ονόματα των μαθητών, αντίστοιχα, στη θέση "ΔΙΕΥΘΥΝΣΗ" γράφουμε τις διευθύνσεις τους, και στη θέση "ΑΡΙΘΜΟΣ_ΤΗΛ" τους αριθμούς των τηλεφώνων τους. Την επικεφαλίδα ΟΝΟΜΑ, αν τη δούμε σαν θέση στην οποία θα τοποθετήσουμε ομοειδείς τιμές (δηλ. τα ονόματα των μαθητών και μαθητριών), την καλούμε πεδίο (field). Πεδία είναι και η ΔΙΕΥΘΥΝΣΗ, όπως και ο ΑΡΙΘΜΟΣ_ΤΗΛ. Αν δούμε το ΟΝΟΜΑ ως τη μικρότερη μονάδα δεδομένου ή πληροφορίας (δεν μπορούμε να την αποσυνθέσουμε περισσότερο σε `μικρότερες πληροφορίες), τότε καλείται και όρος δεδομένων (data item) ή και στοιχείο δεδομένων (data element). Θα σημειώσουμε ότι, το πεδίο και ο όρος δεδομένων είναι έννοιες ταυτόσημες. [4]

Στο προηγούμενο παράδειγμα, κάθε όρος δεδομένων ή πεδίο, παριστάνει ή έχει προσαρτημένο ένα σύνολο από ομοειδείς τιμές που καλείται πεδίο τιμών του πεδίου. Τα στοιχεία του πεδίου τιμών, ή διαφορετικά, οι τιμές που παριστάνει ένα πεδίο τις λέμε, Τιμές δεδομένων του πεδίου. Μαζί με κάθε πεδίο, θεωρούμε δεδομένες και τις τιμές του. Το σύνολο τιμών ενός πεδίου, είναι μια δεξαμενή από απλές και ομοειδείς τιμές, μέσα από την οποία παίρνει τιμές το πεδίο. Το είδος των δεδομένων που θα τοποθετηθεί σ' ένα πεδίο (αριθμοί ή λέξεις από χαρακτήρες κ.λπ. ) ονομάζεται τύπος δεδομένων (data type) του πεδίου. Όταν λέμε ότι οι τιμές του πεδίου είναι ομοειδείς, εννοούμε ότι ανήκουν σε ένα και μόνο τύπο, δηλαδή είναι, είτε λέξεις από χαρακτήρες που καλούνται συμβολοσειρές (strings) είτε ακέραιοι αριθμοί ή πραγματικοί κ.τ.λ. Αν πάρουμε τώρα, μια ομάδα από συσχετισμένους όρους δεδομένων (ή πεδία) οι οποίοι περιγράφουν πλήρως μια οντότητα, (αποτελούν μια ανώτερη μονάδα πληροφορίας από το πεδίο), την καλούμε μια εγγραφή. Για παράδειγμα, τα πεδία { ΟΝΟΜΑ. ΔΙΕΥΘΥΝΣΗ, ΑΡΙΘΜΟΣ_ΤΗΛ} είναι συσχετισμένα μεταξύ τους, είναι ιδιότητες καθενός μαθητή, το δε σύνολο των πεδίων αποτελεί μια εγγραφή και περιγράφει πλήρως την οντότητα "Μαθητής". Για να ξεχωρίζουμε μια ομάδα συσχετισμένων πεδίων από μια άλλη, δηλαδή την μία εγγραφή από την άλλη, δίνουμε στις εγγραφές ονόματα. Την προηγούμενη εγγραφή θα μπορούσαμε να την ονομάσουμε ΜΑΘΗΤΕΣ, ή ΚΑΤΑΛΟΓΟΣ, ή να της δώσουμε ένα οποιοδήποτε άλλο όνομα και να την παραστήσουμε με το σχήμα, ΜΑΘΗΤΕΣ(ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ, ΑΡΙΘΜΟΣ_ΤΗΛ) Αν μαζί με τα ονόματα των πεδίων γράψουμε και τους τύπους δεδομένων τους, τότε παίρνουμε τον τύπο της εγγραφής. [5]

Παράδειγμα: Τον τύπο της προηγούμενης εγγραφής "ΜΑΘΗΤΕΣ" τον αναφέρουμε ως εξής: Όνομα Εγγραφής Ονόματα Πεδίων Τύπος Δεδομένων ΜΑΘΗΤΕΣ ΟΝΟΜΑ Λέξη μέχρι 30 χαρακτήρες (Char(30)) ΔΙΕΥΘΥΝΣΗ Λέξη μέχρι 50 χαρακτ. (Char(50)) ΑΡΙΘΜΟΣ_ΤΗΛ Ακέραιοι Οι τιμές των πεδίων που αφορούν την ίδια οντότητα π.χ. 'Σπάρος Κ.' 'Χίου 15' 33333 είναι μια στιγμιαία δέσμευση (instance) ή μια εμφάνιση ή και συγκεκριμενοποίηση της εγγραφής. Κάθε γραμμή του παραπάνω πίνακα είναι και μια εμφάνιση της εγγραφής ΚΑΤΑΛΟΓΟΣ. Μια συλλογή από εμφανίσεις μιας εγγραφής του ίδιου τύπου καλείται αρχείο (file). Σύνοψη των εννοιών [6]

ΚΕΦΑΛΑΙΟ 2. Συστήματα Διαχείρισης Βάσεων Δεδομένων Τι είναι το Σύστημα Διαχείρισης μιας Βάσης Δεδομένων και ποιός είναι ο σκοπός του. Στο προηγούμενο κεφάλαιο είπαμε Τι είναι μια Βάση Δεδομένων και για να αναφέρουμε τους βασικούς όρους για τις βάσεις δεδομένων, θεωρήσαμε ως παράδειγμα τον κατάλογο των μαθητών ενός σχολείου. Η βάση αυτή είναι πολύ μικρή, αποτελείται από ένα αρχείο και συνεπώς η διαχείρισή της είναι πολύ απλή. Θα μπορούσαμε να την φτιάξουμε και να τη διαχειριστούμε με μια οποιαδήποτε γλώσσα προγραμματισμού. Υπενθυμίζεται ότι διαχείριση της βάσης, σημαίνει κυρίως, ανάκτηση, πρόσθεση, διαγραφή ή τροποποίηση των εγγραφών που έχουμε τοποθετήσει στα αρχεία της βάσης. Ας υποθέσουμε τώρα ότι έχουμε έναν μεγάλο οργανισμό όπως είναι το ΙΚΑ, η εφορία, ή μια μεγάλη τράπεζα και θέλουμε να καταγράψουμε στον υπολογιστή, όλες τις υπηρεσίες που προσφέρει ο οργανισμός, ή αντίστοιχα με τον κατάλογο των μαθητών, έστω ότι θέλουμε να καταγράψουμε όλους τους ασφαλισμένους στο ΙΚΑ. Το ΙΚΑ έχει περισσότερους από πέντε εκατομμύρια ασφαλισμένους. Για κάθε ασφαλισμένο θα έχουμε εκατοντάδες πεδία. Ο όγκος των δεδομένων που πρέπει να καταγράψουμε στη βάση είναι πολύ μεγάλος και η διαχείριση σε αυτή την περίπτωση είναι αρκετά πολύπλοκη. Η βάση αυτή, θα χρησιμοποιείται από χιλιάδες χρήστες. Όλοι οι υπάλληλοι του ΙΚΑ, αλλά και υπάλληλοι των άλλων οργανισμών, θα απαιτούν πληροφορίες από τη βάση οι οποίες μπορεί να κυμαίνονται από πολύ απλές ερωτήσεις, όπως π.χ. για το πότε συνταξιοδοτείται ένας ασφαλισμένος, έως πολύπλοκες πληροφορίες για τη λήψη σημαντικών αποφάσεων από τη Διοίκηση, όπως πρόβλεψη για την εξέλιξη των οικονομικών του οργανισμού στην επόμενη δεκαετία. Οι απαιτήσεις μας από μία μεγάλη βάση είναι αρκετές. Την ευθύνη για τα δεδομένα που θα τοποθετηθούν στη βάση, τις τροποποιήσεις ή διαγραφές που πρέπει να γίνουν, τα προγράμματα που θα αναπτυχθούν για την επεξεργασία των δεδομένων (δηλαδή οι εφαρμογές) και γενικά όλη τη [7]

διαχείριση της βάσης πρέπει την έχει αποκλειστικά ο διαχειριστής (ή οι διαχειριστές) της βάσης. Επειδή ο όγκος των δεδομένων σε μια βάση είναι πάρα πολύ μεγάλος και οι απαιτήσεις που έχουμε για πληροφόρηση πολύπλοκες, κάθε βάση δεδομένων περιέχει ένα σύνολο από κατάλληλα προγράμματα με τα οποία γίνεται ο σχεδιασμός της, η αποθήκευση και η διαχείριση των δεδομένων και γενικώτερα η επεξεργασία όλων των πληροφοριών. Το σύνολο αυτό των προγραμμάτων που υπάρχει σε κάθε βάση δεδομένων καλείται Σύστημα Διαχείρισης της Βάσης Δεδομένων (ή ΣΔΒΔ). Το ΣΔΒΔ είναι ένα σύνολο από προγράμματα, με τα οποία απλοποιείται και ταυτόχρονα υλοποιείται ο ορισμός, η κατασκευή και η διαχείριση της βάσης. Είναι το εργαλείο εκείνο, με το οποίο θα σχεδιάσουμε και θα διαχειριστούμε τη βάση δεδομένων. Ο ορισμός της βάσης αφορά τον προσδιορισμό της δομής των αρχείων της και γενικώτερα τον ορισμό ή περιγραφή της δομής της βάσης. Η κατασκευή της βάσης δεδομένων είναι η διαδικασία της αποθήκευσης, πάνω στο δίσκο του υπολογιστή, των δεδομένων της βάσης. Ας υποθέσουμε ότι θέλουμε να τοποθετήσουμε δεδομένα στο αρχείο ΚΑΤΑΛΟΓΟΣ(Όνομα, Διεύθυνση, Αριθμός_Τηλ) το ΣΔΒΔ μας απλοποιεί τη διαδικασία εισαγωγής δεδομένων με την εντολή: Insert Into ΚΑΤΑΛΟΓΟΣ Values(Τσιπούρας Κ, Δωδώνης 25, 11111 ); η οποία σημαίνει, Τοποθέτησε_στον_πίνακα ΚΑΤΑΛΟΓΟΣ τιμές(τσιπούρας Κ, Δωδώνης 25, 11111 ) ; [8]

Διαχείριση της βάσης, σημαίνει, υποβολή επερωτήσεων στη Βάση για την ανάκτηση δεδομένων, ή ενημέρωση της Βάσης, δηλαδή πρόσθεση, διαγραφή ή τροποποίηση δεδομένων. Οι επερωτήσεις και οι τροποποιήσεις της βάσης γίνονται με εντολές της "Γλώσσας Χειρισμού Δεδομένων" (ΓΧΔ) που περιέχεται στο ΣΔΒΔ και τις οποίες θα δούμε σε επόμενο κεφάλαιο Ένας πλήρης ορισμός ενός Συστήματος Βάσης Δεδομένων είναι ο ακόλουθος: Ορισμός Ένα Σύστημα Βάσης Δεδομένων, περιέχει τρία πράγματα: 1) Μια βάση δεδομένων, δηλαδή μια συλλογή από καλά οργανωμένες εγγραφές, τοποθετημένες όλες μαζί σ' ένα μέσο μαζικής αποθήκευσης (δίσκο ή ταινία). 2) Ένα σύνολο από προγράμματα, που καλείται Σύστημα Διαχείρισης της Βάσης Δεδομένων (ΣΔΒΔ), το οποίο, με έναν απλό και τυποποιημένο τρόπο, μας επιτρέπει να Ορίσουμε, να Αποθηκεύσουμε και να Χειριστούμε αποτελεσματικά τα δεδομένα της βάσης 3) Ένα σύνολο από εφαρμογές που αναπτύσσονται και εξυπηρετούνται από το ΣΔΒΔ, με τις οποίες ανακτούμε, προσθέτουμε, διαγράφουμε ή τροποποιούμε δεδομένα. Θα σημειώσουμε ότι το ΣΔΒΔ δεν μπορεί να ικανοποιήσει όλες τις απαιτήσεις μας για πληροφόρηση με απλές εντολές. Μπορούμε όμως με τις εντολές των γλωσσών που περιέχει το ΣΔΒΔ, να γράψουμε προγράμματα για κάποιο συγκεκριμένο σκοπό και να ικανοποιούμε οποιαδήποτε απαίτηση για πληροφόρηση. Τα προγράμματα αυτά τα καλούμε εφαρμογές και τα ενσωματώνουμε στη βάση. Σημειώνεται ακόμα, ότι με τον όρο "Βάση Δεδομένων" εννοούμε ένα "Σύστημα Βάσης Δεδομένων". Θα μπορούσαμε να χαρακτηρίσουμε πολύ απλά ένα ΣΔΒΔ, σαν το μέσον με το οποίο πραγματοποιείται η σύνδεση του χρήστη με το υλικό ή τα μέσα αποθήκευσης στα οποία κρατούνται τα δεδομένα. Εικόνα ενός ΣΔΒΔ [9]

[10]

ΚΕΦΑΛΑΙΟ 3. Χαρακτηριστικά ενός ΣΔΒΔ Όπως έχουμε αναφέρει και άλλοτε, το ΣΔΒΔ είναι ένα σύνολο από προγράμματα τα οποία μας διευκολύνουν να σχεδιάσουμε τη βάση, δηλαδή να ορίσουμε τα δεδομένα και τον τρόπο σύνδεσή τους, να την κατασκευάσουμε και τέλος να τη διαχειριστούμε. Δεν αρκεί όμως αυτό, για να χαρακτηρίσουμε ένα σύνολο από προγράμματα ως ΣΔΒΔ. Πολλά εμπορικά συστήματα που κυκλοφορούν στην αγορά, διευκολύνουν τους χρήστες να σχεδιάσουν και να αναπτύξουν μια βάση δεδομένων, χωρίς ωστόσο να είναι ΣΔΒΔ. Ένα σύνολο από προγράμματα, χαρακτηρίζεται ΣΔΒΔ, όχι από τον τρόπο κατασκευής τους, αλλά από τις λειτουργικές ιδιότητες που έχουν τα προγράμματα. Στη συνέχεια, θα σχολιάσουμε όλες εκείνες τις ιδιότητες που πρέπει να έχει υποχρεωτικά ένα σύνολο από προγράμματα, για να το χαρακτηρίσουμε ως Σύστημα Διαχείρησης Βάσης Δεδομένων. Ας υποθέσουμε πάλι ότι έχουμε μια μεγάλη βάση δεδομένων, όπως είναι η βάση μιας τράπεζας η οποία έχει π.χ. πέντε εκατομμύρια πελάτες και η εγγραφή για κάθε πελάτη περιέχει εκατοντάδες πεδία. Για να εξυπηρετηθεί κάποιος πελάτης από οποιοδήποτε πόλη, για να είναι δηλαδή η βάση λειτουργική, πρέπει το Σύστημα Διαχείρησης της Βάσης, να προσπελαύνει στα δεδομένα της βάσης και να εντοπίζει, αναγνωρίζει και ανακτά κάποια συγκεκριμένα δεδομένα στον ελάχιστο δυνατό χρόνο. Ο χρόνος προσπέλασης στα δεδομένα, πρέπει να είναι ανεξάρτητος από τον όγκο των δεδομένων. Μια τέτοια προσπέλαση τη χαρακτηρίζουμε αποτελεσματική. Έτσι, το κύριο χαρακτηριστικό ενός ΣΔΒΔ είναι, η ικανότητα προσπέλασης που έχει σε μεγάλες ποσότητες δεδομένων και μάλιστα, με αποτελεσματικό τρόπο. Τα συνήθη προγράμματα δεν μπορούν να μας δώσουν γρήγορη προσπέλαση σε τυχαία τμήματα των δεδομένων [11]

Οσο πιο μεγάλο πλήθος δεδομένων έχουμε, τόσο πιο απαραίτητη είναι η χρησιμοποίηση ενός ΣΔΒΔ. Εκτός από τιην παραπάνω σημαντική ιδιότητα ενός ΣΔΒΔ, άλλες ιδιότητες που τα χαρακτηρίζουν (και υπάρχουν σε όλα τα εμπορικά ΣΔΒΔ), είναι: Το μοντέλο δεδομένων Οι γλώσσες επερωτήσεων Η διαχείριση των συναλλαγών Η ασφάλεια των δεδομένων Η ακεραιότητα της βάσης Η συνέπεια της βάσης Το σύστημα καταλόγου [12]

3.1 Μοντέλο δεδομένων. Κάθε ΣΔΒΔ έχει ένα σύστημα για να διευκολύνει το χρήστη να βλέπει τα δεδομένα με έναν απλό και τυποποιημένο τρόπο. Το σύστημα αυτό καλείται Μοντέλο Δεδομένων. Σήμερα, όλα σχεδόν τα ΣΔΒΔ της αγοράς, έχουν ως μοντέλο δεδομένων το λεγόμενο Σχεσιακό Μοντέλο. Το μοντέλο αυτό προτάθηκε στη δεκαετία του 70 και επεκράτησε μέχρι σήμερα για την απλότητά του. Σε ένα Σχεσιακό Σύστημα Διαχείρισης Βάσης Δεδομένων, ο χρήστης βλέπει πάντοτε τα δεδομένα με τη μορφή πινάκων. ʼλλα μοντέλα που χρησιμοποιούνται είναι το Ιεραρχικό και το Δικτυωτό μοντέλο. Για να γίνει κατανοητός ο ρόλος του μοντέλου για τον ορισμό, την κατασκευή και τη διαχείριση μιας βάσης δεδομένων, θα αναφέρουμε το ακόλουθο, Παράδειγμα Θεωρείστε ότι κάποιος θέλει να χτίσει ένα σπίτι. Το πρώτο πράγμα που κάνει, είναι να συζητήσει με έναν μηχανικό πως θέλει να είναι το σπίτι του. Κατά τη διάρκεια της συζήτησης, προβάλλει κάποιες απαιτήσεις, τις οποίες ο μηχανικός λαμβάνει υπόψη του και φτιάχνει ένα πρώτο σκίτσο του σπιτιού, το οποίο και δείχνει στον ιδιοκτήτη (χρήστη), όπως θα φαίνεται το σπίτι εξωτερικά. Στη συνέχεια διαμορφώνει τους εσωτερικούς χώρους και αποτυπώνει την εσωτερική δομή του σπιτιού με κάθε λεπτομέρεια σε ένα σχέδιο, στο οποίο φαίνονται τα διάφορα δωμάτια, η σκάλα, οι διάδρομοι κ.λπ. Θα μπορούσαμε να πούμε ότι, το σχέδιο αυτό αποτυπώνει τη «λογική δομή» του σπιτιού. Τη λέμε λογική, γιατί οι έννοιες και τα αντικείμενα που αποτυπώνονται στο σχέδιο, παρουσιάζονται με ένα λογικό τρόπο, κατανοητό από το χρήστη. Αφού συμφωνήσει για τη λογική δομή του σπιτιού ο χρήστης, τότε ο μηχανικός στο επόμενο στάδιο, σχεδιάζει όλες τις λεπτομέρειες υλοποίησης του σπιτιού. Θα αποτυπώσει σε ένα άλλο σχέδιο [13]

τις κολόνες, τις δοκούς που θα τις συνδέουν, τα θεμέλια, τα σίδερα που θα πρέπει να τοποθετηθούν σε όλα αυτά, τις σωληνώσεις, θα προσδιορίζει με ακρίβεια τις διαστάσεις όλων αυτών και επιπλέον θα ορίσει ένα σωρό άλλες λεπτομέρειες που ο χρήστης δεν τις καταλαβαίνει από το σχέδιο, αλλά και δεν τον ενδιαφέρουν όλες αυτές οι λεπτομέρειες. Ο μηχανικός εκφράζει πάνω στο σχέδιο όλες τις λεπτομέρειες όχι με λέξεις, αλλά με σύμβολα. Δηλαδή κάνει αφαίρεση δεδομένων. Με τα κατάλληλα σύμβολα, παρουσιάζει σε ένα σχέδιο με έναν απλό και τυποποιημένο τρόπο (όλοι οι μηχανικοί χρησιμοποιούν τα ίδια σύμβολα) το σπίτι και τον τρόπο με τον οποίο θα κατασκευαστεί. Θα μπορούσαμε να το ονομάσουμε το σχέδιο αυτό, σχέδιο υλοποίησης του σπιτιού. Τέλος, ο εργολάβος παίρνει το σχέδιο υλοποίησης και φτιάχνει το σπίτι. Αντίστοιχη διαδικασία ακολουθείται και για το χτίσιμο μιας βάσης δεδομένων για κάποιον οργανισμό. Την όλη διαδικασία, με λεπτομέρειες, θα την αναφέρουμε σε επόμενο κεφάλαιο. Εδώ θα αναφέρουμε μόνο ότι η βάση δεδομένων θα σχεδιαστεί και θα υλοποιηθεί με το ΣΔΒΔ. Δηλαδή το ΣΔΒΔ βοηθά στην απλοποίηση του σχεδιασμού της βάσης και ταυτόχρονα την υλοποιεί. Επισημαίνουμε κάποιες αντιστοιχίες. Κατ αρχήν ο χρήστης ή οι χρήστες της βάσης συζητούν με το σχεδιαστή της βάσης τις απαιτήσεις τους. Για την ακρίβεια, συζητούν τη δουλειά που κάνει καθένας μέσα στον οργανισμό και τον τρόπο με τον οποίο την κάνει. Ο σχεδιαστής συγκεντρώνει τις απαιτήσεις των χρηστών και σύμφωνα με αυτές φτιάχνει ένα σκίτσο - ένα πρώτο σχέδιο - της βάσης δεδομένων που αποτελείται από λογικές έννοιες, όπως ΜΑΘΗΤΕΣ, ΤΑΞΕΙΣ, ΚΑΤΑΛΟΓΟΣ κ.λπ. Στη συνέχεια, μετατρέπει τις λογικές έννοιες σε τύπους εγγραφών (που θα γίνουν αρχεία στο δίσκο) και τις αποτυπώνει σε ένα σχέδιο. Στο σχέδιο αυτό, απεικονίζονται όλα τα πεδία με τους τύπους τους, οι τύποι εγγραφών, αλλά και όλοι οι τρόποι σύνδεσης μεταξύ τους. [14]

Πάνω σ αυτό το σχέδιο θα χτιστεί η πραγματική βάση δεδομένων. Γιατί πάνω στο δίσκο δεν τοποθετούμε λογικές έννοιες αλλά αρχεία. Για να κατασκευάσουμε το σχέδιο της βάσης δεδομένων, να το υλοποιήσουμε πάνω στο δίσκο αλλά και για να χειριστούμε τη βάση, πρέπει να εκφράσουμε τα δεδομένα με έναν απλό και τυποποιημένα τρόπο. Για την τυποποίηση και το χειρισμό των δεδομένων, απαιτούνται κατάλληλα σύμβολα. Το μοντέλο δεδομένων που είναι ενσωματωμένο στο ΣΔΒΔ μας παρέχει ακριβώς τα κατάλληλα σύμβολα που χρειαζόμαστε για όλες τις παραπάνω εργασίες. Το μοντέλο δεδομένων σε κάθε ΣΔΒΔ, είναι το κύριο εργαλείο με το οποίο πραγματοποιείται η αφαίρεση των δεδομένων, έτσι ώστε, ο χρήστης βλέπει μόνον τις λογικές έννοιες, όπως τα αντικείμενα, τις ιδιότητές τους καθώς και τις συσχετίσεις τους (τον τρόπο σύνδεσή τους) σε μια απλή και τυποποιημένη μορφή. Ο χρήστης όπως ήδη έχουμε επισημάνει, δε θέλει να βλέπει τα δεδομένα όπως είναι γραμμένα στο δίσκο, σαν λέξεις από 0 και 1, ούτε τον ενδιαφέρουν οι λεπτομέρειες αποθήκευσης των δεδομένων, δηλαδή αν είναι τοποθετημένα σε κατακερματισμένους (hash) πίνακες ή δένδρα κ.λπ., αντίθετα, θέλει να βλέπει τα δεδομένα σε μια απλή και κατανοητή μορφή, όπως ακριβώς τα καταλαβαίνει. Αυτό ακριβώς του προσφέρει το μοντέλο δεδομένων και ιδιαίτερα το σχεσιακό μοντέλο δεδομένων. Έτσι, το μοντέλο δεδομένων είναι το εργαλείο εκείνο, που θα μας διευκολύνει με την τυποποίηση των δεδομένων που μας προσφέρει, 1) στην περιγραφή της δομής της βάσης, επειδή περιέχει τα κατάλληλα σύμβολα για τον ορισμό των δεδομένων, 2) στην κατασκευή της, δηλαδή τη φυσική της υλοποίηση της πάνω στο μέσον αποθήκευσης (π.χ. στο δίσκο) και [15]

3) στο χειρισμό της, επειδή περιέχει τον κατάλληλο συμβολισμό για να κάνουμε πράξεις πάνω στα δεδομένα. Μπορούμε να πούμε ότι, σκοπός του μοντέλου, είναι να δώσει τον απαραίτητο συμβολισμό για την αφαίρεση των δεδομένων, αλλά και το συμβολισμό για μια κατάλληλη γλώσσα για τον ορισμό και το χειρισμό των δεδομένων. Σημειώνεται ακόμα, ότι χρησιμοποιώντας το μοντέλο, κάθε πεδίο ή εγγραφή ορίζεται κατά κανόνα μία και μοναδική φορά. Έτσι, στις τροποοιήσεις των δεδομένων αποφεύγονται πιθανά λάθη, δηλαδή η ασυνέπεια των δεδομένων. Παράδειγμα Θεωρούμε μια τράπεζα η οποία έχει μεγάλο πλήθος δεδομένων και παρέχει ένα μεγάλο αριθμό υπηρεσιών. Θα πάρουμε ένα πολύ μικρό μέρος από τις εργασίες της τράπεζας, για να δείξουμε μόνο τις διευκολύνσεις που παρέχει το σχεσιακό μοντέλο δεδομένων ενός ΣΔΒΔ.. Όπως κάθε οργανισμός, έτσι και η τράπεζα είναι οργανωμένη σε τμήματα, κάθε ένα από τα οποία εκτελεί κάποιες συγκεκριμμένες εργασίες. Στο τμήμα ΔΑΝΕΙΩΝ στο οποίο παρέχονται τα πάσης φύσεως δάνεια, όπως βιομηχανικά, στεγαστικά κ.λπ., χρησιμοποιούν μεταξύ άλλων το αρχείο : 1) ΔΑΝΕΙΑ(ΚΩΔΙΚΟΣ_ΔΑΝ, ΤΙΤΛΟΣ, ΠΟΣΟ) Με πεδία ΚΩΔΙΚΟΣ_ΔΑΝ, ΤΙΤΛΟΣ και ΠΟΣΟ και τύπους δεδομένων αντίστοιχα, ακέραιο, συμβολοσειρά και πραγματικό αριθμό για το τρίτο. Μια εγγραφή (για την ακρίβεια μια εμφάνισή της) για κάθε ένα δάνειο, είναι της μορφής, 115 Στεγαστικό 10000000 και έχει για τιμές πεδίων τον κωδικό του δανείου, τον τίτλο του δανείου και το ανώτατο ποσό που μπορεί να εγκριθεί. Στο τμήμα Συναλλαγών χρησιμοποιούν το αρχείο [16]

2) ΠΕΛΑΤΕΣ(ΚΩΔ_ΠΕΛ, ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ, ΤΗΛΕΦ.) με τύπο και για τα τρία πεδία τη συμβολοσειρά. Το πρώτο αρχείο αφορά τη συντήρηση του καταλόγου των δανείων που παρέχει η τράπεζα και το δεύτερο τη συντήρηση του καταλόγου των πελατών της τράπεζας, δηλ. νέες εγγραφές, διαγραφές πελατών κ.λπ. Υποθέτουμε ότι το αρχείο ΠΕΛΑΤΕΣ το χρησιμοποιούν και σε άλλα πέντε τμήματα της τράπεζας, όπως στο τμήμα Καταθέσεων κ.λπ. Όπως είπαμε, το μοντέλο δεδομένων, έχει τα κατάλληλα σύμβολα για να εκφράσουμε τα δεδομένα με ένα λογικό και τυποποιημένο τρόπο (αφαίρεση δεδομένων) πάνω σε ένα σχέδιο, κατανοητό από το χρήστη. Τα σύμβολα αυτά, όπως τα ονόματα σχέσεων (πινάκων), γνωρισμάτων (στηλών) τύπων πεδίων char, real κ.λπ. χρησιμοποιούνται από τις γλώσσες του ΣΔΒΔ για να ορίσουμε, αποθηκεύσουμε και να χειριστούμε τα δεδομένα. Ο σχεδιαστής στο σχεσιακό μοντέλο, θα απεικονίσει στο σχέδιο της βάσης, τα παραπάνω αρχεία με τον εξής απλό τρόπο: ΔΑΝΕΙΑ ΚΩΔΙΚΟΣ_ΔΑΝ ΤΙΤΛΟΣ ΠΟΣΟ ΠΕΛΑΤΕΣ ΚΩΔ_ΠΕΛ ΟΝΟΜΑ ΔΙΕΥΘ ΤΗΛΕΦ ΠΕΛΑΤΕΣ_ΜΕ_ΔΑΝΕΙΑ ΚΩΔΙΚΟΣ_ΔΑΝ ΚΩΔ_ΠΕΛ Την τρίτη σχέση ΠΕΛΑΤΕΣ_ΜΕ_ΔΑΝΕΙΑ(ΚΩΔΙΚΟΣ_ΔΑΝ, ΚΩΔ_ΠΕΛ) τη χρησιμοποιεί ο σχεδιαστής για να εκφράσει τη σύνδεση μεταξύ των δύο άλλων σχέσεων. Οι συνδέσεις όπως θα δούμε αργότερα, υλοποιούνται μέσω των κλειδιών των σχέσεων, μια σημαντική έννοια του μοντέλου δεδομένων. [17]

Παίρνουμε τις τρεις παραπάνω σχέσεις, τις μετατρέπουμε σε αρχεία πάνω στο δίσκο, εισάγουμε δεδομένα και στη συνέχεια οι χρήστες υποβάλλουν επερωτήσεις. Η διαδικασία είναι η εξής: Ορίζουμε τη δομή του αρχείου (της γλώσσας Sql): ΠΕΛΑΤΕΣ με την εντολή Create Table ΠΕΛΑΤΕΣ(ΚΩΔ_ΠΕΛ Char(5), Εισάγουμε εγγραφές ΟΝΟΜΑ Char(30), ΔΙΕΥΘΥΝΣΗ Char(50), ΤΗΛΕΦ Char(8) ) ; στο αρχείο με: Insert Into ΠΕΛΑΤΕΣ Values( '115', 'Κ. Μουρμούρας', Δωδώνης100, 22222 ) ; Όμοια και για τις άλλες σχέσεις. Στη συνέχεια με την εντολή Select..., οι χρήστες ανακτούν τα αποθηκευμένα δεδομένα. Υπενθυμίζεται ότι οι χρήστες θα βλέπουν τα αρχεία στην οθόνη με τη μορφή πινάκων χωρίς να τους ενδιαφέρει η σειρά εμάνισης των γραμμών ή των στηλών των πινάκων. Η απλότητα στην έκφραση (δηλ. το συντακτικό) των παραπάνω πράξεων, οφείλεται στο ΣΔΒΔ και ιδιαίτερα στα σύμβολα (π.χ. ονόματα στηλών, πινάκων) του σχεσιακού μοντέλου δεδομένων. Επίσης, το γεγονός ότι βλέπουμε ένα αρχείο με τη μορφή πίνακα, οφείλεται αποκλειστικά στο σχεσιακό μοντέλο δεδομένων του ΣΔΒΔ. Όπως βλέπουμε από το παράδειγμα, το αρχείο ΠΕΛΑΤΕΣ το ορίσαμε με την εντολή, Create..., μία και μοναδική φορά, ενώ γνωρίζουμε ότι το αρχείο αυτό θα το χρησιμοποιούν σε πέντε διαφορετικά τμήματα και σε πολλές εφαρμογές. Οι χρήστες θα χρησιμοποιήσουν τις εφαρμογές για όλα τα τμήματα, κυρίως για να εισάγουν νέες εγγραφές, π.χ. να καταγράψουν ένα νέο πελάτη ή ένα δάνειο, ή να διαγράψουν ή να τροποποιήσουν κάποιες εγγραφές που έχουν ήδη καταχωρηθεί στα αρχεία. Το αρχείο θα ενεργοποιείται κάθε φορά που ένας χρήστης τρέχει μια εφαρμογή η οποία το χρειάζεται. [18]

Η ιδιότητα αυτή, κάθε αρχείο ή τύπος εγγραφής να ορίζεται μία και μοναδική φορά και στη συνέχεια να καλείται, κάθε φορά που εκτελείται το πρόγραμμα εφαρμογής που τον χρειάζεται, οφείλεται στο μοντέλο δεδομένων του ΣΔΒΔ, το οποίο μας επιτρέπει να έχουμε τα αρχεία της βάσης ενοποιημένα. Η ενοποίηση των αρχείων είναι σημαντική, γιατί αποφεύγουμε να κρατάμε στο χώρο αποθήκευσης αντίγραφα των ίδιων δεδομένων πολλές φορές ή ακόμα και περιττά δεδομένα. Λιγώτερα δεδομένα σημαίνει οικονομία στον αποθηκευτικό χώρο και μεγαλύτερη αποτελεσματικότητα (ταχύτητα). Θα προσθέσουμε ακόμα ότι, επειδή ορίζουμε ένα αρχείο μια μόνο φορά, έχουμε μεγάλη ευελιξία, μπορούμε πιο εύκολα να αλλάξουμε τη δομή του όταν χρειάζεται, π.χ. να προσθέσουμε ένα επιπλέον πεδίο ή να αλλάξουμε τον τύπο δεδομένων σε ένα πεδίο του. Για όσους γνωρίζουν μια γλώσσα προγραμματισμού, θα υπενθυμίσουμε ότι όταν γράφουν μια εφαρμογή που επεξεργάζεται ένα αρχείο, στην αρχή του προγράμματος, στο τμήμα των δηλώσεων, θα αναφέρουν μεταξύ άλλων και τη δομή του αρχείου, δηλαδή τα πεδία του και τον τύπο δεδομένων τους. Αν χρειαστεί να αλλάξει η δομή σε κάποιο αρχείο, τότε θα χρειαστεί να αλλάξει και κάποιο από τα προγράμματα προσπέλασης σε αυτό το αρχείο, τουλάχιστο στο τμήμα των δηλώσεών του. Αντίθετα, τα προγράμματα ενός ΣΔΒΔ που χρησιμοποιούνται για την προσπέλαση στα δεδομένα της βάσης, είναι γραμμένα ανεξάρτητα από οποιοδήποτε συγκεκριμμένο αρχείο και έτσι μπορούν να προσπελαύνουν σε οποιοδήποτε αρχείο με δεδομένα ή σε πεδία αρχείων, ανεξάρτητα από την ονομασία τους, το πλήθος τους ή τον τύπο δεδομένων τους. Η περιγραφή (ή ο ορισμός) της δομής των αρχείων, αποθηκεύεται σε ένα ειδικό τμήμα του ΣΔΒΔ - στο Σύστημα Καταλόγου - ξεχωριστά από τα προγράμματα προσπέλασης. Η σημαντική αυτή ιδιότητα, καλείται ανεξαρτησία προγράμματος - δεδομένων. [19]

3.2 Γλώσσες επερωτήσεων. Tο ΣΔΒΔ περιέχει μια γλώσσα πολύ υψηλού επιπέδου, δηλαδή πολύ κοντά στη φυσική μας γλώσσα, με τις εντολές της οποίας ο χρήστης, 1) ορίζει τη δομή των δεδομένων (τον τύπο των πεδίων, τον τρόπο σύνδεσης των εγγραφών), 2) ορίζει τον τρόπο προσπέλασης στα δεδομένα και 3) εκτελεί πράξεις, δηλαδή χειρίζεται τα δεδομένα. Η γλώσσα αυτή καλείται γλώσσα επερωτήσεων (query language) Στο σχεσιακό μοντέλο η γλώσσα επερωτήσεων ονομάζεται SQL (Structure Query Languange). Τις εντολές της SQL θα τις αναπτύξουμε αναλυτικά σε επόμενο κεφάλαιο και θα αναφέρουμε παραδείγματα και για τις τρεις παραπάνω περιπτώσεις. Για λόγους θεωριτικούς κυρίως, συμφωνούμε ότι η γλώσσα του ΣΔΒΔ αποτελείται από δύο επιμέρους γλώσσες: { Τη γλώσσα ορισμού των υποσχημάτων τη θεωρούμε ίδια με τη Γλώσσα Ορισμού Δεδομένων}. 1) Τη Γλώσσα Ορισμού των Δεδομένων 2) Τη Γλώσσα Χειρισμού των Δεδομένων [20]

3.3 Διαχείριση Συναλλαγών Ένα σημαντικό πλεονέκτημα ενός ΣΔΒΔ είναι η ικανότητα να διαχειρίζεται ταυτόχρονα έναν μεγάλο αριθμό συναλλαγών. Συναλλαγές είναι διαδικασίες από διαδοχικές πράξεις που δρουν στα δεδομένα της βάσης. Οι βάσεις δεδομένων των μεγάλων οργανισμών είναι κατανεμημένες σε πολλά μέρη, με πολλούς υπολογιστές και εξυπηρετούν ταυτόχρονα χιλιάδες χρήστες. Ας πάρουμε τη βάση δεδομένων μιας μεγάλης αεροπορικής εταιρείας. Στη βάση αυτή, θα έχουμε ταυτόχρονη προσπέλαση στα δεδομένα της, από εκατοντάδες υπαλλήλους από πολλές διαφορετικές πόλεις ή ακόμα και διαφορετικές χώρες. Διαδοχικές προσπελάσεις στα ίδια δεδομένα δεν επιρρεάζουν η μια την άλλη. Υποθέστε όμως ότι για μια συγκεκριμένη πτήση γίνονται κρατήσεις θέσεων την ίδια στιγμή για την ίδια θέση, ή γίνονται κρατήσεις θέσεων τη στιγμή που κάποιος υπάλληλος ελέγχει τον αριθμό των κενών θέσεων. Ανάλογα προβλήματα παρουσιάζονται όταν γίνονται ταυτόχρονα πράξεις στο λογαριασμό ενός πελάτη σε μια τράπεζα. Δύο συναλλαγές που δρουν ταυτόχρονα πάνω στα ίδια δεδομένα, μπορεί να δημιουργήσουν προβλήματα και να μας δώσουν λανθασμένο αποτέλεσμα. Ετσι, κάθε συναλλαγή που τροποποιεί στοιχεία δεδομένων, πρέπει να τα "κλειδώνει", δηλαδή να μην επιτρέπει την ίδια στιγμή σε άλλες συναλλαγές να διαβάσουν ή να γράψουν πάνω σ' αυτά τα δεδομένα, μέχρις ότου ολοκληρωθεί. Το κλείδωμα των εγγραφών και γενικά η διαχείριση των συναλλαγών απαιτεί ιδιαίτερη προσοχή. Το κλείδωμα των εγγραφών ή των πεδίων είναι δύσκολο να υλοποιηθεί γιατί, απαιτείται οι αλγόριθμοι υλοποίησης να μην έχουν επιπτώσεις στην αποτελεσματικότητα του συστήματος ή την ακεραιότητα της βάσης [21]

Μπορεί το σύστημα να κλειδώνει εύκολα τα δεδομένα, αλλά να καθυστερεί υπερβολικά να απαντήσει σε μια αναζήτηση, ή μπορεί να οδηγεί τις συναλλαγές σε αδιέξοδα. Θεωρείστε για παράδειγμα μια συναλλαγή η οποία θα χρησιμοποιήσει ή συνδυάσει δεδομένα κατά σειρά από τις εγγραφές Α και Β και μια δεύτερη συναλλαγή η οποία θα συνδυάσει δεδομένα από τις εγγραφές Β και Α. Η πρώτη συναλλαγή θα κλειδώσει την εγγραφή Α για να πάρει τα δεδομένα που αναζητεί και στη συνέχεια θα προσπελάσει στη Β. Η δεύτερη συναλλαγή θα κλειδώσει την εγγραφή Β έως ότου πάρει τα δεδομένα που χρειάζεται, για να προσπελάσει στη συνέχεια στην Α. Όταν η πρώτη συναλλαγή τελειώσει με την εγγραφή Α και πάει στην Β, θα τη βρει κλειδωμένει εξ αιτίας της δεύτερης συναλλαγής. Θα πρέπει έτσι να περιμένει να τελειώσει η δεύτερη. Η δεύτερη συναλλαγή όταν τελειώσει με την εγγραφή Β και προσπαθήσει να πάρει στοιχεία από την Α θα τη βρει κλειδωμένη εξ αιτίας της πρώτης, έτσι κατ ανάγκη θα πρέπει να περιμένει. Είμαστε σε πλήρες αδιέξοδο. Οι αλγόριθμοι υλοποίησης των συναλλαγών είναι αρκετά πολύπλοκοι. Ένα ΣΔΒΔ πρέπει να έχει ένα είδος ελέγχου των ταυτόχρονων συναλλαγών για να προλαβαίνει ανεπιθύμητες προσπελάσεις στα ίδια δεδομένων από περισσότερες από μία συναλλαγές. [22]

3.4 Ασφάλεια Δεδομένων Ένα ΣΔΒΔ πρέπει να έχει την ικανότητα να προστατεύει τα δεδομένα της βάσης από οποιαδήποτε μηχανική βλάβη του συστήματος, από λανθασμένες διαγραφές ή τροποποιήσεις των δεδομένων, είτε γίνονται σκόπιμα είτε όχι., να ελέγχει την εγκυρότητα των δεδομένων σε σχέση με τους διάφορους περιορισμούς που έχουν επιβληθεί στα δεδομένα της βάσης και το σημαντικώτερο, να ελέγχει την προσπέλαση στα δεδομένα της βάσης για όλους τους χρήστες και να επιτρέπει να διαβάσουν ή να γράψουν σε κάποια αρχεία ή πεδία της βάσης, μόνον εκείνοι οι χρήστες οι οποίοι έχουν τη σχετική άδεια γι αυτό. Παράδειγμα Αν γίνει μια διακοπή ρεύματος ή μια μηχανική βλάβη στον υπολογιστή, πρέπει να μπορούμε να κάνουμε επαναφορά (recovery) της βάσης στην κατάσταση που είχαμε πριν τη διακοπή. Απ την άλλη μεριά, υποθέστε ότι κάποιος χρήστης εκτελεί μια συναλλαγή που αποτελείται από πέντε εντολές. Τη στιγμή που το σύστημα εκτελεί την τρίτη εντολή διακόπτεται το ρεύμα. Αν ήδη έχει καταγράψει τις δύο εντολές, τότε θα έχουμε λανθασμένα δεδομένα. Γι αυτές τις περιπτώσεις, για να αποφύγουμε την ασυνέπεια των δεδομένων, το σύστημα κλειδώνει τις εγγραφές ή τα σχετικά πεδία και όταν ολοκληρωθεί η συναλλαγή τότε μόνον γίνονται μόνιμες οι τυχόν τροποποιήσεις Στα δεδομένα της βάσης επιβάλλονται πολλοί περιορισμοί για να αποφεύγονται τα λάθη κατά τις διαγραφές ή τροποποιήσεις των εγγραφών. Θεωρούμε ότι έχουμε στο λογιστήριο μιας επιχείρισης μεταξύ άλλων δύο αρχεία. Στο ένα αρχείο κρατάμε όλα τα [23]

στοιχεία των εργαζομένων και στο άλλο αρχείο έχουμε τη μισθοδοσία τους. Θα πρέπει να έχουμε επιβάλλει στα δεδομένα κάποιον περιορισμό, ότι για να πληρωθεί κάποιος θα πρέπει να εργάζεται, δηλαδή να είναι στο αρχείο των εργαζομένων. Έτσι, κάθε φορά που πρόκειται να πληρωθεί κάποιος, το σύστημα ελέγχει αν είναι καταχωρημένος στο αρχείο εργαζομένων. Ένας άλλος περιορισμός θα μπορούσε να ήταν ότι, ο μισθός των υπαλλήλων στην επιχείριση δεν υπερβαίνει τις 400.000, έτσι δεν είναι δυνατό να γίνει λάθος και να πληρωθεί κάποιος με περισσότερα χρήματα, γιατί το σύστημα θα συγκρίνει κάθε φορά τον μισθό του με το παραπάνω ποσό. Δεν μπορούμε να θέτουμε πάρα πολλούς περιορισμούς στα δεδομένα μας, γιατί ο έλεγχος εγκυρότητας των δεδομένων που θα κάνει το ΣΔΒΔ ως προς τους περιορισμούς, θα έχει αρνητικές επιπτώσεις στην αποτελεσματικότητά του. Όπως είπαμε στην αρχή, το κυριώτερο αντικείμενο της ασφάλειας είναι ο έλεγχος που πρέπει να κάνει το ΣΔΒΔ έτσι ώστε να μην επιτρέπει την προσπέλαση σε αρχεία ή πεδία σε όσους χρήστες δεν έχουν σχετική άδεια. Ο έλεγχος της προσπέλασης στη βάση δεδομένων επιτυγχάνεται εύκολα, επιβάλοντας κωδικούς (συνθηματικά, passwords) σε διάφορα επίπεδα ασφαλείας. Κατ αρχήν όλοι οι χρήστες χρειάζονται ένα κωδικό για να χρησιμοποιήσουν τη βάση δεδομένων. Στη συνέχεια, ανάλογα με την εργασία τους και την ευαισθησία των δεδομένων τα οποία χειρίζονται, χρειάζονται επιπλέον κωδικούς. Επίσης μπορεί να έχουν για κάποια δεδομένα, την άδεια να τα βλέπουν μια συγκεκριμένη ώρα και για περιορισμένη χρονική διάρκεια ή από μια συγκεκριμένη θέση εργασίας κ.λπ. Για να μπορούν οι χρήστες να βλέπουν επιλεγμένα τμήματα από τα αρχεία, κάποια πεδία, αλλά όχι ολόκληρα τα αρχεία, το ΣΔΒΔ μας διευκολύνει με μια δομή που λέγεται "όψη" (view). Η όψη, μας επιτρέπει να συνδυάσουμε πεδία από ένα ή περισσότερα αρχεία και να ορίσουμε τη δομή ενός νέου φανταστικού αρχείου, δηλαδή ενός αρχείου που δεν υπάρχει πάνω στο δίσκο και το οποίο συμπεριφέρεται σα να είναι ένα πραγματικό, αποθηκευμένο αρχείο. [24]

Είναι η ιδιότητα που έχει το ΣΔΒΔ, να διατηρεί η βάση όλους τους περιορισμούς που έχουν επιβληθεί στις τιμές των δεδομένων της κάτω από οποιεσδήποτε τροποποιήσεις (πρόσθεση, διαγραφή ή ενημέρωση εγγραφών). Αν υπάρχει ο περιορισμός ότι «ο μισθός του υπαλλήλου δεν υπερβαίνει το μισθό του διευθυντή του» και εισαχθεί μια εγγραφή υπαλλήλου που δεν ικανοποιεί αυτόν τον περιορισμό, τότε η συγκεκριμένη εγγραφή πρέπει αυτόματα να διαγράφεται. Σε κάθε εισαγωγή ή τροποποίηση του πεδίου μισθός, όπως ήδη αναφέρθηκε και στην ασφάλεια των δεδομένων, πρέπει αυτόματα να γίνεται ο έλεγχος της προηγούμενης συνθήκης. [25]

3.5 Ακεραιότητα της βάσης Είναι η ιδιότητα που έχει το ΣΔΒΔ, να διατηρεί η βάση όλους τους περιορισμούς που έχουν επιβληθεί στις τιμές των δεδομένων της κάτω από οποιεσδήποτε τροποποιήσεις (πρόσθεση, διαγραφή ή ενημέρωση εγγραφών). Αν υπάρχει ο περιορισμός ότι «ο μισθός του υπαλλήλου δεν υπερβαίνει το μισθό του διευθυντή του» και εισαχθεί μια εγγραφή υπαλλήλου που δεν ικανοποιεί αυτόν τον περιορισμό, τότε η συγκεκριμένη εγγραφή πρέπει αυτόματα να διαγράφεται. Σε κάθε εισαγωγή ή τροποποίηση του πεδίου μισθός, όπως ήδη αναφέρθηκε και στην ασφάλεια των δεδομένων, πρέπει αυτόματα να γίνεται ο έλεγχος της προηγούμενης συνθήκης. [26]

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

3.7 Σύστημα καταλόγου Το σύστημα καταλόγου είναι ένα τμήμα του ΣΔΒΔ στο οποίο καταγράφονται όλες οι πληροφορίες που αφορούν τη δομή καθενός αρχείου, τον τύπο δεδομένων και τον τρόπο αποθήκευσης καθενός πεδίου, καθώς και όλοι οι περιορισμοί που επιβάλουμε στα δεδομένα. Οι πληροφορίες αυτές καλούνται μεταδεδομένα και περιγράφουν τη δομή της βάσης δεδομένων. Συνεπώς, ένα ΣΔΒΔ περιέχει όχι μόνον τη βάση δεδομένων, αλλά περιέχει με κάθε λεπτομέρεια και τον πλήρη ορισμό ή περιγραφή της βάσης. Το σύστημα καταλόγου είναι σημαντικό, γιατί με την πάροδο του χρόνου, καθώς αυξάνονται οι απαιτήσεις της επιχείρισης και χρειάζονται νέες εφαρμογές ή τροποποιήσεις στις εφαρμογές που ήδη υπάρχουν, οι προγραμματιστές πρέπει να γνωρίζουν λεπτομερώς τη δομή των δεδομένων και τους διάφορους περιορισμούς για να γράψουν ή να τροποποιήσουν τις εφαρμογές. Απ την άλλη μεριά, οι επιχειρίσεις δεν εξαρτώνται άμεσα από το προσωπικό που υλοποίησε τις τρέχουσες εφαρμογές. [28]

ΚΕΦΑΛΑΙΟ 4. Αρχιτεκτονική των Βάσεων Δεδομένων Στα προηγούμενα κεφάλαια, αναφέραμε, τι είναι μια Βάση δεδομένων και τον τρόπο με τον οποίο τη διαχειριζόμαστε, δηλαδή τι είναι το ΣΔΒΔ, ποιος είναι ο σκοπός του και ποια είναι τα σημαντικότερα χαρακτηριστικά του. Όταν λέμε Βάση Δεδομένων ή Σύστημα Βάσης Δεδομένων, εννοούμε, τα δεδομένα της βάσης που είναι μόνιμα στο δίσκο, το λογισμικό με το οποίο την ορίζουμε, την υλοποιούμε και τη διαχειριζόμαστε, δηλαδή το ΣΔΒΔ, καθώς και ένα σύνολο εφαρμογών με τις οποίες επεξεργαζόμαστε τα δεδομένα για να παίρνουμε τις πληροφορίες που θέλουμε. Στη συνέχεια θα εξετάσουμε την αρχιτεκτονική των βάσεων δεδομένων. Θα ταξινομήσουμε το πολύπλοκο λογισμικό του ΣΔΒΔ σε σχέση με τις λειτουργικές ιδιότητες των προγραμμάτων του. Αρχιτεκτονική των τριών Επιπέδων Λογικό επίπεδο της Βάσης Δεδομένων Το Επίπεδο της Όψης Το φυσικό επίπεδο της Βάσης Δεδομένων Σύνοψη Ανεξαρτησία Δεδομένων [29]

4.1. Αρχιτεκτονική των τριών Επιπέδων Όπως έχει αναφερθεί, το ΣΔΒΔ είναι το μέσον που συνδέει το χρήστη με το υλικό, δηλαδή το δίσκο του υπολογιστή πάνω στον οποίο είναι καταγραμμένα τα δεδομένα της βάσης. Ο χρήστης με τις εντολές της Γλώσσας Ορισμού δεδομένων, θα ορίσει τα αρχεία (τις δομές αποθήκευσης) που θα χρησιμοποιήσει για τα δεδομένα του, στη συνέχεια θα τοποθετήσει τα δεδομένα στα αρχεία και θα τα διαχειριστεί με τη Γλώσσα Χειρισμού Δεδομένων. Είναι αυτονόητο ότι το λογισμικό του ΣΔΒΔ αποτελείται από πολλά προγράμματα και είναι αρκετά πολύπλοκο. Για να κατανοήσουμε το σχεδιασμό ή την αρχιτεκτονική ενός ΣΔΒΔ και τον τρόπο λειτουργίας του, χωρίζουμε (θεωρητικά) το λογισμικό του σε τρία τμήματα ή τρεις ομάδες προγραμμάτων. Το πρώτο τμήμα, αντιστοιχεί στους χρήστες, οι οποίοι χειρίζονται λογικές έννοιες όπως ΒΙΒΛΙΑ, ΠΕΛΑΤΕΣ, ΥΠΑΛΛΗΛΟΙ, κ.λπ. και στις εφαρμογές τους, το δεύτερο τμήμα στην τυποποίηση, τον ορισμό και τον τρόπο σύνδεσης αυτών των εννοιών που επιτυγχάνεται με το μοντέλο δεδομένων και το τρίτο τμήμα αντιστοιχεί στον τρόπο αποθήκευσης αυτών των εννοιών στο δίσκο. Έτσι, με το λογισμικό του ΣΔΒΔ, από τον τελικό χρήστη που χειρίζεται έννοιες, όπως υπάλληλοι, βιβλία, λογαριασμούς κ.λπ., φτάνουμε στο δίσκο του υπολογιστή ο οποίος χρησιμοποιεί μόνον 0 και 1, τυποποιώντας τις έννοιες και προσθέτοντας λεπτομέρειες. Αν δούμε τη διαδικασία αντίστροφα, για να μετασχηματίσουμε τις συμβολοσειρές από 0 και 1 που είναι στο δίσκο του υπολογιστή, στις αντίστοιχες λογικές έννοιες που βλέπει ο τελικός χρήστης στην οθόνη του υπολογιστή, πρέπει να κάνουμε διαδοχικές αφαιρέσεις. Μπορούμε να θεωρήσουμε πολλά επίπεδα αφαίρεσης. Θα συμφωνήσουμε και θα δεχτούμε, τρία επίπεδα αφαίρεσης, τα οποία αντιστοιχούν στον παραπάνω θεωρητικό [30]

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

4.2 Λογικό επίπεδο της Βάσης Δεδομένων 2.1 Το Εννοιολογικό Σχήμα 2.2 Το Λογικό Σχήμα της Βάσης Δεδομένων [32]

4.2.1 Το Εννοιολογικό Σχήμα Όταν αποφασίσουμε να φτιάξουμε τη βάση δεδομένων για έναν οργανισμό, το πρώτο που έχουμε να κάνουμε, είναι, να καταγράψουμε με όλες τις λεπτομέρειες, όλες τις έννοιες και τα αντικείμενα που εμφανίζονται στον οργανισμό, μαζί με τις ιδιότητές του, δηλαδή, να καταγράψουμε τις οντότητες με τα γνωρίσματά τους, αλλά και τον τρόπο με τον οποίον εμπλέκονται μεταξύ τους, καθώς επίσης και τον τρόπο λειτουργίας του οργανισμού με κάθε δυνατή λεπτομέρεια. Ας ξαναπάρουμε το παράδειγμα του καταλόγου των μαθητών που χρησιμοποιήσαμε σε προηγούμενο κεφάλαιο. Υποθέτουμε ότι το σχολείο έχει και μια οργανωμένη βιβλιοθήκη η οποία εξυπηρετείται από τρεις υπαλλήλους, από την οποία οι μαθητές δανείζονται βιβλία για κάποιο χρονικό διάστημα. Θέλουμε να φτιάξουμε μια μικρή βάση δεδομένων, στην οποία θα έχουμε καταχωρήσει τους μαθητές, τους καθηγητές, τα βιβλία και τα στοιχεία των μαθητών ή καθηγητών που δανείζονται βιβλία. Θα καταγράψουμε με κάθε λεπτομέρεια: o o o o o o Τα στοιχεία των μαθητών. Τα στοιχεία των καθηγητών. Τα βιβλία τα οποία θα αναφέρονται με τον τίτλο, τον συγγραφέα κ.τ.λ. Τις διαδικασίες παραγγελίας, καταχώρισης και δανεισμού των βιβλίων. Τους μαθητές, τους καθηγητές και όσους έχουν δανειστεί βιβλία, με όλα τα στοιχεία τους, καθώς επίσης και τους περιορισμούς που επιβάλλονται από τη διαδικασία δανεισμού. Όπως για παράδειγμα, ένας μαθητής μπορεί να δανειστεί ένα βιβλίο για ένα μήνα ενώ ένας καθηγητής μόνο για εβδομάδα. Γενικά, θα γράψουμε σε φυσικό λόγο, σε μια έκθεση, οτιδήποτε εμφανίζεται, ή συμμετέχει στη διαδικασία της λειτουργίας της βιβλιοθήκης. Η παραπάνω διαδικασία, με την οποία καταγράφουμε μία προς μία, όλες τις έννοιες ή τα αντικείμενα που εμφανίζονται στη βιβλιοθήκη, καθώς και τον τρόπο λειτουργίας τους, ονομάζεται εννοιολογική ανάλυση της βάσης δεδομένων. [33]

Μια επιχείρηση, ή ένας οργανισμός επειδή αποτελούν ένα μικρόκοσμο, αναφέρονται συνήθως με τον όρο "πραγματικός κόσμος". Μπορούμε να πούμε ότι, η "εννοιολογική ανάλυση της βάσης δεδομένων" είναι, η συστηματική και λεπτομερής μελέτη του πραγματικού κόσμου. Μετά την εννοιολογική ανάλυση, αφού την κατανοήσουμε σε βάθος, παραλείπουμε τις λεπτομέρειες και εκφράζουμε τις οντότητες, τις ιδιότητές τους και τους περιορισμούς ακεραιότητας που επιβάλλονται πάνω στις οντότητες, μ έναν απλό και εύχρηστο τρόπο, όπως ακριβώς τις καταλαβαίνουν οι χρήστες (οι αρμόδιοι καθηγητές για το δανεισμό ή ο διευθυντής) της βάσης. Για παράδειγμα, οι χρήστες τις βιβλιοθήκης βλέπουν την Οντότητα : ΒΙΒΛΙΟ Με ιδιότητες ή Γνωρίσματα:: Τίτλος, Ον_Συγγρ, κ.τ.λ. Οντότητα: ΔΑΝΕΙΣΜΕΝΟ με Γνωρίσματα : Τίτλος, Ονομα δανειζόμενου, Ημερομηνία Δανεισμού, Ημερομηνία Επιστροφής Περιορισμός: Ένα βιβλίο για να είναι στο αρχείο ΔΑΝΕΙΣΜΕΝΟ, θα πρέπει να είναι καταχωρημένο πρώτα στο αρχείο ΒΙΒΛΙΟ, κλπ. Η καταγραφή των συνόλων οντοτήτων με τις ιδιότητες τους και τους περιορισμούς ακεραιότητας, (όπως λογικά τα καταλαβαίνουν οι χρήστες της βάσης), η οποία προκύπτει από την εννοιολογική ανάλυση, καλείται "Εννοιολογική Βάση Δεδομένων". Μ' άλλα λόγια, ονομάζουμε Εννοιολογική Βάση Δεδομένων, την αφαίρεση (όπως τη βλέπουν οι χρήστες) του πραγματικού κόσμου, που περιγράφεται στην εννοιολογική ανάλυση. [34]

Τις πληροφορίες για τις οντότητες, τις ιδιότητές τους και τον τρόπο σύνδεσής τους που έχουμε καταγράψει στην Εννοιολογική βάση δεδομένων, τις κωδικοποιούμε με κατάλληλα σύμβολα και τις εκφράζουμε όλες μαζί σε ένα σχέδιο. Το σχέδιο αυτό καλείται Εννοιολογικό σχήμα της βάσης. Υπενθυμίζεται εδώ, το παράδειγμα της κωδικοποίησης των πληροφοριών με σύμβολα που έχουμε στους χάρτες. Τα σύμβολα που θα χρησιμοποιήσουμε για το σχέδιο της εννοιολογικής βάσης, μας τα παρέχει ένα μοντέλο δεδομένων πολύ υψηλού επιπέδου (πολύ κοντά στη φυσική γλώσσα του χρήστη), που καλείται μοντέλο Οντότητα-Συσχέτιση. Στο μοντέλο αυτό και στην κατασκευή του εννοιολογικού σχήματος της βάσης δεδομένων, θα αναφερθούμε σε επόμενο κεφάλαιο. Προς το παρόν, θα αναφέρουμε μόνον σαν παράδειγμα ότι, η οντότητα ΒΙΒΛΙΟ που εμφανίζεται στην εννοιολογική βάση, παριστάνεται στο εννοιολογικό σχήμα, με ένα ορθογώνιο μέσα στο οποίο γράφουμε το όνομά της, δηλαδή "ΒΙΒΛΙΟ". Τα γνωρίσματα της οντότητας ΒΙΒΛΙΟ, γράφονται μέσα σε κύκλους ή ελλείψεις και συνδέονται με το ορθογώνιο. Έτσι, παριστάνουμε την οντότητα με τα γνωρίσματά της με το σχήμα: Σημειώνεται ότι, οι περιορισμοί ακεραιότητας που επιβάλλονται στα δεδομένα, θα πρέπει να εμφανίζονται στην εννοιολογική βάση δεδομένων και όχι στο εννοιολογικό σχήμα. [35]

[36]

4.2.2 Λογικό Σχήμα της Βάσης Δεδομένων Το εννοιολογικό σχήμα σχεδιάζεται αποκλειστικά με βάση τις πληροφορίες που περιέχει η εννοιολογική βάση και εκφράζονται οι πληροφορίες σ' αυτό το σχέδιο με ένα λογικό τρόπο, όπως ακριβώς τις καταλαβαίνει ο χρήστης. Απ' την άλλη μεριά, στον υπολογιστή δεν τοποθετούμε οντότητες, δηλαδή σχέσεις με τα γνωρίσματά τους, αλλά τύπους εγγραφών με τα πεδία τους, δηλαδή πίνακες με συγκεκριμένες στήλες. Και φυσικά, για να ορίσουμε και να κατασκευάσουμε τη βάση, θα πρέπει να εκφράσουμε τις εγγραφές, τους τύπους δεδομένων τους και τον τρόπο σύνδεσής τους με ένα συγκεκριμένο μοντέλο δεδομένων ενός ΣΔΒΔ της αγοράς. Έτσι, έχοντας υπόψη το συγκεκριμένο ΣΔΒΔ με το οποίο θα κατασκευάσουμε τη βάση δεδομένων, θα πρέπει να μετατρέψουμε το εννοιολογικό σχήμα, σε ένα άλλο σχέδιο πιο συγκεκριμένο, που υποστηρίζεται από το μοντέλο δεδομένων του ΣΔΒΔ που διαθέτουμε. Από την άποψη της υλοποίησης, το εννοιολογικό σχήμα αναφέρεται ως λογικό σχήμα της βάσης δεδομένων. Το Λογικό σχήμα της βάσης δεδομένων για έναν οργανισμό, σχεδιάζεται έχοντας υπόψη το μοντέλο δεδομένων ενός συγκεκριμένου ΣΔΒΔ και περιλαμβάνει, όλους τους τύπους εγγραφών και τις συσχετίσεις τους, έτσι ώστε, η συνολική δομή που αποτυπώνεται στο σχήμα, να αντανακλά με ακρίβεια τον ίδιο τον οργανισμό Στο λογικό σχήμα πρέπει να αποτυπώνονται με ακρίβεια, όλα τα δεδομένα και οι λειτουργίες ενός οργανισμού σε ένα ενιαίο σχέδιο. Πρέπει να τονίσουμε ότι και το εννοιολογικό σχήμα αντανακλά με ακρίβεια, τη δομή και τις λειτουργίες ενός οργανισμού. Το ίδιο ακριβώς συμβαίνει και με το λογικό σχήμα που στηρίζεται στις πληροφορίες του εννοιολογικού σχήματος, μόνο που περιέχει επιπλέον λεπτομέρειες για την υλοποίηση της βάσης. [37]

Επειδή όλα σχεδόν τα ΣΔΒΔ που διατίθενται σήμερα στην αγορά έχουν ως μοντέλο δεδομένων το σχεσιακό, το παράδειγμα της οντότητας ΒΙΒΛΙΟ που αναφέραμε στο εννοιολογικό σχήμα, εκφράζεται στο λογικό σχήμα της βάσης δεδομένων, με τη μορφή: Βιβλίο Τίτλος Ον-Συγγρ Τίτλος: χαρ(30) Ον-Συγγρ: χαρ(50) Βεβαίως το Λογικό σχήμα θα περιέχει αντίστοιχα σχέδια για τους τύπους εγγραφών για όλες τις οντότητες και για όλες τις συσχετίσεις τους που εμφανίζονται στο εννοιολογικό σχήμα. [38]

4.3 Το Επίπεδο της Όψης Το επίπεδο της όψης ή και εξωτερικό επίπεδο, στοχεύει στον τελικό χρήστη Θα πάρουμε πάλι το παράδειγμα της βιβλιοθήκης που αναφέραμε στο Λογικό σχήμα. Υποθέστε ότι φτιάξαμε την εννοιολογική βάση δεδομένων και κωδικοποιήσαμε όλες τις πληροφορίες της στο εννοιολογικό σχήμα της βάσης μέσω του μοντέλου οντότητασυσχέτιση. Οι εργασίες αυτές όπως έχουμε ήδη αναφέρει, είναι ανεξάρτητες από το λογισμικό. Στη συνέχεια, αφού επιλέξουμε ένα σχεσιακό ΣΔΒΔ, αποτυπώνουμε σε ένα σχέδιο, το λογικό σχήμα όπως το ονομάσαμε, τους τύπους εγγραφών όλων των οντοτήτων που εμφανίζονται στη βιβλιοθήκη, καθώς και τους τρόπους που συνδέονται μεταξύ τους. Το πώς ακριβώς θα γίνει αυτό, θα το δούμε σε επόμενα κεφάλαια. Το εννοιολογικό και το λογικό σχήμα της βάσης που έχουμε φτιάξει, δεν μας είναι χρήσιμα, αν δεν φτιάξουμε τις εφαρμογές (τα προγράμματα) που θα τρέχουν οι χρήστες. Για παράδειγμα, ένας χρήστης θέλει να τρέχει μια εφαρμογή για να χρεώνει τα βιβλία που θα δανείζονται οι μαθητές και οι καθηγητές, ας την ονομάσουμε ΔΑΝΕΙΣΜΟΣ. Ένας άλλος χρήστης θέλει να τρέχει μια εφαρμογή - ΚΑΤΑΛΟΓΟΣ_ΒΙΒΛΙΩΝ - για να καταχωρεί τα βιβλία με όλα τα στοιχεία τους και ένας τρίτος θέλει μια εφαρμογή ΚΑΤΑΛΟΓΟΣ_ΜΑΘΗΤΩΝ, για να καταγράφει τις απουσίες των μαθητών του σχολείου κ.λπ. Θα πρέπει πρώτα να σχεδιάσουμε αυτές τις εφαρμογές και στη συνέχεια να τις υλοποιήσουμε. Για να σχεδιάσουμε οποιαδήποτε εφαρμογή για τους χρήστες, θα στηριχτούμε στο εννοιολογικό σχήμα, ενώ για να φτιάξουμε την εφαρμογή (το πρόγραμμα που θα τρέχει), θα πρέπει να βασιστούμε αποκλειστικά στο λογικό σχήμα. Πιο συγκεκριμένα: Έστω ότι στο εννοιολογικό σχήμα, έχουμε μεταξύ άλλων και τα αρχεία: [39]

1) ΒΙΒΛΙΑ(ΤΙΤΛΟΣ, ΟΝΟΜΑ_ΣΥΓΓΡ) 2) ΚΑΤΑΛ_ΜΑΘΗΤΩΝ(ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ, ΤΗΛ) 3) ΔΑΝΕΙΖΟΜΕΝΟΙ(ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ, ΤΗΛ) Η εφαρμογή ΔΑΝΕΙΣΜΟΣ, χρησιμοποιεί το τμήμα του εννοιολογικού σχήματος που αφορά μόνο, o o o την οντότητα ΒΙΒΛΙΑ με γνωρίσματα τον ΤΙΤΛΟ και το ΟΝΟΜΑ_ΣΥΓΓΡ χωρίς να μας ενδιαφέρουν τυχόν άλλα γνωρίσματα που υπάρχουν, την οντότητα ΔΑΝΕΙΖΟΜΕΝΟΙ με γνωρίσματα το ΟΝΟΜΑ, την ΔΙΕΥΘΥΝΣΗ και το ΤΗΛΕΦΩΝΟ, για όσους από τους μαθητές και καθηγητές δανείζονται κάποια βιβλία και θα περιέχει επίσης κάποια σύνδεση αυτών των δύο οντοτήτων. Για τη παραπάνω εφαρμογή, δεν παίζει κανένα ρόλο, ούτε βεβαίως θα χρησιμοποιηθεί π.χ. το αρχείο των προμηθευτών της βιβλιοθήκης. Για να φτιάξουμε την εφαρμογή ΔΑΝΕΙΣΜΟΣ, θα χρησιμοποιήσουμε τα ίδια αρχεία τα οποία χρειαζόμαστε, όπως τα έχουμε όμως στο λογικό σχήμα, με τους τύπους δεδομένων των πεδίων τους κ.τ.λ. Η εφαρμογή για την καταχώριση των βιβλίων, θα χρησιμοποιεί ένα άλλο τμήμα του εννοιολογικού σχήματος (κάποια αρχεία με όλα ή μερικά πεδία τους). Η εφαρμογή ΔΑΝΕΙΣΜΟΣ, όπως και κάθε εφαρμογή, χρησιμοποιεί μόνον εκείνα τα τμήματα του εννοιολογικού σχήματος, τα οποία είναι απαραίτητα για να εκπληρώσει το σκοπό για τον οποίο φτιάχνεται. Το μέρος εκείνο της εννοιολογικής βάσης δεδομένων (ή και του εννοιολογικού σχήματος) πάνω στο οποίο στηρίζεται ο σχεδιασμός μιας εφαρμογής, αν το διαχωρίσουμε από την υπόλοιπη εννοιολογική βάση και το θεωρήσουμε σαν μια ξεχωριστή ενότητα το καλούμε όψη. Δηλαδή, ονομάζουμε όψη (view), το μέρος εκείνο της εννοιολογικής βάσης δεδομένων, που αντιστοιχεί σε μία εφαρμογή. [40]

Το τμήμα εκείνο του λογικού σχήματος, που περιέχει τους τύπους εγγραφών και τις συνδέσεις μόνον εκείνων των οντοτήτων που εμφανίζονται στην όψη και βάσει του οποίου υλοποιείται η εφαρμογή, καλείται ένα " υποσχήμα". Μ' άλλα λόγια, μια όψη είναι ένα μέρος της εννοιολογικής βάσης, ενώ το υποσχήμα είναι το σχέδιο της παρμένο από το λογικό σχήμα. Για κάθε συλλογή δεδομένων που υπάρχουν μέσα στη βάση, μπορούμε να φτιάξουμε μια όψη η οποία να περιέχει ακριβώς αυτά τα δεδομένα. Όταν λοιπόν θέλουμε κάποιοι χρήστες να έχουν πρόσβαση μόνο σε συγκεκριμένα τμήματα δεδομένων, τότε, φτιάχνουμε μια όψη από αυτά ακριβώς τα δεδομένα και τα βλέπουν μόνον εκείνοι οι χρήστες που έχουν τη σχετική πρόσβαση στην όψη. Συνεπώς οι όψεις είναι σημαντικές γιατί μας δίνουν και τη δυνατότητα της ασφάλειας των δεδομένων. Για να δηλώνουμε όψεις με την SQL, χρησιμοποιούμε τις εντολές ορισμού δεδομένων (τη ΓΟΔ) και για να εκτελέσουμε πράξεις πάνω στις όψεις τις εντολές χειρισμού δεδομένων. Κάποια ΣΔΒΔ περιέχουν μια κατάλληλη γλώσσα, η οποία καλείται γλώσσα ορισμού δεδομένων υποσχήματος για τον ορισμό των όψεων και για την εκτέλεση των πράξεων τη γλώσσα χειρισμού δεδομένων υποσχήματος. [41]

4.4 Το φυσικό επίπεδο της Βάσης Δεδομένων Για να εγκαταστήσουμε τη βάση δεδομένων που έχουμε σχεδιάσει στο δίσκο ενός υπολογιστή, πρέπει πρώτα να ορίσουμε τη δομή των αρχείων και στη συνέχεια να τοποθετήσουμε τα δεδομένα. Ο σχεδιασμός των δομών αποθήκευσης γίνεται αυτόματα από το ΣΔΒΔ με τις εντολές της Γλώσσας Ορισμού Δεδομένων. Όπως ήδη έχουμε πει και άλλοτε, με την εντολή: Create Table ΒΙΒΛΙΑ(ΤΙΤΛΟΣ Char(30), ΟΝ_ΣΥΓΓΡ Char(50) ) ; ορίζουμε και ταυτόχρονα απαιτούμε από το ΣΔΒΔ να φτιάξει στο δίσκο το αρχείο ΒΙΒΛΙΑ με τη συγκεκριμένη δομή, δηλαδή τα δύο πεδία με τους τύπους τους. Επιπλέον, για να έχουμε πολύ γρήγορη ανάκτηση των εγγραφών του αρχείου, με την εντολή, Create Index Ε On ΒΙΒΛΙΑ (ΟΝ_ΣΥΓΓΡ ASC) ; η οποία σημαίνει Δημιούργησε το_ευρετήριο Ε Στον_πίνακα ΒΙΒΛΙΑ (στη_στήλη ΟΝ_ΣΥΓΓΡ ταξινομημένη σε αύξουσα τάξη); ορίζουμε και απαιτούμε να φτιάξει ένα ευρετήριο για το αρχείο ΒΙΒΛΙΑ πάνω στις τιμές του πεδίου ΟΝ_ΣΥΓΓΡ. Θα μπορούσαμε ακόμα με άλλες εντολές, να απαιτήσουμε από το σύστημα να τοποθετήσει τις εγγραφές του αρχείου σε κάποια συγκεκριμένη δομή αποθήκευσης, π.χ. σε ένα δένδρο. Ο τρόπος με τον οποίο το ΣΔΒΔ θα υλοποιήσει τις απαιτήσεις μας, δηλαδή πως θα σχεδιάσει το αρχείο, το ευρετήριο, τη δομή αποθήκευσης, ποιούς αλγορίθμους θα χρησιμοποιήσει, δεν μας ενδιαφέρει. Το ενδιαφέρον μας αρχίζει από το επίπεδο του αρχείου και πάνω. Έτσι, η φυσική βάση δεδομένων, είναι μια συλλογή από αρχεία και ευρετήρια (indices) ή άλλες δομές αποθήκευσης, τις οποίες χρησιμοποιούμε για να προσπελαύνουμε στα αρχεία αποτελεσματικά. [42]