Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Βάσεις Δεδομένων I Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL 1 από 3 T Manavis.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Βάσεις Δεδομένων I Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL 1 από 3 T Manavis."— Μεταγράφημα παρουσίασης:

1 1 Βάσεις Δεδομένων I Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL 1 από 3 T Manavis

2 2 Τα εμπορικά συστήματα Βάσεων Δεδομένων απαιτούν την ύπαρξη γλωσσών «φιλικών προς το χρήστη» για το χειρισμό δεδομένων από αυτές. Υπάρχουν διάφορες τέτοιες γλώσσες όπως η SQL, QBE, Quel που μας επιτρέπουν να θέτουμε εντολές στη Βάση Δεδομένων για την ανάκτηση και χειρισμό δεδομένων. Αυτές οι γλώσσες αναφέρονται ως «query languages» δηλαδή γλώσσες ερωτημάτων. Ωστόσο περιέχουν πολύ περισσότερες δυνατότητες εκτός από το να ερωτούν μια Βάση Δεδομένων. Μπορούν π.χ. να καθορίσουν τη δομή των δεδομένων, να κάνουν τροποποίηση στοιχείων ή να θέσουν περιορισμούς ασφαλείας. Στα πλαίσια αυτών των σημειώσεων θα μελετηθεί μόνο η γλώσσα SQL (Structured Query Language) η οποία υποστηρίζεται γενικά από όλες τις εμπορικές Βάσεις Δεδομένων και είναι η καθιερωμένη γλώσσα χειρισμού τους. Εισαγωγή

3 3 Υπάρχουν αρκετές εκδόσεις της SQL (Structured Query Language) και πολλά προϊόντα που την υποστηρίζουν. Παρόλο που οι εκδόσεις αυτές μπορεί να διαφοροποιούνται στις λεπτομέρειες της γλώσσας, οι διαφορές αυτές δεν είναι ουσιαστικές. Το 1986 η Αμερικάνικη Εταιρεία Καθιέρωσης Προτύπων (American National Standards Institute – ANSI) δημοσίευσε ένα πρότυπο (standard) της SQL. Επίσης η εταιρεία IBM έχει δημοσιεύσει το δικό της πρότυπο. Η αρχική έκδοση της γλώσσας ονομάστηκε SEQUEL (Structured English Query Language) και σχεδιάσθηκε από ερευνητική ομάδα της IBM στα πλαίσια του System R (1974). Η εταιρεία Oracle χρησιμοποίησε για πρώτη φορά τη γλώσσα σε εμπορικό ΣΔΒΔ (DBMS) το Πρότυπα και στοιχεία της SQL

4 4 Η γλώσσα SQL έχει σημαντικά πλεονεκτήματα με βασικότερα τα εξής: –υποστηρίζεται από κάθε σχεσιακό σύστημα, οπότε η διατύπωση των ερωτημάτων είναι ανεξάρτητη του ΣΔΒΔ, –πολλές γλώσσες προγραμματισμού έχουν επεκταθεί ώστε να υποστηρίζουν διατύπωση ερωτημάτων σε SQL, και –έχει απλή σύνταξη και αποδεσμεύει το χρήστη από λεπτομέρειες υλοποίησης. Πρότυπα και στοιχεία της SQL

5 5 Η SQL στηρίζεται στο σχεσιακό λογισμό πλειάδων και τη σχεσιακή άλγεβρα. Υποδιαιρείται σε 2 ξεχωριστές υπογλώσσες: –τη γλώσσα ορισμού δεδομένων (DDL, Data Definition Language), και –τη γλώσσα χειρισμού δεδομένων (DML, Data Manipulation Language). Είναι δηλωτική γλώσσα υψηλού επιπέδου, δηλαδή ορίζουμε τί θέλουμε να γίνει όχι το πώς. H SQL χρησιμοποιεί όρους όπως: πίνακας, γραμμή, στήλη, οι οποίοι αντιστοιχούν στις έννοιες: σχέση, πλειάδα και χαρακτηριστικό. Πρότυπα και στοιχεία της SQL

6 6 Πρότυπα: ― SQL/86: ANSI & ISO standard, ― SQL/89: ANSI & ISO standard, ― SQL/92 ή SQL2: ANSI & ISO standard, ― SQL3 ή SQL:1999. Tutorial-demo: Πρότυπα και στοιχεία της SQL

7 7 Η γλώσσα SQL αποτελείται από διάφορα μέρη: Γλώσσα Ορισμού Δεδομένων (Data Definition Language – DDL). Εντολές για τον ορισμό της δομής – σχήματος (scheme) της Βάσης Δεδομένων, σβήσιμο σχέσεων, δημιουργία δεικτών (indices) και τροποποίηση της δομής-σχήματος της ΒΔ. Διαδραστική Γλώσσα Χειρισμού Δεδομένων (Interactive Data Manipulation Language – DML). Εντολές (ερωτήματα) για πρόσκτηση δεδομένων και επιπλέον για εισαγωγή, τροποποίηση και διαγραφή εγγραφών στη Βάση Δεδομένων. Ενσωματωμένη Γλώσσα Χειρισμού Δεδομένων (Embedded Data Manipulation Language). Για ενσωμάτωση μέσα σε γενικού σκοπού γλώσσές προγραμματισμού όπως η C, η Pascal, η Fortran κ.α. Πρότυπα και στοιχεία της SQL

8 8 Ορισμός Όψεων (View Definition). Για να βλέπουν οι χρήστες συγκεκριμένα τμήματα της Βάσης Δεδομένων. Εξουσιοδότηση (Authorization). Για εκχώρηση δικαιωμάτων πρόσβασης σε όψεις και σχέσεις. Ακεραιότητα (Integrity). Έλεγχος Συναλλαγών (Transaction Control). Εντολές που ελέγχουν την αρχή και το τέλος της διεκπεραίωσης ενός ερωτήματος. Πρότυπα και στοιχεία της SQL

9 9 Πλήρες σύνολο πράξεων επιλογή (σ) προβολή (π) διαφορά (-) ένωση (  ) καρτεσιανό γινόμενο (x) Επίσης τομή (  ) συνένωση συνένωση ισότητας φυσική συνένωση (*) διαίρεση Σχεσιακή άλγεβρα: Ένα σύνολο από πράξεις που όταν εφαρμοστούν σε σχέσεις μας δίνουν νέες σχέσεις Σχεσιακή Άλγεβρα (επανάληψη)

10 10 Πράξεις της Σχεσιακής Άλγεβρας (επανάληψη)

11 11 Η Γλώσσα Βάσεων Δεδομένων SQL Μέρος 1 (Βασική Δομή, Πράξεις Συνόλου)

12 12 Προσοχή: H SQL που χρησιμοποιούμε στην Microsoft ACCESS σε κάποιες περιπτώσεις δεν ακολουθεί ακριβώς τα standards – μερικές εντολές στις διαφάνειες μπορεί να μη «τρέχουν» όπως είναι και να χρειάζονται μικρές τροποποιήσεις Η γλώσσα SQL

13 13 select Α 1, Α 2,.., Α n from R 1, R 2, … R m where P Μια χαρακτηριστική ερώτηση σε SQL έχει την εξής μορφή: Ισοδύναμο του: π A 1, A 2,.., A n (σ P (R 1 x R 2 x … R m )) ονόματα σχέσεων ονόματα γνωρισμάτων συνθήκη Βασική Δομή

14 14 Πλήρης σύνταξη SELECT: SELECT [DISTINCT] FROM [WHERE συνθήκη] [GROUP BY ] [HAVING συνθήκη] [ORDER BY [ASCENDING | DESCENDING]]; Πλήρης Σύνταξη της SELECT

15 15 select αντιστοιχεί στην πράξη της προβολής (π) της σχεσιακής άλγεβρας Αναφέρεται στο «Ποια γνωρίσματα θέλουμε να υπάρχουν στο αποτέλεσμα της ερώτησης». select Α1, Α2,.., Αn from R 1, R 2, … R m where P π A 1, A 2,.., A n (σ P (R 1 x R 2 x … R m )) Βασική Δομή (select)

16 16 select Α 1, Α 2,.., Α n from R1, R2, … Rm where P π A 1, A 2,.., A n (σ P (R 1 x R 2 x … R m )) from αντιστοιχεί στην πράξη του καρτεσιανού γινομένου της σχεσιακής άλγεβρας. Ποιες σχέσεις θα χρησιμοποιηθούν για τον υπολογισμό του αποτελέσματος. Βασική Δομή (from)

17 17 select Α 1, Α 2,.., Α n from R1, R2, … Rm where P π A 1, A 2,.., A n (σ P (R 1 x R 2 x … R m )) where αντιστοιχεί στη συνθήκη της πράξης της επιλογής στη σχεσιακή άλγεβρα. Το κατηγόρημα P έχει γνωρίσματα των σχέσεων που εμφανίζονται στο from. Βασική Δομή (where)

18 18 Παράδειγμα: select Όνομα from Παίζει where Τίτλος = ''Gone by the Wind'' Ονόματα ηθοποιών που παίζουν στην ταινία Gone by the Wind Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Βασική Δομή Όταν δεν υπάρχει το where, το P θεωρείται ότι ισχύει (είναι αληθές). ΠΡΟΣΟΧΗ: Δε γίνεται απαλοιφή των διπλών εμφανίσεων.

19 19 Παράδειγμα: Ονόματα όλων των ηθοποιών που έχουν παίξει σε ταινίες select Όνομα from Παίζει Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Select Η SQL επιτρέπει πολλαπλές εμφανίσεις της ίδιας πλειάδας σε μια σχέση. Μια σχέση στην SQL είναι ένα πολυσύνολο (multiset) ή θύλακας (bag). Απαλοιφή διπλών εμφανίσεων select distinct Όνομα from Παίζει

20 20 select * from Παίζει Επιλογή όλων των γνωρισμάτων Select select Τίτλος, Έτος, Διάρκεια / 60, Είδος from Ταινία Επιστρέφει μια σχέση ίδια με τη σχέση Ταινία μόνο που το γνώρισμα διάρκεια μας δίνει τις ώρες (έχει διαιρεθεί με το 60) Αριθμητικές πράξεις (+, -, *, /) ανάμεσα σε σταθερές ή γνωρίσματα πλειάδων

21 21 Where Παράδειγμα: Τον τίτλο όλων των ταινιών που γυρίστηκαν μετά το 1995 και είναι ασπρόμαυρες select Τίτλος from Ταινία where Έτος > 1995 and Είδος = ''Ασπρόμαυρη'' Where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης:, >=, =, <>, between, not between ανάμεσα σε αριθμητικές εκφράσεις,συμβολοσειρές (strings), και ειδικούς τύπους. συνθήκη του where

22 22 Παράδειγμα χρήσης του between : select Τίτλος from Ταινία where Έτος between 1990 and 1995 select Τίτλος from Ταινία where Έτος >= 1990 and Έτος <= 1995 αντί του Where Όταν το ίδιο γνώρισμα εμφανίζεται στο σχήμα περισσότερων από μια σχέσεων, τότε κάνουμε διάκριση βάση του συμβολισμού:.

23 23 Παράδειγμα φυσικής συνένωσης: Τους ηθοποιούς που παίζουν σε ασπρόμαυρες ταινίες select distinct Όνομα from Παίζει, Ταινία where Παίζει.Τίτλος = Ταινία.Τίτλος and Παίζει.Έτος = Ταινία.Έτος and Είδος = “Ασπρόμαυρη” Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Συνένωση - Join

24 24 Περισσότερα για τη γλώσσα ερωτήσεων - Πράξεις με Συμβολοσειρές - Διάταξη Πλειάδων - Αλλαγή Ονόματος - Μεταβλητές Πλειάδων - Η τιμή null Η γλώσσα SQL

25 25 Η πιο συνηθισμένη πράξη είναι ταίριασμα προτύπων: * ταιριάζει οποιαδήποτε συμβολοσειρά % ταιριάζει οποιοδήποτε χαρακτήρα Γίνεται διάκριση ανάμεσα σε κεφαλαία και μικρά Σύγκριση χρησιμοποιώντας το like, not like Πράξεις με Συμβολοσειρές Παράδειγμα: Οι τίτλοι όλων των ταινιών που περιέχουν τη λέξη Θάλασσα select distinct Τίτλος from Ταινία where Τίτλος like “*Θάλασσα*” Υπάρχουν πολλές ακόμα διαθέσιμες πράξεις. Δείτε και το pdf στο server της σχολής: [Κριτήρια Δημιουργίας Ερωτημάτων σε Microsoft Access.pdf]

26 26 select distinct Ταινία, Έτος from Παίζει where Όνομα = “Robert De Niro” order by Έτος Χρήση του order by ώστε οι πλειάδες στο αποτέλεσμα να είναι ταξινομημένες με βάση τo αντίστοιχο γνώρισμα Διάταξη των Πλειάδων Default: αύξουσα διάταξη, αλλά και άμεσα χρησιμοποιώντας το asc (αύξουσα) ή το desc (φθήνουσα). Επίσης, ταξινόμηση με βάση πολλά γνωρίσματα. Παράδειγμα: select * from Ταινία order by Έτος desc, Τίτλος asc Η ταξινόμηση είναι δαπανηρή λειτουργία (σε πόρους του συστήματος).

27 27 Τα ονόματα των γνωρισμάτων στο αποτέλεσμα είναι αυτά των σχέσεων στην ερώτηση. Δυνατότητα αλλαγής του ονόματος τόσο μιας σχέσης όσο και ενός γνωρίσματος: as To as μπορεί να εμφανίζεται στο select ή στο from Αλλαγή Ονόματος Για παράδειγμα: select Τίτλος, Έτος, Διάρκεια / 60 as Ώρες-Διάρκεια, Είδος from Ταινία

28 28 Χρήσιμο όταν (γ) δυο σχέσεις του from έχουν γνωρίσματα με το ίδιο όνομα (δ) Θέλουμε να κάνουμε συνένωση ενός πίνακα με τον εαυτό του (α) όταν έχουμε αριθμητικές εκφράσεις στο select και δεν έχουν όνομα (β) όταν θέλουμε να αλλάξουμε το όνομα του γνωρίσματος στο αποτέλεσμα Αλλαγή Ονόματος

29 29 Μια μεταβλητή πλειάδας μπορεί να οριστεί στο from χρησιμοποιώντας το as: select distinct Όνομα from Παίζει as Π, Ταινία as Τ where Π.Τίτλος = Τ.Τίτλος and Π.Έτος = Τ.Έτος and Είδος = “Ασπρόμαυρη” Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Μεταβλητές Πλειάδων

30 30 Οι μεταβλητές πλειάδων είναι ιδιαίτερα χρήσιμες όταν θέλουμε να συγκρίνουμε δυο πλειάδες της ίδιας σχέσης. Παράδειγμα: Τα ονόματα όλων των ταινιών που έχουν διάρκεια μεγαλύτερη τουλάχιστον από μία ταινία που γυρίστηκε το 1995 select distinct Τ.Τίτλος from Ταινία as S, Ταινία as T where T.Διάρκεια > S. Διάρκεια and S.Έτος = 1995 Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Μεταβλητές Πλειάδων

31 31 Η SQL λογική τριών τιμών με τιμές TRUE, FALSE, και ΑΓΝΩΣΤΟ (null) Στο αποτέλεσμα του select-from-where μόνο οι πλειάδες που ικανοποιούν τη συνθήκη του where (η έκφραση έχει την τιμή TRUE) Παράδειγμα (NOT) TRUEFALSE FALSETRUEΑΓΝΩΣΤΟ Η τιμή null Χρήση της λέξης κλειδί is null (is not null) σε μια συνθήκη για να ελέγξουμε αν μια τιμή είναι null. select Αριθμός-Δανείου from Δάνειο where Ποσό is null

32 32 Εμφάνιση null Παράδειγμα: select sum(Ποσό) from Δάνειο Σε αριθμητικές πράξεις: το αποτέλεσμα είναι null όταν οποιαδήποτε τιμή είναι null Σε συναθροιστικές συναρτήσεις: αγνοείται, εκτός από το count(*) Η τιμή null

33 33 Η Γλώσσα Βάσεων Δεδομένων SQL Μέρος 1 (Βασική Δομή, Πράξεις Συνόλου)

34 34 Πράξεις: union intersection except εφαρμόζονται σε συμβατές σχέσεις. Πράξεις Συνόλων Γενική Σύνταξη: (select from where ) union/intersection/except (select from where )

35 35 Λογαριασμός Υποκατάστημα Πελάτης Καταθέτης Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Όνομα-Πελάτη Αριθμός-Λογαριασμού Όνομα-Πελάτη Οδός Πόλη Όνομα-Υποκαταστήματος Πόλη Σύνολο Όνομα-Πελάτη Αριθμός-Δανείου Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Παράδειγμα

36 36 Παράδειγμα union: (select Όνομα-Πελάτη from Καταθέτης) union (select Όνομα-Πελάτη from Δανειζόμενος) Τα ονόματα όλων των πελατών που έχουν καταθέσεις ή/και έχουν πάρει δάνειο Πράξεις Συνόλων Απαλοιφή διπλών εμφανίσεων, εκτός αν χρησιμοποιηθεί το union all Μέγιστος αριθμός πολλαπλών εμφανίσεων;

37 37 Αντίστοιχα με το union all, υπάρχει το intersect all Παράδειγμα intersect: (select Όνομα-Πελάτη from Καταθέτης ) intersect (select Όνομα-Πελάτη from Δανειζόμενος ) Τα ονόματα όλων των πελατών που έχουν καταθέσεις και έχουν πάρει δάνειο Πράξεις Συνόλων

38 38 Αντίστοιχα υπάρχει το except all Παράδειγμα except: (select Όνομα-Πελάτη from Καταθέτης) except (select Όνομα-Πελάτη from Δανειζόμενος) Τα ονόματα όλων των πελατών που έχουν καταθέσεις και δεν έχουν πάρει δάνειο (όλοι οι πελάτες που έχουν καταθέσεις ΕΚΤΟΣ ΑΠΟ εκείνους που έχουν πάρει δάνειο) Πράξεις Συνόλων

39 39 Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παραδείγματα Ηθοποιούς που δεν έπαιξαν σε έγχρωμη ταινία Τις ταινίες (τίτλο) με τον ίδιο τίτλο που γυρίστηκαν το 2005 και το 2006 Πράξεις Συνόλων

40 Πηγές  Πανεπιστήμιο Ιωαννίνων: Σημειώσεις του μαθήματος Βάσεις Δεδομένων Ι  Εθνικό Μετσόβιο Πολυτεχνείο : Σημειώσεις του μαθήματος Βάσεις Δεδομένων Ι  Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστημίου Πατρών : Σημειώσεις του μαθήματος Βάσεις Δεδομένων Ι


Κατέβασμα ppt "1 Βάσεις Δεδομένων I Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL 1 από 3 T Manavis."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google