Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :
|
|
- Ευστοργιος Δουμπιώτης
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Η Γλώσσα SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων) Γλώσσα Ερωτήσεων Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2 1
2 Εισαγωγή Τυπικές (Formal) Γλώσσες (Επε)-Ερωτήσεων Σχεσιακή άλγεβρα Σχεσιακός λογισμός (πλειάδων και πεδίου) Εμπορικές Γλώσσες Προγραμματισμού SQL QBE Βάσεις Δεδομένων Ευαγγελία Πιτουρά 3 Η γλώσσα SQL Η standard γλώσσα για σχεσιακές βάσεις δεδομένων. αρχικά Sequel στην IBM ως μέρος του System R, τώρα SQL (Stuctured Query Language) SQL--89, SQL--92, SQL-99 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 4 2
3 Η γλώσσα SQL H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ ) Ενσωματωμένη Γλώσσα Χειρισμού εδομένων Ορισμό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Βάσεις Δεδομένων Ευαγγελία Πιτουρά 5 Η γλώσσα SQL SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος. DML (Data Manipulation Language) - ορισμός, δημιουργία, τροποποίηση, διαγραφή και επιλογή δεδομένων (γλώσσα ερωτήσεων). Προδιαγραφές ασφάλειας - χρήστες και δικαιώματα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 6 3
4 Εισαγωγή Έχουμε ήδη δει: Ορισμό σχήματος Βασικές εντολές χειρισμού (εισαγωγή, διαγραφή, κλπ) Θα δούμε τη γλώσσα ερωτήσεων (ερωτήσεις πάνω στο τρέχον στιγμιότυπο της βάσης δεδομένων, ώστε να πάρουμε πληροφορία) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 7 Η Γλώσσα Βάσεων εδομένων SQL Μέρος 1- Γλώσσα ερωτήσεων: (Βασική ομή, Πράξεις Συνόλου, Φωλιασμένες Υπο-ερωτήσεις, Συνάθροιση) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 8 4
5 Βασική ομή Μια χαρακτηριστική ερώτηση σε 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 )) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 9 Βασική ομή (select) 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 αντιστοιχεί στην πράξη της προβολής της σχεσιακής άλγεβρας Ποια γνωρίσματα θέλουμε να υπάρχουν στο αποτέλεσμα της ερώτησης. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 10 5
6 Βασική ομή (from) 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 αντιστοιχεί στην πράξη του καρτεσιανού γινομένου της σχεσιακής άλγεβρας. Ποιες σχέσεις θα χρησιμοποιηθούν για τον υπολογισμό του αποτελέσματος. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 11 Βασική ομή (where) select Α 1, Α 2,.., Α n from R1, R2, Rm where P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) where αντιστοιχεί στη συνθήκη της πράξης της επιλογής στη σχεσιακή άλγεβρα. Το κατηγόρημα P έχει γνωρίσματα των σχέσεων που εμφανίζονται στο from. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 12 6
7 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Ονόματα ηθοποιών που παίζουν στην ταινία Gone by the Wind select Όνομα from Παίζει where Τίτλος = ''Gone by the Wind'' Βάσεις Δεδομένων Ευαγγελία Πιτουρά 13 Select Όταν δεν υπάρχει το where, το P θεωρείται ότι ισχύει. Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Ονόματα όλων των ηθοποιών που έχουν παίξει σε ταινίες select Όνομα from Παίζει Βάσεις Δεδομένων Ευαγγελία Πιτουρά 14 7
8 Select ΠΡΟΣΟΧΗ: ε γίνεται απαλοιφή των διπλών εμφανίσεων. Η SQL επιτρέπει πολλαπλές εμφανίσεις της ίδιας πλειάδας σε μια σχέση. Μια σχέση στην SQL είναι ένα πολυσύνολο (multiset) ή θύλακας (bag). Απαλοιφή διπλών εμφανίσεων select distinct Όνομα from Παίζει Βάσεις Δεδομένων Ευαγγελία Πιτουρά 15 Select Επιλογή όλων των γνωρισμάτων select * from Παίζει Η «μικρότερη» SQL ερώτηση (μας δίνει το περιεχόμενο του αντίστοιχου πίνακα) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 16 8
9 Select Αριθμητικές πράξεις (+, -, *, /) ανάμεσα σε σταθερές ή γνωρίσματα πλειάδων select Τίτλος, Έτος, ιάρκεια/60, Είδος from Ταινία Επιστρέφει μια σχέση ίδια με τη σχέση Ταινία μόνο που το γνώρισμα διάρκεια μας δίνει τις ώρες (έχει διαιρεθεί με το 60) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 17 Where Συνθήκη του where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάμεσα σε αριθμητικές εκφράσεις,συμβολοσειρές (strings), και ειδικούς τύπους. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 18 9
10 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τον τίτλο όλων των ταινιών που γυρίστηκαν μετά το 1995 και είναι ασπρόμαυρες select Τίτλος from Ταινία where Έτος > 1995 and Είδος = ''Ασπρόμαυρη'' Βάσεις Δεδομένων Ευαγγελία Πιτουρά 19 Where Παράδειγμα χρήσης του between : select Τίτλος from Ταινία where Έτος between 1990 and 1995 αντί του select Τίτλος from Ταινία where Έτος >= 1990 and Έτος <= 1995 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 20 10
11 Βασική ομή Όταν το ίδιο γνώρισμα εμφανίζεται στο σχήμα περισσότερων από μια σχέσεων, τότε διάκριση βάση του συμβολισμού: <όνομα-σχέσης>.<όνομα-γνωρίσματος> Βάσεις Δεδομένων Ευαγγελία Πιτουρά 21 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα φυσικής συνένωσης: Τους ηθοποιούς που παίζουν σε ασπρόμαυρες ταινίες select distinct Όνομα from Παίζει, Ταινία where Παίζει.Τίτλος = Ταινία.Τίτλος and Παίζει.Έτος = Ταινία.Έτος and Είδος = Ασπρόμαυρη Προσοχή στις συνθήκες Βάσεις Δεδομένων Ευαγγελία Πιτουρά 22 11
12 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα Οι ηθοποιοί που γεννήθηκαν μετά το 1935 και έπαιξαν σε ασπρόμαυρες ταινίες πριν το 1945 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 23 Παράδειγμα (πίτσες) ΠΙΤΣΑ(ΟΝΟΜΑ, ΣΥΣΤΑΤΙΚΟ) ΑΡΕΣΕΙ(ΦΟΙΤΗΤΗΣ, ΣΥΣΤΑΤΙΚΟ) 1. Όλα τα συστατικά που αρέσουν στους φοιτητές 2. Τα συστατικά που αρέσουν στον φοιτητή ημήτρη 3. Τα συστατικά τις πίτσας Σπέσιαλ 4. Τις πίτσες που έχουν συστατικά που αρέσουν στον φοιτητή ημήτρη Βάσεις Δεδομένων Ευαγγελία Πιτουρά 24 12
13 Παράδειγμα (πίτσες) ΠΙΤΣΑ ΟΝΟΜΑ ΣΥΣΤΑΤΙΚΟ ΑΡΕΣΕΙ Vegetarian μανιτάρι ΦΟΙΤΗΤΗΣ ΣΥΣΤΑΤΙΚΟ Vegetarian ελιά Δημήτρης μανιτάρι Χαβάη ανανάς Κώστας ζαμπόν Χαβάη ζαμπόν Μαρία ελιά Σπέσιαλ ζαμπόν Κατερίνα μανιτάρι Σπέσιαλ μπέικον Μαρία ζαμπόν Σπέσιαλ μανιτάρι Δημήτρης μπέικον Ελληνική ελιά Μαρία ανανάς Βάσεις Δεδομένων Ευαγγελία Πιτουρά 25 Η γλώσσα SQL Περισσότερα για τη γλώσσα ερωτήσεων - Πράξεις με Συμβολοσειρές - ιάταξη Πλειάδων - Αλλαγή Ονόματος - Μεταβλητές Πλειάδων - Ητιμήnull Βάσεις Δεδομένων Ευαγγελία Πιτουρά 26 13
14 Πράξεις με Συμβολοσειρές Η πιο συνηθισμένη πράξη είναι ταίριασμα προτύπων: % ταιριάζει οποιαδήποτε συμβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Γίνεται διάκριση ανάμεσα σε κεφαλαία και μικρά Σύγκριση χρησιμοποιώντας το like, not like Βάσεις Δεδομένων Ευαγγελία Πιτουρά 27 Πράξεις με Συμβολοσειρές Παράδειγμα: Οι τίτλοι όλων των ταινιών που περιέχουν τη λέξη Θάλασσα select distinct Τίτλος from Ταινία where Τίτλος like %Θάλασσα% Πολλέςακόμαπράξειςδιαθέσιμες. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 28 14
15 ιάταξη Πλειάδων Χρήση του order by ώστε οι πλειάδες στο αποτέλεσμα να είναι ταξινομημένες με βάση τo αντίστοιχο γνώρισμα select distinct Ταινία, Έτος from Παίζει where Όνομα = Robert De Niro order by Έτος Βάσεις Δεδομένων Ευαγγελία Πιτουρά 29 ιάταξη Πλειάδων Default: αύξουσα διάταξη Αλλά και άμεσος προσδιορισμός χρησιμοποιώντας το asc (αύξουσα) ή το desc (φθίνουσα). Επίσης, ταξινόμηση με βάση πολλά γνωρίσματα. Παράδειγμα: select * from Ταινία order by Έτος desc, Τίτλος asc Η ταξινόμηση είναι δαπανηρή λειτουργία. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 30 15
16 Περιορισμός Αποτελέσματος Περιορισμό του μεγέθους του αποτελέσματος με χρήση του limit <k> Σε συνδυασμό ή όχι με το order by: αν δεν υπάρχει το order by το limit k μας δίνει κάποιες τυχαίες k πλειάδες από το αποτέλεσμα αν υπάρχει το order by μας δίνει τις πρώτες k select distinct Ταινία, Έτος from Παίζει where Όνομα = Robert De Niro order by Έτος desc limit 8 8 απότιςπιοπρόσφατες-- αν δεν υπάρχει το order by, δίνει 8 τυχαίες Βάσεις Δεδομένων Ευαγγελία Πιτουρά 31 Αλλαγή Ονόματος Τα ονόματα των γνωρισμάτων στο αποτέλεσμα είναι αυτά των σχέσεων στην ερώτηση. υνατότητα αλλαγής του ονόματος τόσο μιας σχέσης όσο και ενός γνωρίσματος: <παλιό-όνομα> as <νέο-όνομα> To as μπορεί να εμφανίζεται στο select ήστοfrom Βάσεις Δεδομένων Ευαγγελία Πιτουρά 32 16
17 Αλλαγή Ονόματος Για παράδειγμα: select Τίτλος, Έτος, ιάρκεια/60 as Ώρες- ιάρκεια, Είδος from Ταινία Σημείωση: τα αποτελέσματα μιας ερώτησης δεν «αποθηκεύονται» Βάσεις Δεδομένων Ευαγγελία Πιτουρά 33 Αλλαγή Ονόματος Χρήσιμο όταν (α) όταν έχουμε αριθμητικές εκφράσεις στο select και δεν έχουν όνομα (β) όταν θέλουμε να αλλάξουμε το όνομα του γνωρίσματος στο αποτέλεσμα (γ) δυο σχέσεις του from έχουν γνωρίσματα με το ίδιο όνομα Βάσεις Δεδομένων Ευαγγελία Πιτουρά 34 17
18 Μεταβλητές Πλειάδων Μια μεταβλητή πλειάδας μπορεί να οριστεί στο from χρησιμοποιώντας το as: Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) select distinct Όνομα from Παίζει as Π, Ταινία as Τ where Π.Τίτλος = Τ.Τίτλος and Π.Έτος = Τ.Έτος and Είδος = Ασπρόμαυρη Βάσεις Δεδομένων Ευαγγελία Πιτουρά 35 Μεταβλητές Πλειάδων Οι μεταβλητές πλειάδων είναι ιδιαίτερα χρήσιμες όταν θέλουμε να συγκρίνουμε δυο πλειάδες της ίδιας σχέσης (με συνένωση - self-join). Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τα ονόματα όλων των ταινιών που έχουν διάρκεια μεγαλύτερη τουλάχιστον από μία ταινία που γυρίστηκε το 1995 select distinct Τ.Τίτλος from Ταινία as S, Ταινία as T where T. ιάρκεια > S. ιάρκεια and S.Έτος = 1995 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 36 18
19 Ητιμήnull Ητιμήnull Η SQL λογική τριών τιμών με τιμές TRUE, FALSE, και ΑΓΝΩΣΤΟ (null) Στο αποτέλεσμα του select-from-where μόνο οι πλειάδες που ικανοποιούν τη συνθήκη του where (η έκφραση έχει την τιμή TRUE) Παράδειγμα (NOT) TRUE FALSE FALSE TRUE ΑΓΝΩΣΤΟ ΑΓΝΩΣΤΟ Βάσεις Δεδομένων Ευαγγελία Πιτουρά 37 Ητιμήnull Χρήση της λέξης κλειδί is null (is not null) σε μια συνθήκη για να ελέγξουμε αν μια τιμή είναι null. select Αριθμός- ανείου from άνειο where Ποσό is null Βάσεις Δεδομένων Ευαγγελία Πιτουρά 38 19
20 Ητιμήnull Εμφάνιση null Σε αριθμητικές πράξεις: το αποτέλεσμα είναι null όταν οποιαδήποτε τιμή είναι null Σε συγκρίσεις: σύγκριση με null συνήθως δίνει αποτέλεσμα false Σε συναθροιστικές συναρτήσεις: αγνοείται πλην από το count(*) Παράδειγμα: select sum(ποσό) from άνειο Βάσεις Δεδομένων Ευαγγελία Πιτουρά 39 Βασική ομή (επανάληψη) Μια χαρακτηριστική ερώτηση σε 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 )) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 40 20
21 Βασική ομή (επανάληψη) Select ιαγραφή διπλότιμων: select distinct select * (όλα τα γνωρίσματα) Συνθήκη του where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάμεσα σε αριθμητικές εκφράσεις,συμβολοσειρές (strings), και ειδικούς τύπους. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 41 Βασική ομή (επανάληψη) Όταν το ίδιο γνώρισμα εμφανίζεται στο σχήμα περισσότερων από μια σχέσεων, τότε διάκριση βάση του συμβολισμού: <όνομα-σχέσης>.<όνομα-γνωρίσματος> υνατότητα αλλαγής του ονόματος τόσο μιας σχέσης όσο και ενός γνωρίσματος: <παλιό-όνομα> as <νέο-όνομα> To as μπορεί να εμφανίζεται στο select ήστοfrom Οι μεταβλητές πλειάδων (as στο from) είναι ιδιαίτερα χρήσιμες όταν θέλουμε να συγκρίνουμε δυο πλειάδες τις ίδιας σχέσης. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 42 21
22 Βασική ομή (επανάληψη) Πράξεις με Συμβολοσειρές Η πιο συνηθισμένη πράξη είναι ταίριασμα προτύπων: % ταιριάζει οποιαδήποτε συμβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Σύγκριση χρησιμοποιώντας το like, not like ιάταξη των Πλειάδων Χρήση του order by ώστε οι πλειάδες στο αποτέλεσμα να είναι ταξινομημένες με βάση τo αντίστοιχο γνώρισμα Default: αύξουσα διάταξη, αλλά και άμεσα χρησιμοποιώντας το asc (αύξουσα) ήτοdesc (φθήνουσα). Βάσεις Δεδομένων Ευαγγελία Πιτουρά 43 Βασική ομή (επανάληψη) select Α 1, Α 2,.., Α n from R 1, R 2, R m where P order by limit Χρήση της λέξης κλειδί is null (is not null) σε μια συνθήκη για να ελέγξουμε αν μια τιμή είναι null. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 44 22
23 Παράδειγμα (μπύρες) ΠΡΟΤΙΜΑ(ΠΟΤΗΣ, ΜΠΥΡΑ) ΣΥΧΝΑΖΕΙ(ΠΟΤΗΣ, ΜΑΓΑΖΙ) ΣΕΡΒΙΡΕΙ(ΜΑΓΑΖΙ, ΜΠΥΡΑ) 1. Τα μαγαζιά που σερβίρουν μπύρες που προτιμά ο πότης «ημήτρης». 2. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» ήμπύρα«leffe Brune» ήκαι τα δύο 3. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» και μπύρα «Leffe Brune» 4. Μαγαζιά που σερβίρουν τουλάχιστον δύο διαφορετικές μπύρες. ΠΑΡΑΔΕΙΓΜΑ: Η ερώτηση 3 με συνένωση (χωρίς πράξεις συνόλων) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 45 Η Γλώσσα Βάσεων εδομένων SQL Μέρος 1- Γλώσσα ερωτήσεων: (Βασική ομή, Πράξεις Συνόλου, Φωλιασμένες Υπο-ερωτήσεις, Συνάθροιση) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 46 23
24 Πράξεις Συνόλων Πράξεις: union (ένωση) intersect (τομή) except (διαφορά) εφαρμόζονται σε συμβατές σχέσεις. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 47 Πράξεις Συνόλων Γενική Σύνταξη: (select from where ) union/intersect/except (select from where ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 48 24
25 Πράξεις Συνόλων Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα intersect: Τα ονόματα των ηθοποιών που έπαιξαν σε ταινίες του 2006 και του 2007 (select Όνομα from Παίζει where Έτος = 2006) intersect (select Όνομα from Παίζει where Έτος = 2007) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 49 Πράξεις Συνόλων Απαλοιφή διπλών εμφανίσεων, εκτός αν χρησιμοποιηθεί το intersect all Μέγιστος αριθμός πολλαπλών εμφανίσεων; Βάσεις Δεδομένων Ευαγγελία Πιτουρά 50 25
26 Πράξεις Συνόλων Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) (select Όνομα from Παίζει where Έτος = 2006) union (select Όνομα from Παίζει where Έτος = 2007) Ποιο είναι το αποτέλεσμα; Αντίστοιχα: union all Μέγιστος αριθμός πολλαπλών εμφανίσεων; Βάσεις Δεδομένων Ευαγγελία Πιτουρά 51 Πράξεις Συνόλων Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) (select Όνομα from Παίζει where Έτος = 2006) except (select Όνομα from Παίζει where Έτος = 2007) Ποιο είναι το αποτέλεσμα; Αντίστοιχα: except all Μέγιστος αριθμός πολλαπλών εμφανίσεων; Βάσεις Δεδομένων Ευαγγελία Πιτουρά 52 26
27 Κάποια από τα παραδείγματα σε αυτήν την ενότητα στηρίζονται στο παρακάτω σχήμα: Παράδειγμα Τράπεζα Λογαριασμός Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Υποκατάστημα Όνομα-Υποκαταστήματος Πόλη Σύνολο Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Όνομα-Πελάτη Αριθμός-Δανείου Πελάτης Όνομα-Πελάτη Οδός Πόλη Καταθέτης Όνομα-Πελάτη Αριθμός-Λογαριασμού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 53 Παράδειγμα Τράπεζα: Πράξεις Συνόλων Παράδειγμα intersect: Τα ονόματα όλων των πελατών που έχουν καταθέσεις και έχουν πάρει δάνειο (select Όνομα-Πελάτη from Καταθέτης ) intersect (select Όνομα-Πελάτη from ανειζόμενος ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 54 27
28 Παράδειγμα Τράπεζα: Πράξεις Συνόλων Παράδειγμα union: Τα ονόματα όλων των πελατών που έχουν καταθέσεις ή/και έχουν πάρει δάνειο (select Όνομα-Πελάτη from Καταθέτης) union (select Όνομα-Πελάτη from ανειζόμενος) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 55 Παράδειγμα Τράπεζα: Πράξεις Συνόλων Παράδειγμα except: Τα ονόματα όλων των πελατών που έχουν καταθέσεις και δεν έχουν πάρει δάνειο (select Όνομα-Πελάτη from Καταθέτης) except (select Όνομα-Πελάτη from ανειζόμενος) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 56 28
29 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παραδείγματα Ηθοποιούς που δεν έπαιξαν σε έγχρωμη ταινία Τις ταινίες (τίτλο) με τον ίδιο τίτλο που γυρίστηκαν το 2005 και το 2006 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 57 Πράξεις συνόλων (επανάληψη) Πράξεις: union intersect except (minus) εφαρμόζονται σε συμβατές σχέσεις (ΠΡΟΣΟΧΗ: πρακτικά τα Ι ΙΑ ΓΝΩΡΙΣΜΑΤΑ (ίδιο αριθμό και τύπο γνωρισμάτων) στα δύο select) Σύνταξη, (select-from-where) union (select-from-where) Απαλοιφή διπλών εμφανίσεων, εκτόςανχρησιμοποιηθείτοunion {intersect, except} all Βάσεις Δεδομένων Ευαγγελία Πιτουρά 58 29
30 ΠΡΟΤΙΜΑ(ΠΟΤΗΣ, ΜΠΥΡΑ) ΣΥΧΝΑΖΕΙ(ΠΟΤΗΣ, ΜΑΓΑΖΙ) ΣΕΡΒΙΡΕΙ(ΜΑΓΑΖΙ, ΜΠΥΡΑ) Παράδειγμα (μπύρες) 1. Τους πότες που συχνάζουν σε μαγαζιά που σερβίρουν μπύρα «Guinness» 2. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» ή μπύρα «Leffe Brune» ήκαι τα δύο 3. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» και μπύρα «Leffe Brune» 4. Tα μαγαζιά που σερβίρουν μόνο μπύρα «Guinness» 5. Tα μαγαζιά που δε σερβίρουν μπύρα «Guinness» 6. Μαγαζιά που σερβίρουν τουλάχιστον δύο διαφορετικές μπύρες. (μόνο μία;) 7. Μαγαζιά που σερβίρουν ακριβώς δύο διαφορετικές μπύρες. 8. Τα μαγαζιά που σερβίρουν μπύρες που προτιμά ο πότης «ημήτρης». 9. Τα μαγαζιά που σερβίρουν όλες τις μπύρες που προτιμά ο «ημήτρης». Βάσεις Δεδομένων Ευαγγελία Πιτουρά 59 Η Γλώσσα Βάσεων εδομένων SQL Μέρος 1- Γλώσσα ερωτήσεων: (Βασική ομή, Πράξεις Συνόλου, Φωλιασμένες Υπο-ερωτήσεις, Συνάθροιση) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 60 30
31 Φωλιασμένες Υπο-ερωτήσεις Η SQL επιτρέπει το φώλιασμα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι μια έκφραση select-fromwhere που χρησιμοποιείται μέσα σε μια άλλη selectfrom-where ερώτηση (συγκεκριμένα ως συνθήκη στο where). Βάσεις Δεδομένων Ευαγγελία Πιτουρά 61 Φωλιασμένες Υπο-ερωτήσεις Γενική δομή: select... from... Υπο-ερώτηση where <τελεστής> (select... from... where... ); Η εσωτερική (φωλιασμένη) υπο-ερώτηση υπολογίζεται για κάθε γραμμή (πλειάδα) της εξωτερικής ερώτησης Στη συνέχεια θα δούμε τι μπορεί να είναι ο τελεστής Βάσεις Δεδομένων Ευαγγελία Πιτουρά 62 31
32 Φωλιασμένες Υπο-ερωτήσεις Ο τελεστής in (not in) Ελέγχει αν μια πλειάδα ανήκει (δεν ανήκει) σε ένα σύνολο από πλειάδες που έχουν προκύψει από μια έκφραση select-from-where. Γενική δομή: select... from... where T in (not in) (select... from... where... ); T: πλειάδα Βάσεις Δεδομένων Ευαγγελία Πιτουρά 63 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τα ονόματα όλων των ηθοποιών που δεν έπαιξαν σε καμία ταινία select distinct Ηθοποιός.Όνομα from Ηθοποιός where Ηθοποιός.Όνομα not in (select Όνομα from Παίζει) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 64 32
33 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τα ονόματα όλων των ηθοποιών που έπαιξαν σε ασπρόμαυρη ταινία select distinct Παίζει.Όνομα from Παίζει where (Παίζει.Τίτλος, Παίζει.Έτος) in (select Ταινία.Τίτλος, Ταινία.Έτος from Ταινία where Είδος = «Ασπρόμαυρη») Βάσεις Δεδομένων Ευαγγελία Πιτουρά 65 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τον τίτλο όλων των ταινιών με διάρκεια πάνω από 100 λεπτά για τις οποίες υπάρχει ταινία με το ίδιο όνομα και διάρκεια μικρότερη από 60 λεπτά select distinct Τίτλος from Ταινία where ιάρκεια > 100 and Τίτλος in (select Τίτλος from Ταινία where ιάρκεια < 60) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 66 33
34 Φωλιασμένες Υπο-ερωτήσεις Μπορεί να χρησιμοποιηθεί και με enumerated σύνολα Παράδειγμα: Τουςτίτλουςόλωντωνταινιώνπουδενγυρίστηκαντο 2006 και το select distinct Τίτλος from Ταινία where Έτος not in (2006, 2007) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 67 Παράδειγμα Τράπεζα Λογαριασμός Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Υποκατάστημα Όνομα-Υποκαταστήματος Πόλη Σύνολο Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Όνομα-Πελάτη Αριθμός-Δανείου Πελάτης Όνομα-Πελάτη Οδός Πόλη Καταθέτης Όνομα-Πελάτη Αριθμός-Λογαριασμού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 68 34
35 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Τα ονόματα όλων των πελατών που έχουν πάρει δάνειο και έχουν καταθέσεις select distinct Όνομα-Πελάτη from ανειζόμενος where Όνομα-Πελάτη in (select Όνομα-Πελάτη from Καταθέτης) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 69 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Τα ονόματα όλων των πελατών που έχουν πάρει δάνειο και έχουν καταθέσεις στο υποκατάστημα Ψηλά-Αλώνια select distinct Όνομα-Πελάτη from ανειζόμενος, άνειο where ανειζόμενος.αριθμός- ανείου = άνειο.αριθμός. ανείου and Όνομα-Υποκαταστήματος = Ψηλά-Αλώνια and (Όνομα-Υποκαταστήματος, Όνομα-Πελάτη) in (select Όνομα-Υποκαταστήματος, Όνομα-Πελάτη from Καταθέτης, Λογαριασμός where Καταθέτης.Αριθμός-Λογαριασμού = Λογαριασμός.Αριθμός-Λογαριασμού) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 70 35
36 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Με enumerated σύνολα Παράδειγμα: Τα ονόματα όλων των πελατών που έχουν πάρει δάνειο και δε λέγονται Παπαδόπουλος ή Πέτρου. select distinct Όνομα-Πελάτη from ανειζόμενος where Όνομα-Πελάτη not in ( Παπαδόπουλος, Πέτρου ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 71 Φωλιασμένες Υπο-ερωτήσεις Σύγκριση Συνόλων 1. Ο τελεστής some (any) έχει τη σημασία του τουλάχιστον ένα από ένα σύνολο Γενική δομή: select... from... where T >some (select... from... where... ); T: πλειάδα Βάσεις Δεδομένων Ευαγγελία Πιτουρά 72 36
37 Φωλιασμένες Υπο-ερωτήσεις Σύγκριση Συνόλων 1. Ο τελεστής some (any) έχει τη σημασία του τουλάχιστον ένα από ένα σύνολο Παράδειγμα: Τους τίτλους όλων των ταινιών που γυρίστηκαν αργότερα από τουλάχιστον μια ασπρόμαυρη ταινία select distinct Τίτλος from Ταινία where Έτος >some (select Έτος from Ταινία where Είδος = Ασπρόμαυρη ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 73 Φωλιασμένες Υπο-ερωτήσεις επίσης: <some, <=some, >=some, =some (ισοδ. του in) <>some (όχι ισοδ. του not in) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 74 37
38 Φωλιασμένες Υπο-ερωτήσεις 2. Ο τελεστής all έχει τη σημασία από όλα τα στοιχεία ενός συνόλου Παράδειγμα: Τους τίτλους όλων των ταινιών που γυρίστηκαν αργότερα από όλες τις ασπρόμαυρες ταινίες select distinct Τίτλος from Ταινία where Έτος >all (select Έτος from Ταινία where Είδος = Ασπρόμαυρη ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 75 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Τι υπολογίζει το παρακάτω; select distinct Όνομα from Ηθοποιός where Έτος-Γέννησης <= all (select Έτος-Γέννησης from Παίζει, Ηθοποιός where Παίζει.Όνομα = Ηθοποιός.Όνομα and Τίτλος = «Μανταλένα» Βάσεις Δεδομένων Ευαγγελία Πιτουρά 76 38
39 Φωλιασμένες Υπο-ερωτήσεις επίσης: <all, <=all, >=all, =all, <>all (ισοδ. του not in) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 77 Παράδειγμα Τράπεζα Λογαριασμός Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Υποκατάστημα Όνομα-Υποκαταστήματος Πόλη Σύνολο Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Όνομα-Πελάτη Αριθμός-Δανείου Πελάτης Όνομα-Πελάτη Οδός Πόλη Καταθέτης Όνομα-Πελάτη Αριθμός-Λογαριασμού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 78 39
40 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Τα ονόματα όλων των υποκαταστημάτων που έχουν λογαριασμό με ποσό καταθέσεων μεγαλύτερο από το ποσό καταθέσεων όλων των υποκαταστημάτων των Ιωαννίνων. select distinct Όνομα-Υποκαταστήματος from Υποκατάστημα where Ποσό > all (select Ποσό from Υποκατάστημα where Πόλη = Ιωάννινα ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 79 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Τα ονόματα όλων των υποκαταστημάτων που έχουν λογαριασμό με ποσό καταθέσεων μεγαλύτερο από το ποσό καταθέσεων ενός τουλάχιστον υποκαταστήματος των Ιωαννίνων. select distinct Όνομα-Υποκαταστήματος from Υποκατάστημα where Ποσό > some (select Ποσό from Υποκατάστημα where Πόλη = Ιωάννινα ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 80 40
41 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Το υποκατάστημα με το μεγαλύτερο μέσο ποσό καταθέσεων. (θα τη δούμε στη συνέχεια) select distinct Όνομα-Υποκαταστήματος from Λογαριασμός group by Όνομα-Υποκαταστήματος having avg (Ποσό) >=all (select avg(ποσό) from Λογαριασμός group by Όνομα-Υποκαταστήματος) Το avg θα το δούμε στη συνέχεια Βάσεις Δεδομένων Ευαγγελία Πιτουρά 81 Φωλιασμένες Υπο-ερωτήσεις Ο τελεστής exists (not exists) Έλεγχος για άδεια σχέση: Ο τελεστής exists (not exists): επιστρέφει true ανν η υποερώτηση δεν είναι κενή (είναι κενή) Γενική δομή: select... from... where exists (not exists) (select... from... where... ); Βάσεις Δεδομένων Ευαγγελία Πιτουρά 82 41
42 Παράδειγμα (ταινίες) Παράδειγμα: Οι ασπρόμαυρες ταινίες με τουλάχιστον ένα ηθοποιό select Τ.Τίτλος, Τ.Έτος from Ταινία as Τ where Τ.είδος = «Ασπρόμαυρη» and exists (select * from Παίζει where Παίζει.Τίτλος = Τ.Τίτλος and Παίζει.Έτος = Τ.Έτος) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 83 Φωλιασμένες Υπο-ερωτήσεις Ο τελεστής not exists μπορεί να χρησιμοποιηθεί για έλεγχο αν η σχέση A περιέχει τη σχέση B (σχέση υπερσυνόλου/υποσυνόλου) not exists (Β except Α) True if and only if A B Βάσεις Δεδομένων Ευαγγελία Πιτουρά 84 42
43 Φωλιασμένες Υπο-ερωτήσεις Ερώτηση Πως μπορεί να χρησιμοποιηθεί για να υπολογίσουμε τη «διαίρεση»; Βάσεις Δεδομένων Ευαγγελία Πιτουρά 85 Παράδειγμα (πίτσες) Τις πίτσες που έχουν όλα τα συστατικά που αρέσουν στον ημήτρη ΠΙΤΣΑ(ΟΝΟΜΑ, ΣΥΣΤΑΤΙΚΟ) ΑΡΕΣΕΙ(ΦΟΙΤΗΤΗΣ, ΣΥΣΤΑΤΙΚΟ) Ι ΕΑ Θέλουμε τις πίτσες που τα συστατικά τους είναι υπερσύνολο των συστατικών που αρέσουν στο ημήτρη Α: Συστατικά πίτσας Π Β: Συστατικά που αρέσουν στο ημήτρη not exists (B except A) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 86 43
44 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Οι ηθοποιοί B: όλες οι ταινίες του George Clooney Α: όλες οι ταινίες του συγκεκριμένου ηθοποιού select distinct S.Όνομα from Παίζει as S where not exists ((select Τίτλος, Έτος from Παίζει που έχουν παίξει σε όλες τις ταινίες του George Clooney where Όνομα = George Clooney ) except (select Τίτλος, Έτος A from Παίζει as R where R.Όνομα = S.Όνομα)) not exists (Β except Α) B uπολογισμός για κάθε S Τέτοιου είδους μεταβλητές δεν υπάρχουν στη σχεσιακή άλγεβρα Βάσεις Δεδομένων Ευαγγελία Πιτουρά 87 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Οι πελάτες που έχουν καταθέσεις και έχουν πάρει δάνειο. select Όνομα-Πελάτη from ανειζόμενος where exists (select * from Καταθέτης where Καταθέτης.Όνομα-Πελάτη = ανειζόμενος.όνομα- Πελάτη) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 88 44
45 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Οι πελάτες που έχουν καταθέσεις σε όλα τα υποκαταστήματα της Πάτρας. 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. Αριθμός-Λογαριασμού )) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 89 Φωλιασμένες Υπο-ερωτήσεις Ο τελεστής unique (not unique) Έλεγχος για ιπλές Εμφανίσεις Ο τελεστής unique: επιστρέφει true ανν η υποερώτηση δεν έχει πολλαπλές όμοιες πλειάδες not unique Γενική δομή: select... from... where unique (not unique) (select... from... where... ); Μπορεί να χρησιμοποιηθεί για να ελεγχθεί αν το αποτέλεσμα είναι σύνολο ή πολυσύνολο Βάσεις Δεδομένων Ευαγγελία Πιτουρά 90 45
46 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Οι ηθοποιοί που έχουν παίξει ακριβώς σε μια ταινία select Όνομα from Παίζει ας T where unique (select R.Όνομα from Παίζει ας R where T.Όνομα = R.Όνομα) select Όνομα from Παίζει group by Όνομα having count(*) = 1 (θα το δούμε στη συνέχεια) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 91 Παράδειγμα (ταινίες) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Οι ηθοποιοί που έχουν παίξει τουλάχιστον σε δύο ταινίες select Όνομα from Παίζει ας T where not unique (select R.Όνομα from Παίζει ας R where T.Όνομα = R.Όνομα) select Όνομα from Παίζει group by Όνομα having count(*) > 1 (θα το δούμε στη συνέχεια) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 92 46
47 Παράδειγμα Τράπεζα Λογαριασμός Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Υποκατάστημα Όνομα-Υποκαταστήματος Πόλη Σύνολο Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Όνομα-Πελάτη Αριθμός-Δανείου Πελάτης Όνομα-Πελάτη Οδός Πόλη Καταθέτης Όνομα-Πελάτη Αριθμός-Λογαριασμού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 93 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Οι πελάτες που έχουν ακριβώς μια κατάθεση στο υποκατάστημα Ψηλά Αλώνια select T.Όνομα-Πελάτη from Καταθέτης as Τ where unique (select R.Όνομα-Πελάτη from Λογαριασμός, Καταθέτης as R where T.Όνομα-Πελάτη = R.Όνομα-Πελάτη and R. Αριθμός-Λογαριασμού = Λογαριασμός. Αριθμός- Λογαριασμού and Λογαριασμός.Όνομα-Υποκαταστήματος = Ψηλά Αλώνια ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 94 47
48 Παράδειγμα Τράπεζα: Φωλιασμένες Υπο-ερωτήσεις Παράδειγμα: Οι πελάτες που έχουν τουλάχιστον δύο υποκατάστημα Ψηλά Αλώνια καταθέσεις στο select T.Όνομα-Πελάτη from Καταθέτης as Τ where not unique (select R.Όνομα-Πελάτη from Λογαριασμός, Καταθέτης as R where T.Όνομα-Πελάτη = R.Όνομα-Πελάτη and R. Αριθμός-Λογαριασμού = Λογαριασμός.Αριθμός- Λογαριασμού and Λογαριασμός.Όνομα-Υποκαταστήματος = Ψηλά Αλώνια ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 95 Φωλιασμένες Υπο-ερωτήσεις (επανάληψη) Ο τελεστής μπορεί να είναι: Τ in/not in (συμμετοχή σε σύνολο) Τ (>, =, κλπ) some/any/all (σύγκριση συνόλων) exists/not exists (έλεγχος για κενά σύνολα) unique/not unique (έλεγχος για διπλότιμα) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 96 48
49 Φωλιασμένες Υπο-ερωτήσεις (επανάληψη) Η SQL επιτρέπει το φώλιασμα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι μια έκφραση select-from-where που χρησιμοποιείται μέσα σε μια άλλη ερώτηση. Γενική δομή: select... from... where <x> (select... from... where... ); <x> μπορεί να είναι T {=, <, <=, >, >=, <>} any(some), all T in exists, unique (όπου Τ πλειάδα) ηλαδή διατυπώνονται ως συνθήκες στο where Υπολογισμός της υπο-ερώτησης για κάθε γραμμή (πλειάδα) της εξωτερικής ερώτησης Βάσεις Δεδομένων Ευαγγελία Πιτουρά 97 Φωλιασμένες Υπο-ερωτήσεις (επανάληψη) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παραδείγματα select Ταινία.Τίτλος from Ταινία where ιάρκεια >some (select ιάρκεια from Ταινία where Είδος = «Έγχρωμη») select Ταινία.Τίτλος from Ταινία where ιάρκεια >all (select ιάρκεια from Ταινία where Είδος = «Έγχρωμη») select Ταινία.Τίτλος Μία συνθήκη του where from Ταινία where ιάρκεια in (select ιάρκεια from Ταινία where Είδος = «Έγχρωμη») Βάσεις Δεδομένων Ευαγγελία Πιτουρά 98 49
50 Φωλιασμένες Υπο-ερωτήσεις (επανάληψη) Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) select Τ.Τίτλος from Ταινία as T where exists (select * from Ταινία as S where T.Τίτλος = S.Tίτλος and S. ιάρκεια > Τ. ιάρκεια) Παραδείγματα select Τ.Τίτλος from Ταινία as T where unique (select * from Ταινία as S where T.Τίτλος = S.Tίτλος and S. ιάρκεια > Τ. ιάρκεια) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 99 Η Γλώσσα Βάσεων εδομένων SQL Μέρος 1- Γλώσσα ερωτήσεων: (Βασική ομή, Πράξεις Συνόλου, Φωλιασμένες Υπο-ερωτήσεις, Συνάθροιση) Βάσεις Δεδομένων Ευαγγελία Πιτουρά
51 Συναθροιστικές Συναρτήσεις Συναθροιστικές Συναρτήσεις Η SQL έχει 5 built-in συναθροιστικές συναρτήσεις: Μέσος όρος: avg(a) (μόνο σε αριθμούς) A γνώρισμα Ελάχιστο: min(a) Μέγιστο: max(a) Άθροισμα: sum(a) (μόνο σε αριθμούς) Πλήθος: count(a) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 101 Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέση διάρκεια όλων των έγχρωμων ταινιών select avg( ιάρκεια) from Ταινία where Είδος = Έγχρωμη Το αποτέλεσμα είναι μια σχέση με ένα γνώρισμα και μια γραμμή, μπορούμε να δώσουμε όνομα στο γνώρισμα χρησιμοποιώντας το as Βάσεις Δεδομένων Ευαγγελία Πιτουρά
52 Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέγιστη διάρκεια όλων των έγχρωμων ταινιών και την ταινία με τη μεγαλύτερη διάρκεια!! select Τίτλος, Έτος, max( ιάρκεια) from Ταινία where Είδος = Έγχρωμη Αν το select συναθροιστική, τότε μόνο συναθροιστικές, - εκτός αν υπάρχει group by - δηλαδή δεν μπορούμε να προβάλουμε και άλλα γνωρίσματα σχέσεων Βάσεις Δεδομένων Ευαγγελία Πιτουρά 103 Συναθροιστικές Συναρτήσεις Αν θέλουμε να απαλείψουμε διπλές εμφανίσεις χρησιμοποιούμε τη λέξη-κλειδί distinct στην αντίστοιχη έκφραση. select sum(distinct ιάρκεια) from Ταινία Βάσεις Δεδομένων Ευαγγελία Πιτουρά
53 Συναθροιστικές Συναρτήσεις Για να μετρήσουμε πόσες πλειάδες έχει μια σχέση: select count(*) from Ταινία ε μπορούμε να χρησιμοποιήσουμε το distinct με το count(*). Βάσεις Δεδομένων Ευαγγελία Πιτουρά 105 Συναθροιστικές Συναρτήσεις Μπορούμε να εφαρμόσουμε τις συναρτήσεις όχι μόνο σε ένα σύνολο από πλειάδες, αλλά σε ομάδες από σύνολα πλειάδων. Οι ομάδες προσδιορίζονται χρησιμοποιώντας το group by Παράδειγμα: Μέση διάρκεια ταινίας ανά είδος select Είδος, avg( ιάρκεια) from Ταινία group by Είδος Στο select και το όνομα του group by Βάσεις Δεδομένων Ευαγγελία Πιτουρά
54 Συναθροιστικές Συναρτήσεις Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Η ομαδοποίηση μπορεί να γίνει ως προς περισσότερα του ενός πεδία. select Τίτλος, Έτος, count(όνομα) from Παίζει group by Τίτλος, Έτος Βάσεις Δεδομένων Ευαγγελία Πιτουρά 107 Συναθροιστικές Συναρτήσεις Μπορούμε να εφαρμόσουμε μια συνθήκη σε μια συγκεκριμένη ομάδα από πλειάδες χρησιμοποιώντας το having select Έτος, count(τίτλος) from Ταινία group by Έτος having avg( ιάρκεια) > 100 Η συνθήκη του having εφαρμόζεται αφού σχηματιστούν οι ομάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις. Βάσεις Δεδομένων Ευαγγελία Πιτουρά
55 Συναθροιστικές Συναρτήσεις Όταν εμφανίζονται και το where και το having: η συνθήκη του where εφαρμόζεται πρώτα, οι πλειάδες που ικανοποιούν αυτή τη συνθήκη τοποθετούνται σε ομάδες με βάση το group by και μετά αν υπάρχει συνθήκη στο having εφαρμόζεται στις ομάδες και επιλέγονται όσες ικανοποιούν τη συνθήκη Βάσεις Δεδομένων Ευαγγελία Πιτουρά 109 Συναθροιστικές Συναρτήσεις Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) Παράδειγμα: Αριθμό ταινιών που έπαιξε κάθε ηθοποιός που γεννήθηκε μετά το 1987 αν αυτός είναι μεγαλύτερος του select Ηθοποιός, count(*) from Παίζει, Ηθοποιός where Παίζει.Όνομα = Ηθοποιός.Όνομα and Έτος-Γέννησης > 1987 group by Ηθοποιός.Όνομα having count (*) >= 5 Βάσεις Δεδομένων Ευαγγελία Πιτουρά
56 Παράδειγμα Τράπεζα Λογαριασμός Όνομα-Υποκαταστήματος Αριθμός-Λογαριασμού Ποσό Υποκατάστημα Όνομα-Υποκαταστήματος Πόλη Σύνολο Δάνειο Όνομα-Υποκαταστήματος Αριθμός-Δανείου Ποσό Δανειζόμενος Όνομα-Πελάτη Αριθμός-Δανείου Πελάτης Όνομα-Πελάτη Οδός Πόλη Καταθέτης Όνομα-Πελάτη Αριθμός-Λογαριασμού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 111 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέσο ποσό όλων των λογαριασμών στο υποκατάστημα Καλούτσανη select avg(ποσό) from Λογαριασμός where Όνομα-Υποκαταστήματος = Καλούτσανη Βάσεις Δεδομένων Ευαγγελία Πιτουρά
57 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέγιστο ποσό όλων των λογαριασμών στο υποκατάστημα Καλούτσανη select max(ποσό) from Λογαριασμός where Όνομα-Υποκαταστήματος = Καλούτσανη Αν θέλουμε και τον αριθμό του λογαριασμού; Βάσεις Δεδομένων Ευαγγελία Πιτουρά 113 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέσο ποσό των λογαριασμών σε κάθε υποκατάστημα select Όνομα-Υποκαταστήματος, avg(ποσό) from Λογαριασμός group by Όνομα-Υποκαταστήματος Βάσεις Δεδομένων Ευαγγελία Πιτουρά
58 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Αριθμός καταθετών σε κάθε υποκατάστημα select Όνομα-Υποκαταστήματος, count(distinct Όνομα-Πελάτη) from Καταθέτης, Λογαριασμός where group by Όνομα-Υποκαταστήματος Βάσεις Δεδομένων Ευαγγελία Πιτουρά 115 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Μέσος όρος καταθέσεων ανά πελάτη και ανά υποκατάστημα select Όνομα-Υποκαταστήματος, Όνομα-Πελάτη, avg(balance) from account group by Όνομα-Υποκαταστήματος, Όνομα-Πελάτη Βάσεις Δεδομένων Ευαγγελία Πιτουρά
59 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Ονόματα υποκαταστημάτων με μέσο ποσό καταθέσεων μεγαλύτερο των $1200 select Όνομα-Υποκαταστήματος, avg(ποσό) from Λογαριασμός group by Όνομα-Υποκαταστήματος having avg(ποσό) > 1200 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 117 Παράδειγμα Τράπεζα: Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέσο ποσό για κάθε πελάτη που ζει στα Ιωάννινα και έχει τουλάχιστον τρεις λογαριασμούς select Καταθέτης.Όνομα-Πελάτη, avg(ποσό) from Καταθέτης, Λογαριασμός, Πελάτης where Καταθέτης.Αριθμός-Λογαριασμού = Λογαριασμός.Αριθμός-Λογαριασμού and Καταθέτης.Όνομα-Πελάτη = Πελάτης.Όνομα-Πελάτη and Πόλη = Ιωάννινα group by Καταθέτης.Όνομα-Πελάτη having count (distinct Καταθέτης.Αριθμός-Λογαριασμού) >= 3 4 Βάσεις Δεδομένων Ευαγγελία Πιτουρά
60 Συναθροιστικές Συναρτήσεις (περίληψη) Μέσος όρος: avg (μόνο σε αριθμούς) Ελάχιστο: min Μέγιστο: max Άθροισμα: sum (μόνο σε αριθμούς) Πλήθος: count Αν θέλουμε να απαλείψουμε διπλές εμφανίσεις χρησιμοποιούμε τη λέξηκλειδί distinct στην αντίστοιχη έκφραση. Μπορούμε να εφαρμόσουμε τις συναρτήσεις όχι μόνο σε ένα σύνολο από πλειάδες, αλλά σε ομάδες από σύνολα πλειάδων. Οι ομάδες προσδιορίζονται χρησιμοποιώντας το group by Μπορούμε να εφαρμόσουμε μια συνθήκη σε μια συγκεκριμένη ομάδα από πλειάδες χρησιμοποιώντας το having. Η συνθήκη του having εφαρμόζεται αφού σχηματιστούν οι ομάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις Βάσεις Δεδομένων Ευαγγελία Πιτουρά 119 Βασική ομή (επανάληψη) select Α i1, Α i2,.., Α in,, avg, from R 1, R 2, R m where P group by Α i1, A i2,, A in having P order by A j1, A j2,, A jk Βάσεις Δεδομένων Ευαγγελία Πιτουρά
61 Η Γλώσσα SQL (Μέρος 2: Γλώσσα Ορισμού, Γλώσσα Τροποποίησης) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 121 Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ ) Ενσωματωμένη Γλώσσα Χειρισμού εδομένων Ορισμό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Σημείωση: Την έχουμε ξαναδεί -> επανάληψη + κάποια νέα στοιχεία με χρήση select Βάσεις Δεδομένων Ευαγγελία Πιτουρά
62 Εισαγωγή Βήματα ημιουργίας και Χρήσης μιας (Σχεσιακής) Βάσης εδομένων Σχεδιασμός Σχήματος ημιουργία Σχήματος χρησιμοποιώντας τη ΓΟ (DDL) Μαζική Φόρτωση των αρχικών δεδομένων Η βάση δεδομένων έχει δεδομένα Repeat: εκτέλεση ερωτήσεων (select-from-where) και τροποποιήσεων (insert-delete-update) στη βάση δεδομένων Βάσεις Δεδομένων Ευαγγελία Πιτουρά 123 Η γλώσσα SQL Μερικές Γενικές Παρατηρήσεις Oracle SQL και η MySQL μερικές φορές δεν ακολουθούν ακριβώς τα standards μερικές εντολές στις διαφάνειες μπορεί να μη «τρέχουν» Κάποιες αποκλίσεις περιγράφονται στη web σελίδα του μαθήματος Επίσης, "interactive" SQL εντολές που πληκτρολογούνται μετά από το prompt και οι απαντήσεις εμφανίζονται στην οθόνη ως πίνακες "Embedded" και "dynamic" SQL: θα τη δούμε στην (επόμενη) προγραμματιστική άσκηση Βάσεις Δεδομένων Ευαγγελία Πιτουρά
63 Γλώσσα Ορισμού εδομένων Γλώσσα Ορισμού εδομένων (ΓΟ ) Σχετικά με το λογικό σχήμα, η ΓΟ SQL υποστηρίζει τους ορισμούς: του σχήματος κάθε σχέσης του πεδίου τιμών κάθε γνωρίσματος των περιορισμών ακεραιότητας είτε και τις σχετικές διαφάνειες προηγούμενου μαθήματος Βάσεις Δεδομένων Ευαγγελία Πιτουρά 125 Γενική ομή Ορισμού Γλώσσα Ορισμού εδομένων create table R(A 1 D 1, A 2 D 2,..., A n D n ), <περιορισμός-ακεραιότητας 1 >,, <περιορισμός-ακεραιότητας k > όπου R είναι το όνομα της σχέσης, A i τα ονόματα των γνωρισμάτων, και D i οι τύποι των αντίστοιχων πεδίων τιμών. Βάσεις Δεδομένων Ευαγγελία Πιτουρά
64 Επιτρεπτοί περιορισμοί ακεραιότητας είναι της μορφής: Ορισμός Σχήματος primary key A j1, A j2,..., A jn, (δεν επιτρέπονται επαναλαμβανόμενες τιμές και NULL τιμές) για τον ορισμό του πρωτεύοντος κλειδιού unique A j1, A j2,..., A jn, (δεν επιτρέπονται επαναλαμβανόμενες τιμές; NULL τιμές επιτρέπονται (μόνο μία)) για τον ορισμό υποψηφίων κλειδιών check P για τον ορισμό σημασιολογικών περιορισμών foreign key (A i ) references A j για τον ορισμό ξένου κλειδιού Βάσεις Δεδομένων Ευαγγελία Πιτουρά 127 Παράδειγμα Τράπεζα: Ορισμός Σχήματος Παραδείγματα (1) create table Πελάτης (Όνομα-Πελάτη char(20) not null, Οδός char(30), Πόλη char(30), primary key (Όνομα-Πελάτη)) Βάσεις Δεδομένων Ευαγγελία Πιτουρά
65 Παράδειγμα Τράπεζα: Ορισμός Σχήματος (2) create table Λογαριασμός (Αριθμός-Λογαριασμού char(10) not null, Όνομα-Υποκαταστήματος char(15), Ποσό int default 0, primary key (Αριθμός-Λογαριασμού) check (Ποσό >= 0) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 129 Παράδειγμα Τράπεζα: Ορισμός Σχήματος Επίσης, πιο περίπλοκες συνθήκες: check (Όνομα-Υποκαταστήματος in select Όνομα-Υποκαταστήματος from Υποκατάστημα) Βάσεις Δεδομένων Ευαγγελία Πιτουρά
66 Περιορισμοί Ακεραιότητας Περισσότερα για τους Περιορισμούς Αναφοράς Σύνταξη: foreign key (A i ) references A j Όταν μια πράξη παραβιάζει έναν περιορισμό αναφοράς απορρίπτεται εκτός αν έχει οριστεί: cascade, set null, set default on delete on update Βάσεις Δεδομένων Ευαγγελία Πιτουρά 131 Παράδειγμα Τράπεζα: Ορισμός Σχήματος Παράδειγμα σύνταξης create table.. foreign key (Όνομα-Υποκαταστήματος) references Υποκατάστημα on delete cascade on update cascade Βάσεις Δεδομένων Ευαγγελία Πιτουρά
67 Πεδία Τιμών Ο ορισμός πεδίου μπορεί να περιέχει τον προσδιορισμό not null και default τιμή Επίσης, επιτρέπεται δημιουργία πεδίου: create domain <name> as <type-description> create domain Όνομα-Προσώπου char(20) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 133 ιαγραφή Σχήματος Μιακαινούργιασχέσηείναιαρχικάάδεια. Γιανασβηστείένασχήμα: drop table R ιαφορά από delete from R ιαγραφή Σχήματος Βάσεις Δεδομένων Ευαγγελία Πιτουρά
68 Τροποποίηση Σχήματος Τροποποίηση Σχήματος ALTER TABLE όνομα πίνακα ADD - προσθέτει καινούργια στήλη DROP - διαγράφει μια στήλη MODIFY - τροποποιεί μια στήλη Βάσεις Δεδομένων Ευαγγελία Πιτουρά 135 Τροποποίηση Σχήματος Προσθήκη νέου γνωρίσματος: alter table R add A D προσθήκη σε μια σχέση R που ήδη υπάρχει του γνωρίσματος A με πεδίο τιμών D, η τιμήτωνπλειάδωντηςr στο καινούργιο γνώρισμα είναι null. ιαγραφή γνωρίσματος: alter table R drop A Βάσεις Δεδομένων Ευαγγελία Πιτουρά
69 Τροποποίηση Σχήματος alter table R modify (όνομα_στήλης new_datatype) modify μπορεί να τροποποιήσει μόνο τον τύπο δεδομένων, όχι το όνομα της στήλης Βάσεις Δεδομένων Ευαγγελία Πιτουρά 137 Η Γλώσσα SQL (Μέρος 2: Γλώσσα Ορισμού, Γλώσσα Τροποποίησης) Βάσεις Δεδομένων Ευαγγελία Πιτουρά
70 Τροποποιήσεις Τροποποίηση Βάσης εδομένων: Γλώσσα Χειρισμού εδομένων (ΓX ) Τροποποιήσεις 1. ιαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης δεδομένων (δηλαδή, το περιεχόμενο των πινάκων) είτε και τις σχετικές διαφάνειες προηγούμενου μαθήματος Βάσεις Δεδομένων Ευαγγελία Πιτουρά 139 Εισαγωγή Εισαγωγή Για να εισάγουμε δεδομένα σε μια σχέση είτε (α) προσδιορίζουμε την πλειάδα, insert into R(A 1,, A n ) values (v 1,, v n ) είτε (β) γράφουμε μια ερώτηση που το αποτέλεσμα της εισάγεται στη σχέση. insert into R(A 1,, A n ) select-from-where νέο Βάσεις Δεδομένων Ευαγγελία Πιτουρά
71 Εισαγωγή Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Παράδειγμα για το (α) insert into Ταινία values ( The Big Blue, 1988, 132, Έγχρωμη ) Όταν με οποιαδήποτε σειρά, π.χ.,: insert into Ταινία (Τίτλος, Είδος, ιάρκεια, Έτος) values ( The Big Blue, Έγχρωμη, 132, 1988) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 141 Εισαγωγή Επίσης, εισαγωγή null τιμών: insert into Ταινία values ( The Big Blue, 1988, null, Έγχρωμη ) ήανδε δίνω τιμές για όλα τα γνωρίσματα insert into Ταινία (Τίτλος, Έτος, Είδος) values ( The Big Blue, 1988, Έγχρωμη ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά
72 Παράδειγμα Τράπεζα: Εισαγωγή Παράδειγμα για το (α) insert into Λογαριασμός values ( Ψηλά-Αλώνια, A--9732, 1200) Όταν με οποιαδήποτε σειρά, π.χ.,: insert into Λογαριασμός (Αριθμός-Λογαριασμού, Όνομα- Υποκαταστήματος, Ποσό) values ( A--9732, Ψηλά-Αλώνια, 1200) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 143 Παράδειγμα Τράπεζα: Εισαγωγή Παράδειγμα για το (β): Για κάθε πελάτη που έχει πάρει δάνειο από το υποκατάστημα Ψηλά Αλώνια προστίθεται ως δώρο ένας λογαριασμός των $200 insert into Λογαριασμός select Όνομα-Υποκαταστήματος, Αριθμός- ανείου, 200 from άνειο where Όνομα-Υποκαταστήματος = Ψηλά Αλώνια Βάσεις Δεδομένων Ευαγγελία Πιτουρά
73 Παράδειγμα Τράπεζα: Εισαγωγή Πρέπειπρώταναυπολογιστείτοselect πλήρωςκαιμετάναγίνειη εισαγωγή. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 145 ιαγραφή ιαγραφή Μπορούμε να σβήσουμε μόνο ολόκληρες πλειάδες και όχι συγκεκριμένα γνωρίσματα. delete from R where P Σβήνει όλες τις πλειάδες της R για τις οποίες ισχύει το P. Όταν λείπει το where σβήνονται όλες οι πλειάδες μιας σχέσης. Βάσεις Δεδομένων Ευαγγελία Πιτουρά
74 ιαγραφή Παραδείγματα (1) Όλες οι ηθοποιοί με το όνομα Kidman delete from Ηθοποιός where Όνομα = Kidman (2) Όλεςτιςέγχρωμεςταινίες delete from Ταινία where Τίτλος, Έτος in (select Τίτλος, Έτος from Ταινία where Eίδος = «Έγχρωμη») (3) Όλες τις ταινίες που έχουν γυριστεί πριν το 1950 delete from Ταινία where Έτος < 1950 Βάσεις Δεδομένων Ευαγγελία Πιτουρά 147 ιαγραφή Στο from μόνο μια σχέση, αλλά στη συνθήκη του where μπορεί να εμφανίζονται και άλλες Σβήνονται «ολόκληρες» πλειάδες Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να σβήσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του where και μετά διαγράφονται οι πλειάδες που ικανοποιούν τη συνθήκη delete from Παίζει where Τίτλος, Έτος in (select Τίτλος, Έτος from Ταινία where Eίδος = «Έγχρωμη») Βάσεις Δεδομένων Ευαγγελία Πιτουρά
75 ιαγραφή Παράδειγμα: διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 delete from Ταινία where Τίτλος = The Big Blue and Έτος = 1988 Το αποτέλεσμα εξαρτάται από το είδος περιορισμού αναφοράς που έχουμε ορίσει Πρέπει πρώτα να διαγράψουμε και τις εγγραφές του πίνακα Παίζει που σχετίζονται με την ταινία The Big Blue : delete from Παίζει where Τίτλος = The Big Blue and Έτος = 1988 ΠΡΟΣΟΧΗ: όταν θέλουμε να διαγράψουμε κάποια δεδομένα, πρέπει να διαγράψουμε όλα τα δεδομένα που συσχετίζονται με αυτά (γενικά). Επίσης πρέπει να προσέξουμε την σειρά με την οποία θα γίνουν οι διαγραφές. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 149 Παράδειγμα Τράπεζα: ιαγραφή Παραδείγματα (1) Όλους τους λογαριασμούς του Παπαδόπουλου delete from Καταθέτης where Όνομα-Πελάτη = Παπαδόπουλος Βάσεις Δεδομένων Ευαγγελία Πιτουρά
76 Παράδειγμα Τράπεζα: ιαγραφή (2) Όλους τους λογαριασμούς στα υποκαταστήματα της Πάτρας delete from Λογαριασμός where Όνομα-Υποκαταστήματος in (select Όνομα-Υποκαταστήματος from Υποκατάστημα where Πόλη = Πάτρα ) Παρατήρηση: δεν υπάρχει τρόπος να διαγράψουμε τη μία από δυο ίδιες πλειάδες που ικανοποιούν το where Βάσεις Δεδομένων Ευαγγελία Πιτουρά 151 Παράδειγμα Τράπεζα: ιαγραφή Αν και μπορούμε να σβήσουμε πλειάδες μόνο από μία σχέση τη φορά μπορούμε να αναφερθούμε σε περισσότερες από μια σχέσεις στην υποερώτηση του where (3) Όλους τους λογαριασμούς μιας τράπεζας με ποσό μικρότερο από το μέσο ποσό στην τράπεζα. delete from Λογαριασμός where Ποσό > (select avg(ποσό) from Λογαριασμός) Πρώτα γίνεται ο έλεγχος σε όλες τις πλειάδες και μετά αυτές που ικανοποιούν τη συνθήκη διαγράφονται. Βάσεις Δεδομένων Ευαγγελία Πιτουρά
77 Παράδειγμα Τράπεζα: ιαγραφή Παράδειγμα: μια τράπεζα θέλει να κλείσει όλα τα υποκαταστήματά της που βρίσκονται στην Καστοριά delete from Υποκατάστημα where Όνομα-Υποκαταστήματος in (select Όνομα-Υποκαταστήματος from Υποκατάστημα where Πόλη = Kαστοριά ) Βάσεις Δεδομένων Ευαγγελία Πιτουρά 153 Παράδειγμα Τράπεζα: ιαγραφή Πρέπει να διαγράψουμε και όλους τους λογαριασμούς: delete from Λογαριασμός where Όνομα-Υποκαταστήματος in (select Όνομα-Υποκαταστήματος from Υποκατάστημα where Πόλη = Kαστοριά ) Υπενθύμιση: όταν θέλουμε να διαγράψουμε κάποια δεδομένα, πρέπει να διαγράψουμε όλα τα δεδομένα που συσχετίζονται με αυτά. Επίσης πρέπει να προσέξουμε την σειρά με την οποία θα γίνουν οι διαγραφές. Βάσεις Δεδομένων Ευαγγελία Πιτουρά
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :
Η Γλώσσα SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού
Διαβάστε περισσότεραSQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
SQL Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις
Διαβάστε περισσότεραSQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
SQL 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις Σχεσιακό λογισμό (πλειάδων): δηλωτικό τρόπο
Διαβάστε περισσότεραΗ γλώσσα SQL. Βάσεις Δεδομένων : SQL 1
Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή
Διαβάστε περισσότεραΟρισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός
Διαβάστε περισσότεραΒάσεις εδοµένων 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?
Διαβάστε περισσότεραΗ SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)
Η SQL ως γλώσσα ερωτημάτων Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα) Η γλώσσα SQL Η SQL αποτελείται από: DDL (Data Definition Language)
Διαβάστε περισσότεραΟρισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με
Διαβάστε περισσότεραΗ γλώσσα SQL. Βάσεις Δεδομένων : SQL 1
Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή
Διαβάστε περισσότεραSQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
SQL Βάσεις Δεδομένων 2017-2018 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις Σχεσιακό λογισμό
Διαβάστε περισσότεραΟρισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Διαβάστε περισσότεραΗ Γλώσσα SQL. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1
Η Γλώσσα SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Υλοποίηση/προγραµµατισµός εφαρµογής χρησιµοποιώντας ένα σχεσιακό ΣΔΒΔ: Γλώσσα Ορισµού (του σχήµατος) Γλώσσα Χειρισµού Δεδοµένων Γλώσσα
Διαβάστε περισσότεραSQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )
Εισαγωγή Πως θα υλοποιήσουµε (προγραµµατίσουµε) την εφαρµογή µας χρησιµοποιώντας ένα σχεσιακό Σ Β : SQL Γλώσσα Ορισµού (του σχήµατος) Γλώσσα Χειρισµού εδοµένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων)
Διαβάστε περισσότεραΟρισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε
Διαβάστε περισσότεραΗ Γλώσσα 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. Πριν μια σύντομη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ )
Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : SQL Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων)
Διαβάστε περισσότεραΒάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός
Διαβάστε περισσότεραΟρισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με
Διαβάστε περισσότεραΗ SQL ως γλώσσα τροποποίησης Δεδομένων
Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης
Διαβάστε περισσότεραΗ Γλώσσα SQL. SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος.
Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή
Διαβάστε περισσότεραΗ Γλώσσα Βάσεων εδοµένων SQL
Η Γλώσσα Βάσεων εδοµένων SQL 1 Η γλώσσα SQL Η SQL (Structured Query Language - οµηµένη Γλώσσα Ερωτηµάτων) είναι η καθιερωµένη σχεσιακή γλώσσα βάσεων δεδοµένων. Υλοποιήθηκε από την IBM στα πλαίσια του ερευνητικού
Διαβάστε περισσότεραH SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων
Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη
Διαβάστε περισσότεραΒάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός
Διαβάστε περισσότεραΒάσεις εδοµένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Σχεσιακή Άλγεβρα Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασµός
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων : Σχεσιακή Άλγεβρα 1
Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Αντιστοιχία
Διαβάστε περισσότεραSQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
SQL Βάσεις Δεδομένων 2018-2019 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις Σχεσιακό λογισμό
Διαβάστε περισσότερα(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2
Η Γλώσσα SQL (Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για τον ορισμό των σχημάτων)
Διαβάστε περισσότεραΒάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης
Βάσεις δεδομένων (7 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL Βασικές πράξεις Πράξεις συνόλων Συνενώσεις Συναθροιστικές συναρτήσεις Ομαδοποιήσεις 10/4/2014 Βάσεις Δεδομένων 2 Η γλώσσα
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακή Άλγεβρα Ευαγγελία Πιτουρά 1 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για τον ορισμό των σχημάτων) ένας μεταφραστής της ΓΟΔ
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2017-2018 1 Τι έχουμε δει έως σήμερα Σχεδιασμό βάσεων δεδομένων μοντέλο Οντοτήτων/Συσχετίσεων σχεσιακό μοντέλο (ορισμός σχήματος) Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για
Διαβάστε περισσότεραΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακή Άλγεβρα 1 Ανακοινώθηκε το 1 ο Σύνολο Ασκήσεων στη σελίδα του μαθήματος Ημερομηνία Παράδοσης 3/11/2016 2 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2018-2019 1 Τι έχουμε δει έως σήμερα Σχεδιασμό βάσεων δεδομένων μοντέλο Οντοτήτων/Συσχετίσεων σχεσιακό μοντέλο (ορισμός σχήματος) Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.
Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Αντιστοιχία
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQLΜέρος Α Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos
Διαβάστε περισσότεραΣχεσιακός Λογισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακός Λογισμός 1 Εισαγωγή Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου Θα δούμε μόνο το σχεσιακό λογισμό πλειάδων 2 Εισαγωγή σχεσιακή άλγεβρα: περιγράφει
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Προγράμματα που απαντούν σε επερωτήσεις για τον τρέχον στιγμιότυπο της βάσης δεδομένων (querying)
Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Μετατροπή
Διαβάστε περισσότεραΗ SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.
Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.
Διαβάστε περισσότεραΣχεσιακός Λογισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Σχεσιακός Λογισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Εισαγωγή Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου Θα δούμε μόνο το σχεσιακό λογισμό
Διαβάστε περισσότεραΕισαγωγή. Σχεσιακό Μοντέλο. Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου
Σχεσιακός Λογισµός Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Πλειάδων Σχεσιακός Λογισµός Πεδίου Βάσεις εδοµένων
Διαβάστε περισσότεραΣχεδιασμός Βάσεων Δεδομένων
Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 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. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου
Διαβάστε περισσότεραΣχεσιακός Λογισμός. Εισαγωγή. Σχεσιακό Μοντέλο. Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου
Σχεσιακός Λογισμός Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου Βάσεις Δεδομένων
Διαβάστε περισσότερα2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1
2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων
Διαβάστε περισσότεραΤμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 2 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: Η μελέτη ερωτημάτων σε μία μόνο σχέση. Εξετάζουμε τους τελεστές επιλογής
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε ερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (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
Διαβάστε περισσότεραΒάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL
Εθνικό Μετσόβιο ολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL Η γλώσσα SQL
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων
Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη Εισαγωγή Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση
Διαβάστε περισσότεραΣχεσιακός Λογισµός. Εισαγωγή. Σχεσιακό Μοντέλο. Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου
Σχεσιακός Λογισµός Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Πλειάδων Σχεσιακός Λογισμός Πεδίου Θα δούμε μόνο
Διαβάστε περισσότεραSQL Data Manipulation Language
SQL Data Manipulation Language Τελεστής union συνδυάζει subselects τα οποία παράγουν συμβατές σχέσεις γενική μορφή: subselect {union [all] subselect} περιορισμός: τα subselects δεν μπορούν να περιέχουν
Διαβάστε περισσότεραΒάσεις εδοµένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Σχεσιακή Άλγεβρα Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός
Διαβάστε περισσότεραΒάσεις εδοµένων Ευαγγελία Πιτουρά 2. Υλοποίηση/προγραμματισμός εφαρμογής χρησιμοποιώντας ένα σχεσιακό ΣΔΒΔ: Γλώσσα Ορισμού(του σχήματος)
Η Γλώσσα SQL Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Υλοποίηση/προγραμματισμός εφαρμογής χρησιμοποιώντας ένα σχεσιακό ΣΔΒΔ: Γλώσσα Ορισμού(του σχήματος) Γλώσσα Χειρισμού Δεδομένων Γλώσσα
Διαβάστε περισσότεραΣχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε επερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (querying)
Εισαγωγή Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων εδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασµός Βάσεων εδοµένων (µε χρήση του Σχεσιακού Μοντέλου) Βάσεις εδοµένων
Διαβάστε περισσότεραΕισαγωγή στην πληροφορική
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Β) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης
Διαβάστε περισσότεραΤελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές)
Σχεσιακή Άλγεβρα Προβολή, Επιλογή, Καρτεσιανό Γινόμενο, Ένωση, Διαφορά, Σύνθεση Τελεστών, Μετονομασία, Παραδείγματα Ερωτήσεων, Τομή Συνόλων, Φυσική Σύζευξη 1 Σχεσιακή Άλγεβρα Η σχεσιακή άλγεβρα (relational
Διαβάστε περισσότεραΒάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης
Βάσεις δεδομένων (8 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL (συνέχεια) Φωλιασμένες υπο-ερωτήσεις Δημιουργία όψεων Πράξεις ενημέρωσης και περιορισμοί 1/5/2014 Βάσεις Δεδομένων 2 Από το
Διαβάστε περισσότεραΤμήμα Πληροφορικής ΑΠΘ 2013-2014
Βάσεις Δεδομένων Εργαστήριο V Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 5 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων τροποποίησης δομής / δεδομένων η μελέτη σύνθετων ερωτημάτων
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Query by Example QBE Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos CMU)
Διαβάστε περισσότεραΤμήμα Διοίκησης Επιχειρήσεων
Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE
Διαβάστε περισσότεραΙατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
Διαβάστε περισσότεραΒάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 3ο Μάθημα: Εισαγωγή στην SQL Δρ. Κωνσταντίνος Χ. Γιωτόπουλος SQL Background SQL Structured Query Language Standard query γλώσσα για
Διαβάστε περισσότεραΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΔΕΣΠΟΙΝΑ ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr 2 ΤΙ ΕΙΝΑΙ Η SQL? (1/2) Η SQL (Structured Query Language) αποτελεί μια πρότυπη
Διαβάστε περισσότεραΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων
ΗΓλώσσαSQL Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Εισαγωγή Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language) χρησιμοποιείται για τους χρήστες του ΣΔΒΔ
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos
Διαβάστε περισσότεραΑρχεία και Βάσεις Δεδομένων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 10η: SQL Μέρος 3ο Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών SQL Data Manipulation Language Τελεστής union συνδυάζει subselects
Διαβάστε περισσότεραΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)
Διαβάστε περισσότεραΔιαχείριση Πολιτισμικών Δεδομένων
Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 7 Γλώσσα Ερωτημάτων SQL Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Σχεσιακή
Διαβάστε περισσότεραΙατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
Διαβάστε περισσότεραΒάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]
ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Επιμέλεια: Καρβούνης Ευάγγελος, PhD, Επιστημονικός Συνεργάτης του Τμήματος Αντωνιάδης Νικόλαος, Καθηγητής Οκτώβριος
Διαβάστε περισσότεραΣχεσιακός Λογισμός. Σχεσιακός Λογισμός Πλειάδων. σχεσιακά πλήρης γλώσσα
Εισαγωγή Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Πλειάδων Πεδίου Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 2 Γιατί σχεσιακό λογισμό;
Διαβάστε περισσότεραΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ
ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER
Διαβάστε περισσότεραΒάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]
ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Χειμερινό Εξ. 2013-14 Επιμέλεια: Καρβούνης Ευάγγελος Οκτώβριος 2013 Περιεχόμενα 1 Σχεδιασμός Βάσης...
Διαβάστε περισσότερακαλών σχεσιακών σχημάτων
Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Λογικός Σχεδιασμός Σχεσιακών Σχημάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης (γενική μεθοδολογία) Επιθυμητές Ιδιότητες
Διαβάστε περισσότεραΒάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.
Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Λογικός Σχεδιασμός Σχεσιακών Σχημάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης (γενική μεθοδολογία) Επιθυμητές Ιδιότητες
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ Εισαγωγή στη MySQL Νικόλαος Ζ. Ζάχαρης Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης
Διαβάστε περισσότεραΤεχνολογία Πολιτισμικού Λογισμικού
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται
Διαβάστε περισσότεραΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:
Ενότητα 3: Σχεσιακό Μοντέλο. Από το ιδεατό στο λογικό (σχεσιακό) μοντέλο. Από το λογικό στο φυσικό (SQL) μοντέλο Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΒάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Βασικές πράξεις της Σχεσιακής Αλγεβρας Σχεσιακό Μοντέλο Δεδομένων Ορισμός Βάσης
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΡΙΤΟ Foreign key, Index, DML Ερωτήµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Foreign Key... 1 Index... 4 DML Ερωτήµατα... 6 INSERT...
Διαβάστε περισσότεραΟψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων
Διαβάστε περισσότεραΛογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση
Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση Βάσεις Δεδομένων 2010-2011 Ευαγγελία Πιτουρά 1 Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Γενικές Οδηγίες Η Μέθοδος
Διαβάστε περισσότεραΑκεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων
Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας
Διαβάστε περισσότεραΣχεσιακός Λογισµός. Σχεσιακός Λογισµός Πλειάδων. σχεσιακά πλήρης γλώσσα
Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Πλειάδων Πεδίου Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 2 Γιατί σχεσιακό λογισµό; αδυναµία
Διαβάστε περισσότεραPROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.
Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο
Διαβάστε περισσότεραΥποερωτήματα στην SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 31 Η ανάγκη για υποερώτημα Ποιος υπάλληλος παίρνει το μεγαλύτερο μισθό; Αν ξέραμε το μεγαλύτερο μισθό, πχ 2000, θα γράφαμε:
Διαβάστε περισσότεραΒάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)
Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης
Διαβάστε περισσότεραΒάσεις δεδομένων. (6 ο μάθημα) Ηρακλής Βαρλάμης
Βάσεις δεδομένων (6 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr (Συνέχεια) ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 3/4/2014 2 Περιεχόμενα Συνέχεια στη Σχεσιακή άλγεβρα Συνένωση Θήτα Ισότητας Φυσική Διαίρεση Σύνθετες λειτουργίες
Διαβάστε περισσότεραΒάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)
Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα
Διαβάστε περισσότεραΒάσεις Δεδομένων. Σχεσιακή Άλγεβρα. Φροντιστήριο 4 ο
Βάσεις Δεδομένων Σχεσιακή Άλγεβρα Φροντιστήριο 4 ο 13-11-2008 Σύνδεση με τα Προηγούμενα (Σχεσιακή) Βάση Δεδομένων ένα σύνολο από σχέσεις (πίνακες) Γραμμές: πλειάδες Στήλες: Γνωρίσματα Βαθμός σχέσης: πλήθος
Διαβάστε περισσότεραΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ 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 Μια γλώσσα σχεσιακής βάσης
Διαβάστε περισσότεραΗλεκτρονικοί Υπολογιστές II
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)
Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα - ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastnamevarchar(25)
Διαβάστε περισσότεραΚεφάλαιο 3. Ερωτήματα SQL
Κεφάλαιο 3. Ερωτήματα SQL Σύνοψη Σ αυτό το κεφάλαιο θα παρουσιάσουμε βασικά και σύνθετα ερωτήματα της SQL. Τα ερωτήματα θα υποβληθούν στην βάση δεδομένων DVDclub που δημιουργήθηκε στο προηγούμενο κεφάλαιο.
Διαβάστε περισσότεραΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL
ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών
Διαβάστε περισσότεραΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012
ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 4 7/02/2012
Διαβάστε περισσότεραΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL
ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων
Διαβάστε περισσότεραΕργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)
Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα -ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25)
Διαβάστε περισσότερα