SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )"

Transcript

1 Εισαγωγή Πως θα υλοποιήσουµε (προγραµµατίσουµε) την εφαρµογή µας χρησιµοποιώντας ένα σχεσιακό Σ Β : SQL Γλώσσα Ορισµού (του σχήµατος) Γλώσσα Χειρισµού εδοµένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων) Γλώσσα Ερωτήσεων Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων Ευαγγελία Πιτουρά 2 Εισαγωγή Η γλώσσα SQL Τυπικές (Formal) Γλώσσες Σχεσιακή άλγεβρα (στην «καθαρή» µορφή της, µόνο γλώσσα ερωτήσεων) Σχεσιακός λογισµός (πλειάδων και πεδίου) Εµπορικές Γλώσσες Προγραµµατισµού SQL QBE H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα Χειρισµού εδοµένων (ΓΧ ) Ενσωµατωµένη Γλώσσα Χειρισµού εδοµένων Ορισµό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Βάσεις εδοµένων Ευαγγελία Πιτουρά 3 Βάσεις εδοµένων Ευαγγελία Πιτουρά 4 Η γλώσσα SQL Εισαγωγή SQL αποτελείται από: DDL (Data Definition Language) - ορισµός, δηµιουργία, τροποποίηση και διαγραφή σχήµατος. DML (Data Manipulation Language) - ορισµός, δηµιουργία, τροποποίηση, διαγραφή και επιλογή δεδοµένων (γλώσσα ερωτήσεων). Θα αρχίσουµε από τη γλώσσα ερωτήσεων (ερωτήσεις πάνω στο τρέχον στιγµιότυπο της βάσης δεδοµένων) Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας Προδιαγραφές ασφάλειας - χρήστες και δικαιώµατα. Βάσεις εδοµένων Ευαγγελία Πιτουρά 5 Βάσεις εδοµένων Ευαγγελία Πιτουρά 6

2 Σχεσιακή Άλγεβρα (επανάληψη) Σχεσιακή Άλγεβρα (επανάληψη) Σχεσιακή άλγεβρα: έναν απλό τρόπο δηµιουργίας νέων σχέσεων από υπάρχουσες. Ένα σύνολο από πράξεις που όταν εφαρµοστούν σε σχέσεις µας δίνουν νέες σχέσεις Οι πράξεις τις σχεσιακής άλγεβρας: 1. Πράξεις που αφαιρούν κοµµάτια από µια σχέση είτε επιλέγοντας γραµµές είτε προβάλλοντας στήλες 2. Οι συνηθισµένες πράξεις συνόλου - ένωση, τοµή, διαφορά 3. Πράξεις που συνδυάζουν πλειάδες από δύο σχέσεις 4. Μετονοµασία γνωρισµάτων Βάσεις εδοµένων Ευαγγελία Πιτουρά 7 Βάσεις εδοµένων Ευαγγελία Πιτουρά 8 Σχεσιακή Άλγεβρα (επανάληψη) Παράδειγµα (επανάληψη) Πλήρες σύνολο πράξεων επιλογή (σ) προβολή (π) ένωση ( ) διαφορά (-) καρτεσιανό γινόµενο (x) Επίσης τοµή ( ) συνένωση συνένωση ισότητας φυσική συνένωση (*) διαίρεση ΠΡΟΤΙΜΑ(ΠΟΤΗΣ, ΜΠΥΡΑ) ΣΥΧΝΑΖΕΙ(ΠΟΤΗΣ, ΜΑΓΑΖΙ) ΣΕΡΒΙΡΕΙ(ΜΑΓΑΖΙ, ΜΠΥΡΑ) Βάσεις εδοµένων Ευαγγελία Πιτουρά 9 Βάσεις εδοµένων Ευαγγελία Πιτουρά 10 Η γλώσσα SQL Η Γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy? John Keats, Ode on a Grecian Urn What is the average salary in the Toy department? Anonymous SQL user Βάσεις εδοµένων Ευαγγελία Πιτουρά 11 Βάσεις εδοµένων Ευαγγελία Πιτουρά 12

3 Η γλώσσα SQL Η standard γλώσσα για σχεσιακές βάσεις δεδοµένων. αρχικά Sequel στην IBM ως µέρος του System R, τώρα SQL (Stuctured Query Language) SQL--89, SQL--92, SQL-99 Η Γλώσσα Βάσεων εδοµένων SQL (Μέρος 1: Βασική οµή, Πράξεις Συνόλου) Βάσεις εδοµένων Ευαγγελία Πιτουρά 13 Βάσεις εδοµένων Ευαγγελία Πιτουρά 14 Βασική οµή Βασική οµή Βασική οµή Μια χαρακτηριστική ερώτηση σε SQL έχει την εξής µορφή: ονόµατα γνωρισµάτων select Α1, Α2,.., Αn from R 1, R 2, R m where P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) select Α 1, Α 2,.., Α n from R 1, R 2, R m where P ονόµατα σχέσεων συνθήκη select αντιστοιχεί στην πράξη της προβολής της σχεσιακής άλγεβρας Ισοδύναµο του: π A 1, A2,.., An (σ P (R 1 x R 2 x R m )) Ποια γνωρίσµατα θέλουµε να υπάρχουν στο αποτέλεσµα της ερώτησης. Βάσεις εδοµένων Ευαγγελία Πιτουρά 15 Βάσεις εδοµένων Ευαγγελία Πιτουρά 16 Βασική οµή Βασική οµή select Α 1, Α 2,.., Α n from R1, R2, Rm where P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) select Α 1, Α 2,.., Α n from R1, R2, Rm where P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) from αντιστοιχεί στην πράξη του καρτεσιανού γινοµένου της σχεσιακής άλγεβρας. Ποιες σχέσεις θα χρησιµοποιηθούν για τον υπολογισµό του αποτελέσµατος. where αντιστοιχεί στη συνθήκη της πράξης της επιλογής στη σχεσιακή άλγεβρα. Το κατηγόρηµα P έχει γνωρίσµατα των σχέσεων που εµφανίζονται στο from. Βάσεις εδοµένων Ευαγγελία Πιτουρά 17 Βάσεις εδοµένων Ευαγγελία Πιτουρά 18

4 Βασική οµή Βασική οµή Όταν δεν υπάρχει το where, το P θεωρείται ότι ισχύει. Ταινία Τίτλος Έτος ιάρκεια Είδος ΠΡΟΣΟΧΗ: ε γίνεται απαλοιφή των διπλών εµφανίσεων. Παίζει Όνοµα Τίτλος Έτος Ηθοποιός Όνοµα ιεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού Βάσεις εδοµένων Ευαγγελία Πιτουρά 19 Βάσεις εδοµένων Ευαγγελία Πιτουρά 20 Βασική οµή Select Παράδειγµα: Ονόµατα ηθοποιών που παίζουν στην ταινία Gone by the Wind select Όνοµα from Παίζει where Τίτλος = ''Gone by the Wind'' Select Παράδειγµα: Ονόµατα όλων των ηθοποιών που έχουν παίξει σε ταινίες select Όνοµα from Παίζει Βάσεις εδοµένων Ευαγγελία Πιτουρά 21 Βάσεις εδοµένων Ευαγγελία Πιτουρά 22 Select Select Η SQL επιτρέπει πολλαπλές εµφανίσεις της ίδιας πλειάδας σε µια σχέση. Μια σχέση στην SQL είναι ένα πολυσύνολο (multiset) ή θύλακας (bag). Απαλοιφή διπλών εµφανίσεων Επιλογή όλων των γνωρισµάτων select * from Παίζει select distinct Όνοµα from Παίζει Βάσεις εδοµένων Ευαγγελία Πιτουρά 23 Βάσεις εδοµένων Ευαγγελία Πιτουρά 24

5 Select Where Αριθµητικές πράξεις (+, -, *, /) ανάµεσα σε σταθερές ή γνωρίσµατα πλειάδων select Τίτλος, Έτος, ιάρκεια / 60, Είδος Επιστρέφει µια σχέση ίδια µε τη σχέση Ταινία µόνο που το γνώρισµα διάρκεια µας δίνει τις ώρες (έχει διαιρεθεί µε το 60) Where Παράδειγµα: Τον τίτλο όλων των ταινιών που γυρίστηκαν µετά το 1995 και είναι ασπρόµαυρες select Τίτλος where Έτος > 1995 and Είδος = ''Ασπρόµαυρη'' Βάσεις εδοµένων Ευαγγελία Πιτουρά 25 Βάσεις εδοµένων Ευαγγελία Πιτουρά 26 Where Where συνθήκη του where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάµεσα σε αριθµητικές εκφράσεις,συµβολοσειρές (strings), και ειδικούς τύπους. Παράδειγµα χρήσης του between : select Τίτλος where Έτος between 1990 and 1995 αντί του select Τίτλος where Έτος >= 1990 and Έτος <= 1995 Βάσεις εδοµένων Ευαγγελία Πιτουρά 27 Βάσεις εδοµένων Ευαγγελία Πιτουρά 28 Βασική οµή Βασική οµή Όταν το ίδιο γνώρισµα εµφανίζεται στο σχήµα περισσότερων από µια σχέσεων, τότε διάκριση βάση του συµβολισµού: <όνοµα-σχέσης>.<όνοµα-γνωρίσµατος> Παράδειγµα φυσικής συνένωσης: Τους ηθοποιούς που παίζουν σε ασπρόµαυρες ταινίες select distinct Όνοµα from Παίζει, Ταινία where Παίζει.Τίτλος = Ταινία.Τίτλος and Παίζει.Έτος = Ταινία.Έτος and Είδος = Ασπρόµαυρη Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παραδείγµατα Έγχρωµες ταινίες µε διάρκεια µέχρι 80 λεπτά Οι ηθοποιοί που γεννήθηκαν µετά το 1935 και έπαιξαν σε ασπρόµαυρες ταινίες πριν το 1945 Βάσεις εδοµένων Ευαγγελία Πιτουρά 29 Βάσεις εδοµένων Ευαγγελία Πιτουρά 30

6 Η γλώσσα SQL Πράξεις µε Συµβολοσειρές Περισσότερα για τη γλώσσα ερωτήσεων - Πράξεις µε Συµβολοσειρές - ιάταξη Πλειάδων - Αλλαγή Ονόµατος - Μεταβλητές Πλειάδων - Η τιµή null Πράξεις µε Συµβολοσειρές Ηπιο συνηθισµένη πράξη είναι ταίριασµα προτύπων: % ταιριάζει οποιαδήποτε συµβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Γίνεται διάκριση ανάµεσα σε κεφαλαία και µικρά Σύγκριση χρησιµοποιώντας το like, not like Βάσεις εδοµένων Ευαγγελία Πιτουρά 31 Βάσεις εδοµένων Ευαγγελία Πιτουρά 32 Πράξεις µε Συµβολοσειρές ιάταξη των Πλειάδων Παράδειγµα: Οι τίτλοι όλων των ταινιών που περιέχουν τη λέξη Θάλασσα select distinct Τίτλος where Τίτλος like %Θάλασσα% Πολλές ακόµα πράξεις διαθέσιµες. ιάταξη των Πλειάδων Χρήση του order by ώστε οι πλειάδες στο αποτέλεσµα να είναι ταξινοµηµένες µε βάση τo αντίστοιχο γνώρισµα select distinct Ταινία, Έτος from Παίζει where Όνοµα = Robert De Niro order by Έτος Βάσεις εδοµένων Ευαγγελία Πιτουρά 33 Βάσεις εδοµένων Ευαγγελία Πιτουρά 34 ιάταξη των Πλειάδων Αλλαγή Ονόµατος Default: αύξουσα διάταξη, αλλά και άµεσα χρησιµοποιώντας το asc (αύξουσα) ή το desc (φθήνουσα). Επίσης, ταξινόµηση µε βάση πολλά γνωρίσµατα. Παράδειγµα: select * order by Έτος desc, Τίτλος asc Ηταξινόµηση είναι δαπανηρή λειτουργία. Αλλαγή Ονόµατος Τα ονόµατα των γνωρισµάτων στο αποτέλεσµα είναι αυτά των σχέσεων στην ερώτηση. υνατότητα αλλαγής του ονόµατος τόσο µιας σχέσης όσο και ενός γνωρίσµατος: <παλιό-όνοµα> as <νέο-όνοµα> To as µπορεί να εµφανίζεται στο select ή στο from Βάσεις εδοµένων Ευαγγελία Πιτουρά 35 Βάσεις εδοµένων Ευαγγελία Πιτουρά 36

7 Αλλαγή Ονόµατος Αλλαγή Ονόµατος Για παράδειγµα: select Τίτλος, Έτος, ιάρκεια / 60 as Ώρες- ιάρκεια, Είδος Χρήσιµο όταν (α) όταν έχουµε αριθµητικές εκφράσεις στο select και δεν έχουν όνοµα, (β) όταν θέλουµε να αλλάξουµε το όνοµα του γνωρίσµατος στο αποτέλεσµα. (γ) δυο σχέσεις του from έχουν γνωρίσµατα µε το ίδιο όνοµα, Βάσεις εδοµένων Ευαγγελία Πιτουρά 37 Βάσεις εδοµένων Ευαγγελία Πιτουρά 38 Μεταβλητές Πλειάδων Μεταβλητές Πλειάδων Μεταβλητές Πλειάδων Μια µεταβλητή πλειάδας µπορεί να οριστεί στο from χρησιµοποιώντας το as: select distinct Όνοµα from Παίζει as Π, Ταινία as Τ where Π.Τίτλος = Τ.Τίτλος and Π.Έτος = Τ.Έτος and Είδος = Ασπρόµαυρη Οι µεταβλητές πλειάδων είναι ιδιαίτερα χρήσιµες όταν θέλουµε να συγκρίνουµε δυο πλειάδες της ίδιας σχέσης. Παράδειγµα: Τα ονόµατα όλων των ταινιών που έχουν διάρκεια µεγαλύτερη τουλάχιστον από µία ταινία που γυρίστηκε το 1995 select distinct Τ.Τίτλος as S, Ταινία as T where T. ιάρκεια > S. ιάρκεια and S.Έτος = 1995 Βάσεις εδοµένων Ευαγγελία Πιτουρά 39 Βάσεις εδοµένων Ευαγγελία Πιτουρά 40 Η τιµή null Η τιµή null Η τιµή null Χρήση της λέξης κλειδί is null (is not null) σε µια συνθήκη για να ελέξουµε αν µια τιµή είναι null. select Αριθµός- ανείου from άνειο where Ποσό is null Εµφάνιση null Σε αριθµητικές πράξεις: το αποτέλεσµα είναι null όταν οποιαδήποτε τιµή είναι null Σε συγκρίσεις: σύγκριση µε null συνήθως δίνει αποτέλεσµα false Σε συναθροιστικές συναρτήσεις: αγνοείται πλην από το count(*) Παράδειγµα: select sum(ποσό) from άνειο Βάσεις εδοµένων Ευαγγελία Πιτουρά 41 Βάσεις εδοµένων Ευαγγελία Πιτουρά 42

8 Βασική οµή (επανάληψη) Η Γλώσσα Βάσεων εδοµένων SQL (Μέρος 1: Βασική οµή, Πράξεις Συνόλου) Μια χαρακτηριστική ερώτηση σε SQL έχει την εξής µορφή: ονόµατα γνωρισµάτων select Α 1, Α 2,.., Α n ονόµατα σχέσεων from R 1, R 2, R m where P συνθήκη Ισοδύναµο του: π A 1, A2,.., An (σ P (R 1 x R 2 x R m )) Βάσεις εδοµένων Ευαγγελία Πιτουρά 43 Βάσεις εδοµένων Ευαγγελία Πιτουρά 44 Select ιαγραφή διπλότιµων: select distinct select * (όλα τα γνωρίσµατα) Συνθήκη του where Βασική οµή (επανάληψη) Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάµεσα σε αριθµητικές εκφράσεις,συµβολοσειρές (strings), και ειδικούς τύπους. Βασική οµή (επανάληψη) Όταν το ίδιο γνώρισµα εµφανίζεται στο σχήµα περισσότερων από µια σχέσεων, τότε διάκριση βάση του συµβολισµού: <όνοµα-σχέσης>.<όνοµα-γνωρίσµατος> υνατότητα αλλαγής του ονόµατος τόσο µιας σχέσης όσο και ενός γνωρίσµατος: <παλιό-όνοµα> as <νέο-όνοµα> To as µπορεί να εµφανίζεται στο select ή στο from Οι µεταβλητές πλειάδων είναι ιδιαίτερα χρήσιµες όταν θέλουµε να συγκρίνουµε δυο πλειάδες τις ίδιας σχέσης. Βάσεις εδοµένων Ευαγγελία Πιτουρά 45 Βάσεις εδοµένων Ευαγγελία Πιτουρά 46 Συµβολοσειρές, ιάταξη (επανάληψη) Βασική οµή (επανάληψη) Πράξεις µε Συµβολοσειρές Ηπιο συνηθισµένη πράξη είναι ταίριασµα προτύπων: % ταιριάζει οποιαδήποτε συµβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Σύγκριση χρησιµοποιώντας το like, not like ιάταξη των Πλειάδων select Α 1, Α 2,.., Α n from R 1, R 2, R m where P order by Χρήση του order by ώστε οι πλειάδες στο αποτέλεσµα να είναι ταξινοµηµένες µε βάση τo αντίστοιχο γνώρισµα Default: αύξουσα διάταξη, αλλά και άµεσα χρησιµοποιώντας το asc (αύξουσα) ή το desc (φθήνουσα). Βάσεις εδοµένων Ευαγγελία Πιτουρά 47 Βάσεις εδοµένων Ευαγγελία Πιτουρά 48

9 Ητιµή null (επανάληψη) Πράξεις Συνόλων Η τιµή null Χρήση της λέξης κλειδί is null (is not null) σε µια συνθήκη για να ελέγξουµε αν µια τιµή είναι null. Πράξεις Συνόλων Πράξεις: union intersection except εφαρµόζονται σε συµβατές σχέσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 49 Βάσεις εδοµένων Ευαγγελία Πιτουρά 50 Πράξεις Συνόλων Πράξεις Συνόλων Γενική Σύνταξη: (select from where ) union/intersection/except (select from where ) Λογαριασµός Όνοµα-Υποκαταστήµατος Αριθµός-Λογαριασµού Υποκατάστηµα Όνοµα-Υποκαταστήµατος Πόλη Σύνολο άνειο Όνοµα-Υποκαταστήµατος Αριθµός- ανείου Ποσό ανειζόµενος Όνοµα-Πελάτη Αριθµός- ανείου Ποσό Πελάτης Καταθέτης Όνοµα-Πελάτη Οδός Πόλη Όνοµα-Πελάτη Αριθµός-Λογαριασµού Βάσεις εδοµένων Ευαγγελία Πιτουρά 51 Βάσεις εδοµένων Ευαγγελία Πιτουρά 52 Πράξεις Συνόλων Πράξεις Συνόλων Παράδειγµα union: Τα ονόµατα όλων των πελατών που έχουν καταθέσεις ή/και έχουν πάρει δάνειο (select Όνοµα-Πελάτη from Καταθέτης) union (select Όνοµα-Πελάτη from ανειζόµενος) Απαλοιφή διπλών εµφανίσεων, εκτός αν χρησιµοποιηθεί το union all Μέγιστος αριθµός πολλαπλών εµφανίσεων; Βάσεις εδοµένων Ευαγγελία Πιτουρά 53 Βάσεις εδοµένων Ευαγγελία Πιτουρά 54

10 Πράξεις Συνόλων Πράξεις Συνόλων Παράδειγµα intersect: Τα ονόµατα όλων των πελατών που έχουν καταθέσεις και έχουν πάρει δάνειο (select Όνοµα-Πελάτη from Καταθέτης ) intersect (select Όνοµα-Πελάτη from ανειζόµενος ) Αντίστοιχα υπάρχει το intersect all Μέγιστος αριθµός πολλαπλών εµφανίσεων; Βάσεις εδοµένων Ευαγγελία Πιτουρά 55 Παράδειγµα except: Τα ονόµατα όλων των πελατών που έχουν καταθέσεις και δεν έχουν πάρει δάνειο (select Όνοµα-Πελάτη from Καταθέτης) except (select Όνοµα-Πελάτη from ανειζόµενος) Αντίστοιχα υπάρχει το except all Μέγιστος αριθµός πολλαπλών εµφανίσεων; Βάσεις εδοµένων Ευαγγελία Πιτουρά 56 Select ιαγραφή διπλότιµων: select distinct select * (όλα τα γνωρίσµατα) Συνθήκη του where Βασική οµή (επανάληψη) Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάµεσα σε αριθµητικές εκφράσεις,συµβολοσειρές (strings), και ειδικούς τύπους. Βασική οµή (επανάληψη) Όταν το ίδιο γνώρισµα εµφανίζεται στο σχήµα περισσότερων από µια σχέσεων, τότε διάκριση βάση του συµβολισµού: <όνοµα-σχέσης>.<όνοµα-γνωρίσµατος> υνατότητα αλλαγής του ονόµατος τόσο µιας σχέσης όσο και ενός γνωρίσµατος: <παλιό-όνοµα> as <νέο-όνοµα> To as µπορεί να εµφανίζεται στο select ή στο from Οι µεταβλητές πλειάδων είναι ιδιαίτερα χρήσιµες όταν θέλουµε να συγκρίνουµε δυο πλειάδες τις ίδιας σχέσης. Βάσεις εδοµένων Ευαγγελία Πιτουρά 57 Βάσεις εδοµένων Ευαγγελία Πιτουρά 58 Συµβολοσειρές, ιάταξη (επανάληψη) Βασική οµή (επανάληψη) Πράξεις µε Συµβολοσειρές Ηπιο συνηθισµένη πράξη είναι ταίριασµα προτύπων: % ταιριάζει οποιαδήποτε συµβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Σύγκριση χρησιµοποιώντας το like, not like ιάταξη των Πλειάδων select Α 1, Α 2,.., Α n from R 1, R 2, R m where P order by Χρήση του order by ώστε οι πλειάδες στο αποτέλεσµα να είναι ταξινοµηµένες µε βάση τo αντίστοιχο γνώρισµα Default: αύξουσα διάταξη, αλλά και άµεσα χρησιµοποιώντας το asc (αύξουσα) ή το desc (φθήνουσα). Βάσεις εδοµένων Ευαγγελία Πιτουρά 59 Βάσεις εδοµένων Ευαγγελία Πιτουρά 60

11 Πράξεις συνόλων (επανάληψη) Πράξεις Συνόλων Πράξεις: union intersection except Η Γλώσσα SQL (Μέρος 2:, Γλώσσα Ορισµού) εφαρµόζονται σε συµβατές σχέσεις. Σύνταξη (select-from-where) union (select-from-where) Απαλοιφή διπλών εµφανίσεων, εκτός αν χρησιµοποιηθεί το union all Βάσεις εδοµένων Ευαγγελία Πιτουρά 61 Βάσεις εδοµένων Ευαγγελία Πιτουρά 62 Φωλιασµένες Υποερωτήσεις Η SQL επιτρέπει το φώλιασµα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι µια έκφραση select-fromwhere που χρησιµοποιείται µέσα σε µια άλλη selectfrom-where ερώτηση. Γενική δοµή: select... from... Υπο-ερώτηση where <τελεστής> (select... from... where... ); Η εσωτερική (φωλιασµένη) υπο-ερώτηση υπολογίζεται για κάθε γραµµή (πλειάδα) της εξωτερικής ερώτησης Στη συνέχεια θα δούµε τι µπορεί να είναι ο τελεστής Βάσεις εδοµένων Ευαγγελία Πιτουρά 63 Βάσεις εδοµένων Ευαγγελία Πιτουρά 64 Η γλώσσα SQL Λογαριασµός Υποκατάστηµα Όνοµα-Υποκαταστήµατος Αριθµός-Λογαριασµού Ποσό Όνοµα-Υποκαταστήµατος Πόλη Σύνολο άνειο Όνοµα-Υποκαταστήµατος Αριθµός- ανείου Ποσό ανειζόµενος Όνοµα-Πελάτη Αριθµός- ανείου Πελάτης Όνοµα-Πελάτη Οδός Πόλη Καταθέτης Όνοµα-Πελάτη Αριθµός-Λογαριασµού Ο τελεστής in (not in) Ελέγχει αν µια πλειάδα ανήκει (δεν ανήκει) σε ένα σύνολο από πλειάδες που έχουν προκύψει από µια έκφραση select-from-where. Παράδειγµα: Τα ονόµατα όλων των πελατών που έχουν πάρει δάνειο και έχουν καταθέσεις select distinct Όνοµα-Πελάτη from ανειζόµενος where Όνοµα-Πελάτη in (select Όνοµα-Πελάτη from Καταθέτης) Βάσεις εδοµένων Ευαγγελία Πιτουρά 65 Βάσεις εδοµένων Ευαγγελία Πιτουρά 66

12 Παραπάνω από δύο γνωρίσµατα Παράδειγµα: Τα ονόµατα όλων των πελατών που έχουν πάρει δάνειο και έχουν καταθέσεις στο υποκατάστηµα Ψηλά-Αλώνια select distinct Όνοµα-Πελάτη from ανειζόµενος, άνειο where ανειζόµενος.αριθµός- ανείου = άνειο.αριθµός. ανείου and Όνοµα-Υποκαταστήµατος = Ψηλά-Αλώνια and (Όνοµα-Υποκαταστήµατος, Όνοµα-Πελάτη) in (select Όνοµα-Υποκαταστήµατος, Όνοµα-Πελάτη from Καταθέτης, Λογαριασµός where Καταθέτης.Αριθµός-Λογαριασµού = Λογαριασµός.Αριθµός-Λογαριασµού) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγµα: Τα ονόµατα όλων των ηθοποιών που έπαιξαν σε ασπρόµαυρη ταινία select distinct Ηθοποιός.Όνοµα from Παίζει where (Παίζει.Τίτλος, Παίζει.Έτος) in (select Ταινία.Τίτλος, Ταινία.Έτος where Είδος = «Ασπρόµαυρη») Βάσεις εδοµένων Ευαγγελία Πιτουρά 67 Βάσεις εδοµένων Ευαγγελία Πιτουρά 68 Μπορεί να χρησιµοποιηθεί και µε enumerated σύνολα Παράδειγµα: Τα ονόµατα όλων των πελατών που έχουν πάρει δάνειο και δε λέγονται Παπαδόπουλος ή Πέτρου. select distinct Όνοµα-Πελάτη from ανειζόµενος where Όνοµα-Πελάτη not in ( Παπαδόπουλος, Πέτρου ) Σύγκριση Συνόλων 1. Ο τελεστής some (any) έχει τη σηµασία του τουλάχιστον ένα από ένα σύνολο Παράδειγµα: Τα ονόµατα όλων των υποκαταστηµάτων που έχουν καταθέσεις µεγαλύτερες από τις καταθέσεις ενός τουλάχιστον υποκαταστήµατος των Ιωαννίνων. select distinct Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Ποσό > some (select Ποσό from Υποκατάστηµα where Πόλη = Ιωάννινα ) Βάσεις εδοµένων Ευαγγελία Πιτουρά 69 Βάσεις εδοµένων Ευαγγελία Πιτουρά 70 επίσης: < some, <= some, >= some, = some (ισοδ. του in) < > some (όχι ισοδ. του not in) 2. Ο τελεστής all έχει τη σηµασία από όλα τα στοιχεία ενός συνόλου Παράδειγµα: Τα ονόµατα όλων των υποκαταστηµάτων που έχουν καταθέσεις µεγαλύτερες από τις καταθέσεις όλων των υποκαταστηµάτων των Ιωαννίνων. select distinct Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Ποσό > all (select Ποσό from Υποκατάστηµα where Πόλη = Ιωάννινα ) Βάσεις εδοµένων Ευαγγελία Πιτουρά 71 Βάσεις εδοµένων Ευαγγελία Πιτουρά 72

13 Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγµα: ; select distinct Όνοµα from Ηθοποιός where Έτος-Γέννησης <= all (select Έτος-Γέννησης from Παίζει, Ηθοποιός where Παίζει.Όνοµα = Ηθοποιός.Όνοµα and Τίτλος = «Μανταλένα» επίσης: < all, <= all, >= all, = all, < > all (ισοδ. του not in) Βάσεις εδοµένων Ευαγγελία Πιτουρά 73 Βάσεις εδοµένων Ευαγγελία Πιτουρά Έλεγχος για άδεια σχέση Παράδειγµα: Το υποκατάστηµα µε το µεγαλύτερο µέσο ποσό καταθέσεων. select distinct Όνοµα-Υποκαταστήµατος from Λογαριασµός group by Όνοµα-Υποκαταστήµατος having avg (Ποσό) >=all (select avg(ποσό) from Λογαριασµός group by Όνοµα-Υποκαταστήµατος) Ο τελεστής exists: επιστρέφει true ανν η υποερώτηση δεν είναι κενή Παράδειγµα: Οι πελάτες που έχουν καταθέσεις και έχουν πάρει δάνειο. select Όνοµα-Πελάτη from ανειζόµενος where exists (select * from Καταθέτης where Καταθέτης.Όνοµα-Πελάτη = ανειζόµενος.όνοµα- Πελάτη) Βάσεις εδοµένων Ευαγγελία Πιτουρά 75 Βάσεις εδοµένων Ευαγγελία Πιτουρά 76 Ο τελεστής not exists µπορεί να χρησιµοποιηθεί για έλεγχο αν η σχέση A περιέχει τη σχέση B not exists (Β except Α) True if and only if A B Ποια πράξη της σχεσιακής άλγεβρας; Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγµα: Οι ηθοποιοί που έχουν παίξει σε όλες τις ταινίες της Βουγιουκλάκη B: όλες οι ταινίες της Βουγιουκλάκη Α: όλες οι ταινίες του συγκεκριµένου ηθοποιού select distinct S.Όνοµα from Παίζει as S where not exists ((select Τίτλος, Έτος from Παίζει where Όνοµα = Βουγιουκλάκη ) except (select Τίτλος, Έτος from Παίζει as R where R.Όνοµα = S.Όνοµα)) not exists (Β except Α) uπολογισµός για κάθε S Βάσεις εδοµένων Ευαγγελία Πιτουρά 77 Βάσεις εδοµένων Ευαγγελία Πιτουρά 78

14 Παράδειγµα: Οι πελάτες που έχουν καταθέσεις σε όλα τα υποκαταστήµατα της Πάτρας. B: όλα τα υποκαταστήµατα της Πάτρας Α: όλα τα υποκαταστήµατα στα οποία έχει κατάθεση ο συγκεκριµένος πελάτης select distinct S.Όνοµα-Πελάτη not exists (Β except Α) from Καταθέτης as S where not exists ((select Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Πόλη = Πάτρα ) except (select R. Όνοµα-Υποκαταστήµατος from Καταθέτης as T, Λογαριασµός as R where T.Όνοµα-Πελάτη = S. Όνοµα-Πελάτη and T.Αριθµός-Λογαριασµού = R. Αριθµός-Λογαριασµού )) 4. Έλεγχος για ιπλές Εµφανίσεις Ο τελεστής unique: επιστρέφει true ανν η υποερώτηση δεν έχει πολλαπλές όµοιες πλειάδες not unique Βάσεις εδοµένων Ευαγγελία Πιτουρά 79 Βάσεις εδοµένων Ευαγγελία Πιτουρά 80 Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγµα: Οι ηθοποιοί που έχουν παίξει το πολύ σε µια ταινία select Όνοµα from Παίζει ας T where unique (select Τ.Όνοµα from Παίζει ας R where T.Όνοµα = R.Όνοµα) select Όνοµα from Παίζει group by Όνοµα having count(*) < = 1 (θα το δούµε στη συνέχεια) Παράδειγµα: Οι πελάτες που έχουν ακριβώς µια κατάθεση στο υποκατάστηµα Ψηλά Αλώνια select T.Όνοµα-Πελάτη from Καταθέτης as Τ where unique (select R.Όνοµα-Πελάτη from Λογαριασµός, Καταθέτης as R where T.Όνοµα-Πελάτη = R.Όνοµα-Πελάτη and R. Αριθµός-Λογαριασµού = Λογαριασµός. Αριθµός- Λογαριασµού and Λογαριασµός.Όνοµα-Υποκαταστήµατος = Ψηλά Αλώνια ) Βάσεις εδοµένων Ευαγγελία Πιτουρά 81 Βάσεις εδοµένων Ευαγγελία Πιτουρά 82 (επανάληψη) Παράδειγµα: Οι πελάτες που έχουν τουλάχιστον δύο καταθέσεις στο υποκατάστηµα Ψηλά Αλώνια select T.Όνοµα-Πελάτη from Καταθέτης as Τ where not unique (select R.Όνοµα-Πελάτη from Λογαριασµός, Καταθέτης as R where T.Όνοµα-Πελάτη = R.Όνοµα-Πελάτη and R. Αριθµός-Λογαριασµού = Λογαριασµός.Αριθµός- Λογαριασµού and Λογαριασµός.Όνοµα-Υποκαταστήµατος = Ψηλά Αλώνια ) Ο τελεστής µπορεί να είναι: in/not in (συµµετοχή σε σύνολο) (>, =, κλπ) some/any/all (σύγκριση συνόλων) exists/not exists (έλεγχος για κενά σύνολα) unique/not unique (έλεγχος για διπλότιµα) Βάσεις εδοµένων Ευαγγελία Πιτουρά 83 Βάσεις εδοµένων Ευαγγελία Πιτουρά 84

15 Η γλώσσα SQL Η Γλώσσα SQL (Μέρος 2:, Γλώσσα Ορισµού) H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα Χειρισµού εδοµένων (ΓΧ ) Ενσωµατωµένη Γλώσσα Χειρισµού εδοµένων Ορισµό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Βάσεις εδοµένων Ευαγγελία Πιτουρά 85 Βάσεις εδοµένων Ευαγγελία Πιτουρά 86 Γλώσσα Ορισµού εδοµένων Γλώσσα Ορισµού εδοµένων Γλώσσα Ορισµού εδοµένων (ΓΟ ) Σχετικά µε το λογικό σχήµα, η ΓΟ SQL υποστηρίζει τους ορισµούς: του σχήµατος κάθε σχέσης του πεδίου τιµών κάθε γνωρίσµατος των περιορισµών ακεραιότητας create table R(A 1 D 1, A 2 D 2,..., A n D n ), <περιορισµός-ακεραιότητας 1 >,, <περιορισµός-ακεραιότητας k > όπου R είναι το όνοµα της σχέσης, A i τα ονόµατα των γνωρισµάτων, και D i οι τύποι των αντίστοιχων πεδίων τιµών. Βάσεις εδοµένων Ευαγγελία Πιτουρά 87 Βάσεις εδοµένων Ευαγγελία Πιτουρά 88 Τύποι Πεδίου Ορισµού Πεδία Τιµών Για τον ορισµό του πεδίου ορισµού, οι διαθέσιµοι built-in τύποι περιλαµβάνουν: char(n) (σταθερού µήκους) varchar(n) int smallint numeric(p, d) (d από τα p ψηφία είναι στα δεξιά της υποδιαστολής) real, double precision float(n) date (ηµεροµηνία) time (ώρα) Πεδία Τιµών Ο ορισµός πεδίου µπορεί να περιέχει τον προσδιορισµό not null Επίσης, επιτρέπεται δηµιουργία πεδίου: create domain <name> as <type-description> create domain Όνοµα-Προσώπου char(20) Βάσεις εδοµένων Ευαγγελία Πιτουρά 89 Βάσεις εδοµένων Ευαγγελία Πιτουρά 90

16 Ορισµός Σχήµατος create table R(A 1 D 1, A 2 D 2,..., A n D n ), <περιορισµός-ακεραιότητας 1 >,, <περιορισµός-ακεραιότητας k > Ορισµός Σχήµατος όπου R είναι το όνοµα της σχέσης, A i τα ονόµατα των γνωρισµάτων, και D i οι τύποι των αντίστοιχων πεδίων τιµών. Επιτρεπτοί περιορισµοί ακεραιότητας είναι της µορφής: Ορισµός Σχήµατος primary key A j1, A j2,..., A jn, (δεν επιτρέπονται επαναλαµβανόµενες τιµές και NULL τιµές) unique A j1, A j2,..., A jn, (δεν επιτρέπονται επαναλαµβανόµενες τιµέs; NULL τιµές επιτρέπονται) check P foreign key (A i ) references A j Βάσεις εδοµένων Ευαγγελία Πιτουρά 91 Βάσεις εδοµένων Ευαγγελία Πιτουρά 92 Ορισµός Σχήµατος Ορισµός Σχήµατος Παραδείγµατα (1) create table Πελάτης (Όνοµα-Πελάτη char(20) not null, Οδός char(30), Πόλη char(30), primary key (Όνοµα-Πελάτη)) (2) create table Λογαριασµός (Αριθµός-Λογαριασµού char(10) not null, Όνοµα-Υποκαταστήµατος char(15), Ποσό int, primary key (Αριθµός-Λογαριασµού) check (Ποσό >= 0) Βάσεις εδοµένων Ευαγγελία Πιτουρά 93 Βάσεις εδοµένων Ευαγγελία Πιτουρά 94 Ορισµός Σχήµατος Περιορισµοί Ακεραιότητας Επίσης, πιο περίπλοκες συνθήκες, π.χ., για ξένα κλειδιά: check (Όνοµα-Υποκαταστήµατος in select Όνοµα-Υποκαταστήµατος from Υποκατάστηµα) Περιορισµοί Αναφοράς Σύνταξη: foreign key (A i ) references A j Όταν µια πράξη παραβιάζει έναν περιορισµό αναφοράς απορρίπτεται εκτός αν έχει οριστεί: on delete cascade on update cascade Βάσεις εδοµένων Ευαγγελία Πιτουρά 95 Βάσεις εδοµένων Ευαγγελία Πιτουρά 96

17 Περιορισµοί Ακεραιότητας Περιορισµοί Ακεραιότητας Παράδειγµα create table.. foreign key (Όνοµα-Υποκαταστήµατος) references Υποκατάστηµα on delete cascade on update cascade Περιορισµοί Ακεραιότητας Πεδίου ορισµού Χρησιµοποιώντας την εντολή check: Παραδείγµατα (1) Ελάχιστος ωροµίσθιο create domain Ωροµίσθιο numeric(5, 2) constraint Έλεγχος-Ωροµισθίου check(ποσό >= 4.00) Βάσεις εδοµένων Ευαγγελία Πιτουρά 97 Βάσεις εδοµένων Ευαγγελία Πιτουρά 98 Περιορισµοί Ακεραιότητας ιαγραφή Σχήµατος (2) Να µην περιέχει την τιµή null create domain Πεδίο-Αριθµός-Λογαριασµού char(10) constraint Έλεγχος-Αριθµός-Λογαριασµού check(value not null) (3) Να παίρνει συγκεκριµένες τιµές create domain Τύπος-Λογαριασµού char(10) constraint Έλεγχος-Τύπος-Λογαριασµού check value in ( Όψεως, Ταµιευτηρίου ) ιαγραφή Σχήµατος Μια καινούργια σχέση είναι αρχικά άδεια. Για να σβηστεί ένα σχήµα: drop table R ιαφορά από delete from R Βάσεις εδοµένων Ευαγγελία Πιτουρά 99 Βάσεις εδοµένων Ευαγγελία Πιτουρά 100 Τροποποίηση Σχήµατος Τροποποίηση Σχήµατος Τροποποίηση Σχήµατος ALTER TABLE όνοµα πίνακα ADD - προσθέτει καινούργια στήλη DROP - διαγράφει µια στήλη MODIFY - τροποποιεί µια στήλη Προσθήκη νέου γνωρίσµατος: alter table R add A D προσθήκη σε µια σχέση R που ήδη υπάρχει του γνωρίσµατος A µε πεδίο τιµών D, η τιµή των πλειάδων της R στο καινούργιο γνώρισµα είναι null. ιαγραφή γνωρίσµατος: alter table R drop A Βάσεις εδοµένων Ευαγγελία Πιτουρά 101 Βάσεις εδοµένων Ευαγγελία Πιτουρά 102

18 Τροποποίηση Σχήµατος alter table R modify (όνοµα_στήλης new_datatype) modify µπορεί να τροποποιήσει µόνο τον τύπο δεδοµένων, όχι το όνοµα της στήλης Η Γλώσσα SQL (Μέρος 3:Γλώσσα Τροποποίησης, Συναθροιστικές Συναρτήσεις, Συνενώσεις, Όψεις Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 103 Βάσεις εδοµένων Ευαγγελία Πιτουρά 104 Παράδειγµα: (επανάληψη) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) select Τίτλος select Τίτλος where ιάρκεια >any (select ιάρκεια where ιάρκεια >all (select ιάρκεια where Είδος = έγχρωµη) where Είδος = έγχρωµη) select Τίτλος where ιάρκεια in (select ιάρκεια where Είδος = έγχρωµη) Μία συνθήκη του where Βάσεις εδοµένων Ευαγγελία Πιτουρά 105 (επανάληψη) Η SQL επιτρέπει το φώλιασµα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι µια έκφραση select-from-where που χρησιµοποιείται µέσα σε µια άλλη ερώτηση. Γενική δοµή: select... from... where <x> (select... from... where... ); <x> µπορεί να είναι T {=, <, <=, >, >=, <>} any(some), all T in exists, unique (όπου Τ πλειάδα) Υπολογισµός της υπο-ερώτησης για κάθε γραµµή (πλειάδα) της εξωτερικής ερώτησης Βάσεις εδοµένων Ευαγγελία Πιτουρά 106 Παράδειγµα: (επανάληψη) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) H SQL έχει διάφορα τµήµατα: Η γλώσσα SQL select Τίτλος where exists (select ιάρκεια where Είδος = έγχρωµη) select Τίτλος where unique (select ιάρκεια where Είδος = έγχρωµη) Μία συνθήκη του where Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα Χειρισµού εδοµένων (ΓΧ ) Ενσωµατωµένη Γλώσσα Χειρισµού εδοµένων Ορισµό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Βάσεις εδοµένων Ευαγγελία Πιτουρά 107 Βάσεις εδοµένων Ευαγγελία Πιτουρά 108

19 Γλώσσα Ορισµού εδοµένων Η γλώσσα SQL Γλώσσα Ορισµού εδοµένων (ΓΟ ) Σχετικά µε το λογικό σχήµα, η ΓΟ SQL υποστηρίζει τους ορισµούς: Τροποποίηση Βάσης εδοµένων Γλώσσα Χειρισµού εδοµένων (ΓX ) του σχήµατος κάθε σχέσης του πεδίου τιµών κάθε γνωρίσµατος των περιορισµών ακεραιότητας Βάσεις εδοµένων Ευαγγελία Πιτουρά 109 Βάσεις εδοµένων Ευαγγελία Πιτουρά 110 Τροποποιήσεις 1. ιαγραφή 2. Εισαγωγή 3. Ενηµέρωση Τροποποιήσεις Εισαγωγή Για να εισάγουµε δεδοµένα σε µια σχέση είτε (α) προσδιορίζουµε την πλειάδα, είτε insert into R(A 1,, A n ) values (v 1,, v n ) (β) γράφουµε µια ερώτηση που το αποτέλεσµα της εισάγεται στη σχέση. Εισαγωγή insert into R(A 1,, A n ) select-from-where Βάσεις εδοµένων Ευαγγελία Πιτουρά 111 Βάσεις εδοµένων Ευαγγελία Πιτουρά 112 Εισαγωγή Εισαγωγή Παράδειγµα για το (α) insert into Λογαριασµός values ( Ψηλά-Αλώνια, A--9732, 1200) Όταν µε οποιαδήποτε σειρά, π.χ.,: insert into Λογαριασµός (Αριθµός-Λογαριασµού, Όνοµα- Υποκαταστήµατος, Ποσό) values ( A--9732, Ψηλά-Αλώνια, 1200) Παράδειγµα για το (β): Για κάθε πελάτη που έχει πάρει δάνειο από το υποκατάστηµα Ψηλά Αλώνια προστίθεται ως δώρο ένας λογαριασµός των $200 insert into Λογαριασµός select Όνοµα-Υποκαταστήµατος, Αριθµός- ανείου, 200 from άνειο where Όνοµα-Υποκαταστήµατος = Ψηλά Αλώνια Βάσεις εδοµένων Ευαγγελία Πιτουρά 113 Βάσεις εδοµένων Ευαγγελία Πιτουρά 114

20 Εισαγωγή Εισαγωγή Πρέπει πρώτα να υπολογιστεί το select πλήρως και µετά να γίνει η εισαγωγή. Τι αποτέλεσµα έχει η παρακάτω εντολή αν αυτό δε συµβαίνει; insert into Λογαριασµός select * from Λογαριασµός Επίσης, εισαγωγή null τιµών: insert into Λογαριασµός values (null, A--9732, 1200) Βάσεις εδοµένων Ευαγγελία Πιτουρά 115 Βάσεις εδοµένων Ευαγγελία Πιτουρά 116 ιαγραφή ιαγραφή ιαγραφή Μπορούµε να σβήσουµε µόνο ολόκληρες πλειάδες και όχι συγκεκριµένα γνωρίσµατα. delete from R where P Σβήνει όλες τις πλειάδες της R για τις οποίες ισχύει το P. Παραδείγµατα (1) Όλους τους λογαριασµούς του Παπαδόπουλου delete from Καταθέτης where Όνοµα-Πελάτη = Παπαδόπουλος Όταν λείπει το where σβήνονται όλες οι πλειάδες µιας σχέσης. Βάσεις εδοµένων Ευαγγελία Πιτουρά 117 Βάσεις εδοµένων Ευαγγελία Πιτουρά 118 ιαγραφή ιαγραφή (2) Όλους τους λογαριασµούς στα υποκαταστήµατα της Πάτρας delete from Λογαριασµός where Όνοµα-Υποκαταστήµατος in (select Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Πόλη = Πάτρα ) Παρατήρηση: δεν υπάρχει τρόπος να διαγράψουµε τη µία από δυο ίδιες πλειάδες Αν και µπορούµε να σβήσουµε πλειάδες µόνο από µία σχέση τη φορά µπορούµε να αναφερθούµε σε περισσότερες από µια σχέσεις στην υποερώτηση του where (3) Όλους τους λογαριασµούς µιας τράπεζας µε ποσό µικρότερο από το µέσο ποσό στην τράπεζα. delete from Λογαριασµός where Ποσό > (select avg(ποσό) from Λογαριασµός) Πρώτα γίνεται ο έλεγχος σε όλες τις πλειάδες και µετά αυτές που ικανοποιούν τη συνθήκη διαγράφονται. Βάσεις εδοµένων Ευαγγελία Πιτουρά 119 Βάσεις εδοµένων Ευαγγελία Πιτουρά 120

21 ιαγραφή ιαγραφή Παράδειγµα: µια τράπεζα θέλει να κλείσει όλα τα υποκαταστήµατά της που βρίσκονται στην Καστοριά delete from Υποκατάστηµα where Όνοµα-Υποκαταστήµατος in (select Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Πόλη = Kαστοριά ) Πρέπει να διαγράψουµε και όλους τους λογαριασµούς: delete from Λογαριασµός where Όνοµα-Υποκαταστήµατος in (select Όνοµα-Υποκαταστήµατος from Υποκατάστηµα where Πόλη = Kαστοριά ) ΠΡΟΣΟΧΗ: όταν θέλουµε να διαγράψουµε κάποια δεδοµένα, πρέπει να διαγράψουµε όλα τα δεδοµένα που συσχετίζονται µε αυτά. Επίσης πρέπει να προσέξουµε την σειρά µε την οποία θα γίνουν οι διαγραφές. Βάσεις εδοµένων Ευαγγελία Πιτουρά 121 Βάσεις εδοµένων Ευαγγελία Πιτουρά 122 ιαγραφή Ενηµερώσεις υποκατάστηµα λογαριασµός Πόλη Όνοµα_Υποκ. Όνοµα_Υποκ. Όνοµα-Πελάτη Υπόλοιπο Καστοριά K1 K1 ΚΩΤΣΗΣ Καστοριά K3 K2 ΑΠΟΣΤΟΛΙ ΗΣ Θεσσαλονίκη Θ1 Θ1 ΣΤΕΦΑΝΟΥ Θεσσαλονίκη Θ2 Θ2 ΠΑΠΑΝΙΚΟΛΑΟΥ Αθήνα A1 K3 ΧΑΤΖΟΠΟΥΛΟΣ αν διαγράψουµε από τον πίνακα υποκατάστηµα όλα τα υποκαταστήµατα της Καστοριάς, θα έχουµε πρόβληµα ορθότητας στον πίνακα λογαριασµός. πρώτα πρέπει να διαγράψουµε τους λογαριασµούς και µετά τα υποκαταστήµατα. Βάσεις εδοµένων Ευαγγελία Πιτουρά 123 Ενηµερώσεις Παράδειγµα: Αύξηση όλων των καταθέσεων που είναι µεγαλύτερες των $100 κατά 5% λόγω τοκισµού update Λογαριασµός set Ποσό = Ποσό * 1.05 where Ποσό > 100 Βάσεις εδοµένων Ευαγγελία Πιτουρά 124 Ενηµερώσεις Ενηµερώσεις Παράδειγµα: στους πελάτες που έχουν υπόλοιπο < η τράπεζα δίνει 5% και στους πελάτες που έχουν υπόλοιπο > δίνει 9%: update Λογαριασµός set Ποσό = Ποσό * 1.05 where Ποσό < update Λογαριασµός set Ποσό = Ποσό * 1.09 where Ποσό > Παράδειγµα: Αύξηση όλων των υπολοίπων που είναι µεγαλύτερα από τον µέσο όρο κατά 5% update Λογαριασµός set Υπόλοιπο = Υπόλοιπο * 1.05 where Υπόλοιπο > select avg(υπόλοιπο) from Λογαριασµός Ποιο update πρέπει να τρέξουµε πρώτα; Βάσεις εδοµένων Ευαγγελία Πιτουρά 125 Βάσεις εδοµένων Ευαγγελία Πιτουρά 126

22 Συναθροιστικές Συναρτήσεις Η Γλώσσα SQL (Μέρος 3:Γλώσσα Τροποποίησης, Συναθροιστικές Συναρτήσεις, Συνενώσεις, Όψεις Ενσωµατωµένη SQL) Συναθροιστικές Συναρτήσεις Η SQL έχει 5 built-in συναθροιστικές συναρτήσεις: Μέσος όρος: avg(a) (µόνο σε αριθµούς) A γνώρισµα Ελάχιστο: min(a) Μέγιστο: max(a) Άθροισµα: sum(a) (µόνο σε αριθµούς) Πλήθος: count(a) Βάσεις εδοµένων Ευαγγελία Πιτουρά 127 Βάσεις εδοµένων Ευαγγελία Πιτουρά 128 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Λογαριασµός Όνοµα-Υποκαταστήµατος Αριθµός-Λογαριασµού Ποσό Υποκατάστηµα Όνοµα-Υποκαταστήµατος Πόλη Σύνολο Παράδειγµα: Μέσο ποσό όλων των λογαριασµών στο υποκατάστηµα Καλούτσανη άνειο ανειζόµενος Πελάτης Όνοµα-Υποκαταστήµατος Αριθµός- ανείου Ποσό Όνοµα-Πελάτη Αριθµός- ανείου Όνοµα-Πελάτη Οδός Πόλη select avg(ποσό) from Λογαριασµός where Όνοµα-Υποκαταστήµατος = Καλούτσανη Το αποτέλεσµα είναι µια σχέση µε ένα γνώρισµα και µια γραµµή, µπορούµε να δώσουµε όνοµα στο γνώρισµα χρησιµοποιώντας το as Καταθέτης Όνοµα-Πελάτη Αριθµός-Λογαριασµού Βάσεις εδοµένων Ευαγγελία Πιτουρά 129 Βάσεις εδοµένων Ευαγγελία Πιτουρά 130 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Παράδειγµα: Μέγιστο ποσό όλων των λογαριασµών στο υποκατάστηµα Καλούτσανη και τον αριθµό του λογαριασµού!! select Αριθµός-Λογαριασµού, max(ποσό) from Λογαριασµός where Όνοµα-Υποκαταστήµατος = Καλούτσανη Αν το select συναθροιστική, τότε µόνο συναθροιστικές, εκτός αν υπάρχει group by Μπορούµε να εφαρµόσουµε τις συναρτήσεις όχι µόνο σε ένα σύνολο από πλειάδες, αλλά σε οµάδες από σύνολα πλειάδων. Οι οµάδες προσδιορίζονται χρησιµοποιώντας το group by Παράδειγµα: Μέσο ποσό των λογαριασµών σε κάθε υποκατάστηµα select Όνοµα-Υποκαταστήµατος, avg(ποσό) from Λογαριασµός group by Όνοµα-Υποκαταστήµατος Βάσεις εδοµένων Ευαγγελία Πιτουρά 131 Βάσεις εδοµένων Ευαγγελία Πιτουρά 132

23 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Αν θέλουµε να απαλείψουµε διπλές εµφανίσεις χρησιµοποιούµε τη λέξη-κλειδί distinct στην αντίστοιχη έκφραση. Παράδειγµα: Αριθµός καταθετών σε κάθε υποκατάστηµα select Όνοµα-Υποκαταστήµατος, count(distinct Όνοµα-Πελάτη) from Καταθέτης, Λογαριασµός where group by Όνοµα-Υποκαταστήµατος Ηοµαδοποίηση µπορεί να γίνει ως προς περισσότερα του ενός πεδία. Μέσος όρος καταθέσεων ανά πελάτη και ανά υποκατάστηµα SELECT Όνοµα-Υποκαταστήµατος, Όνοµα-Πελάτη, avg(balance) FROM account GROUP BY Όνοµα-Υποκαταστήµατος, Όνοµα-Πελάτη Οµαδοποίηση γίνεται πρώτα ως προς το branch_name. Στην συνέχεια δηµιουργούνται υποoµάδες ως προς το customer_name Βάσεις εδοµένων Ευαγγελία Πιτουρά 133 Βάσεις εδοµένων Ευαγγελία Πιτουρά 134 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Μπορούµε να εφαρµόσουµε µια συνθήκη σε µια συγκεκριµένη οµάδα από πλειάδες χρησιµοποιώντας το having Παράδειγµα: Ονόµατα υποκαταστηµάτων µε µέσο ποσό καταθέσεων µεγαλύτερο των $1200 select Όνοµα-Υποκαταστήµατος, avg(ποσό) from Λογαριασµός group by Όνοµα-Υποκαταστήµατος having avg(ποσό) > 1200 Όταν εµφανίζονται και το where και το having: η συνθήκη του where εφαρµόζεται πρώτα, οι πλειάδες που ικανοποιούν αυτή τη συνθήκη τοποθετούνται σε οµάδες µε βάση το group by και µετά αν υπάρχει συνθήκη στο having εφαρµόζεται στις οµάδες. Ησυνθήκη του having εφαρµόζεται αφού σχηµατιστούν οι οµάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 135 Βάσεις εδοµένων Ευαγγελία Πιτουρά 136 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Παράδειγµα: Μέσο ποσό για κάθε πελάτη που ζει στα Ιωάννινα και έχει τουλάχιστον τρεις λογαριασµούς 3 select Καταθέτης.Όνοµα-Πελάτη, avg(ποσό) from Καταθέτης, Λογαριασµός, Πελάτης where Καταθέτης.Αριθµός-Λογαριασµού = Λογαριασµός.Αριθµός- 1 Λογαριασµού and Καταθέτης.Όνοµα-Πελάτη = Πελάτης.Όνοµα- Πελάτη and Πόλη = Ιωάννινα 2 group by Καταθέτης.Όνοµα-Πελάτη 4 having count (distinct Καταθέτης.Αριθµός-Λογαριασµού) >= 3 Για να µετρήσουµε πόσες πλειάδες έχει µια σχέση: select count (*) from Πελάτης ε µπορούµε να χρησιµοποιήσουµε το distinct µε το count (*). Βάσεις εδοµένων Ευαγγελία Πιτουρά 137 Βάσεις εδοµένων Ευαγγελία Πιτουρά 138

24 Συναθροιστικές Συναρτήσεις Βασική οµή (επανάληψη) Περίληψη Μέσος όρος: avg (µόνο σε αριθµούς) Ελάχιστο: min Μέγιστο: max Άθροισµα: sum (µόνο σε αριθµούς) Πλήθος: count Αν θέλουµε να απαλείψουµε διπλές εµφανίσεις χρησιµοποιούµε τη λέξηκλειδί distinct στην αντίστοιχη έκφραση. Μπορούµε να εφαρµόσουµε τις συναρτήσεις όχι µόνο σε ένα σύνολο από πλειάδες, αλλά σε οµάδες από σύνολα πλειάδων. Οι οµάδες προσδιορίζονται χρησιµοποιώντας το group by Μπορούµε να εφαρµόσουµε µια συνθήκη σε µια συγκεκριµένη οµάδα από πλειάδες χρησιµοποιώντας το having. Η συνθήκη του having εφαρµόζεται αφού σχηµατιστούν οι οµάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις Βάσεις εδοµένων Ευαγγελία Πιτουρά 139 select Α 1, Α 2,.., Α n from R 1, R 2, R m where P group by having order by Βάσεις εδοµένων Ευαγγελία Πιτουρά 140 Περισσότερα για τη γλώσσα ερωτήσεων - Συνενώσεις Συνόλων Ορισµός Όψεων Η γλώσσα SQL Συνενώσεις Συνόλων Συνενώσεις Συνόλων Η SQL--92 υποστηρίζει διάφορους τύπους συνενώσεων που συνήθως χρησιµοποιούνται στο for, αλλά µπορούν να χρησιµοποιηθούν οπουδήποτε µπορεί να χρησιµοποιηθεί µια σχέση. Γενική σύνταξη: <όνοµα-σχέσης1> <τύπος-συνένωσης> <όνοµα-σχέσης2> <συνθήκησυνένωσης> ή <όνοµα-σχέσης1> natural <τύπος-συνένωσης> <όνοµα-σχέσης2> Βάσεις εδοµένων Ευαγγελία Πιτουρά 141 Βάσεις εδοµένων Ευαγγελία Πιτουρά 142 Συνενώσεις Συνόλων Συνενώσεις Συνόλων Συνθήκες Συνένωσης: Τύποι Συνένωσης: inner join: εσωτερική (θήτα) συνένωση left outer join: αριστερή εξωτερική συνένωση right outer join full outer join on P using (A 1, A 2,..., A n ): γνωρίσµατα που πρέπει να ταιριάζουν στη συνένωση είναι τα A i. Τα A i πρέπει να είναι γνωρίσµατα κοινά και στις δυο σχέσεις και εµφανίζονται στο αποτέλεσµα µόνο µια φορά. Για την εσωτερική συνένωση η συνθήκη δεν είναι υποχρεωτική, όταν λείπει ισοδυναµεί µε καρτεσιανό γινόµενο. select Α 1, Α 2,.. Α n from R 1 outer join R 2 on R 1.A i =R 2.A j Βάσεις εδοµένων Ευαγγελία Πιτουρά 143 Βάσεις εδοµένων Ευαγγελία Πιτουρά 144

25 Συνενώσεις Συνόλων Παραγόµενες Σχέσεις Οι λέξεις κλειδιά inner και outer είναι προαιρετικές. natural: φυσική συνένωση, τα γνωρίσµατα εµφανίζονται στο αποτέλεσµα µε την εξής διάταξη: πρώτα αυτά µε τα οποία έγινε η συνένωση (δηλ., αυτά που είναι κοινά και στις δύο σχέσεις), µετά τα υπόλοιπα της πρώτης σχέσης, και τέλος τα υπόλοιπα της δεύτερης σχέσης. Παράδειγµα: Τα ονόµατα των πελατών που είτε έχουν καταθέσεις είτε έχουν πάρει δάνεια (αλλά όχι και τα δυο) select Όνοµα-Πελάτη from Καταθέτης natural full outer join ανειζόµενος where Αριθµός-Λογαριασµού is null or Αριθµός- ανείου is null Παραγόµενες Σχέσεις Η SQL-92 δίνει τη δυνατότητα µια υπο-ερώτηση να χρησιµοποιηθεί στο from Τότε πρέπει να της δοθεί ένα όνοµα και τα γνωρίσµατα της να µετονοµαστούν Αυτό γίνεται χρησιµοποιώντας το as Βάσεις εδοµένων Ευαγγελία Πιτουρά 145 Βάσεις εδοµένων Ευαγγελία Πιτουρά 146 Παραγόµενες Σχέσεις Η SQL-92 δίνει τη δυνατότητα χρησιµοποιώντας το as να δοθεί ένα προσωρινό όνοµα σε µία προσωρινή σχέση που προκύπτει από µια υποερώτηση. Παράδειγµα: Το µέσο υπόλοιπο για όλα τα υποκαταστήµατα για τα οποία το µέσο ποσό είναι µεγαλύτερο των $1200 select Όνοµα-Υποκαταστήµατος, Μέσο-υπόλοιπο from (select Όνοµα-Υποκαταστήµατος, avg(ποσό) from Καταθέτης group by Όνοµα-Υποκαταστήµατος as Αποτέλεσµα(Όνοµα-Υποκαταστήµατος, Μέσο-υπόλοιπο) where Μέσο-Yπόλοιπο > 1200 Ορισµός Όψεων Μπορούµε να ορίσουµε µια όψη χρησιµοποιώντας την εντολή: Ορισµός Όψεων create view <όνοµα--όψης> as <select-from-where ερώτηση> Επίσης, µπορούν να προσδιοριστούν τα ονόµατα των γνωρισµάτων άµεσα create view <όνοµα--όψης> (<λίστα ονοµάτων-γνωρισµάτων>) as <select-from-where ερώτηση> view definition Βάσεις εδοµένων Ευαγγελία Πιτουρά 147 Βάσεις εδοµένων Ευαγγελία Πιτουρά 148 Ορισµός Όψεων Ορισµός Όψεων Παράδειγµα: Μια όψη που περιλαµβάνει τα ονόµατα όλων των υποκαταστηµάτων και το άθροισµα του ποσού των δανείων που έχουν γίνει από αυτά create view Υποκατάστηµα-Σύνολο- ανείων (Όνοµα- Υποκαταστήµατος, Σύνολο- ανείων) as select Όνοµα-Υποκαταστήµατος, sum(ποσό) from άνειο group by Όνοµα-Υποκαταστήµατος Τα ονόµατα όψεων µπορεί να χρησιµοποιηθούν οπουδήποτε µπορεί να χρησιµοποιηθεί το όνοµα µιας σχέσης Υπολογίζεται εκ νέου κάθε φορά Ο ορισµός της όψης παραµένει στην βάση δεδοµένων, εκτός αν σβηστεί: drop view <όνοµα-όψης> Βάσεις εδοµένων Ευαγγελία Πιτουρά 149 Βάσεις εδοµένων Ευαγγελία Πιτουρά 150

26 Ενσωµατωµένη SQL Ενσωµατωµένη SQL Προσπέλαση µιας Β µέσα από µια γλώσσα προγραµµατισµού γενικού σκοπού απαιτείται τουλάχιστον γιατί: υπάρχουν ερωτήσεις που δε µπορούν να διατυπωθούν σε SQL, γιατί η SQL δεν έχει όλες τις δυνατότητες µιας γλώσσας προγραµµατισµού γενικού σκοπού µη-δηλωτικές εντολές (π.χ., εκτύπωση, επικοινωνία µε το χρήστη) δε µπορούν να γίνουν µέσω της SQL Ενσωµάτωση της SQL σε µια γλώσσα που καλείται φιλόξενη (host) Ενσωµατωµένη SQL Σε αυτήν την περίπτωση, η επεξεργασία των ερωτήσεων γίνεται από τη Β, και το αποτέλεσµα γίνεται διαθέσιµο στο πρόγραµµα µια πλειάδα τη φορά Ένας ειδικός προ-επεξεργαστής (preprocessor) αντικαθιστά τον ενσωµατωµένο κώδικα της SQL µε δηλώσεις και κλήσεις συναρτήσεων στη host γλώσσα και µεταφράζεται το πρόγραµµα Σύνταξη της µορφής: EXEC SQL < embedded SQL statement > END-EXEC Ηακριβής σύνταξη εξαρτάται από τη host γλώσσα Βάσεις εδοµένων Ευαγγελία Πιτουρά 151 Βάσεις εδοµένων Ευαγγελία Πιτουρά 152 Ενσωµατωµένη SQL Ενσωµατωµένη SQL Χρησιµοποιούµε την εντολή: SQL INCLUDE, για να δηλώσουµε στον προ-επεξεργαστή που πρέπει να εισάγει τις δηλώσεις των µεταβλητών της SQL Μεταβλητές της γλώσσας µπορεί να χρησιµοποιηθούν στην εντολή της SQL αν το σύµβολο : προηγείται του ονόµατός τους Για να γράψουµε µια ερώτηση σε SQL: EXEC SQL declare c cursor for select Όνοµα-Πελάτη, Πόλη from Κατάθεση, Πελάτης where Κατάθεση.Όνοµα-Πελάτη = Πελάτης.Όνοµα-Πελάτη and Κατάθεση.Ποσό > :amount END-EXEC Βάσεις εδοµένων Ευαγγελία Πιτουρά 153 Η παραπάνω εντολή δεν προκαλεί την εκτέλεση της ερώτησης, για να εκτελεστεί: EXEC SQL open c END-EXEC Το αποτέλεσµα σώζεται σε µια προσωρινή σχέση, αν υπάρχει λάθος το διαγνωστικό µήνυµα σώζεται σε µια ειδική µεταβλητή (SQLCA) Οι πλειάδες του αποτελέσµατος γίνονται διαθέσιµες στο πρόγραµµα µέσω µιας σειράς από fetch εντολές, χρειάζεται µια µεταβλητή της host γλώσσας για κάθε γνώρισµα EXEQ SQL fetch c into :cn, :cc END-EXEC Βάσεις εδοµένων Ευαγγελία Πιτουρά 154 Ενσωµατωµένη SQL Ενσωµατωµένη SQL Για να σβήσουµε τη προσωρινή σχέση: EXEC SQL close c END-EXEC Επίσης: EXEC SQL <update, insert ή delete έκφραση> END-EXEC υναµική SQL Τα προγράµµατα µπορούν να δηµιουργούν ερωτήσεις σε SQL ως συµβολοσειρές δυναµικά κατά την εκτέλεση και είτε να τα εκτελούν αµέσως είτε να τα προετοιµάζουν (τα µεταφράζουν) για να χρησιµοποιηθούν αργότερα Παράδειγµα: char * sqlprog = update Λογαριασµός set Ποσό = Ποσό * 1.05 where Αριθµός-Λογαριασµού =? EXEC SQL prepare dynprog from :sqlprog; char account[10] = A-101 ; EXEC SQL execute dynprog using :account; Βάσεις εδοµένων Ευαγγελία Πιτουρά 155 Βάσεις εδοµένων Ευαγγελία Πιτουρά 156

27 Η γλώσσα SQL Άλλα Χαρακτηριστικά Γλώσσες 4ης Γενιάς Έννοια του session µεταξύ ενός client και του server του ΣΒ ηµιουργία σχήµατος: create schema και Σβήσιµο σχήµατος : drop schema Βάσεις εδοµένων Ευαγγελία Πιτουρά 157

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

Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2 Η Γλώσσα SQL Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy?

Διαβάστε περισσότερα

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2 Η Γλώσσα SQL (Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα

Διαβάστε περισσότερα

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user Η γλώσσα SQL Η Γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy? John Keats, Ode on a Grecian Urn What is the

Διαβάστε περισσότερα

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1 Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Η Γλώσσα SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

SQL. Πριν μια σύντομη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ )

SQL. Πριν μια σύντομη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ ) Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : SQL Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων)

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Η Γλώσσα SQL Βάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 1 Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η Γλώσσα SQL. SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος.

Η Γλώσσα SQL. SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος. Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η Γλώσσα SQL. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Η Γλώσσα SQL. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Η Γλώσσα SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Υλοποίηση/προγραµµατισµός εφαρµογής χρησιµοποιώντας ένα σχεσιακό ΣΔΒΔ: Γλώσσα Ορισµού (του σχήµατος) Γλώσσα Χειρισµού Δεδοµένων Γλώσσα

Διαβάστε περισσότερα

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

Η Γλώσσα Βάσεων εδοµένων SQL Η Γλώσσα Βάσεων εδοµένων SQL 1 Η γλώσσα SQL Η SQL (Structured Query Language - οµηµένη Γλώσσα Ερωτηµάτων) είναι η καθιερωµένη σχεσιακή γλώσσα βάσεων δεδοµένων. Υλοποιήθηκε από την IBM στα πλαίσια του ερευνητικού

Διαβάστε περισσότερα

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1 Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή

Διαβάστε περισσότερα

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL Βάσεις Δεδομένων 2017-2018 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις Σχεσιακό λογισμό

Διαβάστε περισσότερα

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

Διαβάστε περισσότερα

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Η SQL ως γλώσσα τροποποίησης Δεδομένων Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης

Διαβάστε περισσότερα

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής. ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα Σχεσιακή Άλγεβρα Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and,

Διαβάστε περισσότερα

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

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML. Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε ερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (quering)

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε ερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (quering) By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental power of the race. -- Alfred North Whitehead

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (7 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL Βασικές πράξεις Πράξεις συνόλων Συνενώσεις Συναθροιστικές συναρτήσεις Ομαδοποιήσεις 10/4/2014 Βάσεις Δεδομένων 2 Η γλώσσα

Διαβάστε περισσότερα

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Σχεσιακή Άλγεβρα Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασµός

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΕΤΑΡΤΟ Insert, Update, Delete, Ένωση πινάκων Γιώργος Μαρκοµανώλης Περιεχόµενα Group By... 1 Having...1 Οrder By... 2 Εντολή Insert...

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων : Σχεσιακή Άλγεβρα 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Αντιστοιχία

Διαβάστε περισσότερα

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Παράδειγμα Σχέσης attributes

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε επερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (querying)

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε επερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (querying) Εισαγωγή Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων εδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασµός Βάσεων εδοµένων (µε χρήση του Σχεσιακού Μοντέλου) Βάσεις εδοµένων

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος. Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Αντιστοιχία

Διαβάστε περισσότερα

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL Βάσεις Δεδομένων 2018-2019 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις Σχεσιακό λογισμό

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQLΜέρος Α Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 3ο Μάθημα: Εισαγωγή στην SQL Δρ. Κωνσταντίνος Χ. Γιωτόπουλος SQL Background SQL Structured Query Language Standard query γλώσσα για

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα. Προγράμματα που απαντούν σε επερωτήσεις για τον τρέχον στιγμιότυπο της βάσης δεδομένων (querying)

Σχεσιακή Άλγεβρα. Προγράμματα που απαντούν σε επερωτήσεις για τον τρέχον στιγμιότυπο της βάσης δεδομένων (querying) Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Μετατροπή

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL Εθνικό Μετσόβιο ολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL Η γλώσσα SQL

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΡΙΤΟ Foreign key, Index, DML Ερωτήµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Foreign Key... 1 Index... 4 DML Ερωτήµατα... 6 INSERT...

Διαβάστε περισσότερα

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

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων

Διαβάστε περισσότερα

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Β) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Βασικές πράξεις της Σχεσιακής Αλγεβρας Σχεσιακό Μοντέλο Δεδομένων Ορισμός Βάσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ 2013-2014 Βάσεις Δεδομένων Εργαστήριο V Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 5 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων τροποποίησης δομής / δεδομένων η μελέτη σύνθετων ερωτημάτων

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 2 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: Η μελέτη ερωτημάτων σε μία μόνο σχέση. Εξετάζουμε τους τελεστές επιλογής

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων ΗΓλώσσαSQL Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Εισαγωγή Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language) χρησιμοποιείται για τους χρήστες του ΣΔΒΔ

Διαβάστε περισσότερα

Τμήμα Διοίκησης Επιχειρήσεων

Τμήμα Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE

Διαβάστε περισσότερα

Σχεσιακός Λογισµός. Σχεσιακός Λογισµός Πλειάδων. σχεσιακά πλήρης γλώσσα

Σχεσιακός Λογισµός. Σχεσιακός Λογισµός Πλειάδων. σχεσιακά πλήρης γλώσσα Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Πλειάδων Πεδίου Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 2 Γιατί σχεσιακό λογισµό; αδυναµία

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (8 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL (συνέχεια) Φωλιασμένες υπο-ερωτήσεις Δημιουργία όψεων Πράξεις ενημέρωσης και περιορισμοί 1/5/2014 Βάσεις Δεδομένων 2 Από το

Διαβάστε περισσότερα

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model SQL Μαθ. #11 Ε-R Model for a COMPANY database The COMPANY relational database schema A relational database instance of the COMPANY schema SQL Μια γλώσσα σχεσιακής βάσης

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

Διαβάστε περισσότερα

SQL Data Manipulation Language

SQL Data Manipulation Language SQL Data Manipulation Language Τελεστής union συνδυάζει subselects τα οποία παράγουν συμβατές σχέσεις γενική μορφή: subselect {union [all] subselect} περιορισμός: τα subselects δεν μπορούν να περιέχουν

Διαβάστε περισσότερα

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ Βάςεισ Δεδομζνων Ι Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql Δρ. Σςιμπίρθσ Αλκιβιάδθσ Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ,

Διαβάστε περισσότερα

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples Ξένου Ρουμπίνη 1 SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων.

Διαβάστε περισσότερα

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ 2014-2015 Βάσεις Δεδομένων Εργαστήριο ΙV Τμήμα Πληροφορικής ΑΠΘ 2014-2015 2 Σκοπός του 4 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων σύνδεσης η μελέτη ερωτημάτων συνάθροισης 3 Εκφράσεις

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (6 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (6 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr (Συνέχεια) ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 3/4/2014 2 Περιεχόμενα Συνέχεια στη Σχεσιακή άλγεβρα Συνένωση Θήτα Ισότητας Φυσική Διαίρεση Σύνθετες λειτουργίες

Διαβάστε περισσότερα

Υποερωτήματα στην SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 31 Η ανάγκη για υποερώτημα Ποιος υπάλληλος παίρνει το μεγαλύτερο μισθό; Αν ξέραμε το μεγαλύτερο μισθό, πχ 2000, θα γράφαμε:

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Βάσεις Δεδομένων Ενότητα 6: Γλώσσα Structured Query Language -SQL Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων

Διαβάστε περισσότερα

Query-by-Example (QBE)

Query-by-Example (QBE) Φροντιστήριο 8 o Χειµερινό Εξάµηνο 2009-10 Τµήµα Μηχανικών Η/Υ και Πληροφορικής Πολυτεχνική Σχολή, Πανεπιστήµιο Πατρών Πέµπτη, 3 εκεµβρίου 2009 Τι είναι η QBE; Γλώσσα επερωτήσεων σε σχεσιακές ϐάσεις δεδοµένων

Διαβάστε περισσότερα

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

Διαβάστε περισσότερα

Σχεσιακός Λογισµός. Σχεσιακό Μοντέλο. Έννοιες Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου

Σχεσιακός Λογισµός. Σχεσιακό Μοντέλο. Έννοιες Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου Σχεσιακός Λογισµός Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Σχεσιακός Λογισµός Σχεσιακό Μοντέλο Έννοιες Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου

Διαβάστε περισσότερα

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

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές) Σχεσιακή Άλγεβρα Προβολή, Επιλογή, Καρτεσιανό Γινόμενο, Ένωση, Διαφορά, Σύνθεση Τελεστών, Μετονομασία, Παραδείγματα Ερωτήσεων, Τομή Συνόλων, Φυσική Σύζευξη 1 Σχεσιακή Άλγεβρα Η σχεσιακή άλγεβρα (relational

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΔΕΣΠΟΙΝΑ ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr 2 ΤΙ ΕΙΝΑΙ Η SQL? (1/2) Η SQL (Structured Query Language) αποτελεί μια πρότυπη

Διαβάστε περισσότερα

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Θα εξετάσουµε πότε ένα σχεσιακό σχήµα για µια βάση δεδοµένων είναι «καλό» Γενικές Οδηγίες Η Μέθοδος

Διαβάστε περισσότερα

Σχεδιασµός Σχεσιακών Σχηµάτων

Σχεδιασµός Σχεσιακών Σχηµάτων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 Σχεδιασµός Σχεσιακών Σχηµάτων Σχεδιασµός καλών σχεσιακών σχηµάτων Μη τυπικές - γενικές κατευθύνσεις Θεωρία κανονικών µορφών που θα βασίζεται στις συναρτησιακές

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για τον ορισμό των σχημάτων)

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 7 Γλώσσα Ερωτημάτων SQL Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Σχεσιακή

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή

Διαβάστε περισσότερα

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Επιμέλεια: Καρβούνης Ευάγγελος, PhD, Επιστημονικός Συνεργάτης του Τμήματος Αντωνιάδης Νικόλαος, Καθηγητής Οκτώβριος

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δημιουργία Πεδίων Ορισμού Πεδίο Ορισμού είναι συστατικό του σχήματος για τον ορισμό των μακροεντολών

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ι - 05. SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ Βάσεις Δεδομένων Ι - 05 SQL Μέρος 3 ο (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας Πρόσθετες Διαφάνειες σε Προηγούμενα Θέματα...σε Διαγραφή Πλειάδων Σημασιολογία

Διαβάστε περισσότερα

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα Ευαγγελία Πιτουρά 1 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για τον ορισμό των σχημάτων) ένας μεταφραστής της ΓΟΔ

Διαβάστε περισσότερα

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

Αρχεία και Βάσεις Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 10η: SQL Μέρος 3ο Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών SQL Data Manipulation Language Τελεστής union συνδυάζει subselects

Διαβάστε περισσότερα

Certified Data Base Designer (CDBD)

Certified Data Base Designer (CDBD) Certified Data Base Designer (CDBD) Εξεταστέα Ύλη (Syllabus) Πνευµατικά ικαιώµατα Το παρόν είναι πνευµατική ιδιοκτησία της ACTA Α.Ε. και προστατεύεται από την Ελληνική και Ευρωπαϊκή νοµοθεσία που αφορά

Διαβάστε περισσότερα

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1) Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα

Διαβάστε περισσότερα

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

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασµός µιας Β : Βήµατα Ανάλυση Απαιτήσεων Τι δεδοµένα θα αποθηκευτούν, ποιες εφαρµογές θα κτιστούν πάνω στα δεδοµένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασµός

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Views, Triggers Γιώργος Μαρκοµανώλης Περιεχόµενα Όψη... 1 ηµιουργία όψης... 2 Επιλογή CHECK... 3 Όψεις µόνο για εµφάνιση

Διαβάστε περισσότερα

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Ερωτήματα SQL Κεφάλαιο 3. Ερωτήματα SQL Σύνοψη Σ αυτό το κεφάλαιο θα παρουσιάσουμε βασικά και σύνθετα ερωτήματα της SQL. Τα ερωτήματα θα υποβληθούν στην βάση δεδομένων DVDclub που δημιουργήθηκε στο προηγούμενο κεφάλαιο.

Διαβάστε περισσότερα

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων Πηγή διαφανειών Ε. Πιτουρά «Βάσεις Δεδομένων», A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5th edition Η γλώσσα SQL SQL αποτελείται από:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σύνολα Ασκήσεων Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Άσκηση 3 Οι λύσεις είναι ενδεικτικές υπάρχουν και άλλες σωστές SQL ερωτήσεις για τα ερωτήματα της άσκησης. 2 (γ)(i) Τους

Διαβάστε περισσότερα

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Χειμερινό Εξ. 2013-14 Επιμέλεια: Καρβούνης Ευάγγελος Οκτώβριος 2013 Περιεχόμενα 1 Σχεδιασμός Βάσης...

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2017-2018 1 Τι έχουμε δει έως σήμερα Σχεδιασμό βάσεων δεδομένων μοντέλο Οντοτήτων/Συσχετίσεων σχεσιακό μοντέλο (ορισμός σχήματος) Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για

Διαβάστε περισσότερα

Εισαγωγή. Σχεσιακό Μοντέλο. Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου

Εισαγωγή. Σχεσιακό Μοντέλο. Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου Σχεσιακός Λογισµός Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου Βάσεις εδοµένων

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Έλεγχος Μέλους Συνόλου (Set Membership) Οι IN και NOT IN τελεστές ελέγχουν για μονό membership

Διαβάστε περισσότερα