SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

Σχετικά έγγραφα
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

SQL: Αιτήματα. ( Συνέχεια...) Κεφάλαιο 5. Ενηµέρωση: 23/12/2008. Database Management Systems, R. Ramakrishnan and J. Gehrke

Σχεσιακή Άλγεβρα. Κεφάλαιο 4. Database Management Systems, R. Ramakrishnan and J. Gehrke

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Query-by-Example (QBE)

Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1

Τμήμα Πληροφορικής ΑΠΘ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

Εαρινό Εξάμηνο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Τμήμα Πληροφορικής ΑΠΘ

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

Βάσεις Δεδομένων Σύνθετα SQL queries

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

SQL Data Manipulation Language

Κεφάλαιο 4. Η Γλώσσα SQL και Σχεσιακός Λογισµός. Ι.Β. Σχεσιακός Λογισµός και η Γλώσσα SQL Σελίδα 2.46

Εισαγωγή στη Σχεσιακή Άλγεβρα

Βάσεις Δεδομένων (Databases)

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές)

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Η Άλγεβρα των πινάκων στο γραφικό περιβάλλον SQL Query Builder του Data Studio

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

1. Ανασκόπηση των Βασικών Εννοιών των Βάσεων Δεδομένων

Η Άλγεβρα των πινάκων στο γραφικό περιβάλλον SQL Query Builder του Data Studio

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 5 21/02/2012

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης

SQL Data Manipulation Language

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

2. Να τροποποιηθεί κατάλληλα η παραπάνω παράσταση ώστε στο αποτέλεσµα να προκύπτουν τα ονοµατα των προµηθευτών και όχι οι κωδικοί τους (Μονάδες 1,0)

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1


Αρχεία και Βάσεις Δεδομένων

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

ΗΥ360: Αρχεία και Βάσεις Δεδομένων Διδάσκων: Πλεξουσάκης Δημήτρης. Φροντιστήριο Σχεσιακή Άλγεβρα Δημητράκη Κατερίνα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

1 / 97

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Αρχεία και Βάσεις Δεδομένων

ΑΠΟΘΗΚΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ

1 / 87

Lecture 14: SQL DML I

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων (Databases)

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

#1.1 Τι είναι η Βάση Δεδομένων

Τμήμα Πληροφορικής ΑΠΘ

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επεξεργασία Ερωτήσεων

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ

DELETE, UPDATE, INSERT.

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

DELETE, UPDATE, INSERT

Επεξεργασία Ερωτήσεων

Η Γλώσσα Βάσεων εδοµένων SQL

Βάσεις Δεδομένων Ι. Παραδείγματα. Γεώργιος Ευαγγελίδης, Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων Ι SQL Μέρος 2 ο. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ


Επεξεργασία Ερωτήσεων

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

Κεφάλαιο 3. Ερωτήματα SQL

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Το σχεσιακό μοντέλο βάσεων δεδομένων

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων (Databases)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :

Βάσεις Δεδομένων (Databases)

Φροντιστήριο Σχεσιακή Άλγεβρα (μέρος 2 ο ) - Σχεσιακός Λογισμός Δημητράκη Κατερίνα

#5. Σχεσιακό Μοντέλο

Transcript:

SQL: Αιτήματα Κεφάλαιο 5 Database Management Systems, R. Ramakrishnan and J. Gehrke

Στιγμιότυπα Στιγμιότυπα των σχέσεων Sailors Reserves και Boats. Αν στο κλειδί της σχέσης Reserved δε συμμετείχε το γνώρισμα date, ποια η σημασιολογία του Σχήματος; B1 S1 sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 bid bcolor 101 green 102 red 103 red 104 green R1 sid bid day 22 101 10/10/96 58 103 11/12/96

Βασικό Αίτημα SQL λίστα-σχέσεων Μιά λίστα σχέσεων (πιθανότατα με μια μεταβλητή διαστήματος τιμών μετά από κάθε σχέση). λίστα-γνωρισμάτων Λίστα γνωρισμάτων των σχέσεων της λίστας-σχέσεων καταλληλότητα Συγκρίσεις (Γνώρισμα - Τελεστής - Σταθερά ή Γνώρισμα - Τελεστής - Γνώρισμα). Τελεστές: Συνδυασμός με: AND, OR, NOT. SELECT [DISTINCT] λίσταγνωρισμάτων FROM λίστα-σχέσεων WHERE καταλληλότητα <, >, =,,, DISTINCT προαιρετική λέξη κλειδί. Ορίζει ότι στο αποτέλεσμα δε θα περιέχονται διπλοεγγραφές. Προκαθορισμένη επιλογή είναι η διατήρηση των διπλοεγγραφών.

Ιδεατή Στρατηγική Υπολογισμού Το επιστρεφόμενο σύνολο ενός αιτήματος υπολογίζεται βάσει της ακόλουθης ιδεατής στρατηγικής: Υπολογισμός του καρτεσιανού γινομένου της λίστας-σχέσεων (αν υπάρχουν περισσότερες από μία σχέσεις). Απόρριψη των ακατάλληλων πλειάδων. Απόκρυψη γνωρισμάτων εκτός λίστας-γνωρισμάτων. Αν δηλωθεί το DISTINCT διαγραφή διπλοεγγραφών. Η στρατηγική αυτή είναι πιθανότατα η λιγότερο αποδοτική για τον υπολογισμό του αποτελέσματος. Ο βελτιστοποιητής θα ανακαλύψει αποτελεσματικότερες στρατηγικές για τον υπολογισμό του ίδιου αποτελέσματος.

Παράδειγμα Ιδεατού Υπολογισμού (1) SELECT S.sname FROM Sailors S WHERE S.age > 40.0 sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0

Παράδειγμα Ιδεατού Υπολογισμού (2) SELECT S.sname FROM Sailors S, Reserves R WHERE S.sid=R.sid AND R.bid=103 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96

Μεταβλητές Διαστήματος Χρησιμοποιούνται υποχρεωτικά μόνο αν μια σχέση επανεμφανίζεται στη FROM. Διαφορετικά είναι προαιρετικές Το προηγούμενο αίτημα διαφορετικά διατυπωμένο: Ή SELECT S.sname FROM Sailors S, Reserves R WHERE S.sid=R.sid AND bid=103 SELECT sname FROM Sailors, Reserves WHERE Sailors.sid=Reserves.sid AND bid=103 Γενικώς είναι καλή πρακτική η χρήση Μεταβλητών Διαστήματος Εδώ δεν χρησιμοποιούνται μεταβλητές διαστήματος

Να βρεθούν οι ναύτες που έχουν τουλάχιστο μία κράτηση SELECT S.sid FROM Sailors S, Reserves R WHERE S.sid=R.sid Πως αλλάζει το επιστρεφόμενο σύνολο αν προστεθεί το DISTINCT; Τι γίνεται αν αντικαταστήσουμε το S.sid με το S.sname στη SELECT; Πως επηρεάζει η DISTINCT αυτή την εκδοχή του αιτήματος;

Παραστάσεις και Συμβολοσειρές SELECT S.age, age1=s.age-5, 2*S.age AS age2 FROM Sailors S WHERE S.sname LIKE B_%B Αριθμητικές παραστάσεις και ταύτιση συμβολοσειρών: Προβολή ηλικίας και δύο επιπρόθετων πεδίων που προκύπτουν από αριθμητικές παραστάσεις. Επιλέγονται οι ναύτες με όνομα που έχει ως πρώτο και τελευταίο χαρακτήρα το B και έχει τουλάχ. 3 χαρακτήρες. AS και = τρόποι απόδοσης ονόματος σε παραστάσεις. LIKE ταυτίζει συμβολοσειρές. _ : ένας οποιοσδήποτε χαρακτήρας. `% : 0 ή περισσότεροι.

1 UNION (1) Μπορούμε να χρησιμοποιήσουμε το UNION για τον υπολογισμό της ένωσης δύο συμβατών ως προς την ένωση συνόλων (που προκύπτουν από αιτήματα SQL). Π.χ. Εύρεση του sid των ναυτών που έχουν κράτηση σε κόκκινη ή πράσινη βάρκα SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color= red UNION SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color= green EXCEPT (Τι θα συμβεί αν αντικαταστήσουμε το UNION με το EXCEPT?)

1 UNION (2) Εναλλακτικά μπορούμε να υπολογίσουμε το ερώτημα της προηγούμενης διαφάνειας ως εξής SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND (B.color= red OR B.color= green ) Τι θα συμβεί αν αντικαταστήσουμε το OR με το AND;

INTERSECT (1) INTERSECT: Χρησιμοποιείται για τον υπολογισμό της τομής δύο συμβατών ως προς την ένωση συνόλων. Συμπεριλαμβάνεται στο πρότυπο SQL/92 αλλά δεν υποστηρίζεται απ' όλα τα συστήματα. Π.χ. Εύρεση του sid των ναυτών που έχουν κράτηση σε κόκκινη και σε πράσινη βάρκα Πεδίο κλειδί! SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color= red INTERSECT SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color= green 1

1 INTERSECT (2) Εναλλακτικά μπορούμε να υπολογίσουμε το ερώτημα της προηγούμενης διαφάνειας ως εξής SELECT S.sid FROM Sailors S, Boats B1, Reserves R1, Boats B2, Reserves R2 WHERE S.sid=R1.sid AND R1.bid=B1.bid AND S.sid=R2.sid AND R2.bid=B2.bid AND (B1.color='red' AND B2.color='green') Δεν αρκεί η απλή αλλαγή του OR σε AND της εναλλακτικής περίπτωσης της UNION

1 Εμφωλευμένα Αιτήματα (1) Εμφάνιση ονομάτων ναυτών με κράτηση στη βάρκα #103: SELECT S.sname FROM Sailors S WHERE S.sid IN (SELECT R.sid FROM Reserves R WHERE R.bid=103) Για την κατανόηση του τρόπου υπολογισμού των εμφωλευμένων αιτημάτων αντιπαραβολή με τον τρόπο εκτέλεσης των εμφωλευμένων βρόχων στον προγραμματισμό. Για κάθε πλειάδα του Sailors ελέγχεται η καταλληλότητα αφού υπολογιστεί το υποαίτημα.

1 Εμφωλευμένα Αιτήματα (2) Στο προηγούμενο παράδειγμα η NOT IN επιστρέφει τους ναύτες χωρίς κρατήσεις. Και στη συνιστώσα WHERE μπορεί να συμμετέχει ένα αίτημα SQL. (Και στη FROM και στη HAVING).

1 Εμφωλευμένα Αιτήματα με Αμοιβαία Εξάρτηση (1) Εμφάνιση ονομάτων ναυτών με κράτηση στη βάρκα #103: SELECT S.sname FROM Sailors S WHERE EXISTS (SELECT * FROM Reserves R WHERE R.bid=103 AND S.sid=R.sid) EXISTS: Τελεστής σύγκρισης για σύνολα (όπως το IN). Αν ένα σύνολο δεν είναι κενό τότε ικανοποιείται η συνθήκη και η υπό εξέταση εγγραφή επιστρέφεται στο χρήστη

1 Εμφωλευμένα Αιτήματα με Αμοιβαία Εξάρτηση (2) Στο προηγούμενο παράδειγμα αν χρησιμοποιηθεί το UNIQUE, και το το R.bid αντικαταστήσει το *, επιστρέφονται οι ναύτες με μία κράτηση στη βάρκα #103 το πολύ. (Το UNIQUE ελέγχει για διπλοεγγραφές. Το * συμβολίζει όλα τα γνωρίσματα. Γιατί είναι απαραίτητη η αντικατάσταση του * με το R.bid;) Αναδεικνύει τους λόγους επανυπολογισμού του υποαιτήματος για κάθε πλειάδα του Sailors.

1 Υπόλοιποι Τελεστές Συνόλων Αντίστοιχα με τα IN, EXISTS και UNIQUE υπάρχουν τα NOT IN, NOT EXISTS και NOT UNIQUE. Επίσης διαθέσιμοι: τελ. ANY, τελ. ALL -τελ. >, <, =,,, Να βρεθούν οι ναύτες με διατίμηση μεγαλύτερη από του Horatio: SELECT * FROM Sailors S WHERE S.rating > ANY (SELECT S2.rating FROM Sailors S2 WHERE S2.sname= Horatio )

1 Επαναδιατύπωση με IN των Αιτημάτων INTERSECT (1) Εμφάνιση του sid των ναυτών με κράτηση σε κόκκινη και πράσινη βάρκα: SELECT S.sid FROM Sailors S, Boats B, Reserves R WHERE S.sid=R.sid AND R.bid=B.bid AND B.color= red AND S.sid IN (SELECT S2.sid FROM Sailors S2, Boats B2, Reserves R2 WHERE S2.sid=R2.sid AND R2.bid=B2.bid AND B2.color= green )

2 Επαναδιατύπωση με IN των Αιτημάτων INTERSECT (2) Για τα ονόματα (όχι τους κωδικούς) των ναυτών με κρατήσεις σε κόκκινες και πράσινες βάρκες, αντικατάσταση S.sid από S.sname στη SELECT. Αν θέλαμε την ίδια λύση αλλά με INTERSECT;

2 Εξάσκηση (1) Να βρεθούν τα ονόματα και οι ηλικίες όλων των ναυτικών SELECT S.sname, S.age FROM Sailors S Να βρεθούν όλοι οι ναυτικοί οι οποίοι έχουν τιμή διατίμησης (rating) μεγαλύτερη του 7 SELECT S.sid, S.sname, S.rating, S.age FROM Sailors S WHERE S.rating > 7

2 Εξάσκηση (2) Να βρεθούν τα χρώματα των βαρκών στις οποίες έχει κάνει κράτηση ο ναυτικός που ονομάζεται Lubber SELECT B.color FROM Sailors S, Reserves R, Boats B WHERE S.sid = R.sid AND R.bid = B.bid AND S.sname = Lubber

2 Περίληψη Η SQL αποτέλεσε σημαντικό παράγοντα για την αποδοχή του σχεσιακού μοντέλου. Πιο φυσική από προηγούμενες, διαδικαστικές γλώσσες αιτημάτων. Χαρακτηρίζεται από σχεσιακή πληρότητα. Έχει περισσότερες δυνατότητες από τη σχεσιακή άλγεβρα. Αιτήματα που εκφράζονται σε ΣΑ εκφράζονται με φυσικότερο τρόπο σε SQL. Εναλλακτικοί τρόποι διατύπωσης αιτημάτων. Ο βελτιστοποιητής ανακαλύπτει τον αποδοτικότερο. Στην πράξη ωστόσο οι χρήστες πρέπει να έχουν γνώση των σχεδίων βελτιστοποίησης.