380 likes | 646 Views
Κεφάλαιο 5. Ορισμός Βάσεων Δεδομένων με SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων ( QBE). SQL Data Definition. H Γλώσσα Ορισμού (DDL) της SQL χρησιμοποιείται για CREATE, DROP και ALTER τις περιγραφές των Σχέσεων στη Βάση Δεδομένων CREATE TABLE DEPARTMENT
E N D
Κεφάλαιο 5 Ορισμός Βάσεων Δεδομένων με SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE)
SQL Data Definition • H Γλώσσα Ορισμού (DDL) της SQL χρησιμοποιείται γιαCREATE, DROPκαιALTERτις περιγραφές των Σχέσεων στη Βάση Δεδομένων CREATE TABLE DEPARTMENT ( DNumber integer keymember 0 not null, DName varchar(12) keymember 1 not null, MgrSSN char(9) references EMPLOYEE.SSN, MgrSD char(9) ); • Σε μερικά (παλαιότερα) SQL συστήματα, δεν υπάρχει υποστήριξη γιαREFERENCES (foreign key) και KEYMEMBER (key)
SQL DDL - συνέχεια • Η εντολή: DROP TABLE DEPENDENT διαγράφειτον πλήρη πίνακα DEPENDENT και τον ορισμό του (δεν είναι δυνατή πλέον η χρήση του για ενημερώσεις, κλπ.) • Η εντολή: ALTER TABLE EMPLOYEE ADD JOB VARCHAR(15) προσθέτειένα νέο γνώρισμα, με όνομα JOB, στη Σχέση EMPLOYEE • Όλες οι τιμές για το JOB στην αρχή θα είναι NULL • Αργότερα μπορεί να αλλάξουν με την εντολή UPDATE.
Δημιουργία Ευρετηρίων στην SQL • Στις περισσότερες περιπτώσεις μια Σχέση Βάσης αντιστοιχεί σε αποθηκευμένο αρχείο • Η εντολήCREATE INDEXχρησιμοποιείται για τον προσδιορισμό ευρετηρίου (index)που έχει ονομασία (index name) CREATE INDEX LN_INDEX on EMPLOYEE (Name); • Για τον προσδιορισμό ενός περιορισμούευρετηρίου κλειδιούστο γνώρισμα (γνωρίσματα) κλειδιού χρησιμοποιείται τοUNIQUE CREATE UNIQUE INDEX S_IND on EMPLOYEE (SSN); • Για τον προσδιορισμό ενός ευρετηρίου συστάδων (clustering index)χρησιμοποιείται τοCLUSTER CREATE INDEX D_IN on EMPLOYEE(DNumber) CLUSTER; • Στα περισσότερα DBMS, κάποια παραλλαγή τωνB+-treeχρησιμοποιείται για την υλοποίηση ευρετηρίων
Σχεσιακές Όψεις και SQL • Η αρχιτεκτονική 3-επιπέδων στα DBMS, έχει σαν αποτέλεσμαδιαφορετικοίχρήστες να βλέπουνδιαφορετικάεξωτερικά σχήματα (όψεις) - αυτό επιτυγχάνεται στο σχεσιακό μοντέλο με την έννοια τουVIEW RELATIONAL VIEWS External Schema 1 External Schema 2 External Schema N ..... RELATIONAL DATABASE SCHEMA (RELATIONS) Conceptual Schema Internal Schema
Σχεσιακές Όψεις – Ορισμός (1) • Μια ΟΨΗ(VIEW) είναι μια Σχέση που ΔΕΝ είναι στοιχείο του Εννοιολογικού Σχήματος(οι Σχέσεις Βάσης)) αλλά είναι προσβάσιμη ως μια ιδεατή (virtual)σχέση • Ο χρήστης δεν μπορεί να ξεχωρίσει αν μια Σχέση είναι Σχέση Βάσης ή είναι Όψη • Η Όψη ΔΕΝ αποθηκεύεται (materialized) στην Βάση Δεδομένων • Τα περιεχόμενα της Όψης προσδιορίζονται από τον (αποθηκευμένο) ορισμό της σαν μια συνάρτηση των περιεχομένων της • Μια Όψη ορίζεται σε Σχέσεις Βάσης ή σε άλλες Όψεις με κάποιο query • Πράξεις (queries, ενημερώσεις) σε Όψεις μεταφράζονται σε Πράξεις στις ορίζουσες (την Όψη) Σχέσεις Βάσης • ΔΕΝ υπάρχουν περιορισμοί στα Queries σε Όψεις • Ελάχιστες ενημερώσεις σε Όψεις επιτρέπονται • Μια Όψη αλλάζειδυναμικά με τη Βάση δεδομένων
Σχεσιακές Όψεις – Ορισμός (2) CREATE VIEW table_name [ ( view_column_list ) ] AS query_expression [ WITH CHECK OPTION ] • V1: Εργαζόμενοι σε Έργα CREATE VIEW PROJWORKER(EName, Address, Project) ASselect Name, Address, PName from EMPLOYEE, PROJECT, WORKS_ON where PROJECT.PNumber = WORKS_ON.PNumber and WORKS_ON.SSN=EMPLOYEE.SSN ;
Σχεσιακές Όψεις - Παραδείγματα • Όταν τοview_column_listλείπει, τα γνωρίσματα της ΟΨΗΣ κληρονομούνται από τα Γνωρίσματα της ορίζουσας Σχέσης • V2: Υπάλληλοι με υψηλούς μισθούς CREATE VIEW BIGSHARKS AS select * from EMPLOYEE where Salary > 50000 and BirthDate > 31.12.65; • Ο χρήστης δύναται να κάνει ερωτήσειςάμεσασε αυτή τη νέα Σχέσηπου λέγεται BIGSHARKS, και η οποία έχει ακριβώς τα ίδια Γνωρίσματα με τη Σχέση EMPLOYEE
Σχεσιακές Όψεις – Παραδείγματα (2) • Μια Όψη είναι δυνατόν να έχει διαφορετικά γνωρίσματα (νέα) από το Εννοιολογικό Σχήμα • V3: Πληροφορίες για Τμήματα (μέσος μισθός, κλπ.) CREATE VIEW DEPTINFO (Name, NoOfEmpl, AvgSalary) ASselect DName, COUNT(*), AVG(Salary) from DEPARTMENT d, EMPLOYEE e where d.DNumber = e.DNumber group by DName ;
Σχεσιακές Όψεις – Παραδείγματα (3) • V4: Βρες τον αριθμό των υπαλλήλων και τον μέσο μισθό (παρουσίασε και το όνομα τμήματος) select * from DEPTINFO where Name = “research” • V5: Αύξησε κατά 1 τον αριθμό των Υπαλλήλων στο Τμήμα Έρευνας • Αυτή η ενημέρωση ΔΕΝ επιτρέπεται(Γιατί ?)
Σχεσιακές Όψεις - Εκτέλεση • Όπως ήδη ειπώθηκε, το σύστημα μεταφράζει προσβάσεις (ενημερώσεις) σε ΌψειςΣΕ προσβάσεις (ενημερώσεις) σεΣχέσεις Βάσης.ΠΩΣ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ ΑΥΤΌ ? • ΧΑΖΗ Προσπάθεια 1: Δημιούργησε (Materialize)την Όψη (προσωρινός πίνακας) και εκτέλεσε το query σε αυτήν. • ΧΑΖΗ Προσπάθεια 2:Κράτα συνεχώς ενήμερη την Όψη -- δηλαδή, κράτησέ την δημιουργημένη (ονομάζεται, snapshot) καιόποτε σχετικές ενημερώσεις γίνονται στις Σχέσεις Βάσης, τότε πέρασε αυτές και στην Όψη.Εκτέλεσε το query στο snapshot. • ΣΩΣΤΗ Προσπάθεια:Άλλαξε το query αντικαθιστώντας την Όψη με το query σε Σχέσεις Βάσης που την ορίζει, καιεκτέλεσε το query σε αυτές τις Σχέσεις Βάσης.
Σχεσιακές Όψεις – Παραδείγματα Εκτέλεσης • Για παράδειγμα, το query στην Όψη BIGSHARKS: select Name, Address from BIGSHARKS where DNumber = 5 Τροποποιείται ανάλογακαι το παρακάτω query εκτελείται: select Name, Address from EMPLOYEE where Salary > 50000 and BirthDate > 31.12.65 and DNumber = 5
Σχεσιακές Όψεις - Ενημερώσεις • Γενικά, υπάρχουν σοβαροί περιορισμοίστις ενημερώσεις • Μια ενημέρωση Όψηςείναιαναμφίβοληαν μια μοναδική ενημέρωσηστις Σχέσεις Βάσης μπορεί να εκπληρώσει το ζητούμενο αποτέλεσμα στην Όψη • ΠΑΡΑΤΗΡΗΣΕΙΣ: • Μια όψη που ορίζεται σε μια (ακριβώς) Σχέση Βάσης είναι ενημερώσιμη αν τα γνωρίσματα της Όψης περιέχουν το Κύριο Κλειδί • Όψεις που ορίζονται σε πολλαπλές Όψεις είναι γενικά μη-ενημερώσιμες • Όψεις που περιέχουν Συναθροιστικές Συναρτήσεις είναι σίγουρα μη-ενημερώσιμες • Οι Ενημερώσεις των Όψεων παραμένουν ένα ενδιαφέρον ανοικτό ερευνητικό θέμα / πρόβλημα (π.χ., Data Warehouses)
Σχεσιακές Όψεις - Σχόλια • To “WITH CHECK OPTION” χρησιμοποιείται σε ενημερώσιμες όψειςγια να αντιμετωπίσει το πρόβλημα των γραμμών που εξαφανίζονται(vanishing rows) • Για παράδειγμα, θεωρήστε την Όψη: CREATE VIEW V AS select * from R where A = “X” Έστω η ενημέρωση: UPDATE V set A = “Y” Η ενημέρωση θα προχωρήσει κανονικά, αλλά οι πλειάδες που ήταν πριν προσβάσιμες στην V θα εξαφανιστούν! (προφανώς, δεν θα ικανοποιούν πλέον την συνθήκη της WHERE-πρότασης) • Οι Όψεις χρησιμοποιούνται (επίσης) ως μηχανισμοί ασφάλειας και δικαιοδοσίας
Περιορισμοί Ακεραιότητας • Το Σχεσιακό Μοντέλο υποστηρίζει 6 είδη περιορισμών ακεραιότητας:ΚΛΕΙΔΙ(KEY), ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY), ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ(REFERENTIAL INTEGRITY.)ΠΕΔΙΟ ΤΙΜΩΝ (DOMAIN), ΣΤΗΛΩΝ (COLUMN)και ΟΡΙΖΟΜΕΝΩΝ ΑΠΟ ΤΟΝ ΧΡΗΣΤΗ (USER-DEFINED) • Τα περισσότερα εμπορικά DBMSδεν υποστηρίζουνόλους τους περιορισμούς ακεραιότητας (υποστήριξη εδώ σημαίνει ότι αν μια ενημέρωση καταστρατηγεί έναν περιορισμότότε το DBMS δεν επιτρέπει την εκτέλεσή του) • Έχουμε ήδη μιλήσει για τον προσδιορισμό των έμφυτων στο μοντέλο περιορισμών, (κλειδί, ακεραιότητα οντότητας, αναφορική ακεραιότητα. Οι άλλοι 3 περιορισμοί προσδιορίζονται ρητά. • Μοντέρνα DBMS επιβάλουν όλο και περισσότερους δομικούς περιορισμούς, με καλό παράδειγμα την: Access της Microsoft.
Περιορισμοί στο Σχεσιακό Μοντέλο • Όταν υποστηρίζεται ένας περιορισμός ακεραιότητας, αρκετές ενέργειες πρέπει να γίνουναπό το DBMS. Αυτές είναι, ηδιαδοχική τροποποίηση (cascade delete)και η διαδοχική ενημέρωση (cascade update.) • Μερικά DBMSs υποστηρίζουνάμεσατα παραπάνω (Access) • Άλλα DBMSs απαιτούν από τον χρήστη να γράψειtriggers (διαδικασίες) για την υποστήριξη αυτών (SQL Server) • Περιορισμοί Στηλών και Πεδίωνυποστηρίζονται μερικώς (ενίοτε και απόstrong-typing ή άλλους ισχυρούς μηχανισμούς) • Περιορισμοί που ορίζονται από τον Χρήστηέχουν περιληφθεί σε νεώτερες εκδόσεις της τυποποίησης της SQL (SQL-92) με ASSERTIONS (ειδικοί κανόνες)
Assertions -- Παραδείγματα • Κάθε Υπάλληλος είναι είτε Άνδρας ή Γυναίκα ASSERT gender ON EMPLOYEE: Sex=“m” OR Sex=“f” • Οι Μισθοί πρέπει να ξεπερνούν το 1,000,000 ASSERT salary_bound ON EMPLOYEE: Salary > 1000000 Αν κάποιοςεπιχειρήσει την παρακάτω εισαγωγή: insert into EMPLOYEE (select Name=“tom”,.., Salary=1200000, …) η εισαγωγή ΑΛΛΑΖΕΙ εμπεδώνοντας τον κανόνα assert σε: insert into EMPLOYEE (select Name=“tom”,.., Salary=12000.. where 1200000 > 1000000 )
Εμφύτευση της SQL σε Γλώσσα Προγραμματισμού • Εντολές DML συχνάεμφυτεύονται σε προγράμματα γλώσσας προγραμματισμού (host) • Η εμφυτευμένη SQL εντολή διακρίνεται από εντολές της Γλώσσας Προγραμματισμού με ειδικό τρόπο, π.χ. με πρόθεμα • Υπάρχουν δυο τρόποι εμφύτευσης: 1.- Επέκταση της Γλώσσας Προγραμματισμού (αλλαγή του Compiler) Ενδεικτικά, RIGEL, MODULA-R, Gemstone, Orion, κλπ.) Ονομάζονταιdatabase programming languages 2.- Χρήση ενός προ-επεξεργαστή της Γλώσσας για τις εντολές DML Ο προ-επεξεργαστής αντικαθιστά τις εντολές DML με κλήσεις στην host γλώσσα, οι οποίεςeεκτελούνται
Εμφύτευση της SQL • SQL εντολές καλούνται μέσα από ένα πρόγραμμα μιας host γλώσσας (π.χ., CήCOBOL) • Οι εντολές της SQL μπορούν να αναφέρονται σεhost μεταβλητές • Πρέπει να περιλαμβάνουν μια εντολή για σύνδεσμο με την σωστή βάση. • Οι SQL Σχέσειςείναι σύνολα εγγραφών, χωρίς προκαθορισμένο(a priori)όριο στον αριθμό των εγγραφών. Δεν υπάρχουν τέτοιες δομές στην C ! • Για να αντιμετωπίσει αυτή την δυσκολία η SQL υποστηρίζει ένα μηχανισμό που λέγεται cursor
Cursors • Οι δυνατότητες που προσφέρονται για τον CURSOR είναι • Δηλώνεται για μια σχέση ή ένα query που είναι γεννήτορας μιας σχέσης. • Μπορεί να ανοίξει (open)έναν cursor, και διαδοχικά να φέρει(fetch)πλειάδες, μετά να μετακινήσει (move) τονcursor, μέχρις ότου όλες οι πλειάδες ανακληθούν • Μπορεί με τη χρήση τουORDER BYνα ελέγχει τη σειρά ανάκλησης των πλειάδων • Πεδία στην ORDER BY πρότασηπρέπει να παρουσιάζονται και στην SELECT πρόταση. • Μπορεί να διαγράφει / τροποποιεί πλειάδες που δείχνονται από τον cursor
Ο Cursor που παίρνει ονόματα ναυτικών που έχουν κρατήσει ένα κόκκινο σκάφος, σε αλφαβητική σειρά • DECLARE sinfo CURSOR FOR SELECT S.sname FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color=‘red’ ORDER BY S.sname; FETCH 5 IN sinfo; • Δεν επιτρέπεται να αντικατασταθεί S.snameαπό το, ας πούμε, S.sidστηνORDER BY πρόταση! (Γιατί ?)
Εμφύτευση της SQL σε C -- Παράδειγμα char SQLSTATE[6]; EXEC SQL BEGIN DECLARE SECTION char c_sname[20]; short c_minrating; float c_age; EXEC SQL END DECLARE SECTION c_minrating = random(); EXEC SQL DECLARE sinfo CURSOR FOR SELECT S.sname, S.age FROM Sailors S WHERE S.rating > :c_minrating ORDER BY S.sname; do { EXEC SQL FETCH sinfo INTO :c_sname, :c_age; printf(“%s is %d years old\n”, c_sname, c_age); } while (SQLSTATE != ‘02000’); EXEC SQL CLOSE sinfo;
API Βάσης Δεδομένων: Εναλλακτικός της Εμφύτευσης τρόπος πρόσβασης • Αντί να αλλάζει ο compiler, προστίθεται μια βιβλιοθήκη με Κλήσεις στη Βάση Δεδομένων (API) • Application Programming Interface • Ειδικές Διαδικασίες / Αντικείμενα • Περνά τις SQL εντολές σαν character strings από τη γλώσσα και παρουσιάζει τα αποτελέσματα με φιλικό (για τη γλώσσα) τρόπο • ΤοODBCτης Microsoft έχει γίνει το C/C++ standard στα Windows • ΤοJDBC της SUN είναι το ανάλογο για τη Java • Ανεξάρτητα του DBMS • Ένας “οδηγός” παγιδεύει τις κλήσεις και τις μεταφράζεισε κώδικα για το DBMS • Η Βάση μπορεί να είναι στο Δίκτυο
SQL API στη Java (JDBC) Connection con = // connect DriverManager.getConnection(url, ”login", ”pass"); Statement stmt = con.createStatement(); // set up stmt String query = "SELECT COF_NAME, PRICE FROM COFFEES"; ResultSet rs = stmt.executeQuery(query); try { // handle exceptions // loop through result tuples while (rs.next()) { String s = rs.getString("COF_NAME"); Float n = rs.getFloat("PRICE"); System.out.println(s + " " + n); } } catch(SQLException ex) { System.out.println(ex.getMessage () + ex.getSQLState () + ex.getErrorCode ()); }
Disadvantages of having Host Programming Languages • Mixing Procedural and Declarative languages(the famouslanguage mismatchproblem) • Differentpre-processors are required fordifferentlanguages • Relations are not treated as 1st class objects in the language (e.g., cannot pass a relation as a parameter to a procedure) • The host languagemay not support required constructs (e.g., FORTRAN does not support records) • The alternative, that isdatabase programming languagesare gaining ground, especially in object-oriented DBMSs
Shortcomings of SQL • Η SQL δεν υποστηρίζειstrong typing, inheritance, etc. • Οι SQL πίνακες ΔΕΝ ΕΙΝΑΙΣΧΕΣΕΙΣ (επιτρέπουν διπλές πλειάδες) • Οι SQL πίνακες δεν εμφωλιάζονται(δεν αποτελούν τιμές για άλλους πίνακες) • Η SQL δεν υποστηρίζει πολλές πράξεις, όπως: generalized restriction, division, forall • Η SQL δεν υποστηρίζει 3-V logic (Λογική 3 τιμών αληθείας) • Η SQL δεν υποστηρίζει μεταβατικούς περιορισμούς • Η SQL δεν υποστηρίζει συναρτησιακές εξαρτήσεις (functional dependencies) • Η SQL δεν υποστηρίζει περιορισμούς ακεραιότητας σε Όψεις ΠΑΡΟΛΑ ΑΥΤΑ, η SQL είναι η STANDARD ΓΛΩΣΣΑ
Query-by-Example (QBE) • Μια Γλώσσα για ερωταποκρίσεις που αναπτύχθηκε στην IBM (από τον Moshe Zloof) και παρουσιάζεται σε ένα προϊόν (QMF) (που είναι εναλλακτικός τρόπος διεπαφής για το DB2) • Ευκολότερη από την SQL για τονμέσο χρήστη (ΟΠΤΙΚΗκαιΔΙΣΔΙΑΣΤΑΤΗ) • ΚΕΝΤΡΙΚΗ ΙΔΕΑ: Το Σύστημα παρέχει στον χρήστη τη δυνατότητα να δει το περίγραμμα τωνΣχέσεων στη Βάσηκαι ο Χρήστης συμπληρώνει τους πίνακες δίνοντας παραδείγματα για το πώς θέλει να είναι η απάντηση • QBE1: Βρες τα ονόματα των Υπαλλήλων στο Τμήμα 4 EMPLOYEE
QBE ΣΥΝΟΨΗ • Οι Αρχές της Γλώσσας • Ο χρήστηςδεν απαιτείταινα θυμάταιτα ονόματα των γνωρισμάτων και των σχέσεων • Στην διατύπωση της ερωταπόκρισης, δεν απαιτείται να τηρούνται ανελαστικοί κανόνες • Στηρίζεται στον σχεσιακό λογισμό πλειάδων(μεταβλητές είναι οι στήλες) • Σχεσιακά πλήρηςδιατύπωση, και κάτι παραπάνω, μια και εκφράζεται και transitiveclosure • Πως Λειτουργεί • Σύμβολαμε “_” να προηγείται, είναιΜΕΤΑΒΛΗΤΕΣ • Σύμβολαχωρίς “_” να προηγείταιείναι ΣΤΑΘΕΡΕΣ ΤΙΜΕΣ(υποδηλώνουν μια συνθήκηγια επιλογή - equalityselection-condition) • Το πρόσημο “P.” χρησιμοποιείται για να υποδειχθεί ποια γνωρίσματα θατυπωθούν (υποδηλώνει μια προβολή - projection)
QBE Σύνοψη – Η διαδικασία • Διαδικασία ερωταπόκρισης • Πρώτα, ο χρήστηςδιαλέγει τις σχέσεις (πίνακες) που χρειάζεται για το query • Παρουσιάζονται τα περιγράμματατων πινάκων που διαλέχτηκαν • Ο χρήστης «πηγαίνει» στις κατάλληλες στήλες(με ειδικά πλήκτρα) • Τιμές-παραδείγματα(μεταβλητές), σταθερές, κλπ., δακτυλογραφούνται • Άλλοι συγκριτικοί τελεστές(πέραν της ισότητας – που είναι αυτόματη για σταθερές τιμές)πρέπει να δακτυλογραφηθούν(όπως, >, <,κλπ.) • πιοπολύπλοκες συνθήκεςμπαίνουν σε ένακουτί-συνθηκών (condition box) • Συνθήκες στην ίδια σειράυποδηλώνουν το Boolean AND • Συνθήκες σε διαφορετικές σειρέςυποδηλώνουν το Boolean OR • Η άρνηση (negation - Boolean NOT) προσδιορίζεται με το σύμβολο “ Ø“ • Οι Συνενώσεις (JOINS)εκφράζονται με τη χρήσηκοινών παραδειγματικών τιμών σε πολλαπλούς πίνακες
QBE – Παραδείγματα (1) • QBE2: Βρες τα ονόματα των Υπαλλήλων που εργάζονται σε ένα Τμήμα που έχει μάνατζερ διαφορετικό από αυτόν με αριθμό 3334 EMPLOYEE DEPARTMENT
QBE – Παραδείγματα (2) • QBE3: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο των 300,000 και εργάζονται στο Τμήμα 5 • QBE4: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο των 300,000 ή εργάζονται στο Τμήμα 5
QBE – Παραδείγματα (3) • QBE5: Βρες ονόματα και διευθύνσεις Υπαλλήλων του Τμήματος 4 που κερδίζουν περισσότερα από κάποιον που εργάζεται στο Τμήμα 5 EMPLOYEE CONDITION BOX __10 > __20
QBE – Παραδείγματα (4) • QBE6: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο από τον μισθό του μάνατζερ του Τμήματός των EMPLOYEE DEPARTMENT CONDITION BOX __10>__15
QBE – Παραδείγματα (5) • QBE7: Βρες όλους τους Εξαρτώμενους για Υπαλλήλους που έχουν ένα Εξαρτώμενο γεννηθέντα το 1972 ενώ δεν έχουν κανένα Εξαρτώμενο που γεννήθηκε μετά το 1975 DEPENDENT P. Ø
QBE – Παραδείγματα (6) • QBE8: Βρες το άθροισμα των μισθών όλων τον Υπαλλήλων EMPLOYEE • QBE9: Εισαγωγή ενός νέου Υπαλλήλου EMPLOYEE I.
QBE – Παραδείγματα (7) • QBE10: Δώσε αύξηση μισθού 15% για όλους τους Υπαλλήλους του Τμήματος 5 EMPLOYEE U.
Κλείνοντας • Η QBE είναι μια κομψή και φιλική προς το χρήστη γλώσσα που βασίζεται στο σχεσιακό λογισμό πεδίου • Είναι ιδιαίτερα εκφραστική (σχεσιακά πλήρης, αν και οι ενημερώσεις ληφθούν υπόψη). • Απλές ερωταποκρίσεις είναι εξαιρετικά εύκολο να εκφραστούν στην QBE, με ένα ελάχιστο συντακτικό που πρέπει κανείς να θυμάται • Η QBE Έχει επηρεάσει σε μεγάλο βαθμό τις γραφικές διευκολύνσεις για queries που σήμερα προσφέρονται σε πολλά προϊόντα, περιλαμβανομένης και της Microsoft Access.