Κεφάλαιο
This presentation is the property of its rightful owner.
Sponsored Links
1 / 38

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


  • 151 Views
  • Uploaded on
  • Presentation posted in: General

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

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


5

Κεφάλαιο 5

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

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


Sql data definition

SQL Data Definition

  • H Γλώσσα Ορισμού (DDL) της SQL χρησιμοποιείται γιαCREATE, DROPκαιALTERτις περιγραφές των Σχέσεων στη Βάση Δεδομένων

    CREATE TABLE DEPARTMENT

    ( DNumberinteger keymember 0not null,

    DNamevarchar(12) keymember 1not null,

    MgrSSNchar(9) references EMPLOYEE.SSN,

    MgrSDchar(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.


5

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


5

Σχεσιακές Όψεις – Ορισμός (1)

  • Μια ΟΨΗ(VIEW) είναι μια Σχέση που ΔΕΝ είναι στοιχείο του Εννοιολογικού Σχήματος(οι Σχέσεις Βάσης)) αλλά είναι προσβάσιμη ως μια ιδεατή (virtual)σχέση

    • Ο χρήστης δεν μπορεί να ξεχωρίσει αν μια Σχέση είναι Σχέση Βάσης ή είναι Όψη

    • Η Όψη ΔΕΝ αποθηκεύεται (materialized) στην Βάση Δεδομένων

    • Τα περιεχόμενα της Όψης προσδιορίζονται από τον (αποθηκευμένο) ορισμό της σαν μια συνάρτηση των περιεχομένων της

    • Μια Όψη ορίζεται σε Σχέσεις Βάσης ή σε άλλες Όψεις με κάποιο query

    • Πράξεις (queries, ενημερώσεις) σε Όψεις μεταφράζονται σε Πράξεις στις ορίζουσες (την Όψη) Σχέσεις Βάσης

    • ΔΕΝ υπάρχουν περιορισμοί στα Queries σε Όψεις

    • Ελάχιστες ενημερώσεις σε Όψεις επιτρέπονται

    • Μια Όψη αλλάζειδυναμικά με τη Βάση δεδομένων


5

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


5

Σχεσιακές Όψεις - Παραδείγματα

  • Όταν τοview_column_listλείπει, τα γνωρίσματα της ΟΨΗΣ κληρονομούνται από τα Γνωρίσματα της ορίζουσας Σχέσης

  • V2: Υπάλληλοι με υψηλούς μισθούς

    CREATE VIEW BIGSHARKS

    ASselect *

    fromEMPLOYEE

    whereSalary > 50000 and BirthDate > 31.12.65;

    • Ο χρήστης δύναται να κάνει ερωτήσειςάμεσασε αυτή τη νέα Σχέσηπου λέγεται BIGSHARKS, και η οποία έχει ακριβώς τα ίδια Γνωρίσματα με τη Σχέση EMPLOYEE


5

Σχεσιακές Όψεις – Παραδείγματα (2)

  • Μια Όψη είναι δυνατόν να έχει διαφορετικά γνωρίσματα (νέα) από το Εννοιολογικό Σχήμα

  • V3: Πληροφορίες για Τμήματα (μέσος μισθός, κλπ.)

    CREATE VIEW DEPTINFO (Name, NoOfEmpl, AvgSalary)

    ASselectDName, COUNT(*), AVG(Salary)

    fromDEPARTMENT d, EMPLOYEE e

    whered.DNumber = e.DNumber

    group by DName ;


5

Σχεσιακές Όψεις – Παραδείγματα (3)

  • V4: Βρες τον αριθμό των υπαλλήλων και τον μέσο μισθό (παρουσίασε και το όνομα τμήματος)

    select*

    fromDEPTINFO

    whereName = “research”

  • V5: Αύξησε κατά 1 τον αριθμό των Υπαλλήλων στο Τμήμα Έρευνας

    • Αυτή η ενημέρωση ΔΕΝ επιτρέπεται(Γιατί ?)


5

Σχεσιακές Όψεις - Εκτέλεση

  • Όπως ήδη ειπώθηκε, το σύστημα μεταφράζει προσβάσεις (ενημερώσεις) σε ΌψειςΣΕ προσβάσεις (ενημερώσεις) σεΣχέσεις Βάσης.ΠΩΣ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ ΑΥΤΌ ?

    • ΧΑΖΗ Προσπάθεια 1: Δημιούργησε (Materialize)την Όψη (προσωρινός πίνακας) και εκτέλεσε το query σε αυτήν.

    • ΧΑΖΗ Προσπάθεια 2:Κράτα συνεχώς ενήμερη την Όψη -- δηλαδή, κράτησέ την δημιουργημένη (ονομάζεται, snapshot) καιόποτε σχετικές ενημερώσεις γίνονται στις Σχέσεις Βάσης, τότε πέρασε αυτές και στην Όψη.Εκτέλεσε το query στο snapshot.

    • ΣΩΣΤΗ Προσπάθεια:Άλλαξε το query αντικαθιστώντας την Όψη με το query σε Σχέσεις Βάσης που την ορίζει, καιεκτέλεσε το query σε αυτές τις Σχέσεις Βάσης.


5

Σχεσιακές Όψεις – Παραδείγματα Εκτέλεσης

  • Για παράδειγμα, το query στην Όψη BIGSHARKS:

    selectName, Address

    fromBIGSHARKS

    whereDNumber = 5

    Τροποποιείται ανάλογακαι το παρακάτω query εκτελείται:

    selectName, Address

    fromEMPLOYEE

    whereSalary > 50000 and BirthDate > 31.12.65

    and DNumber = 5


5

Σχεσιακές Όψεις - Ενημερώσεις

  • Γενικά, υπάρχουν σοβαροί περιορισμοίστις ενημερώσεις

  • Μια ενημέρωση Όψηςείναιαναμφίβοληαν μια μοναδική ενημέρωσηστις Σχέσεις Βάσης μπορεί να εκπληρώσει το ζητούμενο αποτέλεσμα στην Όψη

  • ΠΑΡΑΤΗΡΗΣΕΙΣ:

    • Μια όψη που ορίζεται σε μια (ακριβώς) Σχέση Βάσης είναι ενημερώσιμη αν τα γνωρίσματα της Όψης περιέχουν το Κύριο Κλειδί

    • Όψεις που ορίζονται σε πολλαπλές Όψεις είναι γενικά μη-ενημερώσιμες

    • Όψεις που περιέχουν Συναθροιστικές Συναρτήσεις είναι σίγουρα μη-ενημερώσιμες

  • Οι Ενημερώσεις των Όψεων παραμένουν ένα ενδιαφέρον ανοικτό ερευνητικό θέμα / πρόβλημα (π.χ., Data Warehouses)


5

Σχεσιακές Όψεις - Σχόλια

  • To “WITH CHECK OPTION” χρησιμοποιείται σε ενημερώσιμες όψειςγια να αντιμετωπίσει το πρόβλημα των γραμμών που εξαφανίζονται(vanishing rows)

  • Για παράδειγμα, θεωρήστε την Όψη:

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

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

    UPDATE V set A = “Y”

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

  • Οι Όψεις χρησιμοποιούνται (επίσης) ως μηχανισμοί ασφάλειας και δικαιοδοσίας


5

Περιορισμοί Ακεραιότητας

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

  • Τα περισσότερα εμπορικά DBMSδεν υποστηρίζουνόλους τους περιορισμούς ακεραιότητας (υποστήριξη εδώ σημαίνει ότι αν μια ενημέρωση καταστρατηγεί έναν περιορισμότότε το DBMS δεν επιτρέπει την εκτέλεσή του)

  • Έχουμε ήδη μιλήσει για τον προσδιορισμό των έμφυτων στο μοντέλο περιορισμών, (κλειδί, ακεραιότητα οντότητας, αναφορική ακεραιότητα. Οι άλλοι 3 περιορισμοί προσδιορίζονται ρητά.

  • Μοντέρνα DBMS επιβάλουν όλο και περισσότερους δομικούς περιορισμούς, με καλό παράδειγμα την: Access της Microsoft.


5

Περιορισμοί στο Σχεσιακό Μοντέλο

  • Όταν υποστηρίζεται ένας περιορισμός ακεραιότητας, αρκετές ενέργειες πρέπει να γίνουναπό το 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 )


5

Εμφύτευση της SQL σε Γλώσσα Προγραμματισμού

  • Εντολές DML συχνάεμφυτεύονται σε προγράμματα γλώσσας προγραμματισμού (host)

  • Η εμφυτευμένη SQL εντολή διακρίνεται από εντολές της Γλώσσας Προγραμματισμού με ειδικό τρόπο, π.χ. με πρόθεμα

  • Υπάρχουν δυο τρόποι εμφύτευσης:

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

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

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

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

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


5

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


5

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


5

QBE ΣΥΝΟΨΗ

  • Οι Αρχές της Γλώσσας

    • Ο χρήστηςδεν απαιτείταινα θυμάταιτα ονόματα των γνωρισμάτων και των σχέσεων

    • Στην διατύπωση της ερωταπόκρισης, δεν απαιτείται να τηρούνται ανελαστικοί κανόνες

    • Στηρίζεται στον σχεσιακό λογισμό πλειάδων(μεταβλητές είναι οι στήλες)

    • Σχεσιακά πλήρηςδιατύπωση, και κάτι παραπάνω, μια και εκφράζεται και transitiveclosure

  • Πως Λειτουργεί

    • Σύμβολαμε “_” να προηγείται, είναιΜΕΤΑΒΛΗΤΕΣ

    • Σύμβολαχωρίς “_” να προηγείταιείναι ΣΤΑΘΕΡΕΣ ΤΙΜΕΣ(υποδηλώνουν μια συνθήκηγια επιλογή - equalityselection-condition)

    • Το πρόσημο “P.” χρησιμοποιείται για να υποδειχθεί ποια γνωρίσματα θατυπωθούν (υποδηλώνει μια προβολή - projection)


5

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.


Ms access

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


5

Κλείνοντας

  • Η QBE είναι μια κομψή και φιλική προς το χρήστη γλώσσα που βασίζεται στο σχεσιακό λογισμό πεδίου

  • Είναι ιδιαίτερα εκφραστική (σχεσιακά πλήρης, αν και οι ενημερώσεις ληφθούν υπόψη).

  • Απλές ερωταποκρίσεις είναι εξαιρετικά εύκολο να εκφραστούν στην QBE, με ένα ελάχιστο συντακτικό που πρέπει κανείς να θυμάται

  • Η QBE Έχει επηρεάσει σε μεγάλο βαθμό τις γραφικές διευκολύνσεις για queries που σήμερα προσφέρονται σε πολλά προϊόντα, περιλαμβανομένης και της Microsoft Access.


  • Login