Ερωτήματα επιλογής με σύζευξη πινάκων

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

Download "Ερωτήματα επιλογής με σύζευξη πινάκων"

Transcript

1 ΚΕΦΑΛΑΙΟ 13 Ερωτήματα επιλογής με σύζευξη πινάκων Το κεφάλαιο αυτό σας εισάγει στον πραγματικό κόσμο των σχεσιακών βάσεων δεδομένων. Τα ερωτήματα που θα συναντήσετε έχουν πολλούς πίνακες στον όρο FROM, οι οποίοι μπορούν να συνδέονται με πολλούς διαφορετικούς τρόπους. Ο βασικότερος τρόπος, βέβαια, είναι η εσωτερική ή φυσική σύζευξη. Όλες οι γνώσεις που αποκτήσατε στα προηγούμενα κεφάλαια ισχύουν πλήρως, ανεξάρτητα από το γεγονός της χρησιμοποίησης ενός ή περισσότερων πινάκων στον όρο FROM. Αν κατανοήσετε αυτό το κεφάλαιο, θα μπορείτε: Να εκτελείτε ερωτήματα ανάκτησης (επιλογής) δεδομένων από πολλούς πίνακες. Να διακρίνετε τους τύπους συζεύξεων, όπως φυσική, εσωτερική, εξωτερική, ή θ σύζευξη. Να εφαρμόζετε κατάλληλες συνδέσεις (JOIN) στους πίνακες ανάλογα με το ερώτημα που τίθεται κάθε φορά. Να εκτελείτε ερωτήματα που αντιστοιχούν στις σχεσιακές πράξεις καρτεσιανού γινομένου, σύζευξης, τομής, διαφοράς, και διαίρεσης. Να γνωρίζετε τις διαφορές και τις ομοιότητες ανάμεσα στους διαφορετικούς τύπους συνδέσεων Καρτεσιανό γινόμενο και σύζευξη Ήρθε λοιπόν η στιγμή να μιλήσουμε για τη χρήση πολλών πινάκων στα ερωτήματα επιλογής δεδομένων. Καταρχάς, ας ξεκαθαρίσουμε κάτι πολύ βασικό: ό,τι ισχύει για τα ε- ρωτήματα με έναν πίνακα, ισχύει και για τα ερωτήματα με περισσότερους πίνακες. Το μόνο που αλλάζει είναι το γεγονός ότι ο όρος FROM ακολουθείται από περισσότερους πίνακες, έτσι υπάρχουν περισσότερα διαθέσιμα πεδία στις άλλες φράσεις, π.χ. στον όρο 365

2 366 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων SELECT. Επομένως, η πιο απλή εντολή SQL που μπορούμε να γράψουμε είναι να τοποθετήσουμε απλώς δύο ονόματα πινάκων μετά τον όρο FROM, τα οποία (όπως και τα πεδία μετά τη φράση SELECT) χωρίζονται με κόμματα. Για παράδειγμα, για να βρούμε όλες τις λεπτομέρειες των τμημάτων (departments) και των υπάλληλων τους (employees) χρησιμοποιούμε την εντολή SQL: departments employees 2 FROM departments, employees; 3 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Νικηφόρος Διαμαντίδης Οικον./Λογ Νικηφόρος Διαμαντίδης Επιστημ./Μηχ Νικηφόρος Διαμαντίδης Εξωτ. συνερ Νικηφόρος Διαμαντίδης Γραμματείας Νικηφόρος Διαμαντίδης Μάνατζ./Πωλ Νικηφόρος Διαμαντίδης Διοίκ./Επιβ Μαρία Αθανασίου Οικον./Λογ Μαρία Αθανασίου Επιστημ./Μηχ Μαρία Αθανασίου Εξωτ. συνερ Μαρία Αθανασίου Γραμματείας Μαρία Αθανασίου Μάνατζ./Πωλ Μαρία Αθανασίου Διοίκ./Επιβ Μαρία Αλεβιζάτου Οικον./Λογ Μαρία Αλεβιζάτου rows in set (0.00 sec) Αυτό είναι ένα ερώτημα ανάκτησης δεδομένων από τους δύο πίνακες departments και employees. Επιστρέφονται όλες οι εγγραφές των δύο πινάκων, χωρίς να γίνει κανένας έλεγχος για το ταίριασμα εγγραφών. Το αποτέλεσμα είναι γνωστό ως καρτεσιανό γινόμενο των πινάκων employees και departments, και επιστρέφει στο αποτέλεσμα όλους τους πιθανούς συνδυασμούς εγγραφών μεταξύ των δύο πινάκων: κάθε εγγραφή του ενός πίνακα εμφανίζεται τόσες φορές όσες είναι και οι εγγραφές του άλλου πίνακα. Για παράδειγμα, παρατηρήστε ότι ο κ. Διαμαντίδης εμφανίζεται 6 φορές στο αποτέλεσμα, μία για κάθε ξεχωριστό τμήμα. Το ίδιο συμβαίνει και για την κ. Αθανασίου, όπως και για όλους τους άλλους υπαλλήλους: φαίνονται να εργάζονται σε όλα τα τμήματα! Επίσης, αν το δει κανείς από τη σκοπιά του τμήματος, θα διαπιστώσει κάτι αντίστοιχο: σε κάθε τμήμα φαίνεται να απασχολούνται όλοι οι υπάλληλοι!

3 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 367 Το καρτεσιανό γινόμενο παράγει όλους τους πιθανούς συνδυασμούς. Με άλλα λόγια, αν οι δύο πίνακες έχουν N και M εγγραφές αντίστοιχα, το αποτέλεσμα του ερωτήματος έχει N M εγγραφές. Για παράδειγμα, ο πίνακας departments έχει 6 εγγραφές, ο πίνακας employees έχει 30 εγγραφές, επομένως το αποτέλεσμα του καρτεσιανού γινομένου έχει 180 εγγραφές. Το αποτέλεσμα αυτό, ως τελικό αποτέλεσμα και όχι ως πιθανό ενδιάμεσο αποτέλεσμα, φυσιολογικά δεν θα πρέπει να σας ικανοποιεί. Το αποτέλεσμα περιέχει τόσο το πεδίο employees.depid, όσο και το πεδίο departments. depid. Παρατηρήστε ότι δεν υπάρχει αντιστοιχία, παρά μόνο σε λίγες περιπτώσεις. Αυτό συμβαίνει επειδή υπάρχουν εγγραφές όπου ο κωδικός του τμήματος των υπαλλήλων από τον πίνακα employees δεν είναι ίσος με τον κωδικό του τμήματος από τον πίνακα departments. Είναι γνωστό όμως, από τη σχεδίαση της βάσης δεδομένων, ότι κάτι τέτοιο δεν ισχύει. Αυτό που συμβαίνει είναι ότι το κάθε τμήμα έχει πολλούς υπαλλήλους, αλλά ο κάθε υπάλληλος εργάζεται σε ένα μόνο τμήμα (συσχέτιση ένα προς πολλά). Όπως μάλλον έχετε ήδη καταλάβει, η «πραγματική» πληροφορία αντιστοιχεί σε εκείνες τις εγγραφές όπου ο κωδικός του τμήματος των υπαλλήλων από τον πίνακα employees ταυτίζεται με τον κωδικό του τμήματος από τον πίνακα departments. Πώς μπορούμε να ζητήσουμε να μη συμπεριληφθούν οι μη συσχετιζόμενες εγγραφές στο αποτέλεσμα; Ή, για να το πούμε με διαφορετικά λόγια, πώς είναι δυνατό να συμπεριλάβουμε στο αποτέλεσμα μόνο τις συσχετιζόμενες εγγραφές, και να αποκλείσουμε όλες τις άλλες; Η απάντηση είναι η χρήση του όρου WHERE. Για να απαντήσουμε λοιπόν στην ερώτηση εύρεσης όλων των λεπτομερειών από τους πίνακες employees και departments, σ departments.depid=employees.depid (departments employees) θα πρέπει να γράψουμε την εντολή SQL: 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 5 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Οικον./Λογ Μαρία Αλεβιζάτου Οικον./Λογ Δέσποινα Παπαδοπούλου rows in set (0.00 sec)

4 368 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων Το οποίο αντιστοιχεί στη σχεσιακή πράξη της σύζευξης: departments departments.depid = employees.depid employees Αυτό είναι το πρώτο σας ερώτημα που ανακτά δεδομένα από δύο πίνακες κάνοντας χρήση της σύζευξης θ. Έτσι λοιπόν, η τοποθέτηση δύο πινάκων στον όρο FROM, σε συνδυασμό με τον όρο WHERE, όπου τοποθετείται το κριτήριο συσχέτισης εγγραφών ανάμεσα στους δύο πίνακες, κάνει δυνατή την απαλοιφή των μη συσχετιζόμενων εγγραφών από το καρτεσιανό γινόμενο: το αποτέλεσμα είναι η σύζευξη των δύο πινάκων. Παρατηρήστε ότι οι τιμές στο πεδίο depid του πίνακα departments και του πίνακα employees (1 η και 7 η στήλη αντίστοιχα) ταυτίζονται. Στο προηγούμενο παράδειγμα βρήκαμε το τμήμα στο οποίο απασχολείται κάθε υπάλληλος με τη σύζευξη του πρωτεύοντος κλειδιού depid του πίνακα departments και του ξένου κλειδιού depid του πίνακα employees. Ο τρόπος αυτός, δηλαδή η σύζευξη ανάμεσα σε πρωτεύον και ξένο κλειδί, δεν είναι ο μοναδικός. Μπορούμε να κάνουμε σύζευξη με χρήση δύο ξένων κλειδιών, για παράδειγμα ανάμεσα στο πεδίο manager του πίνακα departments και το πεδίο empid του πίνακα employees 1 : σ departments.manager = employees.empid (departments employees) 2 FROM departments, employees 3 WHERE departments.manager = employees.empid; 5 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Οικον./Λογ Μαρία Αλεβιζάτου Επιστημ./Μηχ Κώστας Παπαδόπουλος Εξωτ. συνερ Βαγγέλης Χριστόπουλος NULL Γραμματείας Αδαμαντία Θεοτοκάτου Μάνατζ./Πωλ Θεόδωρος Αγγελίνας Παρατηρήστε τώρα πως το αποτέλεσμα έχει μόνο 6 εγγραφές, και πως οι τιμές των πεδίων departments.manager και employees.empid ταυτίζονται. 1 Το πεδίο departments.manager είναι ξένο κλειδί στον πίνακα departments, και αναφέρεται στο πεδίο employees.empid, δηλαδή δηλώνει τον κωδικό του υπαλλήλου που διευθύνει το τμήμα. Κάθε τμήμα έχει ένα μόνο διευθυντή, και κάθε υπάλληλος μπορεί να διευθύνει ένα (το πολύ) τμήμα. Επομένως πρόκειται για μια συσχέτιση με λόγο πληθικότητας 1:1.

5 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 369 Η σύζευξη αυτή μπορεί να γραφεί και ως εσωτερική σύζευξη: departments departments.manager=employees.empid employees με την εντολή SQL: 2 FROM departments INNER JOIN employees 3 ON departments.manager = employees.empid; 5 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Οικον./Λογ Μαρία Αλεβιζάτου Επιστημ./Μηχ Κώστας Παπαδόπουλος Εξωτ. συνερ Βαγγέλης Χριστόπουλος NULL Γραμματείας Αδαμαντία Θεοτοκάτου Μάνατζ./Πωλ Θεόδωρος Αγγελίνας Ψευδώνυμα πινάκων στον όρο FROM Όπως με τον τελεστή AS μπορούμε να αλλάξουμε το ονόματα των πεδίων στον όρο SELECT, έτσι μπορούμε να κάνουμε το ίδιο και στον όρο FROM: 1 SELECT e.empid, e.lastname, d.depname 2 FROM employees AS e, departments AS d 3 WHERE e.depid = d.depid; 5 empid lastname depname Αθανασίου Διοίκησης/Επίβλεψης Μαροπούλου Διοίκησης/Επίβλεψης Ρούσσης Διοίκησης/Επίβλεψης Αλεβιζάτου Οικονομoλόγων/Λογιστών Παπαδοπούλου Οικονομoλόγων/Λογιστών Αρβανιτάκης Οικονομoλόγων/Λογιστών Κρέσπα Οικονομoλόγων/Λογιστών Βλάσσης Επιστημόνων/Μηχανικών Μακρής Επιστημόνων/Μηχανικών Περρής Επιστημόνων/Μηχανικών Στον όρο FROM, σε αντίθεση με τον όρο SELECT, ή χρήση του τελεστή AS δεν είναι απαραίτητη (μπορεί να παραλειφθεί, οπότε υπονοείται):

6 370 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων 1 SELECT e.empid, e.lastname, d.depname 2 FROM employees e, departments d 3 WHERE e.depid = d.depid; Προσοχή, βέβαια, στα κόμματα! Ανάμεσα στο όνομα του πίνακα και στο ψευδώνυμό του δεν υπάρχει κόμμα. Ανάμεσα στους διαφορετικούς πίνακες που ακολουθούν τον όρο FROM υπάρχουν κόμματα. Υπενθυμίζουμε ότι ο τελεστής αλλαγής ονόματος της σχεσιακής άλγεβρας είναι ο ρ. Έ- τσι η προηγούμενη εντολή της SQL αντιστοιχεί στην παράσταση: Π e.firstname, e.lastname, d.depname (σ e.depid = d.depid (ρ e (employees) ρ d (departments))) Σύζευξη κατά το πρότυπο SQL1 ή SQL2 Κατά το πρότυπο SQL1, η σύζευξη ανάμεσα σε πίνακες γίνεται με τη χρήση του όρου WHERE: εκεί δηλώνουμε την παράσταση με βάση την οποία θα γίνει η σύζευξη. Συνήθως αυτή περιλαμβάνει μια συνθήκη ισότητας (ταύτισης) ανάμεσα σε τιμές πεδίων, οπότε και λέγεται ισοσύζευξη (equijoin). Για παράδειγμα, έστω η σύζευξη: σ departments.depid = employees.depid (departments employees η οποία στη SQL (πρότυπο SQL1) μπορεί να γραφτεί ως: 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; και λέγεται σύζευξη θ. Κατά το πρότυπο SQL2 2 χρησιμοποιείται διαφορετικός τρόπος σύνταξης και η (εσωτερική) σύζευξη γράφεται ολόκληρη στον όρο FROM: 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; που αντιστοιχεί βέβαια στην παράσταση: departments departments.depid = employees.depid employees Αυτό ονομάζεται εσωτερική σύζευξη και χρησιμοποιεί την ταύτιση (ισότητα) τιμών ανάμεσα στο πρωτεύον και το ξένο κλειδί. Γενικά, ο τρόπος σύνταξης με το πρότυπο SQL2 (εσωτερική σύζευξη) είναι πιο ευκρινής από το πρότυπο SQL1 (σύζευξη θ). Μπορείτε βέβαια να γράφετε τις συζεύξεις όπως θέλετε, συνιστάται όμως να ακολουθείτε το πρότυπο SQL2 με την εσωτερική σύζευξη. 2 Αυτό είναι που κατά κύριο λόγο χρησιμοποιείται σήμερα, η ANSI-SQL92 ή SQL2.

7 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 371 Στις περισσότερες περιπτώσεις, όπως και σε αυτή, η σύζευξη γίνεται με τη χρήση ενός πρωτεύοντος και ενός ξένου κλειδιού. Για παράδειγμα, στο προηγούμενο ερώτημα το πεδίο departments.depid είναι το πρωτεύον κλειδί του πίνακα departments, και το πεδίο employees.depid είναι το ξένο κλειδί του πίνακα employees. Ωστόσο, από την άποψη του συντακτικού της SQL, δεν υπάρχει κανένας τέτοιος περιορισμός. Μπορείτε να γράφετε παραστάσεις συζεύξεων με όποια πεδία θέλετε. Αν τα ονόματα των πεδίων είναι ίδια, όπως π.χ. depid, μπορείτε να γράψετε τη σύζευξη και ως: 2 FROM departments INNER JOIN employees using(depid); η οποία μπορεί να διαβαστεί ως «σύζευξη του πίνακα employees με τον πίνακα departments, με βάση το πεδίο depid». Με άλλα λόγια, θέλουμε να γίνει σύνδεση εκείνων των εγγραφών του πίνακα employees με εκείνες τις εγγραφές του πίνακα departments στις οποίες ταυτίζεται η τιμή του κοινού, στους δύο πίνακες, πεδίου depid. Αυτό είναι γνωστό στη σχεσιακή άλγεβρα ως εσωτερική σύζευξη. Τονίζουμε ότι αυτός ο τρόπος γραφής απαιτεί να είναι κοινό (το ίδιο) και στους δύο πίνακες το όνομα του πεδίου με βάση το οποίο γίνεται η σύζευξη. Παρόλο που το αποτέλεσμα, όσον αφορά τις εγγραφές, είναι το ίδιο και με τους τρεις τρόπους: 1. 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 2. 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 3. 2 FROM departments 3 INNER JOIN using(depid) ο τρίτος τρόπος διαφέρει από τους δύο πρώτους όσον αφορά το σχήμα του αποτελέσματος, δηλαδή τα πεδία που υπάρχουν στο αποτέλεσμα. Στις δύο πρώτες περιπτώσεις το κοινό πεδίο (depid) θα υπάρχει δύο φορές στο αποτέλεσμα: μία από τον πίνακα departments και μία από τον πίνακα employees. Αντιθέτως, με τον τρίτο τρόπο το πεδίο depid θα υπάρχει στο αποτέλεσμα μόνο μία φορά. Αυτό μας θυμίζει τη φυσική σύζευξη: departments employees

8 372 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων η οποία στη SQL μπορεί να γραφτεί ως: 2 FROM departments NATURAL JOIN employees; ιαφορές και ομοιότητες στη SQL ανάμεσα στην εσωτερική και τη φυσική σύζευξη Υπάρχει μια βασική διαφορά ανάμεσα στην εσωτερική σύζευξη: departments departments.depid = employees.depid employees 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 5 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Οικον./Λογ Μαρία Αλεβιζάτου Οικον./Λογ Δέσποινα Παπαδοπούλου rows in set (0.00 sec) και τη φυσική σύζευξη: departments employees 2 FROM departments NATURAL JOIN employees; 3 depid depname manager empid firstname lastname salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Οικον./Λογ Μαρία Αλεβιζάτου Οικον./Λογ Δέσποινα Παπαδοπούλου rows in set (0.00 sec)

9 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 373 πέρα βέβαια από το γεγονός πως στη φυσική σύζευξη υπονοείται και δεν χρειάζεται να δηλωθεί το πεδίο που χρησιμοποιείται για τη σύζευξη. Η βασική διαφορά συνίσταται στο γεγονός ότι, στο αποτέλεσμα της φυσικής σύζευξης, το κοινό πεδίο που χρησιμοποιείται για τη σύζευξη (εδώ το depid) εμφανίζεται στο αποτέλεσμα μόνο μία φορά, και όχι δύο όπως στην εσωτερική σύζευξη. Το κοινό πεδίο, εδώ το depid, με βάση το οποίο γίνεται η σύζευξη δύο πινάκων, εδώ των πινάκων departments και employees, εμφανίζεται στο αποτέλεσμα μόνο μία φορά όταν το ερώτημα γράφεται με τη φυσική σύζευξη. Υπενθυμίζουμε ότι, για να υπάρξει φυσική σύζευξη ανάμεσα σε δύο πίνακες, θα πρέπει να υπάρχει κοινό πεδίο ανάμεσα στους δύο πίνακες, δηλαδή ένα πεδίο με το ίδιο όνομα. Για παράδειγμα, αν το πεδίο depid του πίνακα departments ονομαζόταν κάπως αλλιώς, πχ depnu, τότε η φυσική σύζευξη: departments employees που αντιστοιχεί στην εντολή SQL: 2 FROM departments NATURAL JOIN employees; 3 depnu depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Νικηφόρος Διαμαντίδης Οικον./Λογ Νικηφόρος Διαμαντίδης Επιστημ./Μηχ Νικηφόρος Διαμαντίδης Εξωτ. συνερ Νικηφόρος Διαμαντίδης Γραμματείας Νικηφόρος Διαμαντίδης Μάνατζ./Πωλ Νικηφόρος Διαμαντίδης Διο15ίκ./Επιβ Μαρία Αθανασίου Οικον17./Λογ Μαρία Αθανασίου Επιστ19ημ./Μηχ Μαρία Αθανασίου Εξωτ.21 συνερ Μαρία Αθανασίου Γραμματείας Μαρία Αθανασίου Μάνατζ./Πωλ Μαρία Αθανασίου Διοίκ./Επιβ Μαρία Αλεβιζάτου Οικον./Λογ Μαρία Αλεβιζάτου rows in set (0.00 sec) δεν μπορεί να πραγματοποιηθεί. Η SQL θα επιστρέψει το καρτεσιανό γινόμενο, αντί για τη σύζευξη των πινάκων departments και employees. Το κοινό όνομα στα αντίστοιχα

10 37 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων πεδία των δύο πινάκων που συμμετέχουν στη σύζευξη είναι υποχρεωτική συνθήκη για να είναι δυνατή η φυσική σύζευξη. Βέβαια, αυτό που μπορεί να πραγματοποιηθεί, ανεξάρτητα από το όνομα των πεδίων, είναι η εσωτερική σύζευξη. Έτσι, αν ο πίνακας departments είχε το σχήμα departments (depnu, depname, manager), τότε η εσωτερική σύζευξη: departments departments.depnu = employees.depid employees που αντιστοιχεί στην εντολή SQL: 1 2 SELECT * 3 FROM departments, employees WHERE departments.depnum = employees.depid; 5 6 depnu depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Οικον./Λογ Μαρία Αλεβιζάτου Οικον./Λογ Δέσποινα Παπαδοπούλου rows in set (0.00 sec) λειτουργεί ακριβώς όπως πρέπει και επιστρέφει το σωστό αποτέλεσμα. Αυτή η δυνατότητα, δηλαδή η ευελιξία στη χρήση ονομάτων για τα πεδία που χρησιμοποιούνται στις συζεύξεις, έχει κάνει την εσωτερική σύζευξη πολύ δημοφιλή στους προγραμματιστές της SQL. Στην πράξη, χρησιμοποιείται σπάνια η φυσική σύζευξη σε εντολές SQL. Τόσο στη φυσική, όσο και στην εσωτερική σύζευξη, το πεδίο της σύζευξης μπορεί να προβληθεί στο αποτέλεσμα είτε από τον έναν πίνακα είτε από τον άλλον, με τα ίδια αποτελέσματα. Κάτι τέτοιο δεν ισχύει στις εξωτερικές συζεύξεις, όπως θα δούμε στην ενότητα 13.. Για παράδειγμα, το ερώτημα φυσικής σύζευξης: Π depid departments employees το οποίο αντιστοιχεί στην εντολή SQL: 1 SELECT depid 2 FROM departments NATURAL JOIN employees; 3 depid

11 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων rows in set (0.00 sec) και το ερώτημα εσωτερικής σύζευξης: Π departments.depid departments departments.depid = employees.depid employees το οποίο αντιστοιχεί στην εντολή SQL: 1 SELECT departments.depid 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 5 depid rows in set (0.00 sec) θα δώσουν ακριβώς το ίδιο αποτέλεσμα. Θα πρέπει να σημειωθεί ότι, στη σχεσιακή άλγεβρα, οι δύο παραστάσεις: Π departments.depid departments departments.depid = employees.depid employees Π employees.depid departments departments.depid = employees.depid employees είναι ισοδύναμες και θα έχουν το ίδιο αποτέλεσμα. Αυτό ισχύει και για την SQL, αφού η εντολή: 1 SELECT employees.depid 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 5 depid

12 376 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων rows in set (0.00 sec) θα επιστρέψει το ίδιο αποτέλεσμα με πριν. Με άλλα λόγια, στο ερώτημα εσωτερικής σύζευξης δεν έχει σημασία ποιο από τα δύο πεδία θα επιλέξουμε: είτε το ένα είτε το άλλο θα δώσουν το ίδιο αποτέλεσμα. Υπάρχει επίσης διαφοροποίηση στα ερωτήματα περιορισμού. Για παράδειγμα, το ερώτημα φυσικής σύζευξης «να βρεθούν οι λεπτομέρειες τμημάτων και υπάλληλων για το τμήμα με κωδικό 1»: σ depid=1 (departments employees) το οποίο αντιστοιχεί στην εντολή SQL: 2 FROM departments NATURAL JOIN employees 3 WHERE depid = 1; 5 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης μπορεί να διατυπωθεί στη SQL χωρίς να χρειάζεται να προσδιοριστεί ο πίνακας στον οποίο ανήκει το πεδίο empid. Κάτι τέτοιο δεν μπορεί να γίνει στην εσωτερική σύζευξη: σ depid=1 (departments departments.depid=employees.depid employees) η οποία είναι ορθότερο να γραφτεί ως: σ departments.depid=1 (departments departments.depid=employees.depid employees) που αντιστοιχεί στην εντολή SQL: 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid WHERE departments.depid = 1; 5 6 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης

13 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 377 είτε να γραφτεί ως: σ employees. depid=1 (departments departments.depid=employees.depid employees) που αντιστοιχεί στην εντολή SQL: 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid WHERE employees.depid = 1; 5 6 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Είναι εύκολο να γίνει αντιληπτό πως οι δύο τρόποι εσωτερικής σύζευξης είναι ισοδύναμοι και οι αντίστοιχες εντολές SQL θα επιστρέψουν ακριβώς το ίδιο αποτέλεσμα Ερωτήματα σε πίνακες με συσχέτιση ένα προς πολλά Στο σχεσιακό μοντέλο, δύο πίνακες συσχετίζονται με πληθικότητα ένα προς πολλά μέσω ενός ξένου κλειδιού: στο παράδειγμά μας, ο κωδικός τμήματος από τον πίνακα departments τοποθετείται στον πίνακα employees ως ξένο κλειδί. Έτσι ξέρουμε πως, ό- ταν λέμε ότι ο υπάλληλος με κωδικό 780 εργάζεται στο τμήμα με κωδικό 5 ο οποίος α- ντιστοιχεί (μέσω του πίνακα departments) στο τμήμα με όνομα «Γραμματεία», εννοούμε ότι ο υπάλληλος αυτός εργάζεται στη Γραμματεία και όχι κάπου αλλού! Αυτό προκύπτει από τη δήλωση του πεδίου depid ως ξένου κλειδιού που προέρχεται από τον πίνακα departments. Επειδή ένα τμήμα μπορεί (σύμφωνα με τη σχεδίαση της βάσης δεδομένων) να έχει πολλούς υπαλλήλους αλλά ο κάθε υπάλληλος εργάζεται σε ένα μόνο τμήμα, το σχεσιακό μοντέλο υποδεικνύει ως λύση στην παραπάνω απαίτηση την τοποθέτηση ξένου κλειδιού στον πίνακα employees, το οποίο είναι το πρωτεύον κλειδί του πίνακα departments. Το ότι καμία εγγραφή στον πίνακα employees δεν μπορεί να έχει στο πεδίο depid τιμή που δεν υπάρχει στο πεδίο depid του πίνακα departments είναι γνωστό ως κανόνας ακεραιότητας των αναφορών. Τα παραπάνω μας δείχνουν ότι στη σύζευξη ανάμεσα σε δύο πίνακες πρέπει, εκτός από το να γράφουμε τους δύο πίνακες μετά τον όρο FROM, να συμπληρώνουμε σωστά τον τρόπο σύζευξης. Αυτό που έχουμε δει μέχρι στιγμής ονομάζεται εσωτερική σύζευξη ή ισοσύζευξη, επειδή χρησιμοποιεί τις ταυτιζόμενες τιμές ανάμεσα σε δύο πεδία δύο δια-

14 378 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων φορετικών πινάκων για να σχηματίσει το αποτέλεσμα. Αυτή είναι και η πλέον συνηθισμένη περίπτωση, αλλά βέβαια δεν είναι και η μοναδική. Αργότερα θα μάθουμε και άλλες συζεύξεις και υπάρχουν αρκετές τέτοιες! Όπως έχει ήδη αναφερθεί, όλα όσα ξέρετε για τα ερωτήματα με έναν πίνακα ισχύουν και εδώ. Η μόνη προσοχή που πρέπει να δώσετε είναι στην περίπτωση πεδίων με ίδιο όνομα και στους δύο πίνακες, οπότε μπορεί να προκύψει σύγχυση. Για το λόγο αυτόν, καθώς και για άλλες παρόμοιες περιπτώσεις όπου μπορεί να προκληθεί σύγχυση ως προς τα ονόματα των πεδίων, η SQL υποστηρίζει τη σύνταξη πίνακας.πεδίο. Με τον τρόπο αυτόν είναι δυνατό να δηλώσουμε με ακρίβεια και σαφήνεια το κάθε συγκεκριμένο πεδίο, σε οποιονδήποτε πίνακα και αν ανήκει το συγκεκριμένο πεδίο. Ο τρόπος αυτός μπορεί να ακολουθείται πάντα για λόγους ευκρίνειας, ακόμα και αν δεν υπάρχει κίνδυνος να προκληθεί σύγχυση. Έτσι, για να βρούμε τον κωδικό και το επώνυμο όλων των υπαλλήλων, καθώς και το όνομα του τμήματος στο οποίο εργάζονται, Π empid, lastname, depname (departments departments.depid=employees.depid employees) θα γράψουμε την εντολή SQL: 1 SELECT employees.empid, employees.lastname, departments.depname 2 FROM employees INNER JOIN departments 3 ON employees.depid = departments.depid; 5 empid lastname depname Αθανασίου Διοίκησης/Επίβλεψης Μαροπούλου Διοίκησης/Επίβλεψης Ρούσσης Διοίκησης/Επίβλεψης Αλεβιζάτου Οικονομoλόγων/Λογιστών Παπαδοπούλου Οικονομoλόγων/Λογιστών rows in set (0.00 sec) ή ισοδύναμα: Π empid, lastname, depname (σ departments.depid=employees.depid (departments employees)) 1 SELECT employees.empid, employees.lastname, departments.depname 2 FROM employees, departments 3 WHERE employees.depid = departments.depid; 5 empid lastname depname Αθανασίου Διοίκησης/Επίβλεψης

15 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων Μαροπούλου Διοίκησης/Επίβλεψης Ρούσσης Διοίκησης/Επίβλεψης Αλεβιζάτου Οικονομoλόγων/Λογιστών Παπαδοπούλου Οικονομoλόγων/Λογιστών rows in set (0.00 sec) Το κοινό πεδίο depid, με βάση το οποίο γίνεται η σύζευξη, δεν εμφανίζεται στο αποτέλεσμα, καθώς δεν υπάρχει στη λίστα πεδίων που ακολουθεί τον όρο SELECT. Δεν είναι καθόλου απαραίτητο να συμβαίνει κάτι τέτοιο. Ο χρήστης έχει το δικαίωμα το τοποθετήσει όποια και όσα πεδία θέλει μετά τον όρο SELECT, αρκεί τα πεδία να είναι διαθέσιμα από τους πίνακες που υπάρχουν στον όρο FROM Πολλαπλότητα εγγραφών του γονικού πίνακα σε ερώτημα σύζευξης 1:Ν Στο προηγούμενο ερώτημα, παρατηρήστε ότι το όνομα του τμήματος εμφανίζεται πολλές φορές. Το ίδιο θα συνέβαινε και με τον κωδικό του τμήματος, αν υπάρχει η ανάλογη επιλογή στον όρο SELECT. Πολλοί ρωτούν στο σημείο αυτό γιατί συμβαίνει κάτι τέτοιο, γιατί δηλαδή πεδία που έχουν μοναδικές τιμές, όπως το depname ή ακόμα το depid του πίνακα departments, χάνουν αυτή την ιδιότητα και εμφανίζονται να παίρνουν πολλές φορές την ίδια τιμή, όπως π.χ. το πεδίο depid του πίνακα employees. Στο σημείο αυτό, θα πρέπει να γίνει κατανοητό, ότι η σύζευξη του πίνακα departments (με πρωτεύον κλειδί departments.depid) με τον πίνακα employees (με ξένο κλειδί employees.depid) έχει αποτέλεσμα την απώλεια της ιδιότητας της μοναδικότητας για το πεδίο departments.depid. Το πεδίο αυτό έχει μοναδικές τιμές, όπως έχει σχεδιαστεί να έχει, σε όλα τα ερωτήματα όπου ο όρος FROM περιέχει μόνο τον πίνακα departments. Για παράδειγμα, το ερώτημα: Π empid, lastname, depname (σ depid = 1 (departments)) που αντιστοιχεί στην εντολή SQL: 2 FROM departments 3 WHERE depid = 1; 5 depid depname manager Διοίκησης/Επίβλεψης 109 θα επιστρέψει μόνο μία φορά το τμήμα με κωδικό 1, όπως βέβαια είναι το σωστό.

16 380 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων Ωστόσο, το ερώτημα: Π d.* (σ d.depid = 1 (ρ d (departments) d.depid=e.depid ρ e (employees))) που αντιστοιχεί στην εντολή SQL: 1 SELECT d.* 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid 3 WHERE d.depid = 1; 5 depid depname manager Διοίκησης/Επίβλεψης Διοίκησης/Επίβλεψης Διοίκησης/Επίβλεψης 109 θα επιστρέψει 3 εγγραφές για το τμήμα με κωδικό 1. Αυτό συμβαίνει επειδή στον πίνακα employees υπάρχουν 3 εγγραφές με depid = 1, οπότε το αποτέλεσμα μετά τη σύζευξη θα έχει 3 εγγραφές. Προφανώς η ιδιότητα της μοναδικότητας κάθε εγγραφής του πίνακα departments χάθηκε στο αποτέλεσμα του τελευταίου ερωτήματος SQL. Συνεχίζει βέβαια να υπάρχει στον πίνακα departments όμως το ερώτημα δεν ζητάει δεδομένα από τον πίνακα departments, αλλά από τον πίνακα που προκύπτει μετά τη σύζευξη του πίνακα departments με τον πίνακα employees. Αυτό είναι που κάνει τη διαφορά! Σε τέτοιες περιπτώσεις, όταν δηλαδή ζητούνται δεδομένα στη φράση SELECT από έναν πίνακα ενώ στη φράση FROM υπάρχουν πολλοί πίνακες, τότε πιθανώς να χρειάζεται o προσδιορισμός DISTINCT: 1 SELECT DISTINCT d.* 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid 3 WHERE d.depid = 1; 5 depid depname manager Διοίκησης/Επίβλεψης 109 Πότε χρειάζεται η προσθήκη του όρου DISTINCT; Όταν σε μια συσχέτιση ένα προς πολλά, όπως στο προηγούμενο παράδειγμα, ο όρος SELECT ακολουθείται μόνο από πεδία του πίνακα που φέρει το πρωτεύον κλειδί της συσχέτισης (εδώ το πεδίο departments.depid είναι πρωτεύον κλειδί, ενώ το πεδίο employees.depid έχει το ξένο κλειδί της συσχέτισης), τότε ο όρος SELECT πρέπει να συνοδεύεται από τον προσδιορισμό DISTINCT. Αν υπάρχει έστω και ένα πεδίο από τον πίνακα employees μετά τον όρο SELECT, τότε ο προσδιορισμός DISTINCT είναι περιττός. Για παράδειγμα, το επόμενο ερώτημα:

17 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 381 Π e.lastname, e.depname, e.salary (σ e.salary > 1500 (ρ d (departments) d.depid = e.depid ρ e (employees))) που αντιστοιχεί στην εντολή SQL: 1 SELECT DISTINCT e.lastname, d.depname, e.salary 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid 3 WHERE e.salary > 1500; 5 lastname depname salary Παπαδοπούλου Οικονομoλόγων/Λογιστών Θεοτοκάτου Γραμματείας Αθανασίου Διοίκησης/Επίβλεψης Αγγελίνας Μάνατζμεντ/Πωλήσεων Μαροπούλου Διοίκησης/Επίβλεψης Ρούσσης Διοίκησης/Επίβλεψης θα επιστρέψει το ίδιο αποτέλεσμα και χωρίς τον όρο DISTINCT: 1 SELECT e.lastname, d.depname, e.salary 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid 3 WHERE e.salary > 1500; 5 lastname depname salary Παπαδοπούλου Οικονομoλόγων/Λογιστών Θεοτοκάτου Γραμματείας Αθανασίου Διοίκησης/Επίβλεψης Αγγελίνας Μάνατζμεντ/Πωλήσεων Μαροπούλου Διοίκησης/Επίβλεψης Ρούσσης Διοίκησης/Επίβλεψης Το δενδροδιάγραμμα του σχήματος 13.1 απεικονίζει με συνοπτικό τρόπο την εσωτερική σύζευξη ανάμεσα στους πίνακες departments και employees. Για οικονομία χώρου απεικονίζεται μόνο η συμμετοχή των τμημάτων 1 και 2, και επίσης δίνονται μόνο τα πρωτεύοντα κλειδιά των δύο πινάκων, depid και empid αντίστοιχα. Το τμήμα με κωδικό 1 του πίνακα departments συνδέεται με τους υπαλλήλους του πίνακα employees για τους οποίους ισχύει employees.depid = 1. Αντίστοιχα, το τμήμα με κωδικό 2 του πίνακα departments συνδέεται με τους υπαλλήλους του πίνακα employees για τους οποίους ι- σχύει employees.depid = 2 Το ίδιο επαναλαμβάνεται με όλα τα υπόλοιπα τμήματα, που για οικονομία χώρου δεν απεικονίζονται στο σχήμα 13.1.

18 382 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων departments employees depid,empid (1, 109) 502 (1, 502) 901 (1, 901) 153 (2, 153) 23 (2, 23) 19 (2, 19) 503 (2, 503) Σχήμα 13.1 ενδροδιάγραμμα της εσωτερικής σύζευξης ανάμεσα στον πίνακα departments και τον πίνακα employees. Τα στοιχεία του πίνακα departments θα εμφανιστούν περισσότερες από μία φορά στο αποτέλεσμα του ερωτήματος σύζευξης ανάμεσα στους πίνακες departments και employees εφόσον σε κάθε τμήμα απασχολούνται πολλοί υπάλληλοι. Για παράδειγμα, όπως φαίνεται στο σχήμα 13.1, ο κωδικός του τμήματος 1 εμφανίζεται τρεις φορές, επειδή υπάρχουν 3 υπάλληλοι που απασχολούνται στο τμήμα 1. Ακριβώς όπως ο κωδικός του τμήματος εμφανίζεται πολλές φορές στον πίνακα employees (employees.depid ξένο κλειδί που αναπαριστά τη συσχέτιση με λόγο πληθικότητας 1:Ν), έτσι και ο κωδικός του τμήματος (πρωτεύον κλειδί departments.depid) θα εμφανίζεται πολλές φορές στο αποτέλεσμα του ερωτήματος εσωτερικής σύζευξης ανάμεσα στους πίνακες departments και employees. Μαζί με τον κωδικό του τμήματος θα εμφανίζονται βέβαια στο αποτέλεσμα όλα τα υπόλοιπα πεδία του πίνακα departments. Η πολλαπλή εμφάνιση των στοιχείων του πίνακα departments στο αποτέλεσμα του ερωτήματος εσωτερικής σύζευξης ανάμεσα στους πίνακες departments και employees δεν σημαίνει πως υπάρχουν πολλά τμήματα με τον ίδιο κωδικό, το ίδιο όνομα, και τον ίδιο διευθυντή. Όλα αυτά τα στοιχεία αποθηκεύονται μία μόνο φορά στη βάση δεδομένων, σε μία εγγραφή του πίνακα departments για κάθε ξεχωριστό τμήμα. Μετά (όχι πριν) την εσωτερική σύζευξη ανάμεσα στους πίνακες departments και employees κάθε εγγραφή του πίνακα departments υπάρχει στο αποτέλεσμα τόσες φορές, όσες φορές ταυτίζεται η τιμή του ξένου κλειδιού employees.depid με εκείνη του departments.depid Προβολή πρωτεύοντος και ξένου κλειδιού σε ερώτημα εσωτερική σύζευξης Ας επεκτείνουμε λίγο την συζήτηση της προηγούμενης ενότητας. Θα εξετάσουμε την περίπτωση προβολής των πεδίων των πινάκων (γνωρίσματα σχέσεων) που χρησιμοποιούνται σε εσωτερική σύζευξη μιας συσχέτισης 1:Ν.

19 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 383 Για παράδειγμα, να βρεθεί ο κωδικός του τμήματος μετά από τη σύζευξη τμημάτων και υπαλλήλων: Π d.depid (ρ d (departments) d.depid = e.depid ρ e (employees)) που αντιστοιχεί στην εντολή SQL: 1 SELECT d.depid 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid; 3 depid rows in set (0.00 sec) Παρατηρήστε πως ο κωδικός τμήματος, που αντιστοιχεί στο πεδίο departments.depid, εμφανίζεται με πολλαπλές τιμές, όπως ακριβώς και το ξένο κλειδί employees.depid: Π depid (employees) που αντιστοιχεί στην εντολή SQL: 1 SELECT depid 2 FROM employees; 3 depid rows in set (0.00 sec) όπως έχουμε δει ήδη. Δηλαδή, λόγω της σύζευξης, το πρωτεύον κλειδί του πίνακα departments χάνει τη μοναδικότητά του, και κάθε εγγραφή εμφανίζεται τόσες φορές στο αποτέλεσμα του ερωτήματος όσες φορές υπάρχει η αντιστοίχιση ανάμεσα στα πεδία της σύζευξης departments.depid = employees.depid. Αυτό συμβαίνει διότι στο αποτέλεσμα

20 38 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων του ερωτήματος της σύζευξης ανάμεσα στους πίνακες departments και employees το πεδίο departments.depid δεν είναι πρωτεύον κλειδί, και αυτό ισχύει κάθε φορά που μέσω μιας συσχέτισης 1:Ν έχουμε σύζευξη ανάμεσα σε δύο πίνακες με τη χρήση του ξένου κλειδιού. Όπως ακριβώς έχουμε δει να συμβαίνει με το ξένο κλειδί employees.depid στην ενότητα , έτσι και εδώ η χρήση το όρου DISTINCT αποκαθιστά την εμφάνιση του κωδικού των τμημάτων μόνο μία φορά για κάθε ξεχωριστή τιμή: 1 SELECT DISTINCT d.depid 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid; 3 depid Ακριβώς το ίδιο αποτέλεσμα θα παίρναμε με το ερώτημα: Π e.depid (ρ d (departments) d.depid = e.depid ρe (employees)) που αντιστοιχεί στην εντολή SQL: 1 SELECT DISTINCT e.depid 2 FROM departments d INNER JOIN employees e 3 ON d.depid = e.depid; 5 depid Ας δούμε τώρα την προβολή του πεδίου empid, που είναι πρωτεύον κλειδί του πίνακα employees: Π employees.empid (departments departments.depid = employees.depid employees))

21 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων 385 το ερώτημα αυτό αντιστοιχεί στην εντολή SQL: 1 SELECT e.empid 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid; 3 empid rows in set (0.00 sec) Εδώ δεν παρατηρούνται διπλοεγγραφές, όπως στην προηγούμενη περίπτωση προβολής του πεδίου departments.depid, πρωτεύοντος κλειδιού του πίνακα departments. Φυσικά, η προσθήκη του όρο DISTINCT δεν θα έχει καμία απολύτως επίδραση στο αποτέλεσμα: 1 SELECT DISTINCT e.empid 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid; 3 empid rows in set (0.00 sec) Με άλλα λόγια, το πρωτεύον κλειδί του πίνακα employees, που συμμετέχει στη συσχέτιση 1:Ν από την πλευρά του «πολλά», διατηρεί τη μοναδικότητά μετά τη σύζευξη, σε α- ντίθεση με το πρωτεύον κλειδί του πίνακα departments. Ο συνδυασμός των δύο κλειδιών σε ένα ερώτημα προβολής των πρωτεύοντων κλειδιών των πινάκων που συμμετέχουν σε συσχέτιση 1:Ν: Π d.depid, e.depid (ρ d (departments) d.depid = e.depid ρ e (employees)) δίνει επίσης μοναδικές εγγραφές, από τη στιγμή που το πεδίο employees.empid έχει μοναδικές τιμές, όπως φαίνεται στο αποτέλεσμα της εντολής SQL:

22 386 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων 1 SELECT DISTINCT d.depid, e.empid 2 FROM departments d INNER JOIN employees e ON d.depid = e.depid; 3 depid empid rows in set (0.00 sec) επιστρέφει ένα αποτέλεσμα στο οποίο κάθε εγγραφή είναι μοναδική. Για παράδειγμα, ο συνδυασμός {1, 109} υπάρχει μόνο μία φορά στο αποτέλεσμα. Οι παρατηρήσεις και τα συμπεράσματα αυτής της ενότητας ισχύουν για συσχετίσεις με λόγο πληθικότητας 1:Ν. Μην τα γενικεύετε για άλλες περιπτώσεις Ασκήσεις Στις επόμενες ερωτήσεις, όταν λέμε «τμήμα» εννοούμε το όνομα του τμήματος από τον πίνακα departments. Με απαντήσεις 1 Να βρεθούν τα ονόματα, το τμήμα και ο μισθός όλων των υπαλλήλων. Π e.firstname, e.lastname, d.depname, e.salary (ρ d (departments) d.depid = e.depid ρ e (employees)) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid; 3 firstname lastname depname salary Μαρία Αθανασίου Διοίκησης/Επίβλεψης Κρινιώ Μαροπούλου Διοίκησης/Επίβλεψης Κυριάκος Ρούσσης Διοίκησης/Επίβλεψης Μαρία Αλεβιζάτου Οικονομoλόγων/Λογιστών Δέσποινα Παπαδοπούλου Οικονομoλόγων/Λογιστών Πέτρος Αρβανιτάκης Οικονομoλόγων/Λογιστών Μαριλένα Κρέσπα Οικονομoλόγων/Λογιστών Χρήστος Βλάσσης Επιστημόνων/Μηχανικών

23 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων Ηλίας Μακρής Επιστημόνων/Μηχανικών Αριστείδης Περρής Επιστημόνων/Μηχανικών rows in set (0.00 sec) 2 Να βρεθούν τα ονόματα, το τμήμα, και ο μισθός όλων των υπαλλήλων με μισθό μεταξύ 1150 και Π e.firstname, e.lastname, d.depname, e.salary (σ salary 1150 salary 1300 (ρ d (departments) d.depid = e.depid ρ e (employees))) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid 3 WHERE e.salary BETWEEN 1150 AND 1300; 5 firstname lastname depname salary Αντώνης Παύλου Επιστημόνων/Μηχανικών Νικηφόρος Διαμαντίδης Μάνατζμεντ/Πωλήσεων Να βρεθεί ο κωδικός και το όνομα όλων των υπαλλήλων που απασχολούνται στο έργο με κωδικό 38, με αύξουσα ταξινόμηση ως προς το επώνυμο. Π e.empid, e.firstname, e.lastname (σ w.proid = 38 (ρ e (employees) e.empid = w.empid ρ w (workson))) 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e INNER JOIN workson w ON e.empid = w.empid 3 WHERE w.proid = 38 ORDER BY e.lastname ASC; 5 empid firstname lastname Μαρία Αλεβιζάτου Νικηφόρος Διαμαντίδης 9 23 Αδαμαντία Θεοτοκάτου Μαριλένα Κρέσπα Κρινιώ Μαροπούλου Δέσποινα Παπαδοπούλου Αθανάσιος Πετράκης Κυριάκος Ρούσσης Βαγγέλης Χριστόπουλος Το αποτέλεσμα της εσωτερικής σύζευξης είναι ισοδύναμο με αυτό της φυσικής σύζευξης: Π empid, firstname, lastname (σ proid = 38 (employees workson))

24 388 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων 1 SELECT empid, firstname, lastname 2 FROM employees e NATURAL JOIN workson 3 WHERE proid = 38 ORDER BY lastname ASC; 5 empid firstname lastname Μαρία Αλεβιζάτου Νικηφόρος Διαμαντίδης 9 23 Αδαμαντία Θεοτοκάτου Μαριλένα Κρέσπα Κρινιώ Μαροπούλου Δέσποινα Παπαδοπούλου Αθανάσιος Πετράκης Κυριάκος Ρούσσης Βαγγέλης Χριστόπουλος Να βρεθούν τα ονόματα, το όνομα του τμήματος, και ο μισθός όλων των υπαλλήλων που εργάζονται στα τμήματα με κωδικό 2 ή, και έχουν μισθό μεγαλύτερο από Π e.firstname, e.lastname, d.depname, e.salary (σ ( depid = 2 depid=) salary > 1200 (ρ d (departments) d.depid = e.depid ρ e (employees))) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid 3 WHERE e.depid IN (2, ) AND e.salary > 1200; 5 6 firstname lastname depname salary Δέσποινα Παπαδοπούλου Οικονομoλόγων/Λογιστών Πέτρος Αρβανιτάκης Οικονομoλόγων/Λογιστών Μαρία Αλεβιζάτου Οικονομoλόγων/Λογιστών Νίκος Στεργιόπουλος Εξωτερικών συνεργατών ή, με τη φυσική σύζευξη: Π firstname, lastname, depname, salary (σ ( depid = 2 depid = ) salary > 1200 (departments employees)) 1 SELECT firstname, lastname, depname, salary 2 FROM employees NATURAL JOIN departments 3 WHERE depid IN (2, ) AND salary > 1200; 5

25 Κεφάλαιο 13 Ερωτήματα επιλογής με σύζευξη πινάκων firstname lastname depname salary Δέσποινα Παπαδοπούλου Οικονομoλόγων/Λογιστών Πέτρος Αρβανιτάκης Οικονομoλόγων/Λογιστών Μαρία Αλεβιζάτου Οικονομoλόγων/Λογιστών Νίκος Στεργιόπουλος Εξωτερικών συνεργατών Να βρεθούν τα ονόματα, το τμήμα και ο μισθός όλων των υπαλλήλων που εργάζονται στα τμήματα με κωδικό 2 ή 5 με μισθό μεγαλύτερο από 1200, με φθίνουσα ταξινόμηση ως προς το μισθό. Π firstname, lastname, depname, salary (σ (depid=2 depid=5) salary>1200 ρ d (departments) d.depid=e.depid ρ e (employees))) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid 3 WHERE e.depid IN (2, 5) AND e.salary > ORDER BY e.salary DESC; 6 7 firstname lastname depname salary Δέσποινα Παπαδοπούλου Οικονομoλόγων/Λογιστών Αδαμαντία Θεοτοκάτου Γραμματείας Πέτρος Αρβανιτάκης Οικονομoλόγων/Λογιστών Μαρία Αλεβιζάτου Οικονομoλόγων/Λογιστών ή, με τη φυσική σύζευξη: Π firstname, lastname, depname, salary (σ (depid=2 depid=5) salary>1200 (departments employees))) 1 SELECT firstname, lastname, depname, salary 2 FROM employees NATURAL JOIN departments 3 WHERE depid IN (2, 5) AND salary > ORDER BY salary DESC; 6 7 firstname lastname depname salary Δέσποινα Παπαδοπούλου Οικονομoλόγων/Λογιστών Αδαμαντία Θεοτοκάτου Γραμματείας Πέτρος Αρβανιτάκης Οικονομoλόγων/Λογιστών Μαρία Αλεβιζάτου Οικονομoλόγων/Λογιστών

26 390 ΜΕΡΟΣ ΙI Η δομημένη γλώσσα επερωτήσεων 6 Να βρεθούν τα ονόματα των τμημάτων 3 στα οποία έγιναν προσλήψεις μέσα στο Π d.depname (σ hiredate ' ' hiredate ' ' (ρ d (departments) d.depid = e.depid ρ e (employees))) 1 SELECT DISTINCT d.depname 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid 3 WHERE e.hiredate BETWEEN ' ' AND ' '; 5 depname Μάνατζμεντ/Πωλήσεων 8 Επιστημόνων/Μηχανικών Ή, με τη συνάρτηση { YEAR()}: 1 SELECT DISTINCT d.depname 2 FROM employees e INNER JOIN departments d ON e.depid = d.depid 3 WHERE YEAR(e.hiredate) = 2003; Απάντηση με τη χρήση της φυσικής σύζευξης: Π depname (σ hiredate ' ' hiredate ' ' (departments employees) 1 SELECT DISTINCT depname 2 FROM employees NATURAL JOIN departments 3 WHERE hiredate BETWEEN ' ' AND ' '; 5 depname Μάνατζμεντ/Πωλήσεων 8 Επιστημόνων/Μηχανικών 7 Να βρεθεί το ονοματεπώνυμο και ο μισθός όλων των υπαλλήλων του τμήματος με κωδικό 6 που εργάζονται στο έργο με κωδικό 1, με φθίνουσα ταξινόμηση ως προς το μισθό. Π e.firstname, e.lastname, e.salary (σ w.proid = 5 (ρ e (employees) e.empid = w.empid ρ w (workson))) 1 SELECT e.firstname, e.lastname, e.salary 2 FROM employees e INNER JOIN workson w ON e.empid = w.empid 3 WHERE w.proid = 5 3 Προσοχή, χρειάζεται DISTINCT. Γιατί όμως; Επειδή ο πίνακας departments συμμετέχει στη συσχέτιση ένα προς πολλά, υπάρχουν πολλοί υπάλληλοι που ενδεχομένως έχουν προσληφθεί στο ίδιο τμήμα μέσα στο 2003.

1 / 150

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

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

1 / 105

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

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

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

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

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

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

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

Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25 1 Περιεχόμενα Πρόλογος... 21 Μέρος Ι Μια βόλτα στις βάσεις δεδομένων... 23 1 Μια βόλτα στις βάσεις δεδομένων...25 1.1 Η πρώτη βάση δεδομένων... 26 1.1.1 Άλλοι τρόποι... 26 1.1.2 Απαιτήσεις της εφαρμογής...

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

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

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

1 / 97

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

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

1 / 87

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

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

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

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

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 Σκοπός του μαθήματος Αποκλείσετε διπλοεγγραφές από

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

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

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

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

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 Εισαγωγή, γενικές

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

DELETE, UPDATE, INSERT.

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας Structured Query Language (SQL) Δρ. Καρβούνης Ευάγγελος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας 1 / 97 Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

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

DELETE, UPDATE, INSERT

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

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 85 Περιεχόμενα

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

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

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

1 / 106

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 15 Επισκόπηση 1 Οι βασικές πράξεις προβολής και επιλογής Η σχεσιακή πράξη της προβολής Η σχεσιακή πράξη της επιλογής

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

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

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

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

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

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

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

1 / 106

1 / 106 Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=154 Άνοιξη 2016 1 / 106 Σχεσιακή άλγεβρα Η σχεσιακή άλγεβρα είναι μια διαδικαστική (procedural) γλώσσα. Διαθέτει

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

Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=154 Άνοιξη 2014 1 / 88 Σχεσιακή άλγεβρα Η σχεσιακή άλγεβρα είναι μια διαδικαστική (procedural) γλώσσα. Διαθέτει

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

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

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

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

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους ΘΕΜΑΤΑ A Οι παρακάτω πίνακες αποτελούνται από τα εξής πεδία : ΕΡΓΑΖΟΜΕΝΟΣ : ΑΦΜ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ, ΤΗΛ, ΟΔΟΣ, ΠΟΛΗ,ΜΙΣΘΟΣ, ΚΤ ΤΜΗΜΑ : ΚΤ, ΑΦΜ, ΤΙΤΛΟΣ_ΤΜΗΜΑΤΟΣ, ΤΗΛ ΕΡΓΑ : ΚΕΡ, ΠΕΡΙΓΡΑΦΗ, ΤΟΠΟΘΕΣΙΑ, ΠΡΟΫΠΟΛΟΓΙΣΜΟΣ

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

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

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

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

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

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

Πρόλογος Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

Πρόλογος Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Μια βόλτα στις βάσεις δεδομένων...25 Περιεχόμενα Πρόλογος... 21 Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων. 23 1 Μια βόλτα στις βάσεις δεδομένων...25 1.1 Η πρώτη βάση δεδομένων... 26 1.1.1 Άλλοι τρόποι...26 1.1.2 Απαιτήσεις της εφαρμογής...29

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 2. Διαφάνεια 1. Κάπαρης Αναστάσιος

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 2. Διαφάνεια 1. Κάπαρης Αναστάσιος Βάσεις Δεδομένων Εργαστήριο 2 Διαφάνεια 1 Πώς να δημιουργήσω μια συσχέτιση ένα προς πολλά στην ACCESS; Η απάντηση στο παραπάνω θέμα, θα δοθεί μέσα από ένα παράδειγμα μιας μικρής βάσης δεδομένων. Το μοντέλο

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

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

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

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

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές. Σχολή Διοίκησης και Οικονομίας (ΣΔΟ) Τμήμα Λογιστικής και Χρηματοοικονομικής Διδάσκων: Δρ. Γκόγκος Χρήστος Μάθημα: Πληροφορική ΙI (εργαστήριο) Ακαδημαϊκό έτος 2013-2014 εαρινό εξάμηνο ΟΝΟΜΑΤΕΠΩΝΥΜΟ : ΑΡΙΘΜΟΣ

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

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

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

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

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης Περιεχόμενα 1 Γενική περιγραφή του προβλήματος 2 Μοντελοποίηση Ο/Σ 3 Σχεσιακό μοντέλο, SQL 4 Ερωτήματα

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

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

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

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

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

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

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

Κανονικοποίηση βάσεων δεδομένων 1 η, 2 η και 3 η κανονική μορφή Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Πρώτη κανονική μορφή 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

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

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

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

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

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

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

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

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

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

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

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

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

Σχεδίαση Βάσεων Δεδομένων Σχεδίαση Βάσεων Δεδομένων Εισαγωγή στις Έννοιες των Σχεσιακών Βάσεων Δεδομένων Introduction to Relational Database Concepts 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Στόχοι Το

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης Εργαστήριο 8o Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων Ερωτήματα Τα Ερωτήματα μας επιτρέπουν να βλέπουμε τα δεδομένα που επιθυμούμε, με τη σειρά που επιθυμούμε. Μας δίνουν

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

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

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

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

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

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

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

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

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

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

Λίγα λόγια από το συγγραφέα...7

Λίγα λόγια από το συγγραφέα...7 Περιεχόμενα Λίγα λόγια από το συγγραφέα...7 Κεφάλαιο 1: Σχεδιασμός βάσης δεδομένων και δημιουργία πίνακα...9 Κεφάλαιο 2: Περαιτέρω τροποποίηση δομής πίνακα...41 Κεφάλαιο 3: Σχέσεις...84 Κεφάλαιο 4: Ερωτήματα...105

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων ΕΣΔ516 Τεχνολογίες Διαδικτύου Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Ορισμοί Συστατικά στοιχεία εννοιολογικής σχεδίασης Συστατικά

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

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

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

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9;

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9; ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ 4.10 Επαναφέρετε πάλι το είδος 20 (όλο το στιγμιότυπο) στον πίνακα products με τις εντολές INSERT INTO. 4.11 Διαγράψτε το είδος 12 (όλο το στιγμιότυπο) στον πίνακα products και επαναφέρετε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

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

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

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

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

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

Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33

Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33 Περιεχόμενα Πρόλογος... 33 Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων... 39 1 Μια βόλτα στις βάσεις δεδομένων... 41 1.1 Η πρώτη βάση δεδομένων... 42 1.1.1 Άλλοι τρόποι... 42 1.1.2 Απαιτήσεις της εφαρμογής...

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

Τίτλος Πακέτου Certified Computer Expert-ACTA Κωδικός Πακέτου ACTA - CCE - 002 Τίτλος Πακέτου Certified Computer Expert-ACTA Εκπαιδευτικές Ενότητες Επεξεργασία Κειμένου - Word Δημιουργία Εγγράφου Προχωρημένες τεχνικές επεξεργασίας κειμένου & αρχείων

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) MASTER IN OFFICE microsoft access ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) MASTER IN OFFICE microsoft access ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) MASTER IN OFFICE microsoft access ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ MASTER IN OFFICE Το Master in Office είναι κατάλληλο για άτομα που έχουν κάποια εμπειρία στο Office (πχ. κάτοχοι πτυχίου

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

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

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

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

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL) Περιεχόμενα Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Παύλος Εφραιμίδης Προχωρημένα Ερωτήματα SQL Συνένωση Συναθροιστικές Συναρτήσεις Ομαδοποίηση Βάσεις Δεδομένων SQL - Μέρος Τρίτο 1 Βάσεις Δεδομένων

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

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 δε συμμετείχε το γνώρισμα

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

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ Άδεια Χρήσης Creative Commons, Αναφορά Προέλευσης 3.0 Ελλάδα 2009-200, Βουρλάκος Μιχαήλ Εργαστηριακός Οδηγός για το μάθημα Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ σε περιβάλλον Microsoft Access Υπεύθυνος Καθηγητής:

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

Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΔΒΔ (ΕΡΓΑΣΤΗΡΙΟ 4) Τελευταία ενημέρωση: 11/2011. Μετασχηματισμός διαγράμματος ER σε σχεσιακό σχήμα ΒΔ

Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΔΒΔ (ΕΡΓΑΣΤΗΡΙΟ 4) Τελευταία ενημέρωση: 11/2011. Μετασχηματισμός διαγράμματος ER σε σχεσιακό σχήμα ΒΔ Μετασχηματισμός διαγράμματος ER σε σχεσιακό σχήμα ΒΔ ΣΤΟΧΟΣ Στόχο του παρόντος εργαστηρίου αποτελεί η κατανόηση και η εφαρμογή της μεθοδολογίας του μετασχηματισμού ενός διαγράμματος ER στο αντίστοιχο σχεσιακό

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

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

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

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

#1.1 Τι είναι η Βάση Δεδομένων

#1.1 Τι είναι η Βάση Δεδομένων 1 2 #1.1 Τι είναι η Βάση Δεδομένων Βάση δεδομένων είναι ένα πλήθος στοιχείων συναφών μεταξύ τους, τοποθετημένα και ταξινομημένα με συγκεκριμένο τρόπο. Με τη χρήση μιας Βάσης Δεδομένων μπορούμε: να καταχωρούμε

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

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

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

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

Σχεσιακό Μοντέλο Δεδομένων

Σχεσιακό Μοντέλο Δεδομένων Σχεσιακό Μοντέλο Δεδομένων Παύλος Εφραιμίδης Βάσεις Δεδομένων Σχεσιακό Μοντέλο Δεδομένων 1 Μοντέλα Δεδομένων Μοντέλα Δεδομένων Σχεσιακό Ιεραρχικό Δικτυακό Tο κυρίαρχο μοντέλο δεδομένων στις σύγχρονες βάσεις

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

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

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

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