Περιεχόμενα Δικαιώματα Υποχρεώσεις η-Πνύκα Αναζήτηση

Βάσεις Δεδομένων και Πληροφοριών
Προηγούμενη Σελίδα

  

  

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

Μιχάλης Γκατζώνης, Απόστολος Ζώτος και Δημήτριος Σωτηρίου

 Μάιος 2005

   

Περιεχόμενα

 

1. Εισαγωγή_

2. Μοντέλα Δεδομένων

3. Το Σχεσιακό Μοντέλο_

3.1 Επιλογή (selection)

3.2 Προβολή (projection)

3.3 Σύνδεση (join)

4. Μεταφορά Σχεσιακού Μοντέλου σε Υπολογιστή_

ΠΑΡΑΡΤΗΜΑ: Δημιουργία μιας βάσης δεδομένων με τη χρήση του ειδικού λογισμικού Access, της εταιρείας Microsoft

Βιβλιογραφία_

 

1. Εισαγωγή

Ένα Σύστημα Διαχείρισης Βάσης Δεδομένων (ΣΔΒΔ) (Database Management System) είναι ένα πακέτο λογισμικού (software package), που έχει ως κύριους στόχους τη συστηματική αποθήκευση (storage), αναζήτηση (retrieval) και συντήρηση (maintenance) δεδομένων.

Οι διάφορες επιχειρήσεις και Οργανισμοί χρησιμοποιούν τα ΣΔΒΔ ως "εργαλεία" για την αποδοτικότερη λειτουργία, διοίκηση και προγραμματισμό τους. Αυτό σημαίνει ότι οι χρήστες (users) περιμένουν πολλά οφέλη από τη χρήση των ΣΔΒΔ, όπως βελτίωση της παραγωγικής διαδικασίας, ταχύτερη εξυπηρέτηση του πελάτη, ορθολογικότερες διοικητικές αποφάσεις, κλπ. Αυτό εξηγεί γιατί σήμερα λειτουργούν σε παγκόσμια κλίμακα ένας μεγάλος αριθμός ΣΔΒΔ και ξοδεύονται τεράστια ποσά για την ανάπτυξη, λειτουργία και συντήρησή τους.

Αν θελήσουμε να περιγράψουμε ένα τυπικό περιβάλλον λειτουργίας ενός ΣΔΒΔ, θα διαπιστώσουμε ότι υπάρχουν 4 βασικά συστατικά: Δεδομένα (data), υλικό (hardware), λογισμικό (software) και χρήστες (users).

Η Βάση Δεδομένων (ΒΔ)  είναι ένα τμήμα του ΣΔΒΔ που αποθηκεύει τα δεδομένα ενός Οργανισμού. Πριν από την εμφάνιση της τεχνολογίας των ΒΔ, τα δεδομένα φυλάσσονταν σ' ένα σύνολο διακεκριμένων αρχείων. Σήμερα, σε μία ΒΔ τα δεδομένα είναι ολοκληρωμένα (integrated) και καταμερισμένα (shared). Ο όρος ολοκληρωμένα δηλώνει ότι η ΒΔ αποτελείται από την ένωση διακεκριμένων αρχείων. Τα πλεονάζοντα (redundant) δεδομένα αποθηκεύονται όσο το δυνατόν λιγότερες φορές. Ο όρος καταμερισμένα δηλώνει ότι τα ίδια δεδομένα μπορούν να τα χρησιμοποιούν διαφορετικοί χρήστες, σε διαφορετικές ή ακόμα και την ίδια χρονική στιγμή.

Οι ΒΔ αποθηκεύονται, συνήθως σε δευτερεύουσες μνήμες (όπως οι σκληροί δίσκοι - Hard Disks), στους οποίους υπάρχει η δυνατότητα τυχαίας προσπέλασης (random access).

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

            

2. Μοντέλα Δεδομένων

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

Κατ' αρχήν, τα δεδομένα που αποθηκεύονται και χρησιμοποιούνται από ένα ΣΔΒΔ αντιπροσωπεύουν πληροφορίες για εκείνο το τμήμα του «κόσμου» με το οποίο σχετίζεται η συγκεκριμένη εφαρμογή. Για μια μονάδα υγείας, για παράδειγμα, ο «κόσμος» αποτελείται από πολίτες / ασθενείς, παράπονα, διαγνώσεις, δοσολογίες φαρμάκων, κλπ. και αυτές είναι οι οντότητες (entities) ή τα αντικείμενα (objects) τα οποία αντιπροσωπεύονται από τα δεδομένα και τις πληροφορίες σε ένα σύστημα υγείας..

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

Οι ιδιότητες οι οποίες είναι σχετικές και για τις οποίες αποθηκεύονται τα δεδομένα ονομάζονται γνωρίσματα (attributes). Οντότητες του ίδιου είδους έχουν το ίδιο σύστημα γνωρισμάτων και λέμε ότι σχηματίζουν ένα σύνολο οντοτήτων (entity set) ή μια κατηγορία οντοτήτων (entity category) ή μια κλάση οντοτήτων (entity class). Έτσι στο παράδειγμά μας, το σύνολο όλων των ασθενών σχηματίζει ένα σύνολο οντοτήτων, αφού κάθε ασθενής έχει τα γνωρίσματα όνομα, διεύθυνση κλπ.  

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

Τυπικά Σύνολα Οντοτήτων, Χαρακτηριστικά Γνωρίσματα, Κλειδιά και Σχέσεις για Ποικίλες Εφαρμογές της Επεξεργασίας Δεδομένων

 

Εφαρμογή

Τυπικά Σύνολα Οντοτήτων

Τυπικά Γνωρίσματα

Κλειδί

Τυπικές Σχέσεις

Σύστημα Υγείας

ΑΣΘΕΝΕΙΣ

Κωδικός Ασθενή

Κωδικός Ασθενή

Κατοχή

 

 

 

Επώνυμο Ασθενή

 

 

 

 

Όνομα  Ασθενή

 

 

 

 

Φύλο

 

 

 

 

Διεύθυνση

 

 

 

 

Ασφαλιστικό Ταμείο

 

 

 

 

Ημερομηνία  Γεννήσεως

 

 

 

ΙΑΤΡΟΙ

Κωδικός Ιατρού

Κωδικός Ιατρού

Κατοχή

 

 

Επώνυμο Ιατρού

 

 

 

 

Όνομα Ιατρού

 

 

 

 

Ειδικότητα

 

 

 

ΕΞΕΤΑΣΕΙΣ

Αύξων Αριθμός

Αύξων αριθμός εξέτασης  

Εκχώρηση

 

 

Κωδικός Ιατρού

 

 

 

 

Κωδικός Ασθενούς

 

 

 

 

Ημερομηνία εξέτασης

 

 

 

 

Ώρα εξέτασης

 

 

 

 

Διάγνωση

 

 

Πίνακας 1

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

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

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

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

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

bullet Δομή (structure): Το μοντέλο πρέπει να εξασφαλίζει τα μέσα αναπαράστασης των οντοτήτων, των γνωρισμάτων και των σχέσεων
bullet Χειρισμός (manipulation): Πρέπει να είναι δυνατό να χειρίζεται τις προαναφερθείσες αναπαραστάσεις, να αντανακλά, για παράδειγμα, την πρόσθεση νέων οντοτήτων ή κάποιες αλλαγές στα χαρακτηριστικά γνωρίσματα
bullet Ακεραιότητα (integrity): Σε όλες τις εφαρμογές υπάρχουν πολυάριθμοι περιορισμοί οι οποίοι πρέπει να ισχύουν για τις οντότητες, τα γνωρίσματα και τις σχέσεις. Για παράδειγμα, κάθε επίσκεψη ασθενούς σε μια μονάδα υγείας πρέπει να είναι μοναδική. Ένα μοντέλο δεδομένων πρέπει να είναι ικανό να εκφράζει αυτούς τους περιορισμούς και η υλοποίηση πρέπει να είναι ικανή να τους επιβάλλει.

 

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

 

3. Το Σχεσιακό Μοντέλο

Ίσως, το πλέον αποτελεσματικό και χρησιμοποιούμενο μοντέλο δεδομένων σήμερα να είναι το σχεσιακό μοντέλο (relational model), που αναπτύχθηκε από τον Ted Codd γύρω στα 1970. Το σχεσιακό μοντέλο αποτελεί τη βάση των περισσότερων σύγχρονων συστημάτων βάσεων δεδομένων. 

Στο σχεσιακό μοντέλο κάθε οντότητα αναπαρίσταται από μια πλειάδα , η οποία είναι απλά μια σειρά από τις τιμές των γνωρισμάτων. Έτσι, χρησιμοποιώντας τα παραδείγματα του Πίνακα 1, δύο συγκεκριμένοι ασθενείς μπορούν να παρασταθούν με τις πλειάδες: (Βασίλης, άνδρας, 10/05/1980) και (Βασίλης, άνδρας, 10/07/1980) αντιστοίχως. Παρομοίως δύο ασθενείς που επισκέφθηκαν τη μονάδα την ίδια ημέρα, μπορούν να εμφανιστούν με τις πλειάδες: (Bασίλης Βασιλόπουλος του Χρήστου, 10/01/2005, 9:30) και (Βασίλης Βασιλόπουλος του Δημητρίου, 10/01/2005, 21:40) 

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

Ασθενείς

Όνομα

Φύλο

Ημερομηνία Γεννήσεως

 

Βασίλης

άνδρας

10/05/1980

 

Βασίλης

άνδρας

10/05/1980

 

Κωνσταντίνος

άνδρας

10/05/1960

 

...

...

...

 Πίνακας 2

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

Ασθενείς

Επίθετο

Όνομα

Φύλο

Ασφαλιστικό Ταμείο

Ημερομηνία Γεννήσεως

 

Βασιλόπουλος

Bασίλης

άνδρας

ΙΚΑ

10/07/1980

 

Βασιλόπουλος,

Βασίλης

άνδρας

ΤΕΒΕ

10/01/2005

 

άνδρας

Δημόσιο

 

 

 

 

...

 

 

΄Πίνακας 3

Στην τρίτη προσπάθεια ο πίνακας έχει ως εξής: 

Ασθενείς

Κωδικός Ασθενή

Επίθετο

Όνομα

Ασφαλιστικό Ταμείο

Φύλλο

Διεύθυνση

Ημερομηνία Γέννησης

 

Α1235

Βασιλόπουλος

Bασίλης

ΙΚΑ

άνδρας

Λειψοί

10/07/1980

 

Α1234

Βασιλόπουλος,

Βασίλης

ΤΕΒΕ

άνδρας

Λειψοί

10/01/2005

 

Α1236

Δημόσιο

άνδρας

Λειψοί

 

 

 

...

...

 

...

 

 

 Πίνακας 4

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

Αν θέλουμε το σύστημα να είναι σε θέση να παρουσιάζει όλους τους ασθενείς που επισκεφτήκαν τη μονάδα σε μια συγκεκριμένη ημερομηνία, δημιουργούμε τη νέα οντότητα «ΕΞΕΤΑΣΕΙΣ» με τα ακόλουθα γνωρίσματα: 

Εξετάσεις

Αύξων Αριθμός Εξέτασης

Κωδικός Ασθενή

Ώρα Επίσκεψης

Ημερομηνία Επίσκεψης

 

1

Α1235

08:30

12/12/2003

 

2

Α1234

08:30

12/12/2003

 

3

Α1233

09:00

13/12/2003

 

4

 

09:15

13/12/2003

 

 

 

...

...

 Πίνακας 5

 

Οι «σχέσεις» (relations) χρησιμοποιούνται επίσης για να αναπαραστήσουν σχέσεις μεταξύ συνόλων οντοτήτων. Για παράδειγμα, η σχέση που δηλώνει τις επισκέψεις των ασθενών στη μονάδα μπορεί να παρασταθεί από τη «σχέση» που φαίνεται στον Πίνακα 6. Οι στήλες της «σχέσης» είναι τα κλειδιά των «σχέσεων» ΑΣΘΕΝΕΙΣ και ΕΞΕΤΑΣΕΙΣ, αντιστοίχως.           

Εξετάσεις_Ασθενών

Κωδικός Ασθενή

Αύξων Αριθμός Εξέτασης

 

Α1235

1

 

Α1234

2

 

Α1235

3

 

...

...

 Πίνακας 6:  Σχέση που δηλώνει τις εξετάσεις ασθενών στη μονάδα

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

 

3.1 Επιλογή (selection)

Η «επιλογή» είναι μία πράξη η οποία κατασκευάζει μια νέα σχέση εξάγοντας ορισμένες γραμμές από μια υπάρχουσα σχέση. Οι γραμμές που εξάγονται, επιλέγονται σύμφωνα με ορισμένα κριτήρια για τα γνωρίσματά τους.  Αν ονομάσουμε για παράδειγμα την πράξη επιλογής select[2], τότε 

            select ΕΞΕΤΑΣΕΙΣ where ΗΜΕΡΟΜΗΝΙΑ_ΕΞΕΤΑΣΗΣ = 2 Ιανουαρίου 2004 

κατασκευάζει μια σχέση αποτελούμενη από όλες τις γραμμές στη σχέση ΕΞΕΤΑΣΕΙΣ, των οποίων το γνώρισμα ΗΜΕΡΟΜΗΝΙΑ_ΕΞΕΤΑΣΗΣ είναι «2 Ιανουαρίου 2004». Με άλλα λόγια μια σχέση που αναπαριστά όλους τους ασθενείς που επισκέφτηκαν τη μονάδα τη συγκεκριμένη ημερομηνία (Πίνακας 8).  

Κωδικός Ασθενή

Ημερομηνία

Ώρα εξέτασης

Α1235

2/1/2004

10:40

Α1234

2/1/2004

11:20

Α1233

2/1/2004

12:00

...

...

...

Πίνακας 8: Σχέση που αναπαριστά τους ασθενείς που εξετάστηκαν τη συγκεκριμένη ημερομηνία

Παρομοίως, η πράξη 

            select ΑΣΘΕΝΕΙΣ where ΑΣΦΑΛΙΣΤΙΚΟ ΤΑΜΕΙΟ = ΙΚΑ 

παράγει μια σχέση που αναπαριστά όλους τους ασθενείς που είναι ασφαλισμένοι στο ΙΚΑ (Πίνακας 9).  

 

Ασθενείς

Ασφαλιστικό Ταμείο

Ημερομηνία Γεννήσεως

 

Δημητρόπουλος Αντώνιος

ΙΚΑ

1/5/1950

 

Τσακμάκη Ελένη

ΙΚΑ

2/10/1975

 

...

...

...

 Πίνακας 9: Σχέση που αναπαριστά τους ασθενείς ασφαλισμένους στο ΙΚΑ

 

3.2 Προβολή (projection)

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

project ΑΣΘΕΝΕΙΣ on ΕΠΩΝΥΜΟ

σχηματίζεται μια σχέση με μια μόνο στήλη, που αναπαριστά τους ασθενείς που έχουν εξετασθεί στη μονάδα σήμερα (Πίνακας 10α).

  Παρομοίως το παράδειγμα: 

            project ΑΣΘΕΝΕΙΣ on ΕΠΙΘΕΤΟ, ΦΥΛΟ 

παράγει μια σχέση που αναπαριστά τους ασθενείς και το φύλο έκαστου (Πίνακας 10β).           

Τέλος, το παράδειγμα: 

            project ΑΣΘΕΝΗΣ on ΗΜΕΡΟΜΗΝΙΑ_ΓΕΝΝΗΣΕΩΣ

δίνει μια σχέση με μια μόνο στήλη που παρουσιάζει όλες τις ημερομηνίες γεννήσεως των ασθενών (Πίνακας 10γ).  

Επώνυμο Ασθενή

 

Επώνυμο Ασθενή

Φύλο

 

Ημερομηνία Γεννήσεως

Άλφας

 

Άλφας

Α

 

21/1/2005

Βήτα

 

Βήτα

Θ

 

2/7/2005

Δέλτα

 

Δέλτα

Θ

 

...

...

 

...

...

 

...

Πίνακες 10 α, 10 β, 10 γ:  Αποτελέσματα διάφορων προβολών στις σχέσεις ΑΣΘΕΝΕΙΣ και ΗΜΕΡΟΜΗΝΙΑ_ΓΕΝΝΗΣΕΩΣ

 

3.3 Σύνδεση (join)

Η σύνδεση είναι μια πράξη η οποία σχηματίζει μια σχέση συνδυάζοντας δύο υπάρχουσες. Υπάρχουν ποικίλα σχήματα της πράξης σύνδεσης. Αυτή που περιγράφεται αμέσως μετά, είναι η φυσική σύνδεση (natural join), η οποία είναι η απλούστερη και η συχνότερα χρησιμοποιούμενη. Για να συνδεθούν δύο σχέσεις Α και Β πρέπει να έχουν το λιγότερο ένα κοινό γνώρισμα. Οι στήλες της σχέσης Σ που παράγεται, περιλαμβάνει τα γνωρίσματα και από την Α και από την Β, με τον περιορισμό ότι οι γραμμές μπορούν να παρατεθούν μόνο αν τα κοινά γνωρίσματα έχουν ίδιες ακριβώς τιμές. Έτσι στον Πίνακα 11, οι Α και Β έχουν ένα κοινό γνώρισμα Υ, η Σ έχει όλα τα γνωρίσματα και των δύο Α και Β (με το κοινό γνώρισμα Υ να εμφανίζεται μόνο μια φορά).            

Α

Χ

Υ

Β

Υ

Ζ

Η Σύνδεση δίνει

Σ

Χ

Υ

Ζ

 

x1

y1

 

y1

z1

 

 

x1

y1

z1

 

x2

y2

 

y1

z2

 

 

x1

y1

z2

 

x3

y3

 

y2

z2

 

 

x2

y2

z2

 

.

.

 

y3

z3

 

 

x3

y3

z3

 

.

.

 

.

.

 

 

 

 

 

 

.

.

 

.

.

 

 

.

.

.

 Πίνακας 11. Η λειτουργία της φυσικής σύνδεσης

Η εξέταση του Πίνακα 11 δείχνει ότι η πράξη σύνδεσης μπορεί να θεωρηθεί ως «συγκόλληση» των σειρών που ταιριάζουν στις δύο σχέσεις Α και Β. 

Επανερχόμενοι στα προηγούμενα παραδείγματά μας, η σύνδεση των σχέσεων ΑΣΘΕΝΕΙΣ και ΕΞΕΤΑΣΕΙΣ φαίνεται στον Πίνακα 12 (α) και η σύνδεση αυτής της σχέσης με τη σχέση ΙΑΤΡΟΣ φαίνεται στον Πίνακα 12 (β). Σημειώστε ότι οι σχέσεις ΑΣΘΕΝΕΙΣ και ΙΑΤΡΟΣ δεν μπορούν να συνδεθούν άμεσα αφού δεν έχουν κανένα κοινό γνώρισμα. Από τον  Πίνακα 12 (β) είναι φανερό ότι ο ασθενής Α1236 εξετάστηκε από το ιατρό κ. Ιατρόπούλο: Αυτή η πληροφορία μπορεί να εξαχθεί πιο τυπικά προβάλλοντας τη σχέση του Πίνακα 12 (β) στο: ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ, ΟΝΟΜΑ_ΙΑΤΡΟΥ και ΔΙΑΓΝΩΣΗ (Πίνακας 12 (γ)) και μετά επιλέγοντας ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ=Α1236 από το αποτέλεσμα (Πίνακα 12 (δ)). 

 

ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ

ΕΠΙΘΕΤΟ

ΗΜΕΡΟΜΗΝΙΑ ΕΞΕΤΑΣΕΩΣ

ΩΡΑ

ΑΥΞΩΝ ΑΡΙΘΜΟΣ

 

Α1235

Βασιλόπουλος

2/1/2004

10:40

11

 

Α1234

Βασιλόπουλος

2/1/2004

11:20

13

 

Α1236

Βασιλοπούλου

2/1/2004

12:00

14

(α)

...

...

...

...

...

 

 

ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ

ΕΠΙΘΕΤΟ

ΗΜΕΡΟΜΗΝΙΑ ΕΞΕΤΑΣΕΩΣ

ΩΡΑ

ΑΥΞ. ΑΡΙΘΜΟΣ

ΟΝΟΜΑ ΙΑΤΡΟΥ

ΔΙΑΓΝΩΣΗ (ICD10)

 

Α1235

Βασιλόπουλος

2/1/2004

10:40

11

Ιατρόπουλος

Κ35 (Οξεία Σκωληκοειδίτις)

 

Α1234

Βασιλόπουλος

2/1/2004

11:20

13

Ιατρίδης

Κ65 (Περιτονίτις)

 

Α1236

Βασιλοπούλου

2/1/2004

12:00

14

Ιατρόπουλος

L24.3 Δερματίτις από καλλυντικά)

(β)

...

...

...

...

...

...

...

 

 

ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ

ΟΝΟΜΑ ΙΑΤΡΟΥ

ΔΙΑΓΝΩΣΗ (ICD10)

 

Α1235

Ιατρόπουλος

Κ35

 

Α1234

Ιατρίδης

Κ65

 

Α1236

Ιατρόπουλος

L24.3

(γ)

...

...

...

 

 

ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ

ΟΝΟΜΑ ΙΑΤΡΟΥ

ΔΙΑΓΝΩΣΗ (ICD10)

(δ)

Α1236

Ιατρόπουλος

L24.3

 Σχήμα.12 Αποτελέσματα διαφόρων πράξεων στις σχέσεις των ασθενών:

(α) συνδέοντας τις σχέσεις ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ και ΕΞΕΤΑΣΕΙΣ, (β) συνδέοντας τις σχέσεις ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ, ΕΞΕΤΑΣΕΙΣ και ΙΑΤΡΟΣ (γ) μια προβολή της (β) ,(δ) μια επιλογή στη (γ)

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

            project (ΑΣΘΕΝΕΙΣ join ΕΞΕΤΑΣΕΙΣ join ΙΑΤΡΟΣ)

                  on ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ, ΟΝΟΜΑ ΙΑΤΡΟΥ, ΔΙΑΓΝΩΣΗ 

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

            project (select ΚΩΔΙΚΟΣ ΑΣΘΕΝΩΝ where ΗΜΕΡΟΜΗΝΙΑ=2/1/2004)

                 on ΟΝΟΜΑ ΙΑΤΡΟΥ           

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

Η τελική πλευρά του μοντέλου αφορά την αντιμετώπιση της ακεραιότητας των δεδομένων. 

Θυμηθείτε, από τα προηγούμενα, ότι η πλευρά της ακεραιότητας ενός μοντέλου δεδομένων σχετίζεται με την έκφραση περιορισμών σχετικών με τα δεδομένα. Τέτοιοι περιορισμοί είναι δύο ειδών, ανάλογα με το αν αναφερόμαστε στη δομή των δεδομένων ή στις τιμές τους. Παράδειγμα δομικών περιορισμών είναι: «Κάθε ασθενής πρέπει να έχει ένα μοναδικό κωδικό», «Όλες οι σημερινές εξετάσεις πρέπει να γίνονται από συγκεκριμένους ιατρούς» και «Δύο ασθενείς δεν μπορούν να εξετάζονται ταυτοχρόνως από τον ίδιο ιατρό». Οι περιορισμοί τιμών μπορούν να αναφέρονται τόσο σε μια τιμή δεδομένων - π.χ. «Κάθε κωδικός ασθενούς πρέπει να έχει ένα γράμμα και μέχρι έξι ψηφία» - όσο και να είναι μοναδικός, «Η ώρα εξέτασης ενός ασθενούς πρέπει να είναι μεταγενέστερη της προηγούμενης κατά 10 τουλάχιστον λεπτά» εφόσον και ο ιατρός είναι ο ίδιος». 

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

  1. Κάθε σχέση πρέπει να έχει ένα κλειδί και κάθε πλειάδα σε μια σχέση πρέπει να έχει μια τιμή κλειδιού η οποία είναι μοναδική και όχι κενή (null).

Αυτός ο κανόνας εγγυάται ότι κάθε πλειάδα σε μια σχέση είναι μονοσήμαντα αναγνωρίσιμη. Η επιμονή ότι αυτή η τιμή του κλειδιού δεν μπορεί να είναι κενή σημαίνει, για παράδειγμα, ότι κάθε ασθενής πρέπει να έχει έναν κωδικό αριθμό και κάθε ασθενής πρέπει να έχει όνομα, φύλο, δ/νση, ασφαλιστικό ταμείο και μια ημερομηνία γέννησης (βλ. Πίνακα 1). Η εφαρμογή του κανόνα στη σχέση ΑΣΘΕΝΕΙΣ του Πίνακα 1, της οποίας το κλειδί είναι ΚΩΔΙΚΟΣ ΑΣΘΕΝΗ, εξασφαλίζει ότι δεν μπορούν δύο ασθενείς να εκχωρηθούν στην ίδια εξέταση. (Αν συνέβαινε κάτι τέτοιο, τότε ο ίδιος κωδικός ασθενή θα υπήρχε σε δύο γραμμές της σχέσης ΕΞΕΤΑΣΕΙΣ, παραβιάζοντας έτσι τον περιορισμό της μοναδικότητας). Σημειώστε πάντως, πως ο κανόνας δεν διασφαλίζει το αντίστροφο, ότι δηλαδή ο ίδιος ασθενής δεν μπορεί να εκχωρηθεί σε δύο εξετάσεις. (Ο κωδικός αριθμός των ασθενών δεν είναι κλειδί στη σχέση ΕΞΕΤΑΣΕΙΣ και συνεπώς μπορεί νόμιμα να εμφανιστεί σε περισσότερες από μια σειρές). 

  1. Κάθε οντότητα (πχ. Ένας ασθενής) που εμφανίζεται σε μια συσχέτιση (relation) (π.χ Εξετάσεις Ασθενών) πρέπει επίσης να εμφανίζεται στη σχέση η οποία αναπαριστά το σύνολο των οντοτήτων  στο οποίο ανήκει η εμφανιζόμενη οντότητα (δηλ. στη σχέση ΑΣΘΕΝΕΙΣ)

Για παράδειγμα, κάθε ασθενής που αναφέρεται στη σχέση Εξετάσεις_Ασθενών, πρέπει να εμφανίζεται και στη σχέση  ΑΣΘΕΝΕΙΣ, η οποία αναπαριστά το σύνολο ασθενών στο οποίο ανήκει ο ασθενής.     

Ως δεύτερο παράδειγμα, στην περίπτωση που διατηρούμε μια σχέση ασθενούς και ιατρών που τον εξέτασαν, η προθήκη ενός ιατρού ο οποίος θα τον εξετάσει στο μέλλον, προϋποθέτει καταχώρηση του ιατρού στην οντότητα  ΙΑΤΡΟΣ (π.χ. περίπτωση οικογενειακού ιατρού και ιατρού εκτάκτων περιστατικών) 

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

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

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

 

4. Μεταφορά Σχεσιακού Μοντέλου σε Υπολογιστή

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

Μοντέλο δεδομένων

(π.χ. οντότητες, γνωρίσματα, σχέσεις)

Text Box: Μοντέλο δεδομένων
(π.χ. οντότητες, γνωρίσματα, σχέσεις)

Δομές δεδομένων

(π.χ. αρχεία, εγγραφές, πεδία)

Text Box: Δομές δεδομένων
(π.χ. αρχεία, εγγραφές, πεδία)

Φυσικές συσκευές αποθήκευσης

(π.χ. μαγνητικοί δίσκοι, οπτικοί δίσκοι)

Text Box: Φυσικές συσκευές αποθήκευσης
(π.χ. μαγνητικοί δίσκοι, οπτικοί δίσκοι)

 

 

 

 

 

 

 

 

 

 Πϊνακας 13: Μια ιεραρχία των αναπαραστάσεων των δεδομένων

 

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

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

Οι  στοιχειώδεις πράξεις ή δοσοληψίες (transactions) που γίνονται πάνω στις εγγραφές είναι: 

  1. διάβασμα (reading): δηλαδή μεταφορά μιας εγγραφής από τον δευτερεύοντα χώρο αποθήκευσης στην κεντρική μνήμη, ώστε να είναι δυνατή η πρόσβαση στα πεδία της
  2. γράψιμο (writing): δηλαδή μεταφορά μιας εγγραφής από τη μνήμη στο δευτερεύοντα χώρο αποθήκευσης
  3. πρόσθεση (adding): μιας εγγραφής σε ένα αρχείο
  4. διαγραφή (deleting): μιας εγγραφής από ένα αρχείο
  5. ενημέρωση (updating) μιας εγγραφής: δηλαδή μεταβολή των πληροφοριών που περιέχονται σε ένα ή περισσότερα πεδία της

 

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

H SQL (Structured Query Language) είναι μια «γλώσσα» για τη μοντελοποίηση των δομών των δεδομένων (π.χ  οντότητες, συσχετίσεις) για πρόσβαση και το χειρισμό μιας Βάσης Δεδομένων και αποτελεί ένα πρότυπο κατά ANSI (American National Standards Institute). Οι εντολές SQL εκτελούν όλες τις προαναφερθείσες λειτουργίες σε μια βάση δεδομένων. Κάθε εμπορικό πρόγραμμα (π.χ  Microsoft Access)  «υλοποιεί – μεταφέρει» τις εντολές SQL σε έναν ηλεκτρονικό υπολογιστή.  

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

 

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

Οι πιο συνηθισμένες εφαρμογές εμπορίου είναι η Microsoft Access, η Microsoft SQL, η Oracle, η MySql, η DB2 που είτε είναι ολοκληρωμένα λογισμικά, είτε είναι λογισμικό ανοιχτού κώδικα (π.χ MySql ). Ο χρήστης των παραπάνω εφαρμογών έχει τη δυνατότητα να δημιουργήσει πίνακες (που συνήθως απεικονίζουν τις οντότητες), σχέσεις μεταξύ πινάκων (που συνήθως απεικονίζουν τις συσχετίσεις), καθώς και ερωτήματα πάνω τους πίνακες μιας βάσης δεδομένων. 

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

Η διαδικασία που ακολουθείται συνήθως, είναι η ακόλουθη: 

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

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

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

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

Συλλογή απαιτήσεων από το χρήστη

Μετατροπή των απαιτήσεων σε σχεσιακό μοντέλο. Δημιουργία οντοτήτων και συσχετίσεων.

Επίπεδο προγραμματιστή

Επίπεδο απλού χρήστη

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

Χρήση καταλλήλου  λογισμικού

 

Access, Oracle, DB2, MySql, Sql Server

Δημιουργία Βάσης δεδομένων σε ένα υπολογιστή

Ανεξάρτητες εφαρμογές που κάνουν χρήση των δεδομένων της Β.Δ

Παραγωγή αποτελεσμάτων  από την Β.Δ.

 

 

Το Διάγραμμα Μεταφοράς του Σχεσιακού Μοντέλου σε ένα υπολογιστή

 

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

 


 

ΠΑΡΑΡΤΗΜΑ: Δημιουργία μιας βάσης δεδομένων με τη χρήση του ειδικού λογισμικού Access, της εταιρείας Microsoft

 

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

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

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

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

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

 

 Ή μπορούμε να διατυπώσουμε το ερώτημα αυτό σε εντολές SQL.

 

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

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

[1] Edgar F. "Ted" Codd ,Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks. IBM Research Report, San Jose, California RJ599: (1969) 

[2] Edgar F. "Ted" Codd ,Further Normalization of the Data Base Relational Model. IBM Research Report, San Jose, California RJ909: (1971) 

[3] Edgar F. "Ted" Codd ,Relational Completeness of Data Base Sublanguages. In: R. Rustin (ed.): Database Systems: 65-98, Prentice Hall and IBM Research Report RJ 987, San Jose, California: (1972) 

[4] Μιχαήλ Γκατζώνης, Εισαγωγή στις Βάσεις Δεδομένων, Πρόγραμμα Εκπαίδευσης στην Τηλεϊατρική, Ινστιτούτο Συνεχιζόμενης Εκπαίδευσης Πανεπιστημίου Αιγαίου, 1999 

[5] Γρήγορα Μαθήματα στην Microsoft Access 2000, Microsoft Press, Online Press Inc. 


 

horizontal rule

[1] Σε πολλές ΒΔ έχει επικρατήσει το όνομα  "πίνακας-table"  αντί του "σχέση - relation"

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

 

horizontal rule

Copyright 2002: Ασκληπιακό Πάρκο Ιατρικής Σχολής Πανεπιστημίου Αθηνών
Τελευταία ενημέρωση / Last modified: 04/16/04