Βάσεις Δεδομένων Γιώργος Λαγογιάννης.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΜΑΘΗΜΑ 5.
Advertisements

Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 2. ΣΧΕΣΙΑΚΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ • Μια σχεσιακή ΒΔ καταγράφει δεδομένα μέσα σε σχέσεις (πίνακες). • Μια πραγματική οντότητα γίνεται.
Σημειώσεις : Χρήστος Μουρατίδης
Δημιουργία και διαχείριση βάσης δεδομένων
Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
ΜΟΝΤΕΛΟ Ο-Σ ΜΑΘΗΜΑ 2.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
Βάσεις Δεδομένων Μάθημα 4.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Εννοιολογική αναπαράσταση δεδομένων. Οντότητα Είναι κάθε αντικείμενο, πρόσωπο, γεγονός κατάσταση ή και αφηρημένη έννοια που προσδιορίζεται από την ανεξάρτητη.
Δημιουργία Σχεσιακού μοντέλου από ERD
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Κάντε κλικ για έναρξη… Τ Ο ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ Κέντρο εντολών Χώρος γραφικών (σελίδα) Χώρος σύνταξης διαδικασιών.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Συναρτησιακές Εξαρτήσεις.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Κανονικοποίηση Σχήματος.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Λογικός Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Μερικές φορές το αποτέλεσμα εμφανίζεται αμέσως από κάτω.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Κανονικές Μορφές.
Βάσεις Δεδομένων ER-Διάγραμμα.
Βάσεις Δεδομένων Αρχιτεκτονική.
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
Εγγραφή στην πλατφόρμα του eclass. Πιστοποίηση μέσω UPnet Η είσοδός σας στην πλατφόρμα του eclass προϋποθέτει την ύπαρξη λογαριασμού της μορφής
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Αρχιτεκτονική Συστημάτων
Η φάση του εννοιολογικού σχεδιασμού
Βάσεις Δεδομένων Ι Εισαγωγή
Από το Μοντέλο Οντοτήτων Συσχετίσεων στο Σχεσιακό Μοντέλο
Πληροφοριακά Συστήματα Διοίκησης MIS
Εισαγωγή στις βάσεις δεδομένων ISBN
Java DataBase Connectivity
Κωδικός Διαφανειών: MKT119
Κωδικός Διαφανειών: MKT119
Βάσεις Δεδομένων & Έμπειρα Συστήματα
Αρχιτεκτονική Συστημάτων
Βάσεις Δεδομένων και web-based Εφαρμογές
Εφαρμογή Κανονικοποίησης
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων και web-based Εφαρμογές
Κανονικοπηση(normalization)
Βάσεις Δεδομένων Γεωπονικό Πανεπιστήμιο Αθηνών Γενικό Τμήμα
Αρχιτεκτονική Συστημάτων
Εφαρμογή Μεθοδολογίας ICONIX
Παραγωγός.
Β.ΕΠΑΛ-Γενικής Παιδείας  ΜΑΘΗΜΑ: Εισαγωγή στης αρχές Επιστήμης των Η/Υ  ΚΕΦΑΛΑΙΟ 4: Γλώσσες Αναπαράστασης Αλγορίθμων  ΕΝΟΤΗΤΑ 4.2: Δομή Ακολουθίας 
Κανονικοποίηση 1η, 2η και 3η Κανονική Μορφή
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Μεταγράφημα παρουσίασης:

Βάσεις Δεδομένων Γιώργος Λαγογιάννης

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ Ο κόσμος αποτελείται από οντότητες που συσχετίζονται μεταξύ τους...

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ Ο κόσμος αποτελείται από σύνολα οντοτήτων... Υπάλληλοι Φοιτητές Καθητητές Μαθήματα Φορολογούμενοι Ασφαλισμένοι Συγγραφείς Μουσειακά εκθέματα Φάρμακα … ... Κάθε κομμάτι του πραγματικού κόσμου που μελετάμε έχει τα δικά του σύνολα οντοτήτων Βιβλία Φοιτητές Βιβλιοθήκη Συγγραφείς Πανεπιστήμιο Καθηγητές Εκδοτικοί οίκοι Μαθήματα

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ Όλες οι οντότητες του ίδιου τύπου οντοτήτων έχουν τα ίδια γνωρίσματα. Οι τιμές των γνωρισμάτων αυτών είναι που διαφοροποιούν τις οντότητες του ίδιου τύπου οντοτήτων Επώνυμο Όνομα Φοιτητές ΑΜ

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ Υπάρχουν γνωρίσματα που παίρνουν μόνο μία τιμή π.χ. ΑΜ και γνωρίσματα που μπορούν να πάρουν περισσότερες από μία τιμές. Τα τελευταία τα συμβολίζουμε διαφορετικά. Επώνυμο Όνομα Φοιτητές τηλέφωνα ΑΜ

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ Υπερκλειδί (super-key): σύνολο από ένα η περισσότερα γνωρίσματα που διαχωρίζουν με μοναδικό τρόπο τις οντότητες ενός τύπου οντοτήτων Υποψήφιο κλειδί (candidate key): Είναι ένα υπερκλειδί που έχει την ιδιότητα του αμείωτου, δηλαδή αν αφαιρέσουμε οποοδήποτε από τα γνωρίσματα που το απαρτίζουν, δε θα είναι πια υπερκλειδί. Πρωτεύον κλειδί (primary key): το υποψήφιο κλειδί που τελικά επιλέγουμε για να παίξει το ρόλο του διαχωριστή Επώνυμο Όνομα Φοιτητές τηλέφωνα ΑΜ

Συσχέτιση ένα προς ένα Μαθήματα Καθηγητές Καθηγητές Μαθήματα ΑΜ Επώνυμο Όνομα 1 Λαγογιάννης Γιώργος 2 Παπαδόπουλος Γιάννης 3 Μακρής Χρήστος 4 Τσάκας Βασίλης Κωδικός τίτλος 1 Προγραμματισμός 2 Πληροφορική 3 Μαθηματικά 4 Χημεία Καθηγητές Μαθήματα Κωδικός τίτλος 1 Προγραμματισμός 2 Πληροφορική 3 Μαθηματικά 4 Χημεία ΑΜ Επώνυμο Όνομα 1 Λαγογιάννης Γιώργος 2 Παπαδόπουλος Γιάννης 3 Μακρής Χρήστος 4 Τσάκας Βασίλης Μάθημα 2 1 4 3

Συσχέτιση ένα προς ένα Διδάσκει Διδάσκει 1 1 Μάθημα Μάθημα Καθηγητής Κωδικός Κωδικός τίτλος τίτλος ΑΜ ΑΜ Επώνυμο Επώνυμο Όνομα Όνομα Καθηγητής Μάθημα ΑΜ Επώνυμο Όνομα Μάθημα Κωδιικός Τίτλος Χειρισμός συσχέτισης 1-1 Φτιάχνουμε ένα επιπλέον πεδίο (στήλη) σε οποιονδήποτε από τους δύο πίνακες, και σε κάθε κελί της νέας αυτής στήλης αποθηκεύουμε το άλλο άκρο της κόκκινης σύνδεσης (που “ακουμπάει” στη γραμμή στην οποία αντιστοιχεί το κελί αυτό). Συσχετίζουμε τη νέα στήλη με το πρωτεύον κλειδί του άλλου πίνακα (που ορίζει το άλλο άκρο της κόκκινης σύνδεσης)

Συσχέτιση ένα προς πολλά Δημότες Δήμοι ΑΤ Επώνυμο Όνομα 1234 Αλφάδης Κώστας 2345 Βήτας Βασίλης 4567 Γαλάκης Μάκης 4587 Δελτάκης Σωτήρης 3456 Επσιλούζος Λευτέρης 4769 Ζητόπουλος Μανώλης 2349 Ητίδης Αλέξης 4519 Θηταράς Παναγιώτης ΑΜ Όνομα Περιφέρεια 1 Περιστέρι Αττικής 2 Αθήνα 3 Πειραιάς 4 Γλυφάδα 5 Χαλάνδρι

Συσχέτιση ένα προς πολλά Δήμος ΑΤ Επώνυμο Όνομα 1234 Αλφάδης Κώστας 2345 Βήτας Βασίλης 4567 Γαλάκης Μάκης 4587 Δελτάκης Σωτήρης 3456 Επσιλούζος Λευτέρης 4769 Ζητόπουλος Μανώλης 2349 Ητίδης Αλέξης 4519 Θηταράς Παναγιώτης ΑΜ Όνομα Περιφέρεια 1 Περιστέρι Αττικής 2 Αθήνα 3 Πειραιάς 4 Γλυφάδα 5 Χαλάνδρι 1 2 3 4 5 1 1 5 Χειρισμός συσχέτισης ένα προς πολλά Φτιάχνουμε ένα επιπλέον πεδίο (στήλη) στον πίνακα από κάθε γραμμή του οποίου ξεκινάει μία μόνο κόκκινη σύνδεση. Σε κάθε κελί της νέας αυτής στήλης αποθηκεύουμε το άλλο άκρο αυτής της κόκκινης σύνδεσης. Συσχετίζουμε τη νέα στήλη με το πρωτεύον κλειδί του άλλου πίνακα (που ορίζει το άλλο άκρο της κόκκινης σύνδεσης). Παρατηρήστε ότι σε κάθε κελί της νέας στήλης αποθηκεύεται μία μόνο τιμή (αφού υπάρχει μία μόνο κόκκινη σύνδεση). Αν φτιάχναμε το επιπλέον πεδίο στον άλλο πίνακα, σε κάθε κελί θα έπρεπε να αποθηκευτούν πολλές τιμές. Θα δημιουργούσαμε έτσι ένα πλειότιμο πεδίο, και αυτό είναι που θέλουμε να αποφύγουμε.

Συσχέτιση ένα προς πολλά Κατοικεί σε Ν 1 Δήμος Δημότης κωδικός Όνομα ΑΤ Επώνυμο Όνομα Δημότης Δήμος ΑΤ Επώνυμο Όνομα Δήμος Κωδικός Όνομα

Συσχέτιση πολλά προς πολλά Φοιτητές Εξετάσεις Μαθήματα

Συσχέτιση πολλά προς πολλά Φοιτητές Μαθήματα Εξετάσεις Χειρισμός συσχέτισης ένα προς πολλά Για να χειριστούμε μία συσχέτιση πολλά προς πολλά ανάμεσα σε δύο πίνακες Α και Β, δημιουργούμε ένα νέο πίνακα Γ κάθε γραμμή του οποίου αντιστοιχεί σε μία κόκκινη σύνδεση ανάμεσα στους Α και Β. Μία τέτοια κόκκινη σύνδεση ορίζεται από τα δύο άκρα της και κάθε άκρο ορίζεται από την τιμή που έχει το πρωτεύον κλειδί. Στο σχήμα που προκύπτει, η συσχέτιση πολλά προς πολλά ανάμεσα στους Α και Β έχει μετατραπεί σε δύο συσχετίσεις ένα προς πολλά ανάμεσα στος Α - Γ και Β - Γ αντίστοιχα

Συσχέτιση πολλά προς πολλά Εξετάστηκε σε Μ Ν Μάθημα Φοιτητής κωδικός Τίτλος ΑΜ Επώνυμο Όνομα Ημερομηνία Βαθμός Φοιτητής ΑΜ Επώνυμο Όνομα Εξέταση ΑΜ Κωδικός Ημερομηνία Βαθμός Μάθημα Κωδικός Τίτλος

Παράδειγμα: Εμφιαλωτήριο Κάθε βαθμός που πήρε το κρασί στο άρωμα αυξάνει την τιμή του κρασιού (ανά λίτρο) κατά 0,2 ευρώ Καταγράφεται επίσης για κάθε φορτίο, ο όγκος (σε λίτρα) του κρασιού που περιέχεται στο φορίο καθώς και το είδος του κρασιού (Λευκό, Ροζέ ή Κόκκινο) Για κάθε ετικέτα, αποθηκεύουμε το όνομα της ετικέτας, τη χωρητικότητα της φιάλης σε λίτρα και τον όγκο του κρασιού (σε λίτρα) που εμφιαλώθηκε στην ετικέτα αυτή

Παράδειγμα - Εμφιαλωτήριο Διάγραμμα οντοτήτων συσχετίσεων Σχήμα ως προς το σχεσιακό μοντέλο ?

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Κωδ_παρ Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Κωδ_παρ Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Κωδ_παρ Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα Κωδ_φορ

Παράδειγμα - Εμφιαλωτήριο Παραγωγός Κωδικός Όνομα Πόλη Τηλέφωνο Φορτίο Κωδικός Γεύση Επίγευση Άρωμα Είδος Λίτρα Κωδ_παρ Ετικέτα Όνομα Χωρητικότητα φιάλης Λίτρα Κωδ_φορ

Παράδειγμα - Εμφιαλωτήριο To ίδιο σχήμα στην ACCESS

Παράδειγμα - Εμφιαλωτήριο Ερωτήματα Ας δούμε πρώτα ερωτήματα η απάντηση των οποίων προκύπτει μετά από επεξεργασία ενός μόνο πίνακα. Μπορούμε να τα απαντήσουμε και με τη βοήθεια του calc Φιλτράροντας γραμμές 1. Να απεικονιστούν οι παραγωγοί από την πόλη “Νεμέα”. 2. Να απεικονιστούν τα φορτία με όγκο μεγαλύτερο από 3000 λίτρα. 3. Να απεικονιστούν τα φορτία κόκκινου κρασιού με όγκο μεγαλύτερο από 3000 λίτρα

Παράδειγμα - Εμφιαλωτήριο Να απεικονιστούν οι παραγωγοί από την πόλη “Νεμέα” Στο calc μπορούμε να χρησιμοποιήσουμε φίλτρο. Στην access, δημιουργούμε το ακόλουθο ερώτημα

Παράδειγμα - Εμφιαλωτήριο Να απεικονιστούν τα φορτία με όγκο μεγαλύτερο από 3000 λίτρα.

Παράδειγμα - Εμφιαλωτήριο Να απεικονιστούν τα φορτία κόκκινου κρασιού με όγκο μεγαλύτερο από 3000 λίτρα Λύση 1

Παράδειγμα - Εμφιαλωτήριο Να απεικονιστούν τα φορτία κόκκινου κρασιού με όγκο μεγαλύτερο από 3000 λίτρα Λύση 2

Παράδειγμα - Εμφιαλωτήριο Φιλτράροντας στήλες Για κάθε φορτίο κόκκινου κρασιού με όγκο > 3000 λίτρα, να εμφανιστεί ο κωδικός του φορτίου καθώς και ο κωδικός του παραγωγού στον οποίο ανήκει το φορτίο Χρησιμοποιούμε το προηγούμενο ερώτημα, στο οποίο απεικονίζονται όλα τα φορτία κόκκινου κρασιού με όγκο > 3000. Επιλέγουμε όμως να εμφανιστούν μόνο οι “στήλες” που μας ενδιαφέρουν

Παράδειγμα - Εμφιαλωτήριο Να απεικονιστεί για κάθε φορτίο κρασιού, η τιμή λίτρου του φορτίου (μαζί με όλα τα πεδία που ήδη υπάρχουν)

Παράδειγμα - Εμφιαλωτήριο Αθροιστικά ερωτήματα Να απεικονιστεί ο συνολικός όγκος κρασιού ανά είδος κρασιού

Επί της ευκαιρίας, λίγη θεωρία Σε μία σχεσιακή βάση δεδομένων, τα δεδομένα εμφανίζονται στο χρήστη με τη μορφή πινάκων. Αυτό ισχύει και για τα αποτελέσματα των ερωτημάτων. Η διαφορά ανάμεσα σε ένα πίνακα της βάσης δεδομένων και στην απάντηση ενός ερωτήματος, είναι ότι στην πρώτη περίπτωση ο πίνακας υπάρχει (σε κάποια μορφή) στη δευτερεύουσα μνήμη ενώ στη δεύτερη δεν υπάρχει. Για να τονίσουμε τη διαφορά αυτή θα ονομάσουμε (στα πλαίσια της παρουσίασης αυτής) τα αποτελέσματα των ερωτημάτων “πίνακες” (με εισαγωγικά) για να τους ξεχωρίσουμε από τους πίνακες που υπάρχουν αποθηκευμένοι στο δίσκο. Οι “πίνακες” μπορούν να χρησιμοποιηθούν σαν είσοδοι ερωτημάτων όπως ακριβώς και οι πίνακες. Ένα ερώτημα είναι ένα πρόγραμμα που δέχεται σαν είσοδο ένα πίνακα ή “πίνακα” και παράγει στην έξοδο ένα “πίνακα”. Η γλώσσα προγραμματισμού με την οποία φτιάχνονται τα ερωτήματα αυτά ονομάζεται SQL (Structured Query Language). Είναι μία γλώσσα προγραμματισμού 4ης γενιάς.

Παράδειγμα - Εμφιαλωτήριο Πράξη INNER JOIN Παραγωγοί Φορτία Κωδικός Όνομα Πόλη Κωδικός Γεύση Λίτρα Κωδ_παρ 1 Λαγογιάννης Αθήνα 1 7 1 1 2 6 2 1 2 Μαλιάππης Νεμέα 3 8 3 2 3 Γιαλούρης Νεμέα 4 9 4 3 1 Λαγογιάννης Αθήνα 1 7 1 1 1 Λαγογιάννης Αθήνα 2 6 2 1 2 Μαλιάππης Νεμέα 3 8 3 2 3 Γιαλούρης Νεμέα 4 9 4 3 Συσχετίζοντας τις στήλες Παραγωγοί(κωδικός) και Φορτία(κωδ_παρ),και κάνοντας την πράξη INNER JOIN υπό αυτή τη συσχέτιση, ο “πίνακας” που προκύπτει από την INNER JOIN περιέχει μία γραμμή για κάθε κόκκινο σύνδεσμο

Παράδειγμα πράξης inner join Εμφανίστε για κάθε φορτίο όλες τις πληροφορίες του φορτίου καθώς και όλες τις πληροφορίες του παραγωγού στον οποίο ανήκει το φορτίο Ερώτημα 1

Παράδειγμα - Εμφιαλωτήριο Αποτέλεσμα ερωτήματος 1 Αυτός ο “πίνακας” μπορεί τώρα να χρησιμοποιηθεί σαν βάση για ερωτήματα φιλτραρίσματος γραμμών ή στηλών

Επί της ευκαιρίας, λίγη θεωρία Μπαίνει κανείς στον πειρασμό να ρωτήσει, γιατί δεν συμπεριλάβαμε στην αρχική σχεδίαση της βάσης δεδομένων τον “πίνακα” – αποτέλεσμα της πράξης inner join ανάμεσα στους παραγωγούς και στα φορτία (αφού όπως θα δούμε θα τον χρησιμοποιήσουμε ως είσοδο σε ερωτήματα) Η απάντηση στο ερώτημα αυτό δίνεται αν ρίξουμε μία προκεκτική ματιά στα περιεχόμενα του “πίνακα” – απάντηση - του ερωτήματος 1. Προκύπτει ότι τα στοιχεία ενός παραγωγού μπορεί να υπάρχουν σε περισσότερες από μία γραμμές του “πίνακα” αυτού. Πιο συγκεκριμένα, τα στοιχεία του κάθε παραγωγού αποθηκεύονται μία φορά για κάθε φορτίο του παραγωγού. Υπάρχει έτσι πλεονασμός δεδομένων (πολλάπλές καταχωρήσεις της ίδιας πληροφορίας), και η αποφυγή του πλεονασμού είναι ένας βασικός στόχος της σχεδίασης βάσεων δεδομένων

Πράξη INNER JOIN Εμφάνισε για κάθε φορτίο τον κωδικό του και το όνομα του παραγωγού από τον οποίο προέρχεται το φορτίο Ερώτημα 1 Ερώτημα 2

Πράξη INNER JOIN Αποτέλεσμα ερωτήματος 2

Πράξη INNER JOIN Εμφανίστε όλα τα φορτία του παραγωγού με κωδικό 1. Για κάθε φορτίο να εμφανίζεται το όνομα του παραγωγού (που όπως είπαμε έχει κωδικό 1) καθώς και ο κωδικός του φορτίου Ερώτημα 3

Πράξη INNER JOIN Αποτέλεσμα ερωτήματος 3

Πράξη INNER JOIN Εμφανίστε για κάθε ετικέτα το όνομά της, τον κωδικό του φορτίου από το οποίο προέρχεται καθώς και το όνομα του παραγωγού στον οποίο ανήκει το φορτίο Ερώτημα 4

Πράξη INNER JOIN Αποτέλεσμα ερωτήματος 4

Αθροιστικά ερωτήματα Εμφανίστε τη συνολική ποσότητα κρασιού (σε λίτρα) που έφτασε στο εμφιαλωτήριο Αποτέλεσμα ερωτήματος 5 Ερώτημα 5

Αθροιστικά ερωτήματα Εμφανίστε για κάθε είδος κρασιού, τη συνολική ποσότητα κρασιού που έφτασε στο εμφιαλωτήριο Αποτέλεσμα ερωτήματος 6 Ερώτημα 6

Αθροιστικά ερωτήματα Εμφανίστε για κάθε πόλη, τη συνολική ποσότητα κρασιού που προήλθε από την πόλη αυτή Αποτέλεσμα ερωτήματος 7 Ερώτημα 7

Αθροιστικά ερωτήματα Εμφανίστε για κάθε παραγωγό, το όνομά του και το πλήθος των φορτίων που έφερε προς εμφιάλωση Ερώτημα 8

Αθροιστικά ερωτήματα Αποτέλεσμα ερωτήματος 8

Αθροιστικά ερωτήματα Για κάθε παραγωγό να εμφανιστεί το όνομά του και το ποσό που εισέπραξε από το κρασί του Θα υλοποιήσουμε το ερώτημα αυτό σε 3 βήματα (ερώτημα 9, ερώτημα 10 και ερώτημα 11).

Αθροιστικά ερωτήματα Το ερώτημα 9 (μάλλον περιττό) δημιουργεί τον πίνακα που περιέχει όσα χρειαζόμαστε για να παράξουμε τον αρχικό πίνακα από τον οποίο θα παραχθεί ο τελικός. Ο αρχικός πίνακας περιέχει για κάθε φορτίο, το όνομα του παραγωγού στον οποίο ανήκει το φορτίο, καθώς και τις πληροφορίες του φορτίου που θα χρειαστούμε για να παράξουμε την τιμή ανά λίτρο Ερώτημα 9

Αθροιστικά ερωτήματα Αποτέλεσμα ερωτήματος 9

Αθροιστικά ερωτήματα Το ερώτημα 10 προσθέτει στον πίνακα – αποτέλεσμα – του ερωτήματος 9 μία νέα στήλη, στην οποία περιέχεται το ποσό που αποκόμισε ο παραγωγός από το φορτίο. Το ποσό αυτό είναι ίσο με την τιμή ανά λίτρο για το κρασί του φορτίου, επί τον όγκο (σε λίτρα) του φορτίου. Ονομάζουμε την καινούργια στήλη “Είσπραξη φορτίου”

Αθροιστικά ερωτήματα Ερώτημα 10

Αθροιστικά ερωτήματα Αποτέλεσμα ερωτήματος 10

Αθροιστικά ερωτήματα Το μόνο που απομένει τώρα είναι (στον πίνακα – αποτέλεσμα – του ερωτήματος 10) να ομαδοποιήσουμε ως προς όνομα, και να υπολογίσουμε το άθροισμα της στήλης “Είσπραξη φορτίου”. Αυτό το κάνουμε με το ερώτημα 11. Ερώτημα 11

Αθροιστικά ερωτήματα Αποτέλεσμα ερωτήματος 11

Λίγη θεωρία ακόμη – Αρχιτεκτονική βάσεων δεδομένων ΕΞΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ Αλληλεπιδρά με τους χρήστες Εξωτερικό επίπεδο ΕΝΝΟΙΟΛΟΓΙΚΟ (ΙΔΕΑΤΟ) ΕΠΙΠΕΔΟ Περιγραφή του λογικού σχήματος της ΒΔ Ενοιολογικό επίπεδο ΕΣΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ Αλληλεπιδρά απευθείας με το υλικό. Εσωτερικό επίπεδο Υλικό