1 / 40

Βάσεις Δεδομένων I

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

Download Presentation

Βάσεις Δεδομένων I

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. Βάσεις Δεδομένων I Επιμέλεια:ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣtmanavis@ist.edu.gr SQL 1 από 3 T Manavis

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

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

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

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

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

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

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

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

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

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

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

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

  14. Πλήρης Σύνταξη της SELECT • Πλήρης σύνταξη SELECT: SELECT [DISTINCT] <λίστα στηλών> FROM<λίστα πινάκων> [WHERE συνθήκη] [GROUP BY <λίστα στηλών>] [HAVINGσυνθήκη] [ORDER BY<λίστα στηλών> [ASCENDING | DESCENDING]];

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related