Φπονηηζηήπηο 10 o Φεηµεπηνό Εξάµενο 2011-12 Τµήµα Μεσανηθών Η/Υ θαη Πιεποθοπηθήρ Ποιςηεσνηθή Σσοιή, Πανεπηζηήµηο Παηπών Πέµπηε, 08 εθεµβπίος 2011
Τη είναη ε QBE; Γιώζζα επεπωηήζεων ζε ζσεζηαθέρ βάζεηρ δεδοµένων o Οπωρ θαη ζηεν SQL, ςπάπσεη ε δςναηόηεηα δεµηοςπγίαρ θαη ηποποποίεζερ ζσεζηαθών δεδοµένων ηαζέηεη ένα "GUI" πος επηηπέπεη ζηο σπήζηε να γπάθεη queries, δεµηοςπγώνηαρ πίναθερ παπαδεηγµάηων (ή πίναθερ ζθειεηούρ) o ηαθοπά από ηεν SQL Ο σπήζηερ σπεηάδεηαη ειάσηζηε πιεποθοπία γηα να σπεζηµοποηήζεη ηεν QBE Η γιώζζα είναη απθεηά µηθπή Η QBE είναη θαηάιιειε γηα ζσεηηθά απιά επωηήµαηα
Ιζηοπηθά Σηοησεία Η QBE, όπωρ θαη ε SQL, αναπηύσζεθε από ηεν IBM ζηα µέζα ηερ δεθαεηίαρ ηος 70 o Moshé M. Zloof Ηηαν ε ππώηε graphical query language πος σπεζηµοποηούζε «οπηηθούρ πίναθερ» (visual tables) o Οη σπήζηερ µποπούζαν να εηζάγοςν ενηοιέρ, ζηοησεία παπαδεηγµάηων θαη ζςνζήθερ Ποιιά Σ Β, όπωρ ηο Microsoft Access, παπέσοςν µεπηθή ςποζηήπηξε ζηε δεµηοςπγία επεπωηήζεων µε ηπόπο παπόµοηο ηερ QBE Σςνήζωρ, ένα QBE-like interface παπέσεηαη επηππόζζεηα µε ηεν SQL o Η QBE παπέσεη ένα πηο δηαηζζεηηθό interface γηα απιά επωηήµαηα o Η SQL σπεζηµοποηείηαη γηα πηο ζύνζεηα επωηήµαηα
Σσήµα Β γηα Παπαδείγµαηα Sailors id: integer sname: string rating: integer age: real Boats bid: integer bname: string color: string Reserves sid: integer bid: integer day: dates
Βαζηθά Επωηήµαηα µε QBE (1/5) Τύπωζε ηα ονόµαηα θαη ηηρ ειηθίερ όιων ηων ναςηών Example Table: Ο σπήζηερ γπάθεη επωηήµαηα δεµηοςπγώνηαρ example tables Φπεζηµοποηούνηαη µεηαβιεηέρ, οη οποίερ θαζοπίδονηαη από ηε ζηήιε ζηεν οποία εµθανίδονηαη o Τα ζύµβοια ηων µεηαβιεηών ξεθηνούν µε underscore ( _ ), π.σ. _N, _A Τα πεδία πος επηζςµούµε να εµθανηζζούν ζηεν έξοδο θαζοπίδονηαη σπεζηµοποηώνηαρ ηεν ενηοιή P. (Print)
Βαζηθά Επωηήµαηα µε QBE (2/5) Τύπωζε ηα ζηοησεία όιων ηων ναςηών 1 oρ ηπόπορ Αν ϑέιοςµε να ηςπώζοςµε όια ηα πεδία µηαρ ζσέζερ, µποπούµε να σπεζηµοποηήζοςµε ηεν ενηοιή P. ζηο πεδίο ηος ονόµαηορ ηερ ζσέζερ 2 oρ ηπόπορ (Ιζοδύναµορ αιιά ζςνηοµεςµένορ)
Βαζηθά Επωηήµαηα µε QBE (3/5) Τύπωζε όιοςρ ηοςρ ναύηερ µε rating = 10 Οη επηιογέρ εθθπάδονηαη ηοποζεηώνηαρ µηα ζηαζεπά ζε θάποηο πεδίο Μποπούν να σπεζηµοποηεζούν όιοη οη γνωζηοί ηειεζηέρ ζύγθπηζερ (>, <, <=, >=, ) Τύπωζε όια ηα ζηοησεία ηων ναςηών πος δεν είναη 30 σπονών
Βαζηθά Επωηήµαηα µε QBE (4/5) Τύπωζε ηα ονόµαηα ηων ζθαθών πος δεν έσοςν µπιε σπώµα Τύπωζε ηα ονόµαηα ηων ναςηών πος έσοςν ηο ίδηο rating µε ηον Nikolaou
Βαζηθά Επωηήµαηα µε QBE (5/5) AND/OR Επωηήµαηα Τύπωζε ηα ονόµαηα ηων ναςηών πος είναη µηθπόηεποη από 30 σπονών ή µεγαιύηεποη από 20 Τύπωζε ηα ονόµαηα ηων ναςηών πος είναη µηθπόηεποη από 30 σπονών θαη µεγαιύηεποη από 20 Τύπωζε ηα ονόµαηα ηων ναςηών πος είναη µηθπόηεποη από 35 σπονών θαη έσοςν rating µεγαιύηεπο από 8
Φεηπηζµόρ ηπιοηύπων Μποπούµε να δειώζοςµε πεηά αν επηζςµούµε δηπιόηςπερ πιεηάδερ ζηα αποηειέζµαηα o Default επηιογή : Απαιοηθή δηπιοηύπων (ή σπήζε ηερ UNQ.) o ALL. Εµθάνηζε δηπιοηύπων Τύπωζε ηα ονόµαηα ηων ναςηών µε ειηθία 25 Φωπίρ εµθάνηζε δηπιοηύπων Με εµθάνηζε δηπιοηύπων ή
ηάηαξε Απανηήζεων Μποπούµε να δηαηάξοςµε ηε παποςζίαζε ηων αποηειεζµάηων σπεζηµοποηώνηαρ ηεν ενηοιή P. ζε ζςδςαζµό µε : o AO. Αύξοςζα δηάηαξε (Ascending Order) o DO. Φζίνοςζα δηάηαξε (Descending Order) Τύπωζε ζε αύξοςζα αιθαβεηηθή ζεηπά ηα ονόµαηα ηων ναςηών ςναηόηεηα ηαξηνόµεζερ θαη εµθάνηζερ δεδοµένων ζε ποιιαπιέρ ζηήιερ Τύπωζε ηα ονόµαηα, ηηρ ειηθίερ θαη ηα ratings όιων ηων ναςηών, ζε ϕζίνοςζα δηάηαξε ωρ ππορ ηεν ειηθία θαη γηα θαζε ειηθία, ζε αύξοςζα ζεηπά ωρ ππορ ηο rating
Επωηήζεηρ ζε Ποιιαπιέρ Σσέζεηρ (1/4) Η QBE επηηπέπεη επωηήµαηα πος επεθηείνονηαη ζε δηάθοπερ ζσέζεηρ Παπόµοηα µε ηο θαπηεζηανό γηνόµενο, ή ηηρ ζςνενώζεηρ (joins) ηερ ζσεζηαθήρ άιγεβπαρ Τα επωηήµαηα ζςνένωζερ µεηαξύ δηαθόπων ζσέζεων επηηςγσάνονηαη µέζω µεηαβιεηών πος θάνοςν θάποηερ εγγπαθέρ ώζηε να έσοςν ηεν ίδηα ηηµή ζε θάποηερ ηδηόηεηερ
Επωηήζεηρ ζε Ποιιαπιέρ Σσέζεηρ (2/4) Βπερ ηα ονόµαηα ηων ναςηών πος έσοςν θάνεη θάποηα θπάηεζε άπθαρ Ππέπεη να ζςνδςάζοςµε πιεποθοπία από ηηρ ζσέζεηρ Sailors θαη Reserves Σσήµα Β Example Table:
Επωηήζεηρ ζε Ποιιαπιέρ Σσέζεηρ (3/4) Βπερ ηα ονόµαηα ηων ναςηών πος έσοςν θάνεη θπάηεζε µηαρ βάπθαρ ζηηρ 8/24/96 θαη είναη πάνω από 25 εηών Βπερ ηα σπώµαηα ηων β απθών µε όνοµα Interlake πος έσοςν θπαηεζεί από ναύηερ ζηηρ 8/24/96 θαη οη οποίοη είναη πάνω από 25 εηών
Επωηήζεηρ ζε Ποιιαπιέρ Σσέζεηρ (4/4) Τύπωζε ηα ονόµαηα θαη ηηρ ειηθίερ ηων ναςηών πος έσοςν θάνεη θπάηεζε γηα µηα άπθα, γηα ηε οποία έσεη επηπιέον γίνεη θπάηεζε από ηον ναύηε µε id 22
Άπνεζε ζηε Σηήιε ηος Ονόµαηορ ηερ Σσέζερ Τύπωζε ηα ονόµαηα ηων ναςηών πος δεν έσοςν θάνεη θπάηεζε «Τύπωζε ηο πεδίο sname ηων πιεηάδων ηερ ζσέζερ Sailors γηα ηηρ οποίερ δεν ςπάπσεη πιεηάδα ζηε ζσέζε Reserves µε ηεν ίδηα ηηµή ζηο πεδίο sid» Οη µεηαβιεηέρ πος εµθανίδονηαη ζε µηα γπαµµή άπνεζερ (π.σ. µηα γπαµµή πος αθοιοςζεί ηο ), ππέπεη να εµθανίδονηαη θαη ζε µηα «ϑεηηθή» γπαµµή Βπερ ηα ονόµαηα ηων ναςηών πος δεν είναη µηθπόηεποη από 30 σπονών θαη δεν έσοςν rating µεγαιύηεπο ηος 4
Σςναζποηζηηθέρ Ππάξεηρ (1/2) Οµοηα µε ηεν SQL, ε QBE παπέσεη ηηρ ζςναζποηζηηθέρ ππάξεηρ AVG., COUNT., MAX., MIN., SUM. By default οη ηειεζηέρ αςηοί δεν απαιοίθοςν δηπιόηςπα εθηόρ από ηον COUNT. o Καηά θανόνα, εάν επηζςµούµε να δηαηεπήζοςµε δηπιόηςπα, πποζζέηοςµε ηον ηειεζε ALL., π.σ. SUM.ALL. o Γηα απαιοηθή δηπιοηύπων ππέπεη να σπεζηµοποηεζεί ο ηειεζηήρ UNQ., π.σ. AVG.UNQ., SUM.UNQ.
Σςναζποηζηηθέρ Ππάξεηρ (2/2) Τύπωζε ηε µέζε ειηθία ηων ναςηών από ηο παπαθάηω ζηηγµηόηςπο ηερ ζσέζερ Sailors Σηηγµηόηςπο ηερ Sailors Αποηέιεζµα = 38.3 ( εν απαιείθονηαη δηπιόηςπα) Οµωρ P.AVG.UNQ._A 40.0 (Το 35.0 ζςµµεηέσεη µόνο µηα ϕοπά) Η QBE ςποζηεπίδεη οµαδοποίηζη, σπεζηµοποηώνηαρ ηεν ενηοιή G. Παπόµοηο ηος group by ηερ SQL Τύπωζε ηηρ µέζερ ειηθίερ µε β άζε ηο rating
Το Πιαίζηο Σςνζήθερ (1/3) Απιέρ ζςνζήθερ µποπούν να εθθπαζηούν απεςζείαρ ζηηρ ζηήιερ ενόρ πίναθα ζθειεηού o Ωζηόζο, µποπεί να µεν είναη δςναηό να εθθπαζηούν όιοη οη πεπηοπηζµοί µε ηον ηπόπο αςηό Η QBE παπέσεη ένα πιαίζηο ζςνζήθερ (condition box) o Επηηπέπεη να εθθπάδονηαη γενηθοί πεπηοπηζµοί ζηηρ µεηαβιεηέρ πεδίος ηηµών Επηηπέπεηαη ε εµθάνηζε ιογηθών παπαζηάζεων ζε ένα πιαίζηο ζςνζήθερ
Το Πιαίζηο Σςνζήθερ (2/3) Τύπωζε ηο sid ηων ναςηών µε όνοµα Giwrgos" ή Kwstas" Τύπωζε εθείνα ηα ratings γηα ηα οποία ε µέζε ειηθία είναη µεγαιύηεπε ηων 30 σπονών
Το Πιαίζηο Σςνζήθερ (3/3) Τύπωζε ηο sid ηων ναςηών µε ειηθία µεηαξύ 20 εηών θαη 40 εηών αιιά όση αθπηβώρ 35 εηών
Αποηέιεζµα Σσέζερ (1/2) Ποιιέρ ϕοπέρ ηο αποηέιεζµα ενόρ επωηήµαηορ πεπηιαµβάνεη ηδηόηεηερ από δηάθοπα ζσήµαηα o Π.σ. ζςνένωζε δύο πηνάθων θαη πποβοιή οπηζµένων µόνο ζηειών Φπεηαδόµαζηε ένα µεσανηζµό γηα ηεν εµθάνηζε ηος επηζςµεηού αποηειέζµαηορ ζε ένα µόνο πίναθα Μποπούµε να δειώζοςµε ένα πποζωπηνό αποηέιεζµα ζσέζερ πος πεπηιαµβάνεη όιερ ηηρ ηδηόηεηερ ηος αποηειέζµαηορ ηος επωηήµαηορ
Αποηέιεζµα Σσέζερ (2/2) Τύπωζε ηα ονόµαηα ηων ναςηών, ηο id ηοςρ, ηηρ ειηθίερ ηοςρ θαη ηηρ εµέπερ πος έσοςν θάνεη θάποηα θπάηεζε Γηα ηεν απάνηεζε ηος επώηεµαηορ o Σςνένωζε ηων ζσέζεων Sailors θαη Reserves o Πποβοιή ονόµαηορ ναύηε, id, ειηθίαρ θαη εµέπαρ
Τποποποίεζε ηερ Βάζερ εδοµένων (1/3) Εηζαγωγή Να εηζασζεί έναρ νέορ ναύηερ ζηον πίναθα Sailors µε ζηοησεία : id 74, όνοµα Janice, rating 7 θαη ειηθία 41 Να εηζασζούν ηο id, ηο όνοµα θαη ε ειηθία ηων ϕοηηεηών πος είναη άνω ηων 18 εηών ή ηο όνοµά ηοςρ απσίδεη από C ηος πίναθα Students, ζηον πίναθα Sailors
Τποποποίεζε ηερ Βάζερ εδοµένων (2/3) ηαγπαθή Να δηαγπαθούν όιερ οη πιεηάδερ µε rating > 5 από ηον πίναθα Sailors Να δηαγπαθούν όιερ οη θπαηήζεηρ ηων ναςηών µε rating < 4
Τποποποίεζε ηερ Βάζερ εδοµένων (3/3) Ενεµέπωζε Να ανανεωζεί ε ειηθία ηος ναύηε µε id 74, ζε 42 Να ανανεωζεί ηο rating όιων ηων ναςηών αςξάνονηάρ ηο θαηά 1 (από ηεν πποεγούµενε ηηµή)
Μηα Μαηηά ζηε MS Access (1/7) εµηοςπγία ηων πηνάθων Sailors, Boats θαη Reserves
Μηα Μαηηά ζηε MS Access (2/7) Εγγπαθέρ ηος πίναθα Sailors
Μηα Μαηηά ζηε MS Access (3/7) Query Design Επηιογή πίναθα Sailors
Μηα Μαηηά ζηε MS Access (4/7) Επηιογή πεδίων από ηον πίναθα Sailors
Μηα Μαηηά ζηε MS Access (5α/7) Επώηεµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών πος ηο όνοµά ηοςρ απσίδεη από a
Μηα Μαηηά ζηε MS Access (5β/7) Αποηέιεζµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών πος ηο όνοµά ηοςρ απσίδεη από a
Μηα Μαηηά ζηε MS Access (6α/7) Επώηεµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών πος ηο όνοµά ηοςρ απσίδεη από j θαη rating > 4
Μηα Μαηηά ζηε MS Access (6β/7) Αποηέιεζµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών πος ηο όνοµά ηοςρ απσίδεη από j θαη rating > 4
Μηα Μαηηά ζηε MS Access (7α/7) Εηζαγωγή µηαρ νέαρ εγγπαθήρ ζηον πίναθα Sailors
Μηα Μαηηά ζηε MS Access (7β/7) Επώηεµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών θαηά ϕζίνοςζα ζεηπά ωρ ππορ ηο όνοµα θαη αύξοςζα ωρ ππορ ηο rating
Μηα Μαηηά ζηε MS Access (7γ/7) Αποηέιεζµα : Τύπωζε όια ηα ζηοησεία ηων ναςηών θαηά ϕζίνοςζα ζεηπά ωρ ππορ ηο όνοµα θαη αύξοςζα ωρ ππορ ηο rating
Αναθοπέρ Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems. The McGraw-Hill Companies Inc., 2003 Avi Silberschatz, Henry F. Korth, and S. Sudarshan. Σςζηήµαηα Βάζεων εδοµένων. Η Πιήπερ Θεωπία ηων Βάζεων εδοµένων. Εκδόζεις Μ. Γκιούρδας, (The McGraw-Hill Companies Inc.), 2008.
Εςσαπηζηώ!