ΜΑΘΗΜΑ 4ο - wordpress.comΗ δηµιουργία ενός δείκτη στη γλώσσα...

51
1 ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ ΣΔΟ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009 - 2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 4ο Η γλώσσα βάσεων δεδομένων SQL, η γλώσσα QBE. Αθανασίου Ειρήνη, MSc

Upload: others

Post on 17-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

1

ΤΕΙ ΑΘΗΝΩΝΣΧΟΛΗ Σ∆Ο

ΤΜΗΜΑ ∆ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009 - 2010

Η/Υ ΙΙΙ ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ (Θεωρία)

ΜΑΘΗΜΑ 4ο

Η γλώσσα βάσεων δεδοµένων SQL, η γλώσσα QBE.

Αθανασίου Ειρήνη, MSc

Page 2: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

2

Εισαγωγή

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

Αυτές δύο βασικές οµάδες λειτουργιών – η δηµιουργία του σχεσιακού σχήµατος και η διαχείριση του πληροφοριακού περιεχοµένου που περιέχεται σε αυτό –πραγµατοποιούνται από κατάλληλα εργαλεία που είναι ειδικά σχεδιασµένα γι’ αυτό το σκοπό. Η διαχείριση των πινάκων της βάσης, πραγµατοποιείται χρησιµοποιώντας τη γλώσσα ορισµού δεδοµένων (Data Definition Language, DDL), ενώ για τη διαχείριση των δεδοµένων της εφαρµογής, χρησιµοποιείται η γλώσσα χειρισµού δεδοµένων (Data Manipulation Language, DML). Αυτές οι δύο γλώσσες συναντώνται σε όλα τα µοντέρνα συστήµατα διαχείρισης βάσεων δεδοµένων και αποτελούν τµήµα µιας πιο γενικευµένης γλώσσας η οποία ονοµάζεται δοµηµένη γλώσσα ερωτοαποκρίσεων (Structured Query Language, SQL) και έχει καθιερωθεί ως το διεθνές πρότυπο διαχείρισης των δεδοµένων µιας εφαρµογής.

Page 3: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

3

Ιστορική αναδροµή

Η SQL είναι µία σχεσιακή γλώσσα βάσεων δεδοµένων, η οποία σχεδιάστηκε καιυλοποιήθηκε από την IBM στα πλαίσια του ερευνητικού της προγράµµατος System R πουαπέβλεπε στην ανάπτυξη ενός πρότυπου σχεσιακού συστήµατος βάσεων δεδοµένων(ΣΣ∆Β∆). Αρχικά η SQL ονοµαζόταν SEQUEL (από το Structured English QUery Language, Γλώσσα Ερωτήσεων ∆οµηµένων Αγγλικών). Τα δύο πρώτα ΣΣ∆Β∆ που διατέθηκαν στοεµπόριο και βασίζονταν στην SQL ήταν το ORACLE από την Relational Software Inc. (σήµερα ORACLE Corporation) το 1979 και το SQL/DS από την IBM το 1982.

Το 1982 το Αµερικάνικο Εθνικό Ινστιτούτο Τυποποίησης (American National Standards Institute - ANSI) και ο ∆ιεθνής Οργανισµός Προτύπων (International Standards Organization - ISO) ανέθεσαν στη µόνιµη επιτροπή του X3H2 να συντάξει µία πρόταση γιαµία πρότυπη σχεσιακή γλώσσα. Η πρόταση της επιτροπής βασίστηκε στην έκδοση της SQL και επικυρώθηκε από το ANSI το 1986 οδηγώντας σε µια τυποποιηµένη έκδοση της SQL (ANSI 1986), που λέγεται SQL-86 ή SQL. Το 1992 αναπτύχθηκε ένα αναθεωρηµένο καιπολύ πιο εκτεταµένο πρότυπο µε το όνοµα SQL2 (αναφέρεται και ως SQL-92) και το 1999 η SQL3, που αποτελεί µια περαιτέρω επέκταση της SQL µε αντικειµενοστραφήχαρακτηριστικά.

Page 4: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

4

Χρήση της SQL

Αν και το όνοµα της δηλώνει ότι η SQL χρησιµοποιείται για την υποβολή ερωτηµάτων(σχεσιακών πράξεων) προς µία σχεσιακή βάση δεδοµένων, η SQL είναι κάτι πολύ ευρύτερο. Η SQL έχει σαν συστατικά στοιχεία της µια γλώσσα ορισµού δεδοµένων (Data Definition Language, DDL) και όψεων και µια γλώσσα χειρισµού δεδοµένων (Data Manipulation Language, DML) καθώς και εντολών για καθορισµό περιορισµών και εξέλιξης τουσχήµατος.

Η SQL είναι ανεξάρτητη από την δοµή της βάσης δεδοµένων. Η ροή των πληροφοριώνµεταξύ του χρήστη και της βάσης δεδοµένων είναι όµοια µε την παρακάτω εικόνα:

Το DBMS έχει τον έλεγχο της διαχείρισης της βάσης δεδοµένων. Οι αιτήσεις στέλνονται στοDBMS όπου επεξεργάζονται και αλλάζουν σε εντολές ανάγνωσης/εγγραφής προς τοδιαχειριστή των αρχείων της βάσης.

Page 5: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

5

Λειτουργίες της SQL

Η SQL µπορεί να ελέγχει όλες τις λειτουργίες για: Ορισµό δεδοµένων

Ανάκτηση δεδοµένων

Χειρισµό δεδοµένων

Έλεγχο πρόσβασης (Εξουσιοδότηση)

Ακεραιότητα δεδοµένων

Κοινή χρήση δεδοµένων και Έλεγχο Συναλλαγών

Page 6: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

6

Πλεονεκτήµατα της SQL

Τα κύρια πλεονεκτήµατα της SQL είναι: Ανεξαρτησία κατασκευαστή. Αλλάζοντας ΣΣ∆Β∆ συνήθως δεν

χρειάζεται να ξαναγραφεί ο κώδικας SQL.

Υψηλού-επιπέδου γλωσσική δοµή (English like), που κάνει εύκολη τηχρήση της γλώσσας.

Τυποποίηση. Η τυποποίηση επικυρώθηκε από το ANSI και τον ISO.

∆υναµική διαχείριση δεδοµένων. Προσφέρει προχωρηµένες εντολέςεπεξεργασίας που επιτρέπουν την ενσωµάτωσή της καθώς καιερωτήµατα πολλαπλών επιπέδων.

Page 7: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

7

∆οµικές µονάδες της SQL

Υπάρχουν πολλές παραλλαγές της γλώσσας SQL που κυκλοφορούν στην αγορά, οι οποίες ωστόσο χαρακτηρίζονται από την ίδια δοµή και την ίδια φιλοσοφία. Έτσι, µια τυπική γλώσσα SQL, θα περιλαµβάνει τις επόµενες δοµικές µονάδες: Γλώσσα ορισµού δεδοµένων (Data Definition Language, DDL): Η γλώσσα

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

Γλώσσα χειρισµού δεδοµένων (Data Manipulation Language, DML): Ηγλώσσα αυτή επιτρέπει τη διαχείριση των δεδοµένων της εφαρµογής, όπως τηνεισαγωγή, διαγραφή, ανάκτηση και τροποποίηση δεδοµένων.

Ορισµός όψεων της βάσης (View Definition): Επιτρέπει τη δηµιουργία όψεων τηςβάσης δεδοµένων οι οποίες όπως θα δούµε στη συνέχεια, ορίζονται ως εικονικοίπίνακες (virtual tables) οι οποίοι περιέχουν δεδοµένα από έναν ή περισσότερουςπίνακες της βάσης.

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

∆ιαχείρισης ακεραιότητας (Integrity): Επιτρέπει το λεπτοµερή έλεγχο τωνδεδοµένων που καταχωρούνται στη βάση, έτσι ώστε να µην παραβιάζονται οι κανόνεςακεραιότητας (integrity constraints) που έχουµε ορίσει και οι οποίοι όταν τηρούνται, αποµακρύνουν τον κίνδυνο καταχώρησης ασυνεπών δεδοµένων (inconsistent data).

Page 8: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

8

Συνοπτικός πίνακας βασικών εντολών SQL ανά δοµική µονάδα

Page 9: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

9

Η γλώσσα ορισµού δεδοµένων

Η γλώσσα ορισµού δεδοµένων (Data Definition Language, DDL),επιτρέπει τη διαχείριση πινάκων (tables), όψεων (views) και δεικτών(indices) σε µια βάση δεδοµένων. Αυτή η διαχείριση περιλαµβάνει τονορισµό και τη µεταβολή της δοµής αυτών των αντικειµένων, καθώςεπίσης και τη διαγραφή τους. Από τα τρία αυτά αντικείµενα, οι πίνακεςείναι το δοµικό χαρακτηριστικό µιας σχεσιακής βάσης δεδοµένων, καθώςπεριέχουν τα δεδοµένα που καταχωρούνται σε αυτή, ενώ οι όψειςπροκύπτουν από έναν ή περισσότερους πίνακες και συσχετίζουνδεδοµένα που είναι αποθηκευµένα σε αυτούς. Τέλος οι δείκτες είναιειδικές δοµές δεδοµένων, οι οποίες επιταχύνουν τη διαδικασία τηςαναζήτησης πληροφοριών από τη βάση.

Page 10: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

10

∆ιαχείριση πινάκων

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

CREATE TABLE,

DROP TABLE και

ALTER TABLE.

Page 11: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

11

Create Table

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

Οι πιο συνηθισµένοι τύποι δεδοµένων που µπορούµε να χρησιµοποιήσουµε για τα πεδία των πινάκων, είναι αριθµητικοί τύποι και συµβολοσειρές. Αριθµητικοί τύποι: (SMALLINT) µε µέγιστη τιµή 32767, ή µεγάλος (INTEGER) ακέραιος ή πραγµατικός αριθµός (FLOAT), η DECIMAL (i, j) όπου i είναι το συνολικό πλήθος των ψηφίων του αριθµού, και j το πλήθος των ψηφίων µετά την υποδιαστολή. Συµβολοσειρές: CHAR (n) χρησιµοποιούνται ακριβώς n χαρακτήρες ή VARCHAR (n) όπου n είναι το πλήθος των χαρακτήρων που θα χρησιµοποιηθούν. είναι µεταβλητό, αλλά σε κάθε περίπτωση, όχι µεγαλύτερο από n χαρακτήρες. Υπάρχει και ένας τύπος δεδοµένων DATE τον οποίο χρησιµοποιούµε όταν θέλουµε να καταχωρήσουµε ηµεροµηνίες.

Οι περιορισµοί τους οποίους µπορούµε να θέσουµε για κάθε πεδίο, αφορούν κυρίως το δικαίωµα καταχώρησης ή όχι της τιµής NULL, σε αυτό το πεδίο. Έτσι, για όσα πεδία δεν επιτρέπεται η απόδοσης τιµής NULL σε αυτά, χρησιµοποιούµε κατά την κλήση της εντολής, τον κανόνα «NOT NULL».

Παράδειγµα δηµιουργίας του πίνακα EMPLOYEE:

Page 12: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

12

Drop Table

Η εντολή DROP TABLE χρησιµοποιείται για τη διαγραφή ενός πίνακα από τηβάση δεδοµένων, ενέργεια, η οποία διαγράφει όχι µόνο τα δεδοµένα του πίνακα, αλλά και τον ίδιο τον πίνακα.

Παράδειγµα:

H παραπάνω εντολή διαγράφει τον πίνακα DEPENDENTS µαζί µε όλα τα δεδοµένα που περιέχει, από τη βάση δεδοµένων.

Page 13: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

13

Alter Table

Η εντολή ALTER TABLE επιτρέπει την τροποποίηση της δοµής του πίνακα µετάτη δηµιουργία του, και πιο συγκεκριµένα, την προσθήκη νέων πεδίων σε αυτόν –αν και σε ορισµένες περιπτώσεις επιτρέπεται τόσο η διαγραφή όσο και ηµεταβολή του τύπου δεδοµένων για κάποιο από τα πεδία του πίνακα. Για ναπροσθέσουµε ένα νέο πεδίο σε κάποιο πίνακα, θα πρέπει να καθορίσουµε τοόνοµά του και τον τύπο του.

Παράδειγµα:

Η παραπάνω εντολή προσθέτει στον πίνακα EMPLOYEE το πεδίο JOB που είναι συµβολοσειρά µε µέγιστο µήκος ίσο µε 12 χαρακτήρες.

Page 14: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

14

∆ιαχείριση όψεων

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

∆ηµιουργώντας µια όψη, µπορούµε να έχουµε εύκολη προσπέλαση σεπεδία τα οποία χρησιµοποιούµε πολύ συχνά. Οι βασικοί πίνακες από τους οποίους δηµιουργείται µια όψη, αναφέρονται και ως πίνακες ορισµού της όψης (defining tables).

Page 15: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

15

Create View

Για να δηµιουργήσουµε µια όψη, χρησιµοποιούµε την εντολή CREATE VIEW. Ηεντολή δέχεται ως όρισµα το όνοµα της όψης που πρόκειται να δηµιουργήσουµε. Επίσης, εάν το επιθυµούµε, µπορούµε να καθορίσουµε και τα ονόµατα τωνπεδίων αυτής της όψης – στην αντίθετη περίπτωση, θα χρησιµοποιηθούν ταονόµατα των πεδίων των πινάκων ορισµού της. Τέλος επειδή τα πεδία της όψηςθα καθοριστούν εφαρµόζοντας ένα ερώτηµα (query) επί των βασικών πινάκωντης βάσης, θα πρέπει να περάσουµε ως παράµετρο στην εντολή και ένα τέτοιοερώτηµα. Ένα παράδειγµα χρήστης της CREATE VIEW παρουσιάζεται στησυνέχεια:

Η παραπάνω εντολή δηµιουργεί µια καινούρια όψη που φέρει το όνοµαWORKS_ON1 και περιέχει τα πεδία FNAME, LNAME, PNAME και HOURS τωνπινάκων EMPLOYEE, PROJECT και WORKS_ON.

Page 16: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

16

Drop View

H διαγραφή µιας όψης γίνεται µε την εντολή DROP VIEW. Παράδειγµαχρήσης της εντολής αυτής, είναι η κλήση της µε τη µορφή:

η οποία διαγράφει την όψη WORKS_ON1 από τη βάση δεδοµένων.

Page 17: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

17

∆ιαχείριση δεικτών

Η έννοια του δείκτη (index) σε όλα τα συστήµατα διαχείρισης βάσεωνδεδοµένων είναι στενά συνυφασµένη µε την έννοια της αναζήτησηςπληροφορίας. Ο δείκτης δεν είναι τίποτε άλλο από µια δοµή δεδοµένωνπου αποθηκεύεται σε ειδικά αρχεία της βάσης (index files) και έχει ωςστόχο να επιταχύνει τη διαδικασία αναζήτησης πληροφορίας από τουςπίνακες της βάσης. Οι δείκτες συνήθως ορίζονται για συγκεκριµένα πεδίααυτών των πινάκων (indexing fields) και για κάθε τιµή των εν λόγωπεδίων, αποθηκεύουν ένα σύνολο από pointers που δείχνουν όλες τιςπεριοχές της συσκευής δευτερεύουσας αποθήκευσης στις οποίεςβρίσκονται αποθηκευµένα τα δεδοµένα της κάθε εγγραφής. Τα αρχείατων δεικτών είναι εποµένως αρκετά µικρότερα σε µέγεθος σε σχέση µετα αρχεία δεδοµένων, και η διαδικασία αναζήτησης της πληροφορίας διατης χρήσης τους, λαµβάνει χώρα δια της εφαρµογής γνωστών τεχνικώναναζήτησης, όπως είναι για παράδειγµα η δυαδική αναζήτηση (binary search).

Page 18: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

18

Create Index

Η δηµιουργία ενός δείκτη στη γλώσσα SQL, γίνεται χρησιµοποιώντας την εντολή CREATE INDEX καιπεριλαµβάνει τον καθορισµό του ονόµατος του δείκτη και του πεδίου του πίνακα για το οποίο θαδηµιουργηθεί.

Για παράδειγµα, προκειµένου να δηµιουργήσουµε ένα δείκτη για το πεδίο LNAME του πίνακαEMPLOYEE, θα καλέσουµε την εντολή CREATE INDEX µε τη µορφή:

Η ταξινόµηση των τιµών του πεδίου πάνω στο οποίο θα δηµιουργηθεί ο δείκτης, µπορεί να είναι είτεαύξουσα (ascending) είτε φθίνουσα (descending), και καθορίζεται από το χρήστη, αναγράφοντας τιςπαραµέτρους ASC και DESC αντίστοιχα, αµέσως µετά το όνοµα του πεδίου. Εάν δεν χρησιµοποιήσουµεαυτή την παράµετρο, όπως στο παραπάνω παράδειγµα, ο δείκτης χρησιµοποιεί την αύξουσα ταξινόµησηγια τη διάταξη των τιµών του πεδίου. Η δηµιουργία ενός δείκτη για ένα συνδυασµό πεδίων είναι επίσηςδυνατή, και µάλιστα έχουµε τη δυνατότητα να καθορίσουµε διαφορετικό είδος ταξινόµησης για κάθεαπλό πεδίο.

Η παραπάνω εντολή δηµιουργεί ένα δείκτη πάνω στα πεδία LNAME, MINIT και FNAME, εκ των οποίωντο LNAME ταξινοµείται κατά αύξουσα διάταξη ενώ το FNAME ταξινοµείται κατά φθίνουσα διάταξη.

Page 19: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

19

Drop Index

Η διαγραφή ενός δείκτη από τη βάση δεδοµένων γίνεταιχρησιµοποιώντας την εντολή DROP INDEX. Παράδειγµα χρήσης αυτήςτης εντολής είναι η κλήση της µε τη µορφή:

DROP INDEX LNAME_INDEX

Η παραπάνω εντολή διαγράφει το δείκτη LNAMES_INDEX από τη βάσηδεδοµένων.

Page 20: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

20

∆ιαχείριση δεδοµένων

Η γλώσσα χειρισµού δεδοµένων (Data Manipulation Language, DML) επιτρέπει τη διαχείριση των δεδοµένων των πινάκων της βάσης, και πιοσυγκεκριµένα, την εισαγωγή, διαγραφή, και τροποποίηση των εγγραφώντων πινάκων. Επιπλέον, έχουµε τη δυνατότητα να ανακτήσουµε απότους πίνακες, δεδοµένα, τα οποία πληρούν κάποια συγκεκριµένακριτήρια. Η πραγµατοποίηση όλων αυτών των διαδικασιών, γίνεταιχρησιµοποιώντας τις εντολές:

INSERT,

DELETE,

UPDATE και

SELECT.

Page 21: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

21

Εισαγωγή εγγραφών σε πίνακα της βάσης:η εντολη Insert (1/2)

Η εισαγωγή µιας νέας εγγραφής σε κάποιον από τους πίνακες της βάσηςδεδοµένων, γίνεται µε τη χρήση της εντολής INSERT, η οποία στη γενικήπερίπτωση, καλείται µε τη µορφή:

<TABLE NAME> είναι το όνοµα του πίνακα στον οποίο θα καταχωρηθεί η νέαεγγραφή και <v1>, <v2>, …… , <vn>, είναι οι τιµές των πεδίων της εγγραφήςπου θέλουµε να καταχωρήσουµε.

Η παραπάνω εντολή καταχωρεί στον πίνακα EMPLOYEE ένα νέο υπάλληλο µεόνοµα Richard K. Marini, που έχει κωδικό SSN 653298653, ηµεροµηνία γέννησης30 ∆εκεµβρίου 1952, ∆ιεύθυνση 98 Oak Forest, Katy, TX, φύλλο άρρεν, µισθό37000, ο οποίος εποπτεύεται από τον MANAGER µε κωδικό SSN 987654321, καιέχει τοποθετηθεί στο τµήµα µε κωδικό αριθµό 4.

Page 22: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

22

Εισαγωγή εγγραφών σε πίνακα της βάσης:η εντολη Insert (2/2)

Οι τιµές των πεδίων στην εντολή INSERT θα πρέπει να αναγράφονται µε τη σειρά µε τηνοποία δηλώθηκαν τα πεδία του πίνακα στην εντολή CREATE TABLE, έτσι ώστε η κάθε τιµήνα καταχωρηθεί στη σωστή στήλη του πίνακα και να διασφαλισθεί η συµβατότητα ανάµεσαστον τύπο δεδοµένων του πεδίου, και στον τύπο δεδοµένων των καταχωρηµένων τιµών. Εάν για κάποιο πεδίο δεν επιθυµούµε να καταχωρήσουµε κάποια τιµή, τότε η αντίστοιχητιµή στην εγγραφή που θα καταχωρήσουµε θα είναι ίση µε NULL. Εναλλακτικά, µπορούµενα παραλείψουµε τις τιµές NULL, για κάποια πεδία του πίνακα. Στην περίπτωση αυτή όµωςθα πρέπει να καθορίσουµε επ’ ακριβώς σε ποιες στήλες του πίνακα θα καταχωρηθούν οιτιµές που καθορίζουµε.

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

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

Page 23: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

23

Επιλογή δεδοµένων από τους πινάκες της βάσης:η εντολή Select (1/4)

Η εντολή SELECT αναζητά και εµφανίζει δεδοµένα, τα οποία πληρούν κάποιασυγκεκριµένα κριτήρια επιλογής. Αυτού του είδους οι διαδικασίες ονοµάζονταιερωτήµατα (queries).

Η χρήση της εντολής SELECT ακολουθεί τη σύνταξη:

Ο κατάλογος <attribute list> περιέχει τα ονόµατα των πεδίων που θέλουµε ναανακτήσουµε, ο κατάλογος <table list> περιέχει τα ονόµατα των πινάκων που θαχρησιµοποιηθούνε στη δηµιουργία του ερωτήµατος, ενώ <condition> είναι τοκριτήριο αναζήτησης, που θα πρέπει να ικανοποιείται από τα δεδοµένα τωνπινάκων, προκειµένου αυτά να εµφανιστούν στο τελικό αποτέλεσµα.

Ένα παράδειγµα της εντολής SELECT είναι η κλήση της µε τη µορφή

Η παραπάνω εντολή εφαρµόζεται πάνω στον πίνακα EMPLOYEE και επιστρέφειτην ηµεροµηνία γέννησης και τη διεύθυνση του υπαλλήλου, που φέρει το όνοµαJohn B. Smith.

Page 24: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

24

Επιλογή δεδοµένων από τους πινάκες της βάσης:η εντολή Select (2/4)

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

Στο παραπάνω παράδειγµα θα λάβουµε τα ονοµατεπώνυµα όλων τωνυπαλλήλων της εταιρείας, ενώ για να λάβουµε όλα τα πεδία της κάθεεγγραφής, θα χρησιµοποιήσουµε τον τελεστή «*».

Το παραπάνω παράδειγµα θα επιστρέψει όλα τα πεδία των υπαλλήλωντης εταιρείας, για τους οποίους ο κωδικός του τµήµατος στο οποίοαπασχολούνται έχει την τιµή 5.

Page 25: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

25

Επιλογή δεδοµένων από τους πινάκες της βάσης:η εντολή Select (3/4)

Η παράµετρος DISTINCT: Η γλώσσα SQL δεν διαγράφει από µόνη της τις διπλο-εγγραφές πουενδέχεται να εµφανιστούν στο τελικό αποτέλεσµα.

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

Στον επόµενο πίνακα παρουσιάζουµε το αποτέλεσµα των παραπάνω εντολών, προκειµένου να γίνεικαλύτερα κατανοητός, ο τρόπος λειτουργίας της DISTINCT.

Στον παραπάνω πίνακα η αριστερή στήλη περιέχει το αποτέλεσµα της εντολής χωρίς τη χρήση τηςπαραµέτρου DISTINCT, η οποία χρησιµοποιείται στη δεύτερη περίπτωση. Όπως φαίνεται από ταπεριεχόµενα των πινάκων, η χρήση της DISTINCT αποµακρύνει τις τιµές που εµφανίζονται περισσότερεςαπό µιας φορά, µε αποτέλεσµα το σύνολο των τιµών που επιστρέφεται από τη SELECT να είναι πλέονδιακριτό, και να περιλαµβάνει µόνο διαφορετικές τιµές.

Page 26: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

26

Επιλογή δεδοµένων από τους πινάκες της βάσης:η εντολή Select (4/4)

Η παράµετρος UNION: η πράξης της ένωσης (UNION) ενώνει 2 πίνακες – θαπρέπει οι πίνακες να είναι συµβατοί ως προς την ένωση (union compatible), δηλαδή να έχουν το ίδιο πλήθος πεδίων, και τα αντίστοιχα πεδία των πινάκων ναέχουν το ίδιο σύνολο τιµών.

Ως παράδειγµα εφαρµογής της ένωσης δύο πινάκων, θα ζητήσουµε ναανακτηθούν οι κωδικοί των PROJECTS στα οποία δουλεύει ο υπάλληλος µε τοεπώνυµο Smith, τόσο ως εργαζόµενος όσο και ως MANAGER κάποιου τµήµατος. Για να απαντήσουµε σε αυτό το ερώτηµα, θα πρέπει να βρούµε τους κωδικούςτων PROJECTS στα οποία ο Smith συµµετέχει ως εργαζόµενος και τους κωδικούςτων PROJECTS στα οποία ο Smith συµµετέχει ως MANAGER, οπότε, το τελικόαποτέλεσµα θα αποτελείται από την ένωση των δύο συνόλων. Έτσι, το ερώτηµααυτό σε γλώσσα SQL θα διατυπωθεί ως εξής:

Page 27: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

27

Αθροιστικές συναρτήσεις (aggregate functions)

Σε ένα σχεσιακό σχήµα βάσεων δεδοµένων υπάρχει η δυνατότητα να εφαρµόσουµε πάνωστα δεδοµένα των πινάκων, ένα σύνολο συναρτήσεων οι οποίες επιστρέφουν κάποιεςτιµές. Στη γλώσσα SQL οι συναρτήσεις αυτές είναι η COUNT η οποία επιστρέφει το πλήθοςτων εγγραφών ενός πίνακα ή το πλήθος κάποιων τιµών ανάλογα µε τον τρόπο µε τονοποίο καλείται, η MIN και η MAX οι οποίες επιστρέφουν την ελάχιστη και τη µέγιστη τιµήκάποιου συνόλου, η SUM που επιστρέφει το άθροισµα κάποιων τιµών, και η AVG πουεπιστρέφει το µέσο όρο τους. Παραδείγµατα:

Να βρεθεί το άθροισµα των µισθών όλων των υπαλλήλων που δουλεύουν στο Research Department, καθώς επίσης ο µεγαλύτερος και ο µικρότερος µισθός και ο µέσος όρος τους:

Να βρεθεί το πλήθος των υπαλλήλων που δουλεύουν στο Research Department

Page 28: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

28

Η παράµετρος GROUP BY

Σε ορισµένες περιπτώσεις, επιθυµούµε την εφαρµογή των αθροιστικών συναρτήσεων, όχισε όλες τις πλειάδες του πίνακα, αλλά µόνο σε ένα σύνολο από αυτές, οι οποίες έχουν ένακοινό χαρακτηριστικό. Ας υποθέσουµε για παράδειγµα πως για κάθε τµήµα της εταιρείαςζητούµε να ανακτήσουµε το πλήθος των υπαλλήλων που εργάζονται σε αυτό, καθώς και τοµέσο όρο των µισθών τους. Στην περίπτωση αυτή είναι προφανές πως θα πρέπει ναοµαδοποιήσουµε τις εγγραφές των υπαλλήλων µε κριτήριο τον κωδικό του τµήµατος στοοποίο απασχολούνται, και στη συνέχεια να εφαρµόσουµε τις αθροιστικές συναρτήσεις, σεκάθε µια από αυτές τις οµάδες. Το σύνολο των πεδίων ως προς τα οποία θα λάβει χώρααυτή η οµαδοποίηση (grouping attributes) πρέπει υποχρεωτικά να είναι ανάµεσα στα πεδίαπου θα επιστρέψει η SELECT έτσι ώστε να γνωρίζουµε σε ποιο πεδίο αναφέρεται η κάθε µιααπό τις εγγραφές που θα εµφανιστούν στο τελικό αποτέλεσµα.

Χαρακτηριστικό παράδειγµα χρήσης της παραµέτρου GROUP BY είναι το ερώτηµα που για κάθε τµήµα της εταιρείας, επιστρέφει τον κωδικό του, το πλήθος των υπαλλήλων που εργάζονται σε αυτό, και το µέσο όρο των µισθών τους.

Page 29: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

29

Η παράµετρος HAVING

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

Ας υποθέσουµε για παράδειγµα ότι ζητούµε το όνοµα και τον κωδικό τουPROJECT καθώς και το πλήθος των υπαλλήλων που εργάζονται σε αυτό, όχιόµως για όλα τα PROJECTS, αλλά µόνο για εκείνα στα οποία εργάζονταιπερισσότεροι από δύο υπάλληλοι. Στην περίπτωση αυτή θα επαναδιατυπώσουµετο προηγούµενο ερώτηµα, ως εξής :

Page 30: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

30

Εµφωλιασµένα Υποερωτήµατα

Η SQL επιτρέπει τον εµφωλιασµό υποερωτήσεων. Τα εµφωλιασµένα υποερωτήµατα(nested queries) χρησιµοποιούνται σε προτάσεις where ή having. Ένα υποερώτηµα είναιµια έκφραση select-from-where που είναι εµφωλιασµένη (ένθετη) µέσα σε µια άλληερώτηση. Τότε το πρώτο ονοµάζεται εξωτερικό ερώτηµα και το δεύτερο εσωτερικόερώτηµα.

Συνήθως υπολογίζεται πρώτα το εσωτερικό ερώτηµα και κατόπιν το εξωτερικόεφαρµόζοντας σε αυτό το αποτέλεσµα του εσωτερικού ερωτήµατος.

Οι τελεστές που χρησιµοποιούνται για τους ελέγχους είναι

in/not in (συµµετοχή σε σύνολο)

(>, <, =, κλπ) some/any/all (σύγκριση συνόλων)

exists/not exists (έλεγχος για κενά σύνολα)

unique/not unique (έλεγχος για διπλότυπα)

Η γενική σύνταξη των εµφωλιασµένων υποερωτηµάτων είναι η:

Page 31: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

31

Εµφωλιασµένα Υποερωτήµατα - Παράδειγµα

Χρησιµοποιώντας εµφωλιασµένα υποερωτήµατα, το παράδειγµα που ζητούσε τους κωδικούς τωνPROJECTS στα οποία ο Smith συµµετέχει τόσο ως εργαζόµενος, όσο και ως MANAGER, µπορεί ναεπαναδιατυπωθεί ως εξής:

Εκείνο που κάνουµε στην παραπάνω εντολή είναι να βρούµε το σύνολο των κωδικών των PROJECTS στα οποία ο Smith συµµετέχει τόσο ως εργαζόµενος όσο και ως MANAGER, και στη συνέχειαχρησιµοποιώντας τον λογικό τελεστή OR να ενώσουµε στην ουσία αυτά τα σύνολα. Επειδή δεν είναιδυνατόν να γνωρίζουµε σε κάθε χρονική στιγµή τις τιµές αυτών των συνόλων, τις ανακτούµε µε δύοεµφωλιασµένες SELECT, έτσι ώστε σε κάθε περίπτωση τα σύνολα αυτά να περιέχουν τις σωστές τιµές.

Page 32: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

32

∆ιαγραφή εγγραφών από πίνακα της βάσης:η εντολη Delete

Η εντολή DELETE χρησιµοποιείται για τη διαγραφή εγγραφών από κάποιο πίνακα. Οι εγγραφές διαγράφονται µόνο από ένα πίνακα κάθε φορά και καθορίζονται δια της χρήσης της πρότασης WHERE ηοποία χρησιµοποιείται µε τον ίδιο τρόπο που χρησιµοποιείται και στη SELECT. Εάν δεν χρησιµοποιηθεί ηπρόταση WHERE, η εντολή DELETE διαγράφει όλες τις εγγραφές του πίνακα πάνω στον οποίοεφαρµόζεται. Αυτό βέβαια δεν σηµαίνει πως λαµβάνει χώρα και διαγραφή του πίνακα από τη βάση – γιανα αποµακρυνθεί και ο ίδιος ο πίνακας θα πρέπει να χρησιµοποιηθεί και η εντολή DROP TABLE.

Στα δύο πρώτα παραδείγµατα η εντολή DELETE διαγράφει µια εγγραφή κάθε φορά – αυτή που αναφέρεται στον Brown, και αυτή που αναφέρεται στον υπάλληλο µε κωδικό SSN = 123456789. Στοτρίτο παράδειγµα οι εγγραφές που πρόκειται να διαγραφούν, καθορίζονται από µια πρόταση SELECT ηοποία επιστρέφει τον κωδικό του τµήµατος µε όνοµα DEPARTMENT. Εποµένως, η παραπάνω εντολή, διαγράφει όλους τους υπαλλήλους της εταιρείας, που ανήκουν στο Research Department.

Page 33: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

33

Τροποποίηση του περιεχοµένου των εγγραφών τωνπινάκων της βάσης: η εντολή Update

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

Η παραπάνω εντολή τροποποιεί τις τιµές των πεδίων της εγγραφής του πίνακα PROJECT για την οποία το πεδίο PNUMBER έχει την τιµή 10 και αποδίδει στο πεδίο PLOCATION την τιµή Bellaire και στο πεδίο DNUM την τιµή 5.

Όπως και στην εντολή DELETE, µπορούµε να τροποποιήσουµε τις τιµές πολλών εγγραφών ταυτόχρονα, εάν συνδυάσουµε την εντολή UPDATE µε την εντολή SELECT.

Η παραπάνω εντολή τροποποιεί τους µισθούς όλων των υπαλλήλων που εργάζονται στο Research Department, προκαλώντας αύξηση της τιµής τους κατά 10%.

Page 34: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

34

Άσκηση – Εκφώνηση 1/2

Page 35: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

35

Άσκηση – Εκφώνηση 2/2

Page 36: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

36

Ερώτηµα 1ο:

Page 37: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

37

Ερώτηµα 1ο – Απάντηση :

Page 38: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

38

Ερώτηµα 2ο :

Page 39: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

39

Ερώτηµα 2ο - Απάντηση:

Page 40: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

40

Ερώτηµα 3ο :

Page 41: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

41

Ερώτηµα 3ο - Απάντηση:

Page 42: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

42

Ερώτηµα 4ο :

Page 43: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

43

Ερώτηµα 4ο - Απάντηση:

Page 44: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

44

Ερώτηµα 5ο :

Page 45: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

45

Ερώτηµα 5ο - Απάντηση:

Page 46: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

46

Ερώτηµα 7ο :

Page 47: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

47

Ερώτηµα 7ο - Απάντηση:

Page 48: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

48

QBE

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

Το όνοµα QBE σηµαίνει Query By Example και προσδιορίζει τηφιλοσοφία της γλώσσας που είναι να δίνονται οι ερωτήσεις υπό µορφήπαραδειγµάτων. Η QBE αναπτύχθηκε από την IBM ως εναλλακτικόςτρόπος υποβολής ερωτήσεων στο σύστηµα DB2. Υπάρχουν αρκετέςδιαφορές στον τρόπο µε τον οποίο χρησιµοποιείται η QBE από σύστηµασε σύστηµα.

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

Page 49: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

49

Η QBE σε συνδυασµό µε γραφικό περιβάλλον

Στα περισσότερα Συστήµατα ∆ιαχείρισης Βάσεων ∆εδοµένων πουχρησιµοποιούν σήµερα QBE υπάρχει κάποιο γραφικό περιβάλλον για τηδιευκόλυνση των χρηστών. Με τη χρήση κάποιου τέτοιου περιβάλλοντοςο χρήστης µπορεί πολύ εύκολα να υλοποιήσει εντολές σε QBE.

H Microsoft Access χρησιµοποιεί την γλώσσα QBE.

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

Page 50: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

50

∆ιαδικασία χρήσης της QBE

Ο χρήστης διαλέγει τις σχέσεις (πίνακες) που χρειάζεται για το query

Παρουσιάζονται τα περιγράµµατα των πινάκων που διαλέχτηκαν

Ο χρήστης «πηγαίνει» στις κατάλληλες στήλες (µε ειδικά πλήκτρα)

Τιµές-παραδείγµατα (µεταβλητές), σταθερές, κλπ., δακτυλογραφούνται

Άλλοι συγκριτικοί τελεστές (πέραν της ισότητας – που είναι αυτόµατη γιασταθερές τιµές) πρέπει να δακτυλογραφηθούν (όπως, >, <, κλπ.)

Πιο πολύπλοκες συνθήκες µπαίνουν σε ένα κουτί-συνθηκών (conditionbox)

Συνθήκες στην ίδια σειρά υποδηλώνουν το Boolean AND

Συνθήκες σε διαφορετικές σειρές υποδηλώνουν το Boolean OR

Η άρνηση (negation - Boolean NOT) προσδιορίζεται µε τον τελεστή “not“

Page 51: ΜΑΘΗΜΑ 4ο - WordPress.comΗ δηµιουργία ενός δείκτη στη γλώσσα sql, γίνεται χρησιµοποιώντας την εντολή create index

51

Παράδειγµα ερωτήµατος QBE σε MS Access:

Πίνακας “Employee”.

Σχεδίαση ερωτήµατος QBE: Να βρεθούν τα επώνυµα και τα ονόµατα των υπαλλήλων µε µισθό µεγαλύτερο από 30.000.

Αντίστοιχο ερώτηµα µε εντολές SQL.

Αποτέλεσµα εκτέλεσης ερωτήµατος.