Μ
ετά την εμπειρία της ανάπτυξης μίας παραθυρικής
εφαρμογής Java, βάζουμε στο παιχνίδι και τη χρήση
μίας βάσης δεδομένων για τη διατήρηση και διαχείρι-
ση των δεδομένων της εφαρμογής. Αυτή η μέθοδος σε συν-
δυασμό με το γραφικό περιβάλλον αυξάνει κάπως την πολυ-
πλοκότητα του κώδικα, καθώς η εφαρμογή μας πρέπει να
συνδεθεί με ένα άλλο λογισμικό, το Σύστημα Διαχείρισης της
Βάσης Δεδομένων (Data Base Management System, DBMS).
Το πρόγραμμα πρέπει να συμμορφωθεί με τους κανόνες της
προγραμματιστικής διεπαφής JDBC (Java Data Base
Connectivity) για τη συνδεσιμότητα της εφαρμογής Java με τη
βάση δεδομένων, ενώ παράλληλα πρέπει να προλάβουμε
ανεπιθύμητες ενέργειες του χρήστη. Το θετικό είναι ότι απαλ-
λασσόμαστε από το φόρτο ανάπτυξης δικού μας κώδικα για
την οργάνωση και την προσπέλαση των αρχείων της εφαρμο-
γής, όπως συνέβαινε παλαιότερα. Η χρήση βάσεων δεδομέ-
νων λύνει πολλά από τα προβλήματα διαχείρισης και χρησι-
μοποιείται από τη συντριπτική πλειονότητα των εφαρμογών
που διατηρούν τα δεδομένα τους σε αρχεία.
Η βάση δεδομένων
Μία βάση δεδομένων αποτελείται από ένα σύνολο αρχείων
στα οποία αποθηκεύονται τόσο τα δεδομένα όσο και τα μετα-
δεδομένα, δηλαδή οι πληροφορίες για τον τρόπο οργάνωσης
των δεδομένων (ονόματα πινάκων, πεδίων, τύποι δεδομένων,
κλειδιά, ευρετήρια κ.λπ.) που ονομάζονται και λεξικό των δε-
δομένων. Ένα σύστημα διαχείρισης βάσεων δεδομένων είναι
το λογισμικό που διαχειρίζεται μία ή περισσότερες βάσεις δε-
δομένων. Για παράδειγμα, ένα αρχείο .db είναι μία βάση δε-
δομένων που μπορεί να διαχειριστεί το σύστημα διαχείρισης
OpenOffice Base. Στα περισσότερα βέβαια συστήματα που
χρησιμοποιούμε, όπως στην περίπτωση του Java DB, μία βά-
ση δεδομένων δεν αποτελείται από ένα αρχείο, αλλά το λιγό-
τερο από έναν φάκελο στον οποίο φυλάσσονται όλα τα σχετι-
κά αρχεία. Το Java DB δημιουργεί και διαχειρίζεται σχεσιακές
βάσεις δεδομένων. Σε μία σχεσιακή βάση τα δεδομένα οργα-
νώνονται σε πίνακες (σχέσεις). Κάθε γραμμή ενός πίνακα
αποτελεί μία εγγραφή και περιλαμβάνει στοιχεία για μία οντό-
τητα η οποία ενδιαφέρει την εφαρμογή μας, δηλαδή στοιχεία
σχετικά με ένα άτομο, ένα μέγεθος, μία κατάσταση κ.ά. Οι
στήλες κάθε εγγραφής ονομάζονται πεδία, στα οποία κρα-
τούνται τα στοιχεία, τα χαρακτηριστικά, της οντότητας, όπως
το όνομα, το επώνυμο, ο αριθμός μητρώου κ.ά. Κάθε πίνακας
κρατά πληροφορίες για ομοειδείς οντότητες, π.χ., ένας πίνα-
κας για μαθητές, ένας για μαθήματα κ.ο.κ. Τέλος, για να ανα-
παραχθούν χρήσιμες πληροφορίες, λ.χ., ποιος μαθητής πα-
ρακολουθεί ποιο μάθημα, οι πίνακες μπορούν να συσχετίζο-
νται μεταξύ τους.
Μοντέλο επικοινωνίας
Η αρχιτεκτονική που χρησιμοποιούμε στην εφαρμογή μας
ονομάζεται δύο δεσμών (two-tier). Από τη μία πλευρά έχουμε
την εφαρμογή, τον πελάτη ή καταναλωτή των δεδομένων και
από την άλλη τον πάροχο ή διακομιστή των δεδομένων, δη-
λαδή τη βάση. Εκμεταλλευόμενοι αυτό το μοντέλο, αρκεί να
ασχοληθούμε μόνο με την ανάπτυξη του κώδικα που αποτυ-
πώνει τη λογική λειτουργίας της εφαρμογής, τη σχεδίαση και
λειτουργία της γραφικής διεπαφής και τη διασύνδεση με τη
βάση δεδομένων. Η συντριπτική πλειονότητα των σύγχρονων
εφαρμογών βασίζονται στην αρχιτεκτονική δύο δεσμών. Με-
γαλύτερες εφαρμογές χρησιμοποιούν την αποτελεσματικότε-
ρη αρχιτεκτονική των τριών δεσμών (three-tier), όπου μεταξύ
της εφαρμογής και της βάσης δεδομένων παρεμβάλλεται
ένας διακομιστής εφαρμογών, ο οποίος αναλαμβάνει την επι-
κοινωνία με τη βάση δεδομένων, δίνοντας στον κώδικα της
εφαρμογής μεγαλύτερη ευελιξία και ανεξαρτησία από σχε-
διαστικές λεπτομέρειες του συστήματος διαχείρισης της βά-
σης δεδομένων.
Η επικοινωνία της εφαρμογής μας με τη βάση δεδομένων
επιτυγχάνεται χρησιμοποιώντας τη βασισμένη σε Java τεχνο-
λογία προσπέλασης βάσεων δεδομένων, JDBC (Java Data
Base Connectivity). Πρόκειται για μία προγραμματιστική διε-
παφή εφαρμογών (Application Programming Interface, API)
για προγράμματα Java, με την οποία ορίζεται ο τρόπος επι-
κοινωνίας ενός προγράμματος πελάτη με μία βάση δεδομέ-
νων που έχει το ρόλο του διακομιστή [1].
Εγκατάσταση του Java DB (Apache Derby)
Το Java DB είναι η υποστηριζόμενη από την Oracle έκδοση
της ανοικτού κώδικα βάσης δεδομένων, Apache Derby. Περι-
λαμβάνεται (από την έκδοση 7 και μετά) στο JDK [2]. Χρησι-
μοποιούμε το Java DB, καθώς είναι εξ ολοκλήρου γραμμένο
και συμβατό με την Java. Διαθέτει τόσο δικτυακή λειτουργία,
για σύνδεση σε εξυπηρετητή μέσω δικτύου όσο και ενσωμα-
τωμένη λειτουργία, την οποία χρησιμοποιούμε στο παράδειγ-
μά μας, όπου το σύστημα διαχείρισης εκτελείται μέσα στην ει-
κονική μηχανή της Java (JVM) και μόνο η εφαρμογή μας μπο-
Linux Inside
84
Το Java DB δημιουργεί και διαχειρίζεται
σχεσιακές βάσεις δεδομένων. Σε μία σχεσιακή
βάση τα δεδομένα οργανώνονται σε πίνακες
(
σχέσεις).
Του Κωνσταντίνου Δελησταύρου <delistavrou@gmail.com>
Linux Labs - Java
Σε αυτό το μάθημα προγραμματισμού Java
αναπτύσσουμε μία μικρή, αλλά πλήρη λειτουργιών,
παραθυρική εφαρμογή βάσης δεδομένων.
Εργαλεία:
Java, Eclipse, Java
DB (Apache Derby)
Δυσκολία:
URL:
goo.gl/deacm
Οδηγοί
εκμάθησης
Δημιουργία Java εφαρμογής βάσης
δεδομένων με γραφικό περιβάλλον
Ο Κωνσταντίνος είναι εκπαιδευτικός Πληροφορικής στη δευτεροβάθμια επαγγελματική εκπαίδευση.