Κεφάλαιο 6 Βασικές Πράξεις Θεωρίας Συνόλων

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

Download "Κεφάλαιο 6 Βασικές Πράξεις Θεωρίας Συνόλων"

Transcript

1 Κεφάλαιο 6 Βασικές Πράξεις Θεωρίας Συνόλων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν οι βασικές πράξεις της θεωρίας συνόλων: καρτεσιανό γινόμενο, ένωση, τομή, διαφορά και η χρήση αυτών για να απαντηθούν ερωτήματα που εμπλέκουν παραπάνω από έναν πίνακα. Προαπαιτούμενη γνώση Προαπαιτούμενα για την κατανόηση των εννοιών αλλά και την εργαστηριακή άσκηση είναι τα ακόλουθα:. Βασική δομή SQL ερωτήματος (Κεφ.5). 6.1 Εισαγωγικές Έννοιες Έστω ότι έχουμε δύο σύνολα τα R και S που έχουν ιδίου τύπου στοιχεία. Θεωρείστε την παρακάτω αναπαράσταση των συνόλων R και S σε μορφή διαγραμμάτων Venn. R S R S Ένωση συνόλων. Η πράξη της ένωσης συμβολίζεται με το U. Το αποτέλεσμά της R U S είναι ένα νέο σύνολο που περιέχει τόσο τα στοιχεία του R όσο και του S. Στο διάγραμμα Venn είναι όλη η χρωματισμένη περιοχή ανεξαρτήτως χρώματος. Τομή συνόλων. Η πράξη της τομής συμβολίζεται με το. Το αποτέλεσμά της R S είναι ένα νέο σύνολο που περιέχει τα στοιχεία του R που είναι και στοιχεία του S, δηλ. τα κοινά στοιχεία των δύο συνόλων. Στο διάγραμμα Venn είναι η χρωματισμένη με πορτοκαλί περιοχή. Διαφορά συνόλων. Η πράξη της διαφοράς συμβολίζεται με το -. Το αποτέλεσμά της R - S είναι ένα νέο σύνολο που περιέχει τα στοιχεία του R που δεν είναι στοιχεία του S, δηλ. τα στοιχεία του R που δεν ανήκουν στην τομή με το S. Στο διάγραμμα Venn είναι η χρωματισμένη με κίτρινο περιοχή, ενώ η χρωματισμένη με κόκκινο αντιστοιχεί στο S - R Ένωση, τομή και διαφορά στην SQL και MySQL5.7 Θεωρώντας τους πίνακες μιας σχεσιακής ΒΔ ως σύνολα εγγραφών, οι παραπάνω πράξεις βρίσκουν εφαρμογή κυρίως όποτε θέλουμε να συνδυάσουμε αποτελέσματα ερωτημάτων. Η υλοποίησή τους στην SQL γίνεται μέσω των εντολών, INTERSECT και EXCEPT ή MINUS. Η γενικότερη μορφή σύνταξης είναι:

2 ερώτημα 1 /INTERSECT/EXCEPT ερώτημα 2 Προσοχή: H MySQL στην έκδοση 5.7 δεν υποστηρίζει τις πράξεις INTERSECT και EXCEPT αλλά μόνο το. Υπάρχει τρόπος για την υλοποίηση της τομής και της αφαίρεσης με χρήση υποερωτημάτων ο οποίος και θα συζητηθεί σε επόμενο κεφάλαιο. Παρόλα αυτά στα παραδείγματα που ακολουθούν και για λόγους εξάσκησης στις βασικές πράξεις συνόλων, περιλαμβάνονται και οι INTERSECT/EXCEPT. Παραδείγματα χρήσης Έστω το ακόλουθο σχήμα: Customer (cid, afm, address, name, sname, dateofbirth) Phones (cid, pnum) Account (accid, balance, dateofcreation) Owns (cid, accid) Action (accid, actid, amount, type, dateofaction) Transfer (accidsource, actidsource, acciddest, actiddest) - Ερώτημα 1: Βρες τους κωδικούς των πελατών που έχουν κινητό τηλέφωνο και το όνομά τους είναι Maria. Το ερώτημα εμπλέκει δύο πίνακες: τον Customer και τον Phones. Σκεπτόμενοι πάνω στο ερώτημα διαπιστώνουμε ότι στην ουσία αποτελείται από δύο υποερωτήματα (subqueries). Το πρώτο (έστω Query1) αφορά στην εύρεση των cid από τον πίνακα Phones που το pnum ξεκινά από 6, ενώ το δεύτερο (έστω Query2) αφορά στην εύρεση των cid από τον πίνακα Customer για τα οποία το name= 'Maria'. Έχοντας συντάξει τα Query1 και 2 το τελικό αποτέλεσμα θα το πάρουμε παίρνοντας την τομή τους αφού ζητάμε να ισχύουν και οι δύο συνθήκες. SELECT cid FROM Customer WHERE name='maria' INTERSECT SELECT cid FROM Phones WHERE pnum LIKE '6%'; Για οπτικούς λόγους μπορούμε να βάλουμε τα δύο υποερωτήματα μέσα σε παρενθέσεις και να συμπτύξουμε τις γραμμές, αφού κάθε υποερώτημα είναι μικρό, ως εξής: (SELECT cid FROM Customer WHERE name='maria') INTERSECT (SELECT cid FROM Phones WHERE pnum LIKE '6%'); - Ερώτημα 2: Βρες τους κωδικούς των πελατών που έχουν κινητό τηλέφωνο ή το όνομά τους είναι Maria. Το ερώτημα είναι ίδιο με το παραπάνω μόνο που θέλουμε να ισχύει τουλάχιστον μία από τις δύο συνθήκες, πράγμα που σημαίνει ότι θέλουμε την ένωση των Query1 και Query2. (SELECT cid FROM Customer WHERE name='maria') (SELECT cid FROM Phones WHERE pnum LIKE '6%'); - Ερώτημα 3: Βρες τους κωδικούς των πελατών που έχουν κινητό τηλέφωνο και το όνομά τους δεν είναι Maria. Το ερώτημα τώρα απαιτεί αφαίρεση. Από το σύνολο όσων έχουν κινητό τηλέφωνο θα πρέπει να αφαιρεθεί το σύνολο όσων έχουν όνομα Maria. (SELECT cid FROM Customer WHERE name='maria') EXCEPT

3 (SELECT cid FROM Phones WHERE pnum LIKE '6%'); - Ερώτημα 4: Βρες τους κωδικούς των πελατών που έχουν κινητό τηλέφωνο ή το όνομά τους είναι Maria ή έχουν λογαριασμό που ο κωδικός του είναι στο εύρος [ ]. Το ερώτημα εμπλέκει τώρα και τρίτο υποερώτημα (έστω Query3) που τρέχει στον πίνακα Owns. Από την εκφώνηση συνάδουμε ότι η τελική απάντηση είναι το και των τριών υποερωτημάτων. Στην SQL μπορούμε να έχουμε περισσότερα των δύο υποερωτημάτων να συνδυάζονται μέσω των, INTERSECT και EXCEPT. (SELECT cid FROM Customer WHERE name='maria') (SELECT cid FROM Phones WHERE pnum LIKE '6%') (SELECT cid FROM Owns WHERE accid BETWEEN 1000 AND 2000); - Ερώτημα 5 (Αποκλειστικό Ή): Βρες τους κωδικούς των πελατών που είτε έχουν κινητό τηλέφωνο ή το όνομά τους είναι Maria αλλά όχι και τα δύο συγχρόνως. Στην ουσία αυτό που ζητάμε είναι Query1 XOR Query2. Κατ αντιστοιχία στο Venn διάγραμμα ζητάμε τις περιοχές που είναι κίτρινες, κόκκινες αλλά όχι πορτοκαλί. Επομένως ζητάμε να αφαιρέσουμε από την ένωση την τομή. Θα θέλαμε λοιπόν να μπορούσαμε να γράψουμε κάτι σαν: ((SELECT cid FROM Customer WHERE name='maria') (SELECT cid FROM Phones WHERE pnum LIKE '6%')) EXCEPT ((SELECT cid FROM Customer WHERE name='maria') INTERSECT (SELECT cid FROM Phones WHERE pnum LIKE '6%')); Με άλλα λόγια να περικλείσουμε μέσα σε παρενθέσεις το αποτέλεσμα κάποιων πράξεων συνόλων για να δώσουμε προτεραιότητα. Δυστυχώς κάτι τέτοιο δεν μπορεί να γίνει (με αυτόν τον τρόπο) και θα θεωρηθεί συντακτικό λάθος. Για παράδειγμα αν και η εντολή: (SELECT cid FROM Customer WHERE name='maria') (SELECT cid FROM Phones WHERE pnum LIKE '6%'); εκτελείται χωρίς πρόβλημα, η εντολή: ((SELECT cid FROM Customer WHERE name='maria') (SELECT cid FROM Phones WHERE pnum LIKE '6%')); γεννά σφάλμα. Ο λόγος είναι ο εξής. Περικλείοντας μέσα σε παρενθέσεις το αποτέλεσμα μιας πράξης δηλώνουμε στο DBMS ότι αυτό το αποτέλεσμα είναι ένας πίνακας ο οποίος πρέπει να μετονομαστεί πριν χρησιμοποιηθεί. Περισσότερα για πίνακες που προκύπτουν από υποερωτήματα σε επόμενο κεφάλαιο. Σημείωση 1: Η MySQL5.7 υποστηρίζει δύο μορφές το ALL και DISTINCT που είναι και το default αν παραληφθεί το ALL/DISTINCT. Με το DISTINCT κόβονται επαναλήψεις ίδιου στοιχείου ενώ με το ALL κρατιούνται. Για παράδειγμα το ακόλουθο ερώτημα: SELECT * FROM Customer ALL SELECT * FROM Customer; επιστρέφει τις εγγραφές του Customer δύο φορές. Σημείωση 2: Η MySQL5.7 δε δίνει εγγύηση σχετικά με την ταξινόμηση του αποτελέσματος ενός ακόμα και αν οι πίνακες είναι και οι δύο ταξινομημένοι ως προς τα επιθυμητά πεδία. Για παράδειγμα η ακόλουθη εντολή:

4 (SELECT * FROM Customer ORDER BY sname) ALL (SELECT * FROM Customer ORDER BY sname); δεν είναι απαραίτητο ότι θα έχει αποτέλεσμα ταξινομημένο ως προς sname. Για να το επιτύχουμε μπορούμε μετά την πράξη να βάλουμε ORDER BY. Για παράδειγμα: SELECT * FROM Customer ALL SELECT * FROM Customer ORDER BY surname; Επισημαίνεται το εξής. Καθώς είναι δυνατή η χρήση της ORDER BY για να ταξινομηθεί το αποτέλεσμα της στην εντολή: (SELECT * FROM Customer ORDER BY sname) ALL (SELECT * FROM Customer ORDER BY sname); θα δημιουργούνταν συντακτικό λάθος αν παραλείπαμε τις παρενθέσεις. Σημείωση 3: Η MySQL5.7 απαιτεί τα δύο υποερωτήματα που γίνονται να έχουν ίδιο πλήθος πεδίων και με αντίστοιχους τύπους. Δεν υπάρχει απαίτηση να έχουν το ίδιο όνομα. Σε περίπτωση διαφορετικών ονομάτων το αποτέλεσμα εμφανίζεται με ονόματα πεδίων τα ονόματα του πρώτου υποερωτήματος. Παράδειγμα - Ερώτημα 6. Βρες τους κωδικούς των λογαριασμών που έχουν εκτελέσει μεταφορά χρημάτων προς το λογαριασμό με κωδικό 100, ή ήταν αποδέκτες μεταφοράς χρημάτων από το λογαριασμό 200. Query1: SELECT accidsource FROM Transfer WHERE acciddest=100 Query2: SELECT acciddest FROM Transfer WHERE accidsource=200 Όπως προαναφέρθηκε μπορούν τα δύο ερωτήματα να ενωθούν, καθώς τα accidsource και acciddest είναι ίδιου τύπου. Το αποτέλεσμα θα έχει ένα πεδίο με όνομα accidsource. Αν θέλουμε άλλο όνομα στο αποτέλεσμα μετονομάζουμε το πεδίο που επιστρέφει η Query1. (SELECT accidsource AS results FROM Transfer WHERE acciddest=100) (SELECT acciddest FROM Transfer WHERE accidsource=200); Υποθέτοντας ότι στον πίνακα Transfer υπάρχει μία μόνο εγγραφή η: <200,1,100,1>, το αποτέλεσμα του παραπάνω ερωτήματος θα είναι: results Καρτεσιανό γινόμενο Δοθέντος δύο συνόλων R και S που δεν έχουν απαραίτητα στοιχεία ιδίου τύπου, το καρτεσιανό γινόμενο των δύο συνόλων (RXS) ορίζεται σαν το σύνολο που αποτελείται από όλα τα ζευγάρια της μορφής (a, b) όπου το a ανήκει στο R και το b στο S. Με άλλα λόγια είναι ένα σύνολο που περιέχει όλους τους συνδυασμούς στοιχείων του R με το S. Το καρτεσιανό γινόμενο είναι η βασική πράξη συνδυασμού δύο η περισσοτέρων πινάκων σε ένα ερώτημα. Για να εφαρμόσουμε καρτεσιανό γινόμενο δύο πινάκων στο FROM του αντίστοιχου ερωτήματος μπορούμε ή να γράψουμε τα ονόματα των δύο πινάκων χωρισμένα με κόμμα ή να χρησιμοποιήσουμε την εντολή CROSS JOIN. Παράδειγμα - Ερώτημα 7. Εμφάνισε το καρτεσιανό γινόμενο των πινάκων Customer και Phones.

5 Πρώτος τρόπος: SELECT * FROM Customer, Phones; Δεύτερος τρόπος: SELECT * FROM Customer CROSS JOIN Phones; Ο δεύτερος τρόπος ενέχει την πράξη της συνένωσης (JOIN) στην οποία θα αναφερθούμε εκτενώς στο επόμενο κεφάλαιο. Τα παραδείγματα που δίνονται στη συνέχεια της ενότητας θα χρησιμοποιούν τον πρώτο τρόπο γραφής ερωτήματος. Έστω οι ακόλουθοι πίνακες Customer και Phones: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Phones cid pnum Το καρτεσιανό γινόμενό τους είναι: cid afm address name sname dateofbirth cid pnum Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Παρατηρήστε ότι: A) Οι εγγραφές του καρτεσιανού γινομένου είναι όλοι οι δυνατοί συνδυασμοί των εγγραφών των δύο πινάκων. Στη γενικότερη περίπτωση αν έχω στον πρώτο πίνακα Μ εγγραφές και στο δεύτερο Ν, στο καρτεσιανό θα υπάρχουν ΜΝ εγγραφές. Αυτό σημαίνει ότι ενδέχεται κάποιες εγγραφές που επιστρέφονται να είναι ίδιες. B) Τα πεδία του καρτεσιανού γινομένου είναι τα πεδία και των δύο πινάκων. Σε περίπτωση που υπάρχουν κοινά πεδία στους δύο πίνακες (το cid στο παράδειγμα) εμφανίζονται δύο φορές στο αποτέλεσμα. Για να χρησιμοποιήσουμε κάποιο κοινό πεδίο στο ερώτημα θα πρέπει να αναφερθούμε συγκεκριμένα στον πίνακα από τον οποίο προέρχεται, γράφοντας το όνομα του πίνακα μαζί με του πεδίου χωρισμένα με τελεία. Παράδειγμα SELECT cid, pnum FROM Customer, Phones; Γυρνάει το ακόλουθο σφάλμα: ERROR 1052 (23000): Column 'cid' in field list is ambiguous. SELECT Phones.cid, pnum

6 FROM Customer, Phones; Γυρνάει: cid pnum Τέλος θα πρέπει να σημειωθεί ότι αν επιθυμούμε να κάνουμε καρτεσιανό γινόμενο ενός πίνακα με τον εαυτό του, τουλάχιστον ένας από τους δύο πίνακες θα πρέπει να μετονομαστεί μέσα στο ερώτημα. Για να μετονομάσουμε έναν πίνακα στο FROM μπορούμε να βάλουμε το επιθυμητό όνομα μετά το όνομα του πίνακα με ή χωρίς χρήση του AS. Προφανώς η μετονομασία αφορά στο ερώτημα και μόνο και όχι στον πίνακα που υπάρχει σωσμένος στη ΒΔ. Παράδειγμα: SELECT * FROM Customer, Customer; Επιστρέφει: ERROR 1066 (42000): Not unique table/alias: 'Customer' SELECT C1.sname, C2.sname FROM Customer AS C1, Customer C2; Με τον Customer του παραδείγματος, επιστρέφεται: sname Papantoniou Papantoniou Papantoniou sname Papantoniou Papantoniou Papantoniou Παραδείγματα ερωτημάτων με πολλούς πίνακες Ακολουθούν παραδείγματα ερωτημάτων με στόχο την εξάσκηση στη σύνταξη ερωτημάτων που εμπλέκουν πολλούς πίνακες. - Ερώτημα 8. Βρες τα ΑΦΜ των πελατών με κινητά τηλέφωνα. Το ερώτημα απαιτεί τον πίνακα Customer για να επιστραφεί το ΑΦΜ και τον πίνακα Phones για τον έλεγχο του τηλεφωνικού αριθμού. Για να απαντηθεί το ερώτημα στην ουσία θα ήθελα να επεκτείνω τον πίνακα Phones με τα αντίστοιχα στοιχεία των πελατών που αφορούν τους συγκεκριμένους τηλεφωνικούς αριθμούς. Για το λόγο αυτό θα κάνουμε καρτεσιανό του Customer με το Phones. Όπως φαίνεται και από το παράδειγμα του ερωτήματος 7, που αναπαράγεται εδώ για ευκολία, αφού στο καρτεσιανό παίρνουμε όλους τους συνδυασμούς θα πάρουμε και συνδυασμούς που αντιστοιχούν ένα τηλεφωνικό νούμερο με τα στοιχεία λάθος πελάτη.

7 cid afm address name sname dateofbirth cid pnum Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Baltetsiou st. Kostas Diakou st. Eleni Rodon st. Maria Papantoniou Για να κρατήσουμε μόνο τους συνδυασμούς στους οποίους υπάρχει αντιστοιχία μεταξύ των στοιχείων του πελάτη και του τηλεφωνικού αριθμού (εγγραφές μαρκαρισμένες με bold και italics στο παράδειγμα) θα ζητήσουμε να ισχύει στο WHERE η εξής συνθήκη επιπλέον αυτής που αφορά τα κινητά τηλέφωνα: Customer.cid=Phones.cid. SELECT afm FROM Customer, Phones WHERE Customer.cid=Phones.cid AND pnum LIKE '6%'; Να σημειωθεί ότι ερωτήματα που απαιτούν καρτεσιανό γινόμενο και κάποιας μορφής συσχέτιση ανάμεσα σε ένα ή περισσότερα κοινά πεδία είναι τόσο συνηθισμένα που για το λόγο αυτό εισήχθηκε η πράξη της συνένωσης (JOIN) πινάκων για την οποία θα μιλήσουμε εκτενώς σε επόμενο κεφάλαιο. Τα κοινά πεδία θα λέμε ότι είναι τα πεδία στα οποία γίνεται η συνένωση των πινάκων. - Ερώτημα 9. Βρες τα ΑΦΜ των πελατών που έχουν λογαριασμούς με υπόλοιπο μεγαλύτερο των Το ερώτημα απαιτεί τους πίνακες Customer για το ΑΦΜ και τον Account για το υπόλοιπο του λογαριασμού. Αν συνδυάσουμε αυτούς τους πίνακες μόνο είναι βέβαιο ότι δε θα μπορέσουμε να απαντήσουμε στο ερώτημα καθώς λείπει η πληροφορία σχετικά με το ποιος πελάτης έχει ποιο λογαριασμό. Η πληροφορία αυτή υπάρχει στον πίνακα Owns. Κατά συνέπεια θα πάρουμε το καρτεσιανό γινόμενο και των τριών πινάκων παραθέτοντας και τους τρεις πίνακες χωρισμένους με κόμμα στο FROM. Η σειρά παράθεσης παίζει ρόλο μόνο στη σειρά εμφάνισης των πεδίων του αποτελέσματος (αν δεν έχουμε άλλη επιλογή στο SELECT) καθώς και στη σειρά με την οποία θα εμφανιστούν οι εγγραφές στο αποτέλεσμα. Κατά τα άλλα η σειρά με την οποία εκτελούνται τα καρτεσιανά γινόμενα δεν παίζει κανένα ρόλο. Υποθέστε ότι ο Customer έχει τις εγγραφές του ερωτήματος 7 και οι πίνακες Account και Owns έχουν ως εξής: Account accid balance dateofcreation Owns cid accid Το καρτεσιανό γινόμενο των 3 πινάκων Customer, Owns, Account έχει ως εξής (αναγράφεται μόνο το cid, afm από τον Customer για εξοικονόμηση χώρου):

8 cid afm cid accid accid balance dateofcreation Αν και στο καρτεσιανό υπάρχουν 27 εγγραφές (3*3*3) μόνο 3 εγγραφές (μαρκαρισμένες με bold και italics) αντιστοιχούν σωστά λογαριασμούς με πελάτες και είναι εκεί που υπάρχει ισότητα τόσο στο κοινό πεδίο των Customer, Owns όσο και στο κοινό πεδίο των Owns και Account. Ως εκ τούτου η σύνταξη του ερωτήματος σε SQL έχει ως εξής: SELECT afm FROM Customer, Owns, Account WHERE Customer.cid=Owns.cid AND Owns.accid=Account.accid AND balance>10000; - Ερώτημα 10. Βρες τα ΑΦΜ των πελατών που έχουν στείλει χρήματα στο λογαριασμό με κωδικό 100. Οι κωδικοί των λογαριασμών που απαντούν στο ερώτημα είναι τα accidsource στον πίνακα Transfer για τα οποία το acciddest=100. Από αυτούς τους κωδικούς πρέπει να βρούμε τους πελάτες που σημαίνει καρτεσιανό με το Owns και το Customer όπως στο προηγούμενο ερώτημα μόνο που θα ζητήσουμε accid=accidsource (δε χρειάζεται να προσδιορίσουμε τους πίνακες καθώς τα πεδία αυτά υπάρχουν μόνο στο Owns και στο Transfer). SELECT afm FROM Customer, Owns, Transfer WHERE Customer.cid=Owns.cid AND accid=accidsource AND acciddest=100;

9 - Ερώτημα 11. Βρες τα ΑΦΜ των πελατών που έχουν στείλει χρήματα στο λογαριασμό με κωδικό 100 είτε απευθείας είτε έμμεσα δηλ. έστειλαν σε κάποιον που έστειλε στο λογαριασμό με κωδικό 100. Για το απευθείας, η απάντηση βρίσκεται στο προηγούμενο ερώτημα. Για έμμεσα, θα πρέπει στην ουσία να βρω τις εγγραφές t1 του Transfer για τις οποίες υπάρχουν εγγραφές t2 έτσι ώστε το t1[acciddest]=t2[accidsource] και το t2[acciddest]=100. Σε αυτήν την περίπτωση το t1[accidsource] ανήκει στο αποτέλεσμα και συνδυάζεται κατόπιν με Owns και Customer. Για να βρούμε τα παραπάνω t1 ένας απλός τρόπος (εμπνευσμένος από τους πίνακες σε γλώσσες προγραμματισμού) θα ήταν σε ένα nested loop κάθε μία εγγραφή του Transfer να συγκρίνεται με όλες τις υπόλοιπες. Κάτι τέτοιο δεν μπορεί να γίνει με χρήση απλών SQL ερωτημάτων της μορφής SELECT FROM WHERE. H MySQL υποστηρίζει stored procedures και cursors (περισσότερα για αυτά σε επόμενο κεφάλαιο) βάσει των οποίων θα μπορούσε να υλοποιηθεί το ερώτημα με τον παραπάνω τρόπο. Υπάρχει όμως και άλλη εναλλακτική. Έχουμε ήδη δει ότι για να συγκρίνω εγγραφές που ανήκουν σε διαφορετικούς πίνακες μπορώ να κάνω καρτεσιανό και να εφαρμόσω κατάλληλα κριτήρια στο WHERE. Το αντίστοιχο ισχύει και για να συγκρίνω εγγραφές του ίδιου πίνακα, δηλ. κάνω καρτεσιανό γινόμενο του πίνακα με τον εαυτό του (SELF JOIN). Στο καρτεσιανό γινόμενο κάθε εγγραφή του πίνακα εμφανίζεται μαζί με όλες τις εγγραφές του πίνακα συμπεριλαμβανομένης αυτής. Κατά συνέπεια μπορώ να εφαρμόσω τα προαναφερθέντα κριτήριο και να εξάγω τους κωδικούς που ανήκουν στο αποτέλεσμα ως εξής: SELECT T1.accid FROM Transfer T1, Transfer T2 WHERE T1.accidDest=T2.accidSource AND T2.accidDest=100; Εφόσον αυτή query μου επιστρέφει τους σωστούς λογαριασμούς εφαρμόζοντας καρτεσιανό γινόμενο με το Owns και το Customer παίρνω τους πελάτες που έστειλα έμμεσα χρήματα. Το τελικό αποτέλεσμα θα παρθεί από την ένωση αυτών με αυτούς που έστειλαν άμεσα. (SELECT afm FROM Customer, Owns, Transfer T1, Transfer T2 WHERE Customer.cid=Owns.cid AND accid=t1.accidsource AND T1.accidDest=T2.accidSource AND T2.accidDest=100) (SELECT afm FROM Customer, Owns, Transfer WHERE Customer.cid=Owns.cid AND accid=accidsource AND acciddest=100); Αν θέλαμε να βρούμε αυτούς που έστειλαν έμμεσα με δύο βήματα δηλαδή αυτούς που έστειλαν σε έναν λογαριασμό από τον οποίο στάλθηκε σε λογαριασμό που έστειλε στο 100 θα κάναμε 3 φορές καρτεσιανό γινόμενο του Transfer με τον εαυτό του ως εξής: SELECT afm FROM Customer, Owns, Transfer T1, Transfer T2, Transfer T3 WHERE Customer.cid=Owns.cid AND accid=t1.accidsource AND T1.accidDest=T2.accidSource AND T2.accidDest=T3.accidSource AND T3.accidDest=100; Γενικά μιλώντας, αν μας δοθεί το επιθυμητό «βάθος» της έμμεσης διαδρομής μπορούμε να χτίσουμε αντίστοιχο ερώτημα. Επίσης αν θέλουμε στο τελικό αποτέλεσμα να συμπεριλάβουμε διαφορετικά «βάθη» διαδρομής μπορούμε εφαρμόζοντας στα

10 υποερωτήματα. Αυτό που δεν μπορούμε να εκφράσουμε είναι ερώτημα που ζητά τους πελάτες που έχουν στείλει έμμεσα χρήματα στο λογαριασμό 100, για οποιοδήποτε βάθος έμμεσης διαδρομής. Για να απαντηθούν τέτοιου είδους ερωτήματα, που ονομάζονται ιεραρχικά καθώς προκύπτουν κατά κόρον στο ιεραρχικό μοντέλο και σε XML δεδομένα, υπάρχει το RECURSIVE JOIN που δεν υποστηρίζεται όμως στη MySQL5.7. Η ενασχόληση με τέτοιου είδους ερωτήματα και οι τρόποι οργάνωσης ιεραρχικών δεδομένων στη MySQL5.7 αποτελούν πιο προχωρημένα αντικείμενα μελέτης και ξεφεύγουν από τους σκοπούς του παρόντος συγγράμματος. - Ερώτημα 12. Βρες τα ΑΦΜ των πελατών που έχουν στείλει χρήματα σε κάποιον από τους λογαριασμούς του πελάτη με ΑΦΜ Όμοιο με το προηγούμενο ερώτημα μόνο που τώρα δεν έχουμε συγκεκριμένο acciddest για να αναζητήσουμε, αλλά πελάτη του οποίου οι λογαριασμοί παίζουν το ρόλο του προορισμού. Επομένως εκτός από το καρτεσιανό γινόμενο του Customer, Owns, Transfer ως προς τα cid και accid=accidsource, θέλουμε και τα αντίστοιχα για το acciddest. SELECT C1.afm FROM Customer C1, Owns O1, Transfer, Owns O2, Customer C2 WHERE C1.cid=O1.cid AND O1.accid=accidSource AND acciddest=o2.accid AND O2.cid=C2.cid AND C2.afm=' '; - Ερώτημα 13. Βρες τους κωδικούς των λογαριασμών με τα μεγαλύτερα υπόλοιπα. Για να βρούμε τα accid που θέλουμε πρέπει να συγκρίνουμε εγγραφές του Account, επομένως και σύμφωνα με Ερωτήματα 11 και 12 θα κάνουμε καρτεσιανό του Account με το Account. Έστω Α1 και Α2 οι ονομασίες των δύο Account στο FROM και ας υποθέσουμε ότι επιστρέφουμε το A1.accid. Το ερώτημα είναι τι να ζητήσουμε στη σύγκριση. Αν ζητήσουμε A1.balance>A2.balance τότε για να επιστραφεί ένα A1.accid θα πρέπει να υπάρχει τουλάχιστον μία υποεγγραφή προερχόμενη από τον Α2 με μικρότερο balance. Κατά συνέπεια με τον τρόπο αυτό θα επιστρέψουμε τα accid για τα οποία υπάρχει κάποιος λογαριασμός με μικρότερο από αυτά balance. Αλλάζοντας τη φορά της σύγκρισης και ζητώντας A1.balance<A2.balance για να επιστραφεί ένα A1.accid θα πρέπει να υπάρχει τουλάχιστον μία υποεγγραφή προερχόμενη από τον Α2 με μεγαλύτερο balance. Επομένως επιστρέφονται όσα δεν είναι τα μεγαλύτερα. Έχοντας τα accid που δεν έχουν το μεγαλύτερο balance μπορώ να τα αφαιρέσω από τα συνολικά accid του Account και να πάρω αυτά που έχουν το μεγαλύτερο balance. Η παραπάνω είναι βασική τεχνική σχεδιασμού ερωτημάτων δηλ. αν δεν μπορούμε να βρούμε απευθείας τις εγγραφές που απαντούν στο ερώτημα, ίσως μπορούμε να βρούμε εύκολα τις εγγραφές που δεν ανήκουν στη λύση οπότε με αφαίρεση παίρνουμε το ζητούμενο. Το πώς μπορούμε να κάνουμε αφαίρεση στη MySQL θα εξηγηθεί σε επόμενο κεφάλαιο. Στο ερώτημα εδώ θα χρησιμοποιηθεί το EXCEPT. (SELECT accid FROM Account) EXCEPT (SELECT A1.accid FROM Account A1, Account A2 WHERE A1.balance<A2.balance); H SQL προδιαγράφει διάφορες συναρτήσεις συνάθροισης (aggregator functions) που υποστηρίζονται από την MySQL5.7. Μία από αυτές, η ΜΑΧ(), θα μπορούσε να χρησιμοποιηθεί εδώ για να απαντηθεί το ερώτημα πιο εύκολα. Οι συναρτήσεις συνάθροισης εξετάζονται σε επόμενο κεφάλαιο.

11 6.2 Παράδειγμα Εργαστηριακής Άσκησης Εκφώνηση: Στη Βάση Δεδομένων του ΑΕΙ/ΑΤΕΙ της εργαστηριακής άσκησης 4 θα πρέπει να εκτελέσετε τις ακόλουθες ενέργειες: 1. Δημιουργήστε το καρτεσιανό γινόμενο των φοιτητών με τα μαθήματα. 2. Βρείτε τα AM των φοιτητών που έχουν κινητό τηλέφωνο ή το όνομά τους είναι Γιώργος. 3. Βρείτε τους φοιτητές που πέρασαν το μάθημα Δομές Δεδομένων το 2014 ή το Βρείτε τους καθηγητές που διδάσκουν το μάθημα Προγραμματισμός Ι ή Προγραμματισμός ΙΙ. Ζητούμενα: Καρτεσιανό γινόμενο, ένωση, τομή Ζητούμενο 1: Δημιουργήστε το καρτεσιανό γινόμενο των φοιτητών με τα μαθήματα. Δίνουμε: SELECT * FROM Student, Course; Παράδειγμα αποτελέσματος φαίνεται στην Εικόνα 6.1 όπου παρατηρούμε ότι έχουμε όλους τους συνδυασμούς των εγγραφών των πινάκων. Εικόνα 6.1: Καρτεσιανό γινόμενο.

12 Ζητούμενο 2: Βρείτε τα AM των φοιτητών που έχουν κινητό τηλέφωνο ή το όνομά τους είναι Γιώργος. SELECT AM FROM Student WHERE Firstname= Giwrgos SELECT AM FROM Telephone WHERE TelephoneNumber LIKE 69% ; Παράδειγμα αποτελέσματος βλέπουμε στην Εικόνα 6.2 όπου δεν έχουμε φοιτητή που να λέγεται Γιώργος, αλλά έχουμε τρεις φοιτητές με κινητό τηλέφωνο. Εικόνα 6.2: Η εντολή. Ζητούμενο 3: Βρείτε τους φοιτητές που πέρασαν το μάθημα Δομές Δεδομένων το 2014 ή το SELECT AM FROM Exam as E, Course as C WHERE E.Cid=C.Cid AND C.Title= Domes Dedomenwn AND E.Grade>=5 AND year(date)= 2014 SELECT AM FROM Exam as E, Course as C WHERE E.Cid=C.Cid AND C.Title= Domes Dedomenwn AND E.Grade>=5 AND year(date)= 2015 ; Παράδειγμα αποτελέσματος του ερωτήματος βλέπουμε στην Εικόνα 6.3, όπου το μάθημα Δομές δεδομένων το έχει περάσει ο φοιτητής με AM=4 (βαθμός=8) το έτος 2014 και ο φοιτητής με AM=2 (βαθμός=5) το 2015.

13 Εικόνα 6.3: Η εντολή. Ζητούμενο 4: Βρείτε τους καθηγητές που διδάσκουν το μάθημα Προγραμματισμός Ι ή Προγραμματισμός ΙΙ. SELECT Lastname, Firstname FROM Professor as P, Course as C WHERE P.KK=C.KK AND C.Title= Programmatismos I SELECT Lastname, Firstname FROM Professor as P, Course as C WHERE P.KK=C.KK AND C.Title= Programmatismos II ; Παράδειγμα αποτελέσματος του ερωτήματος βλέπουμε στην Εικόνα 6.4, όπου επιστρέφει τους καθηγητές που διδάσκουν τα μαθήματα Προγραμματισμός Ι και ΙΙ. Στη συγκεκριμένη περίπτωση είναι δύο καθηγητές. Εικόνα 6.4: Η εντολή.

14 6.3 Άλυτες Εργαστηριακές Ασκήσεις Άσκηση 1 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 1), απαντήστε στα ακόλουθα ερωτήματα: 1. Φτιάξτε μια κατάσταση με όλους τους εργαζόμενους που να συνοδεύεται από τις εταιρίες. 2. Βρείτε τους εργαζόμενους που απασχολούνταν στην εταιρία Advance ή Info. 3. Δημιουργήστε το καρτεσιανό γινόμενο των εργαζομένων με τις εταιρίες. Άσκηση 2 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 2), απαντήστε στα ακόλουθα ερωτήματα: 1. Δημιουργήστε το καρτεσιανό γινόμενο των ταινιών με τους θεατές. 2. Βρείτε τις ταινίες που σκηνοθέτησε ο Steven Spielberg ή ο Quentin Tarantino. 3. Φτιάξτε μια κατάσταση με τους θεατές και τις ταινίες. Άσκηση 3 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 3), απαντήστε στα ακόλουθα ερωτήματα: 1. Δημιουργήστε το καρτεσιανό γινόμενο των τουρνουά και των αποτελεσμάτων. 2. Φτιάξτε μια λίστα με όλα τα τουρνουά με τους νικητές τους. 3. Βρείτε τα τουρνουά που νίκησε ο Federer το 2014 ή το 2015.

15 Βιβλιογραφία/Αναφορές R. Elmasri, S.B. Navathe "Θεμελιώδεις Αρχές Συστημάτων ΒΔ - 4η Έκδοση" Κεφάλαια 8 και 9. R. Ramakrishnan and J. Gehrke Database Management Systems (3 ed.). McGraw- Hill, Inc., New York, NY, USA. Κεφάλαια 5 JOIN. INTERSECT. EXCEPT. MINUS.

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστεί η πράξη της διαίρεσης. Στο κομμάτι των ασκήσεων θα γίνει συνολική επισκόπηση ερωτημάτων που εμπλέκουν πράξεις συνόλων.

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

Κεφάλαιο 9 Συναθροίσεις

Κεφάλαιο 9 Συναθροίσεις Κεφάλαιο 9 Συναθροίσεις Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστούν ερωτήματα συνάθροισης χρησιμοποιώντας τις βασικές συναρτήσεις MAX, MIN, AVG, SUM και COUNT. Θα παρουσιαστεί η χρήση της ομαδοποίησης εγγραφών

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

Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων

Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν οι εντολές UPDATE και DELETE για ενημέρωση και διαγραφή εγγραφών σε έναν ή περισσότερους πίνακες.

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

Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα

Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθεί η χρήση εμφωλευμένων ερωτημάτων ως πίνακες στο FROM και ως τιμές ή σύνολα εγγραφών στο WHERE. Προαπαιτούμενη γνώση Προαπαιτούμενα

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

Κεφάλαιο 7 Η Πράξη της Συνένωσης

Κεφάλαιο 7 Η Πράξη της Συνένωσης Κεφάλαιο 7 Η Πράξη της Συνένωσης Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθεί η χρήση εσωτερικών και εξωτερικών συνενώσεων στην απάντηση ερωτημάτων που συνδυάζουν πολλαπλούς πίνακες. Προαπαιτούμενη γνώση

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

Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL)

Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL) Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL) Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία του Data Definition Language (DDL). Πιο συγκεκριμένα θα παρουσιασθεί ο τρόπος δημιουργίας

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Σύνθετα SQL queries

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

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

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1) Ασάφεια και Πλήρη Ονόματα Βάσεις Δεδομένων Σύνθετα SQL queries Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Δεύτερο 1 Ονόματα Πεδίων: Στην SQL, τα ονόματα των πεδίων (γνωρισμάτων) σε κάθε σχέση είναι

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

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

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

Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος

Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθεί η βασική δομή SQL ερωτήματος: SELECT..FROM..WHERE. Θα παρουσιαστούν οι βασικοί τελεστές σύγκρισης και οι λογικές πράξεις

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

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

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

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

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke SQL: Αιτήματα Κεφάλαιο 5 Database Management Systems, R. Ramakrishnan and J. Gehrke Στιγμιότυπα Στιγμιότυπα των σχέσεων Sailors Reserves και Boats. Αν στο κλειδί της σχέσης Reserved δε συμμετείχε το γνώρισμα

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

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

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

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

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

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

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

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

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

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

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

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

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

Υποερωτήματα SQL Παραδείγματα και εφαρμογές από τη βάση δεδομένων company Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 55 Περιεχόμενα 1 Απλά υποερωτήματα

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

Διάλεξη 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,

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

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT. Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 88 Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της

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

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103 Περιεχόμενα 1 Γενικά για την αποθήκευση

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

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

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

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

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη MySQL (3) ER Σχεσιακό Create Tables 1/4 CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5)

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

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

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

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

Σχεδίαση Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

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

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

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

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

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

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Καθ.: Νίκος Τσαπατσούλης ΥΠΟΔΕΙΓΜΑ

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

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη 1 SQL(DML) - Query Example 1 Query:1 Βρείτε τα ονόματα των έργων που δεν αφορούν το τμήμα research

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

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

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

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

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

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

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

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

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

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

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP. SQL: Ερωτήματα ομαδοποίησης και συνάθροισης GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2016 1 / 56 Περιεχόμενα 1 Εισαγωγή, γενικές

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

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

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ενημέρωση βάσης δεδομένων με τις εντολές INSERT, DELETE, UPDATE Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

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

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

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

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 6: SQL (Συζεύξεις, Εμφώλευση, Ομαδοποίηση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 3 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων επιλογής, προβολής και απλών συνδέσεων σε δύο ή περισσότερες

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

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

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

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

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

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

Ερωτήματα SQL με σύζευξη πινάκων ΜΗ ΕΙΝΑΙ ΒΑΣΙΛΙΚΗΝ ΑΤΡΑΠΟΝ ΕΠΙ ΓΕΩΜΕΤΡΙΑΝ Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 30 Σκοπός του μαθήματος Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 5 21/02/2012

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 5 21/02/2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 5 21/02/2012

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

1 / 97

1 / 97 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 97 Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων

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

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

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

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

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

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

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

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

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

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

1 / 150

1 / 150 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 150 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο και θ σύζευξη 3 Φυσική σύζευξη

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

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

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

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

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Παύλος Εφραιμίδης Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός ΣτομάθημαθαπούμεγιαΣχεσιακή Άλγεβρα Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1 Βάσεις Δεδομένων

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

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

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

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

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

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

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

1 / 87

1 / 87 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2016 1 / 87 Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 4 7/02/2012

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

1 / 105

1 / 105 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 105 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

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

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

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

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Προσοχή είτε αυτά που ακολουθούν ως παράδειγμα Μην τα ακολουθείτε τυφλά ως «μαγική συνταγή» 2 : Μετατροπή Μοντέλου ΟΣ σε Σχεσιακό

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED Χέρι χέρι με τον Καρατζαφέρη Τα μάθατε καλέ κυρία? 1. Ψευδώνυμα Πινάκων 2. Ένωση Πίνακα με τον εαυτό του 3. Ομαδοποίηση 4.

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Σχεσιακό Μοντέλο Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Εισαγωγή Το σχεσιακό μοντέλο δεδομένων (relational data model) προτάθηκε από τον E. F. Codd το 1970 Aποτελεί ένα μέσο λογικής δόμησης

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

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία όσον αφορά τις stored procedures και τη χρήση ευρετηρίων. Προαπαιτούμενη γνώση H ύλη

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Σύνοψη Σ αυτό το κεφάλαιο θα περιγράψουμε τη δημιουργία φορμών, προκειμένου να εισάγουμε δεδομένα και να εμφανίζουμε στοιχεία από τους πίνακες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ Εισαγωγή στη MySQL Νικόλαος Ζ. Ζάχαρης Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης

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

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Προσοχή είτε αυτά που ακολουθούν ως παράδειγμα Μην τα ακολουθείτε τυφλά ως «μαγική συνταγή» 1 2 Οντότητες Για κάθε τύπο οντοτήτων και για κάθε τύπο συσχετίσεων δημιουργούμε

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

SQL Data Manipulation Language

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 6: Structured Query Language (SQL) Μια γλώσσα Βάσεων

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 09: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός (Relational Algebra/Calculus) Ι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Σχεσιακή Πληρότητα Σχεσιακή Άλγεβρα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL Αντώνης Χρυσόπουλος Χριστίνα Αυδίκου Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL MySQL For Pros Διαλέχτε, καλέ κυρία, Διαλέχτε 1. Ταξινόμηση 2. Περιορισμοί 3. Τελεστές LIKE, IN, BETWEEN

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

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Προσοχή είτε αυτά που ακολουθούν ως παράδειγμα Μην τα ακολουθείτε τυφλά ως «μαγική συνταγή» 1 2 Οντότητες Για κάθε τύπο οντοτήτων και για κάθε τύπο συσχετίσεων δημιουργούμε

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

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

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

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

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

Βάσεις δεδομένων. (4 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (4 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Επέκταση του μοντέλου ΟΣ Κληρονομικότητα Εξειδίκευση/Γενίκευση Περιορισμοί Ιεραρχίες και πλέγματα Συνάθροιση Συνέχεια στο σχεσιακό

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

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

DISTINCT, LIKE, NULL, AND, OR, BETWEEN Περισσότερα για τα απλά ερωτήματα SQL DISTINCT, LIKE, NULL, AND, OR, BETWEEN Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 66 Σκοπός του μαθήματος Αποκλείσετε διπλοεγγραφές από

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

Κεφάλαιο 4 Εισαγωγή Εγγραφών και Τροποποίηση Πινάκων

Κεφάλαιο 4 Εισαγωγή Εγγραφών και Τροποποίηση Πινάκων Κεφάλαιο 4 Εισαγωγή Εγγραφών και Τροποποίηση Πινάκων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν επιπλέον εντολές του DDL που έχουν να κάνουν με εισαγωγή εγγραφών, επισκόπηση και τροποποίηση πινάκων. Προαπαιτούμενη

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα: 11Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Δρ. ΠΑΝΤΕΛΗΣ ΑΓΓΕΛΙΔΗΣ Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

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

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

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

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

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

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

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

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

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

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΛΥΣΕΙΣ Ι. Βασιλείου -----------------------------------------------------------------------------------------------------

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ερωτήματα επιλογής SQL, σύζευξη, διάζευξη, NULL, ταίριασμα κειμένου Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

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

Πληροφοριακά Συστήµατα

Πληροφοριακά Συστήµατα Nell Dale John Lewis Chapter 12 Πληροφοριακά Συστήµατα Στόχοι Ενότητας Η κατανόηση της έννοιας «Πληροφοριακό Σύστηµα» Επεξήγηση της οργάνωσης λογιστικών φύλλων (spreadsheets) Επεξήγηση της ανάλυσης δεδοµένων

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

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

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

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

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων

Μοντέλο Οντοτήτων-Συσχετίσεων Μοντέλο Οντοτήτων-Συσχετίσεων 1 Εισαγωγή Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα 1. Συλλογή και Ανάλυση Απαιτήσεων (requirement analysis) Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα

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

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

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

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

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

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

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