Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα
1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε το username και το password που έχετε επιλέξει. Υπενθύμιση: Το username είναι το dbxyzw, όπου xyzw τα 4 ψηφία του αριθμού μητρώου σας. 2. Βασικές έννοιες της oracle Workspace Το workspace είναι μία εικονική βάση δεδομένων που επιτρέπει πολλούς χρήστες να δουλεύουν με την ίδια εγκατάσταση του Oracle Application Express αλλά διατηρώντας τα αντικείμενα, τα δεδομένα και τις εφαρμογές ιδιωτικά. Application Ένα application είναι μία συλλογή σελίδων που συνδέονται μεταξύ τους. Page Region Item Μία σελίδα είναι το βασικό δομικό στοιχείο μιας εφαρμογής. Οι σελίδες μπορεί να περιέχουν στοιχεία διεπαφών χρήστη, όπως tabs, λίστες, κουμπιά, στοιχεία και περιοχές. Το περιεχόμενο παρουσιάζεται σε περιοχές, που είναι λογικές υποενότητες μιας σελίδας. Κάθε σελίδα μπορεί να έχει πολλές περιοχές πολλών τύπων. Οι τύποι αυτοί μπορεί να είναι: HTML κείμενο, ερωτήματα SQL, PL/SQLgenerated HTML, και γραφήματα. Οι περιοχές τοποθετούνται στη σελίδα βάσει σημείων που ορίζονται στο template της σελίδας. Ένα στοιχείο μπορεί να είναι ένα πεδίο κειμένου, μια περιοχή κειμένου, ένας κωδικός, μία λίστα επιλογών, ένα check box και άλλα. Τα χαρακτηριστικά των στοιχείων επηρεάζουν την εμφάνιση και τη συμπεριφορά τους στη σελίδα. Για παράδειγμα, αυτά τα χαρακτηριστικά μπορεί να επηρεάσουν που θα εμφανιστεί ένα label, πόσο μεγάλο θα είναι το στοιχείο και αν θα μεφανιστεί δίπλα ή κάτω από το προηγούμενο στοιχείο. 3. Workspace Όταν μπείτε στο Oracle Application Express, εμφανίζεται η κεντρική σελίδα του Workspace. Τέσσερα μεγάλα εικονίδια εμφανίζονται στο κέντρο της εικόνας: Application Builder. Χρησιμοποιείστε το Application Builder για να δημιουργήσετε μία εφαρμογή, που αποτελείται από HTML σελίδες, βασισμένες σε database objects. SQL Workshop. Χρησιμοποιείστε το SQL Workshop για να δείτε και να διαχειριστείτε τα database objects. Team Development. Με το Team Development οι χρήστες μπορούν να παρέχουν real-time πληροφορίες που μπορούν να αφορούν διάφορα συμβάντα ή bugs. Administration. Στη διαχείριση υπάρχουν οι εξής επιλογές: Διαχείριση χρηστών και ομάδων χρηστών 2
Έλεγχος δραστηριότητας: Η επιλογή αυτή χρησιμοποιείται για να ελέγχουμε τις αλλαγές στις προβολές σελίδων, στις δραστηριότητες των προγραμματιστών και στα ενεργά sessions. Δείχνει επίσης εκθέσεις σχετικά με πληροφορίες όπως προσπάθειες σύνδεσης και μετρήσεις κλικ. Dashboard: Χρησιμοποιήστε αυτή τη σελίδα για να δείτε λεπτομέρειες σχετικά με τρέχοντα χώρο εργασίας και να δείτε τους χρήστες, τη δραστηριότητα, την απόδοση, την ανάπτυξη εφαρμογών και τις λεπτομέρειες της βάσης δεδομένων. 4. Δημιουργία πίνακα 1. Στην αρχική σελίδα του Workspace επιλέξτε το SQL Workshop και στη συνέχεια τον Object Browser. 2. Στη συνέχεια επιλέξτε Create στο πάνω δεξιά μέρος της οθόνης. 3. Από τη λίστα των αντικειμένων επιλέξτε Table. 3
4. Εισάγετε ένα όνομα πίνακα. 5. Για να είναι το τελικό όνομα του πίνακα, όπως το έχετε γράψει επιλέξτε το Preserve Case αλλιώς δε θα είναι case sensitive (Συνίσταται να ΜΗΝ είναι τσεκαρισμένη αυτή η επιλογή). 6. Συμπληρώστε τις λεπτομέρειες για κάθε στήλη. Συγκεκριμένα: i. Εισάγετε το όνομα της στήλης. ii. Επιλέξτε τον τύπο της στήλης (Δείτε στη συνέχεια την παράγραφο τύποι δεδομένων). iii. Εισάγετε τις εξής πρόσθετες πληροφορίες όπου χρειάζεται: Precision:Η ακρίβεια είναι ο αριθμός των ψηφίων που υπάρχουν πριν την υποδιαστολή. Αυτή η ρύθμιση δεν υπάρχει σε όλους τους τύπους. Η ακρίβεια πρέπει να είναι θετικός αριθμός. Μόνο οι τύποι NUMBER, FLOAT, INTERVAL YEAR TO MONTH και INTERVAL DAY TO SECOND έχουν αυτή τη ρύθμιση. Για παράδειγμα αν μία στήλη με τύπο NUMBER έχει ακρίβεια 4, οι τιμές της στήλης μπορεί να είναι από 0 μέχρι 9999. Scale: Η λειτουργία της ρύθμισης κλίμακας εξαρτάται από τον τύπο της στήλης. Για τους τύπους NUMBER, η κλίμακα είναι ο αριθμός των ψηφίων μετά την υποδιαστολή. Για τους τύπους VARCHAR2 και CHAR, η κλίμακα είναι ο αριθμός των αποθηκευμένων χαρακτήρων. Για τους τύπους TIMESTAMP, η κλίμακα είναι η ακρίβεια των δευτερόλεπτα και πρέπει να είναι ένας αριθμός μεταξύ 0 και 9. Η κλίμακα πρέπει να είναι θετικός αριθμός. Για παράδειγμα, εάν ένας τύπος στήλης TIMESTAMP έχει μια κλίμακα 3, τα δευτερόλεπτα είναι μεταξύ 0,000 και 0,999 δευτερόλεπτα. iv. Για να ορίσετε ότι μία στήλη πρέπει να έχει οπωσδήποτε τιμές, επιλέξτε το check box στη στήλη Not Null. v. Για να αλλάξετε τη σειρά των στηλών που έχετε εισάγει προηγουμένως, κάντε κλικ στα βελάκια στη στήλη Move. Για να προσθέσετε καινούριες στήλες, κάντε κλικ στο Add Column. 7. Για το πρωτεύον κλειδί, επιλέξτε την κατάλληλη επιλογή και επιλέξτε συνέχεια: i. No Primary Key Δε δημιουργείται πρωτεύον κλειδί. ii. Populate from a new sequence Δημιουργεί ένα primary key, ένα trigger και μία ακολουθία. Η ακολουθία χρησιμοποιείται στο trigger για να γεμίσει τη στήλη του κλειδιού. Το πρωτεύον κλειδί μπορεί να είναι μόνο μία στήλη. 4
iii. Populated from an existing sequence - Δημιουργεί ένα primary key και ένα trigger. Η ακολουθία που επιλέγεται χρησιμοποιείται στο trigger για να γεμίσει τη στήλη του κλειδιού. Το πρωτεύον κλειδί μπορεί να είναι μόνο μία στήλη. iv. Not populated Ορίζει ένα πρωτεύον κλειδί αλλά δε γεμίζει αυτόματα τη στήλη. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί και για να ορίσετε ένα σύνθετο πρωτεύον κλειδί (δηλαδή ένα πρωτεύον κλειδί που να είναι συνδυασμός πολλών στηλών). 8. Στη συνέχεια προσθέστε ξένα κλειδιά (προαιρετικό). Ένα ξένο κλειδί δημιουργεί μία σχέση ανάμεσα σε μία ή περισσότερες στήλες ενός πίνακα και ενός πρωτεύοντος ή μοναδικού κλειδιού σε έναν άλλο πίνακα. 9. Στη συνέχεια προσθέστε ένα constraint (προαιρετικό). Μπορείτε να δημιουργήσετε πολλά constraints αλλά πρέπει να δημιουργείστε το κάθε constraint χωριστά. 10. Επιλέξτε Create. 5. Τύποι δεδομένων 5.1 Τύπος δεδομένων CHAR Ο τύπος δεδομένων CHAR ορίζει ένα αλφαρηθμητικό σταθερού μεγέθους. Η Oracle διασφαλίζει ότι όλες οι τιμές που αποθηκεύονται σε μία στήλη τύπου CHAR έχουν μήκος που ορίζεται στην επιλογή size. Αν εισάγετε τιμή μικρότερη από το μήκος της στήλης η Oracle γεμίζει με κενά τη διαφορά. Αν προσπαθήστε να εισάγετε τιμή πολύ μεγάλη για τη στήλη η Oracle επιστρέφει λάθος. 5.2 Τύπος δεδομένων NCHAR Ο τύπος δεδομένων NCHAR είναι ένας τύπος δεδομένων Unicode-only. 5.3 Τύπος δεδομένων VARCHAR Μη χρησιμοποιείτε τον τύπο VARCHAR. Χρησιμοποιείστε καλύτερα τον τύπο VARCHAR2. Παρόλο που προς το παρόν οι δύο τύποι είναι παραπλήσιοι, σχεδιάζεται ο τύπος VARCHAR να επαναπροσδιοριστεί ως ξεχωριστός τύπος δεδομένων που θα χρησιμοποιείται για αλφαριθμητικά μεταβλητού μήκους με σημασιολογικά χαρακτηριστικά. 5.4 Τύπος δεδομένων VARCHAR2 Ο τύπος VARCHAR2 ορίζει ένα αλφαριθμητικό μεταβλητού μεγέθους. Όταν δημιουργείτε μία στήλη VARCHAR2, ορίζετε το μέγιστο αριθμό bytes ή χαρακτήρων που μπορεί να πάρει. Η Oracle αποθηκεύει κάθε τιμή της στήλης ακριβώς όπως το εισάγετε, αρκεί η τιμή να μην υπερβαίνει το μέγιστο μέγεθος της στήλης. 5.5 Τύπος δεδομένων NVARCHAR2 Ίδιο με το τον τύπο 5.4 αλλά δέχεται Unicode χαρακτήρες. 5.6 Τύπος δεδομένων NUMBER Ο τύπος αυτός ορίζεται ως εξής: NUMBER(p,s), όπου: p είναι η ακρίβεια, ή ο μέγιστος αριθμός ψηφίων. s είναι ο αριθμός των δεκαδικών ψηφίων. 5
Actual Data Specified As Stored As 123.89 NUMBER 123.89 123.89 NUMBER(3) 124 123.89 NUMBER(3,2) exceeds precision 123.89 NUMBER(4,2) exceeds precision 123.89 NUMBER(5,2) 123.89 123.89 NUMBER(6,1) 123.9 123.89 NUMBER(6,-2) 100 5.6 Τύπος δεδομένων Float Είναι υποκατηγορία του τύπου NUMBER με ακρίβεια p. 5.7 Τύπος δεδομένων DATE Ο τύπος DATE αποθηκεύει πληροφορίες που αφορούν την ημερομηνία και την ώρα. Παρόλο που μπορούν να αποθηκευτούν και με τύπο χαρακτήρων και αριθμών, ο τύπος DATE έχει πιο πολλές σχετικές ιδιότητες και για κάθε τιμή DATE η Oracle αποθηκεύει τις πληροφορίες: αιώνας, χρονιά, μήνας, ημερομηνία, ώρα, λεπτό και δευτερόλεπτο. 6. Πίνακας Όταν βλέπετε ένα πίνακα στον Object Browse μπορείτε να προσθέσετε μία στήλη, να την τροποποιήσετε, να τη μετονομάσετε, να τη διαγράψετε, να μετονομάσετε τον πίνακα, να αντογράψετε τον πίνακα και να διαγράψετε τον πίνακα. Ακόμη, έχετε πρόσβαση σε επιλογές για να δείτε τα δεδομένα του πίνακα, τα ευρετήρια και την SQL που δημιουργεί το συγκεκριμένο πίνακα. 7. Ορισμός πρωτεύοντος κλειδιού Μπορούμε να ορίσουμε πρωτεύον κλειδί και μετά τη δημιουργία του πίνακα με την επιλογή constraints. Στη συνέχεια, επιλέγουμε ποια στήλη θέλουμε να είναι το πρωτεύον κλειδί και πατάμε το next. 6
8. Τροποποίηση πίνακα Για να τροποποιήσουμε ένα πίνακα: 1. Στην αρχική σελίδα του Workspace, κάνουμε κλικ στο SQL Workshop και μετά στον Object Browser. 2. Από τη λίστα αντικειμένων (Object list), σιγουρευτείτε ότι είναι επιλεγμένο το Tables. 3. Επιλέξτε έναν πίνακα. 4. Εμφανίζεται η περιγραφή του πίνακα. Επιλέξτε το κατάλληλο κουμπί. Οι διαθέσιμες επιλογές φαίνονται στον παρακάτω πίνακα. Button Add Column Modify Column Rename Column Drop Column Rename Copy Drop Truncate Create Lookup Table Description Προσθέτει στήλη στον πίνακα. Τροποποιεί την επιλεγμένη στήλη Μετονομάζει την επιλεγμένη στήλη Διαγράφει την επιλεγμένη στήλη Μετονομάζει τον επιλεγμένο πίνακα Αντιγράφει τον επιλεγμένο πίνακα Διαγράφει τον επιλεγμένο πίνακα Αφαιρεί όλες τις γραμμές του πίνακα. Κάνοντας Truncate έναν πίνακα μπορεί να είναι πιο αποδοτικό από τη διαγραφή και τη δημιουργία του πίνακα, καθώς δε χρειάζεται να δημιουργήσουμε ξανά τυχόν constraints Δημιουργεί ένα lookup πίνακα ανάλογα με τη στήλη που επιλέγουμε. Η στήλη αυτή γίνεται ξένο κλειδί στον lookup πίνακα. 7
9. Διαγραφή πίνακα Για να διαγράψουμε ένα πίνακα: Στην αρχική σελίδα του Workspace επιλέξτε SQL Workshop και μετά Object Browser. Από τη λίστα αντικειμένων βεβαιωθείτε ότι είναι επιλεγμένο το Tables. Από το Object Selection pane, επιλέξτε ένα πίνακα. Επιλέξτ Drop. Για επιβεβαίωση πατήστε Finish. 10. Εισαγωγή δεδομένων Για να εισάγετε δεδομένα σε ένα πίνακα, επιλέγουμε τον πίνακα που θέλουμε και μετά επιλέγουμε select row. Βάζουμε τα στοιχεία μιας εγγραφής και μετά επιλέγουμε create ή create and create another αν θέλουμε να προσθέσουμε και άλλες εγγραφές. 8
11. Τροποποίηση/Διαγραφή δεδομένων Για να τροποποιήσουμε ή να διαγράψουμε μία εγγραφή, επιλέγουμε τον πίνακα που θέλουμε, στη συνέχεια επιλέγουμε data και μετά την εγγραφή που θέλουμε να τροποποιήσουμε ή να διαγράψουμε. ΆΣΚΗΣΗ Δημιουργήστε τους πίνακες του παραδείγματος «Εκπαιδευτικό Ίδρυμα», ορίστε τα πρωτεύοντα κλειδιά και βάλτε 3 εγγραφές στον κάθε πίνακα. 9