1 / 38

Κεφάλαιο 5

Κεφάλαιο 5. Ορισμός Βάσεων Δεδομένων με SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων ( QBE). SQL Data Definition. H Γλώσσα Ορισμού (DDL) της SQL χρησιμοποιείται για CREATE, DROP και ALTER τις περιγραφές των Σχέσεων στη Βάση Δεδομένων CREATE TABLE DEPARTMENT

stefan
Download Presentation

Κεφάλαιο 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Κεφάλαιο 5 Ορισμός Βάσεων Δεδομένων με SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE)

  2. 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)

  3. SQL DDL - συνέχεια • Η εντολή: DROP TABLE DEPENDENT διαγράφειτον πλήρη πίνακα DEPENDENT και τον ορισμό του (δεν είναι δυνατή πλέον η χρήση του για ενημερώσεις, κλπ.) • Η εντολή: ALTER TABLE EMPLOYEE ADD JOB VARCHAR(15) προσθέτειένα νέο γνώρισμα, με όνομα JOB, στη Σχέση EMPLOYEE • Όλες οι τιμές για το JOB στην αρχή θα είναι NULL • Αργότερα μπορεί να αλλάξουν με την εντολή UPDATE.

  4. Δημιουργία Ευρετηρίων στην 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χρησιμοποιείται για την υλοποίηση ευρετηρίων

  5. Σχεσιακές Όψεις και SQL • Η αρχιτεκτονική 3-επιπέδων στα DBMS, έχει σαν αποτέλεσμαδιαφορετικοίχρήστες να βλέπουνδιαφορετικάεξωτερικά σχήματα (όψεις) - αυτό επιτυγχάνεται στο σχεσιακό μοντέλο με την έννοια τουVIEW RELATIONAL VIEWS External Schema 1 External Schema 2 External Schema N ..... RELATIONAL DATABASE SCHEMA (RELATIONS) Conceptual Schema Internal Schema

  6. Σχεσιακές Όψεις – Ορισμός (1) • Μια ΟΨΗ(VIEW) είναι μια Σχέση που ΔΕΝ είναι στοιχείο του Εννοιολογικού Σχήματος(οι Σχέσεις Βάσης)) αλλά είναι προσβάσιμη ως μια ιδεατή (virtual)σχέση • Ο χρήστης δεν μπορεί να ξεχωρίσει αν μια Σχέση είναι Σχέση Βάσης ή είναι Όψη • Η Όψη ΔΕΝ αποθηκεύεται (materialized) στην Βάση Δεδομένων • Τα περιεχόμενα της Όψης προσδιορίζονται από τον (αποθηκευμένο) ορισμό της σαν μια συνάρτηση των περιεχομένων της • Μια Όψη ορίζεται σε Σχέσεις Βάσης ή σε άλλες Όψεις με κάποιο query • Πράξεις (queries, ενημερώσεις) σε Όψεις μεταφράζονται σε Πράξεις στις ορίζουσες (την Όψη) Σχέσεις Βάσης • ΔΕΝ υπάρχουν περιορισμοί στα Queries σε Όψεις • Ελάχιστες ενημερώσεις σε Όψεις επιτρέπονται • Μια Όψη αλλάζειδυναμικά με τη Βάση δεδομένων

  7. Σχεσιακές Όψεις – Ορισμός (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 ;

  8. Σχεσιακές Όψεις - Παραδείγματα • Όταν τοview_column_listλείπει, τα γνωρίσματα της ΟΨΗΣ κληρονομούνται από τα Γνωρίσματα της ορίζουσας Σχέσης • V2: Υπάλληλοι με υψηλούς μισθούς CREATE VIEW BIGSHARKS AS select * from EMPLOYEE where Salary > 50000 and BirthDate > 31.12.65; • Ο χρήστης δύναται να κάνει ερωτήσειςάμεσασε αυτή τη νέα Σχέσηπου λέγεται BIGSHARKS, και η οποία έχει ακριβώς τα ίδια Γνωρίσματα με τη Σχέση EMPLOYEE

  9. Σχεσιακές Όψεις – Παραδείγματα (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 ;

  10. Σχεσιακές Όψεις – Παραδείγματα (3) • V4: Βρες τον αριθμό των υπαλλήλων και τον μέσο μισθό (παρουσίασε και το όνομα τμήματος) select * from DEPTINFO where Name = “research” • V5: Αύξησε κατά 1 τον αριθμό των Υπαλλήλων στο Τμήμα Έρευνας • Αυτή η ενημέρωση ΔΕΝ επιτρέπεται(Γιατί ?)

  11. Σχεσιακές Όψεις - Εκτέλεση • Όπως ήδη ειπώθηκε, το σύστημα μεταφράζει προσβάσεις (ενημερώσεις) σε ΌψειςΣΕ προσβάσεις (ενημερώσεις) σεΣχέσεις Βάσης.ΠΩΣ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ ΑΥΤΌ ? • ΧΑΖΗ Προσπάθεια 1: Δημιούργησε (Materialize)την Όψη (προσωρινός πίνακας) και εκτέλεσε το query σε αυτήν. • ΧΑΖΗ Προσπάθεια 2:Κράτα συνεχώς ενήμερη την Όψη -- δηλαδή, κράτησέ την δημιουργημένη (ονομάζεται, snapshot) καιόποτε σχετικές ενημερώσεις γίνονται στις Σχέσεις Βάσης, τότε πέρασε αυτές και στην Όψη.Εκτέλεσε το query στο snapshot. • ΣΩΣΤΗ Προσπάθεια:Άλλαξε το query αντικαθιστώντας την Όψη με το query σε Σχέσεις Βάσης που την ορίζει, καιεκτέλεσε το query σε αυτές τις Σχέσεις Βάσης.

  12. Σχεσιακές Όψεις – Παραδείγματα Εκτέλεσης • Για παράδειγμα, το 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

  13. Σχεσιακές Όψεις - Ενημερώσεις • Γενικά, υπάρχουν σοβαροί περιορισμοίστις ενημερώσεις • Μια ενημέρωση Όψηςείναιαναμφίβοληαν μια μοναδική ενημέρωσηστις Σχέσεις Βάσης μπορεί να εκπληρώσει το ζητούμενο αποτέλεσμα στην Όψη • ΠΑΡΑΤΗΡΗΣΕΙΣ: • Μια όψη που ορίζεται σε μια (ακριβώς) Σχέση Βάσης είναι ενημερώσιμη αν τα γνωρίσματα της Όψης περιέχουν το Κύριο Κλειδί • Όψεις που ορίζονται σε πολλαπλές Όψεις είναι γενικά μη-ενημερώσιμες • Όψεις που περιέχουν Συναθροιστικές Συναρτήσεις είναι σίγουρα μη-ενημερώσιμες • Οι Ενημερώσεις των Όψεων παραμένουν ένα ενδιαφέρον ανοικτό ερευνητικό θέμα / πρόβλημα (π.χ., Data Warehouses)

  14. Σχεσιακές Όψεις - Σχόλια • To “WITH CHECK OPTION” χρησιμοποιείται σε ενημερώσιμες όψειςγια να αντιμετωπίσει το πρόβλημα των γραμμών που εξαφανίζονται(vanishing rows) • Για παράδειγμα, θεωρήστε την Όψη: CREATE VIEW V AS select * from R where A = “X” Έστω η ενημέρωση: UPDATE V set A = “Y” Η ενημέρωση θα προχωρήσει κανονικά, αλλά οι πλειάδες που ήταν πριν προσβάσιμες στην V θα εξαφανιστούν! (προφανώς, δεν θα ικανοποιούν πλέον την συνθήκη της WHERE-πρότασης) • Οι Όψεις χρησιμοποιούνται (επίσης) ως μηχανισμοί ασφάλειας και δικαιοδοσίας

  15. Περιορισμοί Ακεραιότητας • Το Σχεσιακό Μοντέλο υποστηρίζει 6 είδη περιορισμών ακεραιότητας:ΚΛΕΙΔΙ(KEY), ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY), ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ(REFERENTIAL INTEGRITY.)ΠΕΔΙΟ ΤΙΜΩΝ (DOMAIN), ΣΤΗΛΩΝ (COLUMN)και ΟΡΙΖΟΜΕΝΩΝ ΑΠΟ ΤΟΝ ΧΡΗΣΤΗ (USER-DEFINED) • Τα περισσότερα εμπορικά DBMSδεν υποστηρίζουνόλους τους περιορισμούς ακεραιότητας (υποστήριξη εδώ σημαίνει ότι αν μια ενημέρωση καταστρατηγεί έναν περιορισμότότε το DBMS δεν επιτρέπει την εκτέλεσή του) • Έχουμε ήδη μιλήσει για τον προσδιορισμό των έμφυτων στο μοντέλο περιορισμών, (κλειδί, ακεραιότητα οντότητας, αναφορική ακεραιότητα. Οι άλλοι 3 περιορισμοί προσδιορίζονται ρητά. • Μοντέρνα DBMS επιβάλουν όλο και περισσότερους δομικούς περιορισμούς, με καλό παράδειγμα την: Access της Microsoft.

  16. Περιορισμοί στο Σχεσιακό Μοντέλο • Όταν υποστηρίζεται ένας περιορισμός ακεραιότητας, αρκετές ενέργειες πρέπει να γίνουναπό το DBMS. Αυτές είναι, ηδιαδοχική τροποποίηση (cascade delete)και η διαδοχική ενημέρωση (cascade update.) • Μερικά DBMSs υποστηρίζουνάμεσατα παραπάνω (Access) • Άλλα DBMSs απαιτούν από τον χρήστη να γράψειtriggers (διαδικασίες) για την υποστήριξη αυτών (SQL Server) • Περιορισμοί Στηλών και Πεδίωνυποστηρίζονται μερικώς (ενίοτε και απόstrong-typing ή άλλους ισχυρούς μηχανισμούς) • Περιορισμοί που ορίζονται από τον Χρήστηέχουν περιληφθεί σε νεώτερες εκδόσεις της τυποποίησης της SQL (SQL-92) με ASSERTIONS (ειδικοί κανόνες)

  17. 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 )

  18. Εμφύτευση της SQL σε Γλώσσα Προγραμματισμού • Εντολές DML συχνάεμφυτεύονται σε προγράμματα γλώσσας προγραμματισμού (host) • Η εμφυτευμένη SQL εντολή διακρίνεται από εντολές της Γλώσσας Προγραμματισμού με ειδικό τρόπο, π.χ. με πρόθεμα • Υπάρχουν δυο τρόποι εμφύτευσης: 1.- Επέκταση της Γλώσσας Προγραμματισμού (αλλαγή του Compiler) Ενδεικτικά, RIGEL, MODULA-R, Gemstone, Orion, κλπ.) Ονομάζονταιdatabase programming languages 2.- Χρήση ενός προ-επεξεργαστή της Γλώσσας για τις εντολές DML Ο προ-επεξεργαστής αντικαθιστά τις εντολές DML με κλήσεις στην host γλώσσα, οι οποίεςeεκτελούνται

  19. Εμφύτευση της SQL • SQL εντολές καλούνται μέσα από ένα πρόγραμμα μιας host γλώσσας (π.χ., CήCOBOL) • Οι εντολές της SQL μπορούν να αναφέρονται σεhost μεταβλητές • Πρέπει να περιλαμβάνουν μια εντολή για σύνδεσμο με την σωστή βάση. • Οι SQL Σχέσειςείναι σύνολα εγγραφών, χωρίς προκαθορισμένο(a priori)όριο στον αριθμό των εγγραφών. Δεν υπάρχουν τέτοιες δομές στην C ! • Για να αντιμετωπίσει αυτή την δυσκολία η SQL υποστηρίζει ένα μηχανισμό που λέγεται cursor

  20. Cursors • Οι δυνατότητες που προσφέρονται για τον CURSOR είναι • Δηλώνεται για μια σχέση ή ένα query που είναι γεννήτορας μιας σχέσης. • Μπορεί να ανοίξει (open)έναν cursor, και διαδοχικά να φέρει(fetch)πλειάδες, μετά να μετακινήσει (move) τονcursor, μέχρις ότου όλες οι πλειάδες ανακληθούν • Μπορεί με τη χρήση τουORDER BYνα ελέγχει τη σειρά ανάκλησης των πλειάδων • Πεδία στην ORDER BY πρότασηπρέπει να παρουσιάζονται και στην SELECT πρόταση. • Μπορεί να διαγράφει / τροποποιεί πλειάδες που δείχνονται από τον cursor

  21. Ο 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 πρόταση! (Γιατί ?)

  22. Εμφύτευση της 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;

  23. API Βάσης Δεδομένων: Εναλλακτικός της Εμφύτευσης τρόπος πρόσβασης • Αντί να αλλάζει ο compiler, προστίθεται μια βιβλιοθήκη με Κλήσεις στη Βάση Δεδομένων (API) • Application Programming Interface • Ειδικές Διαδικασίες / Αντικείμενα • Περνά τις SQL εντολές σαν character strings από τη γλώσσα και παρουσιάζει τα αποτελέσματα με φιλικό (για τη γλώσσα) τρόπο • ΤοODBCτης Microsoft έχει γίνει το C/C++ standard στα Windows • ΤοJDBC της SUN είναι το ανάλογο για τη Java • Ανεξάρτητα του DBMS • Ένας “οδηγός” παγιδεύει τις κλήσεις και τις μεταφράζεισε κώδικα για το DBMS • Η Βάση μπορεί να είναι στο Δίκτυο

  24. 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 ()); }

  25. 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

  26. 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 ΓΛΩΣΣΑ

  27. Query-by-Example (QBE) • Μια Γλώσσα για ερωταποκρίσεις που αναπτύχθηκε στην IBM (από τον Moshe Zloof) και παρουσιάζεται σε ένα προϊόν (QMF) (που είναι εναλλακτικός τρόπος διεπαφής για το DB2) • Ευκολότερη από την SQL για τονμέσο χρήστη (ΟΠΤΙΚΗκαιΔΙΣΔΙΑΣΤΑΤΗ) • ΚΕΝΤΡΙΚΗ ΙΔΕΑ: Το Σύστημα παρέχει στον χρήστη τη δυνατότητα να δει το περίγραμμα τωνΣχέσεων στη Βάσηκαι ο Χρήστης συμπληρώνει τους πίνακες δίνοντας παραδείγματα για το πώς θέλει να είναι η απάντηση • QBE1: Βρες τα ονόματα των Υπαλλήλων στο Τμήμα 4 EMPLOYEE

  28. QBE ΣΥΝΟΨΗ • Οι Αρχές της Γλώσσας • Ο χρήστηςδεν απαιτείταινα θυμάταιτα ονόματα των γνωρισμάτων και των σχέσεων • Στην διατύπωση της ερωταπόκρισης, δεν απαιτείται να τηρούνται ανελαστικοί κανόνες • Στηρίζεται στον σχεσιακό λογισμό πλειάδων(μεταβλητές είναι οι στήλες) • Σχεσιακά πλήρηςδιατύπωση, και κάτι παραπάνω, μια και εκφράζεται και transitiveclosure • Πως Λειτουργεί • Σύμβολαμε “_” να προηγείται, είναιΜΕΤΑΒΛΗΤΕΣ • Σύμβολαχωρίς “_” να προηγείταιείναι ΣΤΑΘΕΡΕΣ ΤΙΜΕΣ(υποδηλώνουν μια συνθήκηγια επιλογή - equalityselection-condition) • Το πρόσημο “P.” χρησιμοποιείται για να υποδειχθεί ποια γνωρίσματα θατυπωθούν (υποδηλώνει μια προβολή - projection)

  29. QBE Σύνοψη – Η διαδικασία • Διαδικασία ερωταπόκρισης • Πρώτα, ο χρήστηςδιαλέγει τις σχέσεις (πίνακες) που χρειάζεται για το query • Παρουσιάζονται τα περιγράμματατων πινάκων που διαλέχτηκαν • Ο χρήστης «πηγαίνει» στις κατάλληλες στήλες(με ειδικά πλήκτρα) • Τιμές-παραδείγματα(μεταβλητές), σταθερές, κλπ., δακτυλογραφούνται • Άλλοι συγκριτικοί τελεστές(πέραν της ισότητας – που είναι αυτόματη για σταθερές τιμές)πρέπει να δακτυλογραφηθούν(όπως, >, <,κλπ.) • πιοπολύπλοκες συνθήκεςμπαίνουν σε ένακουτί-συνθηκών (condition box) • Συνθήκες στην ίδια σειράυποδηλώνουν το Boolean AND • Συνθήκες σε διαφορετικές σειρέςυποδηλώνουν το Boolean OR • Η άρνηση (negation - Boolean NOT) προσδιορίζεται με το σύμβολο “ Ø“ • Οι Συνενώσεις (JOINS)εκφράζονται με τη χρήσηκοινών παραδειγματικών τιμών σε πολλαπλούς πίνακες

  30. QBE – Παραδείγματα (1) • QBE2: Βρες τα ονόματα των Υπαλλήλων που εργάζονται σε ένα Τμήμα που έχει μάνατζερ διαφορετικό από αυτόν με αριθμό 3334 EMPLOYEE DEPARTMENT

  31. QBE – Παραδείγματα (2) • QBE3: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο των 300,000 και εργάζονται στο Τμήμα 5 • QBE4: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο των 300,000 ή εργάζονται στο Τμήμα 5

  32. QBE – Παραδείγματα (3) • QBE5: Βρες ονόματα και διευθύνσεις Υπαλλήλων του Τμήματος 4 που κερδίζουν περισσότερα από κάποιον που εργάζεται στο Τμήμα 5 EMPLOYEE CONDITION BOX __10 > __20

  33. QBE – Παραδείγματα (4) • QBE6: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο από τον μισθό του μάνατζερ του Τμήματός των EMPLOYEE DEPARTMENT CONDITION BOX __10>__15

  34. QBE – Παραδείγματα (5) • QBE7: Βρες όλους τους Εξαρτώμενους για Υπαλλήλους που έχουν ένα Εξαρτώμενο γεννηθέντα το 1972 ενώ δεν έχουν κανένα Εξαρτώμενο που γεννήθηκε μετά το 1975 DEPENDENT P. Ø

  35. QBE – Παραδείγματα (6) • QBE8: Βρες το άθροισμα των μισθών όλων τον Υπαλλήλων EMPLOYEE • QBE9: Εισαγωγή ενός νέου Υπαλλήλου EMPLOYEE I.

  36. QBE – Παραδείγματα (7) • QBE10: Δώσε αύξηση μισθού 15% για όλους τους Υπαλλήλους του Τμήματος 5 EMPLOYEE U.

  37. Μια ματιά στην MS Access

  38. Κλείνοντας • Η QBE είναι μια κομψή και φιλική προς το χρήστη γλώσσα που βασίζεται στο σχεσιακό λογισμό πεδίου • Είναι ιδιαίτερα εκφραστική (σχεσιακά πλήρης, αν και οι ενημερώσεις ληφθούν υπόψη). • Απλές ερωταποκρίσεις είναι εξαιρετικά εύκολο να εκφραστούν στην QBE, με ένα ελάχιστο συντακτικό που πρέπει κανείς να θυμάται • Η QBE Έχει επηρεάσει σε μεγάλο βαθμό τις γραφικές διευκολύνσεις για queries που σήμερα προσφέρονται σε πολλά προϊόντα, περιλαμβανομένης και της Microsoft Access.

More Related