slide1
Download
Skip this Video
Download Presentation
Κεφάλαιο 5

Loading in 2 Seconds...

play fullscreen
1 / 38

Κεφάλαιο 5 - PowerPoint PPT Presentation


  • 211 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Κεφάλαιο 5' - stefan


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Κεφάλαιο 5

Ορισμός Βάσεων Δεδομένων με SQL DDL

- Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE)

sql data definition
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
SQL DDL - συνέχεια
  • Η εντολή:

DROP TABLE DEPENDENT

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

  • Η εντολή:

ALTER TABLE EMPLOYEE ADD JOB VARCHAR(15)

προσθέτειένα νέο γνώρισμα, με όνομα JOB, στη Σχέση EMPLOYEE

    • Όλες οι τιμές για το JOB στην αρχή θα είναι NULL
    • Αργότερα μπορεί να αλλάξουν με την εντολή UPDATE.
slide4
Δημιουργία Ευρετηρίων στην 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χρησιμοποιείται για την υλοποίηση ευρετηρίων
slide5
Σχεσιακές Όψεις και SQL
  • Η αρχιτεκτονική 3-επιπέδων στα DBMS, έχει σαν αποτέλεσμαδιαφορετικοίχρήστες να βλέπουνδιαφορετικάεξωτερικά σχήματα (όψεις) - αυτό επιτυγχάνεται στο σχεσιακό μοντέλο με την έννοια τουVIEW

RELATIONAL

VIEWS

External

Schema 1

External

Schema 2

External

Schema N

.....

RELATIONAL

DATABASE

SCHEMA (RELATIONS)

Conceptual

Schema

Internal

Schema

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

slide8
Σχεσιακές Όψεις - Παραδείγματα
  • Όταν τοview_column_listλείπει, τα γνωρίσματα της ΟΨΗΣ κληρονομούνται από τα Γνωρίσματα της ορίζουσας Σχέσης
  • V2: Υπάλληλοι με υψηλούς μισθούς

CREATE VIEW BIGSHARKS

AS select *

from EMPLOYEE

where Salary > 50000 and BirthDate > 31.12.65;

    • Ο χρήστης δύναται να κάνει ερωτήσειςάμεσασε αυτή τη νέα Σχέσηπου λέγεται BIGSHARKS, και η οποία έχει ακριβώς τα ίδια Γνωρίσματα με τη Σχέση EMPLOYEE
slide9
Σχεσιακές Όψεις – Παραδείγματα (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 ;

slide10
Σχεσιακές Όψεις – Παραδείγματα (3)
  • V4: Βρες τον αριθμό των υπαλλήλων και τον μέσο μισθό (παρουσίασε και το όνομα τμήματος)

select *

from DEPTINFO

where Name = “research”

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

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

CREATE VIEW V AS select * from R where A = “X”

Έστω η ενημέρωση:

UPDATE V set A = “Y”

Η ενημέρωση θα προχωρήσει κανονικά, αλλά οι πλειάδες που ήταν πριν προσβάσιμες στην V θα εξαφανιστούν! (προφανώς, δεν θα ικανοποιούν πλέον την συνθήκη της WHERE-πρότασης)

  • Οι Όψεις χρησιμοποιούνται (επίσης) ως μηχανισμοί ασφάλειας και δικαιοδοσίας
slide15
Περιορισμοί Ακεραιότητας
  • Το Σχεσιακό Μοντέλο υποστηρίζει 6 είδη περιορισμών ακεραιότητας:ΚΛΕΙΔΙ(KEY), ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY), ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ(REFERENTIAL INTEGRITY.)ΠΕΔΙΟ ΤΙΜΩΝ (DOMAIN), ΣΤΗΛΩΝ (COLUMN)και ΟΡΙΖΟΜΕΝΩΝ ΑΠΟ ΤΟΝ ΧΡΗΣΤΗ (USER-DEFINED)
  • Τα περισσότερα εμπορικά DBMSδεν υποστηρίζουνόλους τους περιορισμούς ακεραιότητας (υποστήριξη εδώ σημαίνει ότι αν μια ενημέρωση καταστρατηγεί έναν περιορισμότότε το DBMS δεν επιτρέπει την εκτέλεσή του)
  • Έχουμε ήδη μιλήσει για τον προσδιορισμό των έμφυτων στο μοντέλο περιορισμών, (κλειδί, ακεραιότητα οντότητας, αναφορική ακεραιότητα. Οι άλλοι 3 περιορισμοί προσδιορίζονται ρητά.
  • Μοντέρνα DBMS επιβάλουν όλο και περισσότερους δομικούς περιορισμούς, με καλό παράδειγμα την: Access της Microsoft.
slide16
Περιορισμοί στο Σχεσιακό Μοντέλο
  • Όταν υποστηρίζεται ένας περιορισμός ακεραιότητας, αρκετές ενέργειες πρέπει να γίνουναπό το DBMS. Αυτές είναι, ηδιαδοχική τροποποίηση (cascade delete)και η διαδοχική ενημέρωση (cascade update.)
  • Μερικά DBMSs υποστηρίζουνάμεσατα παραπάνω (Access)
  • Άλλα DBMSs απαιτούν από τον χρήστη να γράψειtriggers (διαδικασίες) για την υποστήριξη αυτών (SQL Server)
  • Περιορισμοί Στηλών και Πεδίωνυποστηρίζονται μερικώς (ενίοτε και απόstrong-typing ή άλλους ισχυρούς μηχανισμούς)
  • Περιορισμοί που ορίζονται από τον Χρήστηέχουν περιληφθεί σε νεώτερες εκδόσεις της τυποποίησης της SQL (SQL-92) με ASSERTIONS (ειδικοί κανόνες)
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 )

slide18
Εμφύτευση της SQL σε Γλώσσα Προγραμματισμού
  • Εντολές DML συχνάεμφυτεύονται σε προγράμματα γλώσσας προγραμματισμού (host)
  • Η εμφυτευμένη SQL εντολή διακρίνεται από εντολές της Γλώσσας Προγραμματισμού με ειδικό τρόπο, π.χ. με πρόθεμα
  • Υπάρχουν δυο τρόποι εμφύτευσης:

1.- Επέκταση της Γλώσσας Προγραμματισμού (αλλαγή του Compiler)

Ενδεικτικά, RIGEL, MODULA-R, Gemstone, Orion, κλπ.)

Ονομάζονταιdatabase programming languages

2.- Χρήση ενός προ-επεξεργαστή της Γλώσσας για τις εντολές DML

Ο προ-επεξεργαστής αντικαθιστά τις εντολές DML με κλήσεις στην host γλώσσα, οι οποίεςeεκτελούνται

slide19
Εμφύτευση της SQL
  • SQL εντολές καλούνται μέσα από ένα πρόγραμμα μιας host γλώσσας (π.χ., CήCOBOL)
    • Οι εντολές της SQL μπορούν να αναφέρονται σεhost μεταβλητές
    • Πρέπει να περιλαμβάνουν μια εντολή για σύνδεσμο με την σωστή βάση.
    • Οι SQL Σχέσειςείναι σύνολα εγγραφών, χωρίς προκαθορισμένο(a priori)όριο στον αριθμό των εγγραφών. Δεν υπάρχουν τέτοιες δομές στην C !
    • Για να αντιμετωπίσει αυτή την δυσκολία η SQL υποστηρίζει ένα μηχανισμό που λέγεται cursor
cursors
Cursors
  • Οι δυνατότητες που προσφέρονται για τον CURSOR είναι
    • Δηλώνεται για μια σχέση ή ένα query που είναι γεννήτορας μιας σχέσης.
    • Μπορεί να ανοίξει (open)έναν cursor, και διαδοχικά να φέρει(fetch)πλειάδες, μετά να μετακινήσει (move) τονcursor, μέχρις ότου όλες οι πλειάδες ανακληθούν
    • Μπορεί με τη χρήση τουORDER BYνα ελέγχει τη σειρά ανάκλησης των πλειάδων
      • Πεδία στην ORDER BY πρότασηπρέπει να παρουσιάζονται και στην SELECT πρόταση.
    • Μπορεί να διαγράφει / τροποποιεί πλειάδες που δείχνονται από τον cursor
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
Εμφύτευση της 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;

slide23
API Βάσης Δεδομένων: Εναλλακτικός της Εμφύτευσης τρόπος πρόσβασης
  • Αντί να αλλάζει ο compiler, προστίθεται μια βιβλιοθήκη με Κλήσεις στη Βάση Δεδομένων (API)
  • Application Programming Interface
    • Ειδικές Διαδικασίες / Αντικείμενα
    • Περνά τις SQL εντολές σαν character strings από τη γλώσσα και παρουσιάζει τα αποτελέσματα με φιλικό (για τη γλώσσα) τρόπο
    • ΤοODBCτης Microsoft έχει γίνει το C/C++ standard στα Windows
    • ΤοJDBC της SUN είναι το ανάλογο για τη Java
    • Ανεξάρτητα του DBMS
      • Ένας “οδηγός” παγιδεύει τις κλήσεις και τις μεταφράζεισε κώδικα για το DBMS
      • Η Βάση μπορεί να είναι στο Δίκτυο
sql api java jdbc
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
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
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
Query-by-Example (QBE)
  • Μια Γλώσσα για ερωταποκρίσεις που αναπτύχθηκε στην IBM (από τον Moshe Zloof) και παρουσιάζεται σε ένα προϊόν (QMF) (που είναι εναλλακτικός τρόπος διεπαφής για το DB2)
  • Ευκολότερη από την SQL για τονμέσο χρήστη

(ΟΠΤΙΚΗκαιΔΙΣΔΙΑΣΤΑΤΗ)

  • ΚΕΝΤΡΙΚΗ ΙΔΕΑ: Το Σύστημα παρέχει στον χρήστη τη δυνατότητα να δει το περίγραμμα τωνΣχέσεων στη Βάσηκαι ο Χρήστης συμπληρώνει τους πίνακες δίνοντας παραδείγματα για το πώς θέλει να είναι η απάντηση
  • QBE1: Βρες τα ονόματα των Υπαλλήλων στο Τμήμα 4

EMPLOYEE

slide28
QBE ΣΥΝΟΨΗ
  • Οι Αρχές της Γλώσσας
    • Ο χρήστηςδεν απαιτείταινα θυμάταιτα ονόματα των γνωρισμάτων και των σχέσεων
    • Στην διατύπωση της ερωταπόκρισης, δεν απαιτείται να τηρούνται ανελαστικοί κανόνες
    • Στηρίζεται στον σχεσιακό λογισμό πλειάδων(μεταβλητές είναι οι στήλες)
    • Σχεσιακά πλήρηςδιατύπωση, και κάτι παραπάνω, μια και εκφράζεται και transitiveclosure
  • Πως Λειτουργεί
    • Σύμβολαμε “_” να προηγείται, είναιΜΕΤΑΒΛΗΤΕΣ
    • Σύμβολαχωρίς “_” να προηγείταιείναι ΣΤΑΘΕΡΕΣ ΤΙΜΕΣ(υποδηλώνουν μια συνθήκηγια επιλογή - equalityselection-condition)
    • Το πρόσημο “P.” χρησιμοποιείται για να υποδειχθεί ποια γνωρίσματα θατυπωθούν (υποδηλώνει μια προβολή - projection)
slide29
QBE Σύνοψη – Η διαδικασία
  • Διαδικασία ερωταπόκρισης
    • Πρώτα, ο χρήστηςδιαλέγει τις σχέσεις (πίνακες) που χρειάζεται για το query
    • Παρουσιάζονται τα περιγράμματατων πινάκων που διαλέχτηκαν
    • Ο χρήστης «πηγαίνει» στις κατάλληλες στήλες(με ειδικά πλήκτρα)
    • Τιμές-παραδείγματα(μεταβλητές), σταθερές, κλπ., δακτυλογραφούνται
    • Άλλοι συγκριτικοί τελεστές(πέραν της ισότητας – που είναι αυτόματη για σταθερές τιμές)πρέπει να δακτυλογραφηθούν(όπως, >, <,κλπ.)
    • πιοπολύπλοκες συνθήκεςμπαίνουν σε ένακουτί-συνθηκών (condition box)
    • Συνθήκες στην ίδια σειράυποδηλώνουν το Boolean AND
    • Συνθήκες σε διαφορετικές σειρέςυποδηλώνουν το Boolean OR
    • Η άρνηση (negation - Boolean NOT) προσδιορίζεται με το σύμβολο “ Ø“
    • Οι Συνενώσεις (JOINS)εκφράζονται με τη χρήσηκοινών παραδειγματικών τιμών σε πολλαπλούς πίνακες
qbe 1
QBE – Παραδείγματα (1)
  • QBE2: Βρες τα ονόματα των Υπαλλήλων που εργάζονται σε ένα Τμήμα που έχει μάνατζερ διαφορετικό από αυτόν με αριθμό 3334

EMPLOYEE

DEPARTMENT

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

EMPLOYEE

CONDITION BOX

__10 > __20

qbe 4
QBE – Παραδείγματα (4)
  • QBE6: Βρες τα ονόματα των Υπαλλήλων που έχουν μισθό μεγαλύτερο από τον μισθό του μάνατζερ του Τμήματός των

EMPLOYEE

DEPARTMENT

CONDITION BOX

__10>__15

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

DEPENDENT

P.

Ø

qbe 6
QBE – Παραδείγματα (6)
  • QBE8: Βρες το άθροισμα των μισθών όλων τον Υπαλλήλων

EMPLOYEE

  • QBE9: Εισαγωγή ενός νέου Υπαλλήλου

EMPLOYEE

I.

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

EMPLOYEE

U.

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