Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

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

Download "Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης"

Transcript

1 Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model Νικόλαος Ζ. Ζάχαρης

2 Τι είναι το ERΜ Είναι ένα μοντέλο αναπαράστασης των δεδομένων και των συσχετίσεων τους, και χρησιμοποιείται κατά τη φάση της ανάλυσης και σχεδίασης μιας βάσης δεδομένων με σκοπό να παραχθεί ένα διάγραμμα που ονομάζεται διάγραμμα οντοτήτωνσυσχετίσεων και αναπαριστά τα βασικά στοιχεία, όπως : Οντότητες (Entities) Ιδιότητες - Χαρακτηριστικά (Attributes) Πρωτεύον κλειδί (Primary key) Συσχετίσεις (Relationships) Πληθικότητα(Cardinality)

3 Απεικόνιση των κυρίων συστατικών μιας ΒΔ Κατά την φάση της ανάλυσης και σχεδίασης μιας Βάσης Δεδομένων θα πρέπει να αναγνωρίσουμε τις χαρακτηριστικές μονάδες, είτε πρόσωπα είτε "αντικείμενα" (φυσικά ή όχι) που συμμετέχουν στο προς επίλυση πρόβλημα και ονομάζονται στιγμιότυπα (instances). Για παράδειγμα κατά το σχεδιασμό μιας Βάσης Δεδομένων για ένα εκπαιδευτικό ίδρυμα θα πρέπει να αναγνωρίσουμε το Κώστα Παπαδόπουλο που είναι Καθηγητής, καθώς και τη Μαρία Λουκά που είναι σπουδάστρια καθώς και το Β1 που είναι η πρώτη αίθουσα στο δεύτερο όροφο του κτιρίου. Εκτός από στιγμιότυπα θα πρέπει να αναγνωρίσουμε και τα ιδιαίτερα χαρακτηριστικά που έχει το καθένα στιγμιότυπο. Οντότητα (Entity) - είναι ένα σύνολο από στιγμιότυπα του ίδιου τύπου που έχουν κοινές ιδιότητες ή γνωρίσματα. Στο ανωτέρω παράδειγμα ο Κώστας Παπαδόπουλος ανήκει στην οντότητα ΚΑΘΗΓΗΤΗΣ ενώ η Μαρία Λουκά ανήκει στην οντότητα ΣΠΟΥΔΑΣΤΗΣ, το B1 ανήκει στην οντότητα ΤΜΗΜΑ, ενώ η Φυσική στο ΜΑΘΗΜΑ. Οι οντότητες σχεδιάζονται μέσα σε ένα ορθογώνιο παραλληλόγραμμο ΣΠΟΥΔΑΣΤΗΣ ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑ ΜΑΘΗΜΑ

4 Απεικόνιση των κυρίων συστατικών μιας ΒΔ (συν) Ιδιότητες - Χαρακτηριστικά (Attributes) - είναι το σύνολο των ιδιοτήτων-γνωρισμάτων που περιγράφουν και χαρακτηρίζουν την κάθε οντότητα. Για παράδειγμα το όνομα και το επώνυμο καθώς και ο αριθμός μητρώου χαρακτηρίζουν το ΣΠΟΥΔΑΣΤΗ, ενώ το όνομα, ο όροφος, ή αίθουσα, η χωρητικότητα να χαρακτηρίζουν το ΤΜΗΜΑ. Οι ιδιότητες σχεδιάζονται μέσα σε ελλείψεις που συνδέονται με γραμμές με την οντότητα Αριθμός όνομα Επώνυμο Πόλη Οδός ΤΚ Ονοματεπώνυμο Η Μ Χ Διεύθυνση/ΤΚ κατοικίας ΑΜ Ημ. Γέννησης Τα σύνθετα γνωρίσματα, όπως η είναι η Διεύθυνση σχεδιάζονται μαζί με τα υπογνωρίσματα τους, στα οποία αναλύονται περαιτέρω. ΣΠΟΥΔΑΣΤΗΣ Τηλέφωνα Τα γνωρίσματα που παίρνουν πολλές τιμές σχεδιάζονται σε διπλή έλλειψη.

5 Απεικόνιση των κυρίων συστατικών μιας ΒΔ (συν) Κατά την φάση της ανάλυσης και σχεδίασης μιας Βάσης Δεδομένων θα πρέπει αφού συγκεντρώσουμε τα χαρακτηριστικά της κάθε οντότητας εν συνεχεία να τα χωρίσουμε σε απαραίτητα και σε προαιρετικά. Για παράδειγμα, στην οντότητα Σπουδαστής το όνομα, το επώνυμο και ο αριθμός μητρώου του σπουδαστή θα ανήκουν στα υποχρεωτικά πεδία ενώ ο ταχυδρομικός κώδικας της διεύθυνσης του σπουδαστή να ανήκει στα προαιρετικά χαρακτηριστικά.

6 Απεικόνιση των κυρίων συστατικών μιας ΒΔ (συν) Πρωτεύον κλειδί (Primary key) - είναι η ιδιότητα της οντότητας που παίρνει μοναδικές τιμές και μπορεί να κάνει αναγνωρίσιμο το κάθε στιγμιότυπο. Για παράδειγμα ο αριθμός μητρώου είναι ένα χαρακτηριστικό της οντότητας ΣΠΟΥΔΑΣΤΗΣ που παίρνει μόνο μοναδικές τιμές και διαφοροποιεί τον έναν σπουδαστή από τον άλλον. Σε μερικές περιπτώσεις μπορεί να είναι και σύνθεση γνωρισμάτων που δημιουργεί το πρωτεύον κλειδί. ΑΜ Ονοματεπώνυμο ΣΠΟΥΔΑΣΤΗΣ Άλλα γνωρίσματα Το πρωτεύον κλειδί σημειώνεται υπογραμμισμένο. Στην οντότητα STUDENT είναι το ΑΜ Αν επιτρέπεται ένας σπουδαστής να παρακολουθεί ένα μόνο άθλημα τότε στην οντότητα ΜΕΛΟΣ ο αριθμός μητρώου του σπουδαστή καθώς και ο κωδικός του αθλήματος θα μπορούσε να είναι το πρωτεύον και τότε υπογραμμίζονται και τα δύο γνωρίσματα. ΑΜ SPORΤ_ID ΜΕΛΟΣ Ημέρα Ώρα

7 Απεικόνιση των κυρίων συστατικών μιας ΒΔ (συν) Συσχετίσεις (Relationships) : είναι οι συνδέσεις μεταξύ δύο ή περισσοτέρων οντοτήτων και ο βαθμός της συσχέτισης ισούται με το πλήθος των οντοτήτων που μετέχουν σε αυτήν. Για παράδειγμα θα μπορούσαμε να είχαμε την οντότητα ΠΕΛΑΤΗΣ καθώς και την οντότητα ΠΡΟΙΟΝ και αυτές συνδέονται μεταξύ τους με τη συσχέτιση ΑΓΟΡΑΖΕΙ η οποία είναι δεύτερου βαθμού (διμελής) επειδή συμμετέχουν δύο οντότητες. ΣΠΟΥΔΑΣΤΗΣ Ημέρα Ώρα ΔΙΔΑΣΚΕΙ ΚΑΘΗΓΗΤΗΣ ΠΑΡΑΚΟΛΟΥΘΕΙ ΜΑΘΗΜΑ Ενδέχεται μια συσχέτιση να έχει γνωρίσματα, τα οποία αναπαριστώνται όπως και στις οντότητες. Οι συσχετίσεις αναπαριστώνται με ρόμβο και συνδέονται με γραμμές με τις οντότητες. Στο ανωτέρω παράδειγμα, οι συσχετίσεις ΠΑΡΑΚΟΛΟΥΘΕΙ και ΔΙΔΑΣΚΕΙ ενώνουν μεταξύ τους τις οντότητες ΣΠΟΥΔΑΣΤΗΣ και ΜΑΘΗΜΑ και ΚΑΘΗΓΗΤΗΣ.

8 Απεικόνιση των κυρίων συστατικών μιας ΒΔ (συν) Όταν μία συσχέτιση έχει γνωρίσματα, συνήθως υποκρύπτει μία οντότητα που δεν την έχουμε αναγνωρίσει και δεν την έχουμε συμπεριλάβει στο σχεδιασμό της βάσης δεδομένων. Για παράδειγμα θα πρέπει να αναρωτηθούμε αν ένα μάθημα μπορεί να διδάσκεται από διαφορετικούς καθηγητές σε διαφορετικές ημέρες και ώρες οπότε να δημιουργήσουμε την οντότητα ΔΙΑΛΕΞΗ η οποία συνδέεται μέσω της σχέσης ΔΙΔΑΣΚΕΙ με τις οντότητες ΚΑΘΗΓΗΤΗΣ και ΜΑΘΗΜΑ. Κωδικός Ημέρα Ώρα Αίθουσα ΔΙΑΛΕΞΗ ΔΙΔΑΣΚΕΙ ΚΑΘΗΓΗΤΗΣ ΜΑΘΗΜΑ

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

10 Η σχέση 1 προς 1 (συν) Για να δημιουργήσουμε μια σχέση 1 προς 1 θα πρέπει η μια οντότητα να έχει σαν γνώρισμα το πρωτεύον κλειδί της άλλης οντότητας και μάλιστα μοναδιαίο (UNIQUE) ώστε να εμφανίζετε μόνο σε ένα στιγμιότυπο του. ΑΦΜ Ονοματεπώνυμο Κωδικός Διεύθυνσης Κωδικός Διεύθυνσης Οδός Αριθμός ΤΚ ΠΕΛΑΤΗΣ ΔΙΕΥΘΥΝΣΗ Συνήθως η δημιουργία σχέσεων ένα προς ένα δημιουργεί μεγαλύτερη αναστάτωση στη σχεδίαση της βάσης δεδομένων. Δύο όμως είναι οι κύριοι λόγοι για τη δημιουργία τέτοιων σχέσεων : α) Η ασφάλεια ώστε να μην έχουν όλοι οι χρήστες πρόσβαση σε όλα τα γνωρίσματα της οντότητας. β) Για λόγους αύξησης της ταχύτητας απόκρισης του συστήματος όταν υπάρχουν γνωρίσματα σε μία οντότητα τα οποία χρησιμοποιούνται σπάνια στις αναζητήσεις.

11 Η σχέση 1 προς Ν 1 προς Ν - Ένα ΤΜΗΜΑ ΕΧΕΙ πολλούς ΣΠΟΥΔΑΣΤEΣ. ΤΜΗΜΑ 1 ΕΧΕΙ Ν ΣΠΟΥΔΑΣΤΗΣ ΟΝΤΟΤΗΤΑ Α ΟΝΤΟΤΗΤΑ Β Όταν το είδος της σχέσης είναι 1 προς Ν τότε ένα στιγμιότυπο της ΟΝΤΟΤΗΤΑΣ Α μπορεί να συσχετίζεται πολλά στιγμιότυπα της οντότητας Β. Μπορεί να υπάρχουν στιγμιότυπα και στις δύο οντότητες που δεν συνδέονται. Συνήθως αυτού του είδους η σχέση είναι η πιο συνηθισμένη μεταξύ των οντοτήτων μιας βάσης δεδομένων.

12 Η σχέση 1 προς Ν (συν) Η οντότητα ΣΠΟΥΔΑΣΤΗΣ έχει σαν πρωτεύον κλειδί το αριθμό μητρώου. Η οντότητα ΤΜΗΜΑ έχει σαν πρωτεύον κλειδί τον κωδικό του Τμήματος. Η σχέση ΕΧΕΙ (εναλλακτικά ΑΝΗΚΕΙ ή ΣΠΟΥΔΑΣΤΗΣ_ΤΜΗΜΑ) η οποία είναι 1 προς Ν θα μπορούσε να υλοποιηθεί με τη προσθήκη του γνωρίσματος κωδικός τμήματος στην οντότητα ΣΠΟΥΔΑΣΤΗΣ, το οποίο είναι ξένο κλειδί, δηλαδή είναι πρωτεύον κλειδί στην οντότητα ΤΜΗΜΑ. Ονοματεπώνυμο Όροφος ΑΜ ΣΠΟΥΔΑΣΤΗΣ ΚΩΔΙΚΟΣ Άλλα γνωρίσματα ΚΩΔΙΚΟΣ ΤΜΗΜΑ Άλλα γνωρίσματα Έτσι ο κωδικός ενός ΤΜΗΜΑΤΟΣ να επαναλαμβάνεται πολλές φορές στην οντότητα ΣΠΟΥΔΑΣΤΗΣ και αντίστροφα ένας ΣΠΟΥΔΑΣΤΗΣ ανήκει σε ένα ΤΜΗΜΑ.

13 Η σχέση Ν προς Μ Ν προς Μ - Πολλοί πολίτες συμμετέχουν σε πολλούς τραπεζικούς λογαριασμούς. ΠΕΛΑΤΗΣ Ν ΚΑΤΕΧΕΙ Μ ΤΡ. ΛΟΓΑΡΙΑΣΜΟΣ ΟΝΤΟΤΗΤΑ Α ΟΝΤΟΤΗΤΑ Β Όταν το είδος της σχέσης είναι Ν προς Μ τότε πολλά στιγμιότυπα της ΟΝΤΟΤΗΤΑΣ Α μπορεί να συσχετίζεται πολλά στιγμιότυπα της οντότητας Β, και το αντίστροφο. Μπορεί να υπάρχουν στιγμιότυπα και στις δύο οντότητες που δεν συνδέονται. Συνήθως αυτού του είδους τη σχέση προσπαθούμε να τη μετατρέψουμε σε σχέση 1 προς Ν.

14 Η σχέση Ν προς Μ (συν) Η οντότητα ΠΕΛΑΤΗΣ έχει σαν πρωτεύον κλειδί το ΑΦΜ. Η οντότητα ΤΡΑΠΕΖΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ έχει σαν πρωτεύον κλειδί τον κωδικό του λογαριασμού. Η σχέση ΚΑΤΕΧΕΙ η οποία είναι Ν προς Μ θα μπορούσε να υλοποιηθεί με τη μορφή μιας οντότητας όπου τα γνωρίσματα θα μπορούσε να είναι : Α) το ΑΦΜ του πελάτη Β) το κωδικό του λογαριασμού, ΚΩΔΙΚΟΣ ΑΦΜ ΑΦΜ ΚΑΤΕΧΕΙ Ονοματεπώνυμο Άλλα γνωρίσματα Άλλα γνωρίσματα και το πρωτεύον κλειδί να είναι ο συνδυασμός των δύο αυτών γνωρισμάτων. Έτσι το ΑΦΜ ενός πελάτη μπορεί να επαναλαμβάνεται πολλές φορές αλλά να συνδυάζεται με διαφορετικούς τραπεζικούς λογαριασμούς. ΚΩΔΙΚΟΣ ΥΠΟΛΟΙΠΟ ΛΟΓΑΡΙΑΣΜΟΣ Άλλα γνωρίσματα ΠΟΛΙΤΗΣ Οπότε η σχέση Ν (πολίτες) προς Μ (λογαριασμούς) μετατράπηκε σε 2 σχέσεις, της μορφής 1 προς Ν και 1 προς Μ.

15 Ο επιχειρηματικός όμιλος Θέλουμε να δημιουργήσουμε ένα πληροφοριακό σύστημα για ένα επιχειρηματικό όμιλο ο οποίος δραστηριοποιείται στην τυπογραφία και τις εκδόσεις. Ο όμιλος έχει υπό τον έλεγχό του αρκετές εκδοτικές εταιρίες οι οποίες τυπώνουν βιβλία. Το κάθε βιβλίο μπορεί να έχει έναν ή περισσοτέρους συγγραφείς οι οποίοι συμμετέχουν στο βιβλίο με διαφορετικό ποσοστό επί των δικαιωμάτων του. Το κάθε βιβλίο ανήκει σε μία θεματική κατηγορία, δηλαδή να είναι λογοτεχνικό, η επιστημονικής φαντασίας κ.λπ. Το κάθε βιβλίο εκδίδεται από μια εκδοτική εταιρία. Η κάθε εκδοτική εταιρεία χρησιμοποιεί επιμελητές για τον έλεγχο και την άρτια εμφάνιση του βιβλίου. Υπάρχουν πολλές κατηγορίες επιμελητών, όπου η κάθε μία ασχολείται με διαφορετικά πράγματα, όπως την διόρθωση του κειμένου, το ύφος και τη δομή του, την προώθηση τους στην αγορά κ.λπ. Η κάθε μία κατηγορία επιμελητών αμείβεται με διαφορετικό ποσό. Ο κάθε επιμελητής συμμετέχει στην επιμέλεια του κάθε βιβλίου για ένα συγκεκριμένο χρονικό διάστημα με ημερομηνία έναρξης και λήξης.

16 Αναγνώριση των οντοτήτων και των σχέσεων O συγγραφέας του βιβλίου "Ζητείται Ελπίδα" είναι ο Κώστας Παπαδόπουλος. ΣΥΓΓΡΑΦΕΑΣ (AUTHOR) ΒΙΒΛΙΟ (BOOK) Το βιβλίο "Ζητείται Ελπίδα ανήκει στην κατηγορία της "Κοινωνικής Ψυχολογίας" ΚΑΤΗΓΟΡΙΑ ΒΙΒΛΙΟΥ (BOOKCATEGORY) ΒΙΒΛΙΟ (BOOK) Η εταιρεία "Φωτεινό Μονοπάτι" έκανε την έκδοση του βιβλίου "Ζητείται Ελπίδα". ΕΚΔΟΤΗΣ (PUBLISHER) ΒΙΒΛΙΟ (BOOK) Η Μαρία Λουκά έκανε τη φιλολογική επιμέλεια του βιβλίου "Ζητείται Ελπίδα" ενώ ο Κώστας Αθανασίου είχε τον έλεγχο της προώθησης. ΕΠΙΜΕΛΗΤΗΣ (EDITOR) ΒΙΒΛΙΟ (BOOK) ΚΑΤΗΓΟΡΙΑ ΕΠΙΜΕΛΗΤΗ (EDITOR_CATEGORY)

17 Δημιουργία της ΒΔ Library

18 H δημιουργία του BookCategory Μετά τη δημιουργία της βάσης η προτεινόμενη ενέργεια να δημιουργήσουμε έναν πίνακα. Στο πεδίο name πληκτρολογούμε το όνομα του πίνακα BookCategory και στο πλήθος των στηλών το 2. Τέλος πατάμε Go

19 Η οντότητα BookCategory

20 Οντότητα BookCategory BookCategory category_id title O κωδικός της κατηγορίας O τίτλος της κατηγορίας Τίτλος ΚΩΔΙΚΟΣ BOOKCATEGORY

21 O πίνακας BookCategory Στο όνομα (Name) πληκτρολογούμε category_id (1), στο τύπο (Type) επιλέγουμε INT (2), και τσεκάρουμε το Auto increment (3). Εμφανίζεται ένα παράθυρο που μας ενημερώνει ότι θα θα θεωρήσει το πεδίο σαν πρωτεύον κλειδί και επιπλέον θα δημιουργήσει ένα ευρετήριο για τη γρήγορη αναζήτηση των τιμών του πεδίου. Πατάμε Go

22 O πίνακας BookCategory (συν) Στο όνομα (Name) πληκτρολογούμε title (1), στο τύπο (Type) επιλέγουμε VARCHAR (2), και στο μήκος (Length/Values) γράφουμε 50 (3). Στο ευρετήριο (4) επιλέγουμε UNIQUE. Στο παράθυρο που εμφανίζεται πληκτρολογούμε στο όνομα του ευρετηρίου το titleidx (5) πατάμε Go (6) και τέλος πατάμε Save (5).

23 O κώδικας σε SQL BookCode CREATE TABLE `business_group`.`bookcategory` ( `category_id` INT NOT NULL AUTO_INCREMENT, `title` VARCHAR(50) NOT NULL, PRIMARY KEY (`category_id`), UNIQUE `titleidx` (`title`) ) ENGINE = InnoDB;

24 O πίνακας BookCategory (συν) Μπορούμε να αλλάξουμε κάθε στοιχείο του πίνακα καθώς και τα ευρετήρια του. Στην πρώτη γραμμή του μενού πατάμε Insert με σκοπό να κάνουμε εισαγωγή μερικών εγγράφων στον πίνακα BookCategory.

25 Εισαγωγή εγγραφών στο BookCategory Δεν γράφουμε τίποτα για τιμή category_id. Στο title πληκτρολογούμε επιστημονική φαντασία και Πατάμε Go INSERT INTO `BookCategory` (`category_id`, `title`) VALUES (NULL, 'Επιστημονική φαντασία'); Προσθέτουμε δύο ακόμα εγγραφές με τίτλους Ξένη λογοτεχνία και Τουριστικός οδηγός Ελλάδος

26 Οι εγγραφές του BookCategory

27 Η οντότητα Author

28 Οντότητα Συγγραφέας (Author) Author author_id afm firstname lastname phone address tk Ο κωδικός του συγγραφέα O κωδικός ΑΦΜ To όνομα Το επώνυμο To τηλέφωνο H διεύθυνση H διεύθυνση Ταχυδρομικός κώδικας όνομα Επώνυμο Ονοματεπώνυμο ΑΦΜ Οδός Διεύθυνση/ΤΚ κατοικίας Αριθμός Πόλη Τηλέφωνο ΤΚ Κωδικός AUTHOR

29 O πίνακας Author

30 O κώδικας SQL για τον Author Author CREATE TABLE `business_group`.`author` ( `author_id` INT NOT NULL AUTO_INCREMENT, `afm` VARCHAR(10) NOT NULL, `firstname` VARCHAR(20) NOT NULL, `lastname` VARCHAR(30) NOT NULL, `address` VARCHAR(200) NOT NULL, `tk` VARCHAR(10) NULL, `phone` VARCHAR(20) NOT NULL, ` ` VARCHAR(50) NULL, PRIMARY KEY (`author_id`), UNIQUE `afmidx` (`afm`) ) ENGINE = InnoDB; Το πρωτεύον κλειδί είναι το author_id και τα πεδία και ταχυδρομικός κώδικας μπορεί να πάρουν τιμές NULL. To πεδίο afm θα πρέπει να περιέχει μοναδικές τιμές.

31 Εισαγωγή εγγραφών στον Author

32 Οι εγγραφές στον Αuthor Οι εντολές σε SQL INSERT INTO `author` (`author_id`, `afm`, `firstname`, `lastname`, `address`, `tk`, `phone`, ` `) VALUES (NULL, ' ', 'Άγγελος', 'Ιωάννου', 'Λεύκας 25, Αθήνα', '18767', ' ', NULL); INSERT INTO `author` (`author_id`, `afm`, `firstname`, `lastname`, `address`, `tk`, `phone`, ` `) VALUES (NULL, ', 'Δημήτρης', Σπανός', 'Σπάρτης 21, Αθήνα', '12267', ' ', NULL); INSERT INTO `author` (`author_id`, `afm`, `firstname`, `lastname`, `address`, `tk`, `phone`, ` `) VALUES (NULL, ' ', 'Αναστασία', 'Αλεξάνδρου', 'Μιχαήλ Βόδα 75, Αθήνα', '10456', ' ', INSERT INTO `author` (`author_id`, `afm`, `firstname`, `lastname`, `address`, `tk`, `phone`, ` `) VALUES (NULL, ' ', 'Χριστίνα', 'Πετράκου', 'Αργους 123, Αθήνα', '15632', ' ',

33 Η οντότητα Publisher

34 H oντότητα Εκδότης (Publisher) Publisher pub_id title afm address tk phone O κωδικός εκδότη Η επωνυμία της εταιρίας To αφμ της εταιρίας H διεύθυνση Ταχυδρομικός κώδικας τηλέφωνο H διεύθυνση

35 H δημιουργία του Publisher

36 O κώδικας SQL για το Publisher Publisher CREATE TABLE `business_group`.`publisher` ( `pub_id` INT NOT NULL AUTO_INCREMENT, `title` VARCHAR(50) NOT NULL, `afm` VARCHAR(10) NOT NULL, `address` VARCHAR(200) NOT NULL, `tk` VARCHAR(10) NULL, `phone` VARCHAR(20) NULL, ` ` VARCHAR(50) NULL, PRIMARY KEY (`pub_id`), UNIQUE `afmidx` (`afm`) ) ENGINE = InnoDB; Τα πεδία ταχυδρομικός κώδικας (tk), τηλέφωνο (phone) και είναι NULL επειδή δεν είναι κρίσιμες οι τιμές τους για την εισαγωγή της πληροφορίας όπως είναι για παράδειγμα ο τίτλος, το αφμ και η διεύθυνση του εκδότη.

37 Εισαγωγή εγγραφών στο Publisher Το πεδίο pub_id το αφήνουμε κενό, στον τίτλο γράφουμε Eκδόσεις Nέα Eποχή, στο αφμ , στη διεύθυνση Aχαρνών 127, Αθήνα, στο ταχυδρομικό κώδικα και στο τηλέφωνο και τέλος πατάμε το Go.

38 Οι εγγραφές στο Publishers Οι εντολές σε SQL INSERT INTO `publisher` (`pub_id`, `title`, `afm`, `address`, `tk`, `phone`, ` `) VALUES (NULL, 'Εκδόσεις Νέα Εποχή', ' ', 'Αχαρνών 127, Αθήνα', '10447', ' ', NULL); INSERT INTO `publisher` (`pub_id`, `title`, `afm`, `address`, `tk`, `phone`, ` `) VALUES (NULL, 'Φωτεινό Μονοπάτι', ' ', 'Πανεπιστημίου 40, Αθήνα', '10034', ' ', INSERT INTO `publisher` (`pub_id`, `title`, `afm`, `address`, `tk`, `phone`, ` `) VALUES (NULL, 'Εκδόσεις Μονοπάτι', ' ', 'Αιόλου 120, Αθήνα', '11104', ' ', NULL)

39 Η οντότητα Book

40 Οντότητα Βιβλίο (Book) Book isbn title category_id publisher_id price description public_date O κωδικός isbn του βιβλίου O τίτλος του βιβλίου To είδος του βιβλίου (λογοτεχνικό) O εκδότης Τιμή του βιβλίου Περιγραφή Ημερομηνία Έκδοσης Το βιβλίο ανήκει σε μια κατηγορία και αυτό είναι μια σχέση 1 προς Ν, αφού πολλά βιβλία ανήκουν σε μια κατηγορία. Για την επίλυση αυτής της σχέσης ΑΝΗΚΕΙ προσθέτουμε στην οντότητα BOOK το ξένο κλειδί category_id, το οποίο είναι πρωτεύον στην οντότητα BOOKCATEGORY. ΚΑΤΗΓΟΡΙΑ ΒΙΒΛΙΟΥ ΑΝΗΚΕΙ ΒΙΒΛΙΟ 1 Ν

41 Οντότητα Βιβλίο (Book) ΕΚΔΟΤΗΣ Εκδίδει ΒΙΒΛΙΟ 1 Ν Με το ίδιο τρόπο επιλύουμε τη σχέση ΕΚΔΙΔΕΤΑΙ, η οποία είναι 1 προς Ν ανάμεσα στην οντότητα BOOK και PUBLISHER με την προσθήκη του ξένου κλειδιού publisher_id, το οποίο είναι πρωτεύον στην οντότητα PUBLISHER.

42 O κώδικας SQL για το Βοοκ Book CREATE TABLE `business_group`.`book` ( `isbn` VARCHAR(15) NOT NULL, `title` VARCHAR(100) NOT NULL, `category_id` INT NOT NULL, `publisher_id` INT NOT NULL, `price` FLOAT NOT NULL, `description` VARCHAR(300) NOT NULL, `publ_date` DATE ΝΟΤ NULL, PRIMARY KEY (`isbn`) ) ENGINE = InnoDB; Το πρωτεύον κλειδί είναι το isbn και όλα τα πεδία είναι απαραίτητα για την εισαγωγή ενός βιβλίου.

43 Δημιουργία Ευρετηρίων για τα ξένα κλειδιά To πρώτο βήμα για τη δήλωση ότι το πεδίο category_id αποτελεί ξένο κλειδί (δηλαδή είναι πρωτεύον κλειδί σε άλλο πίνακα) είναι η δημιουργία ενός ευρετηρίου. Επιλέγουμε τη δομή του πίνακα Book (1) εν συνεχεία Index (2) για το πεδίο category_id και τέλος πατάμε ΟΚ (3) Επαναλαμβάνουμε τη διαδικασία και δημιουργούμε ευρετήριο για το publisher_id

44 Δήλωση category_id σαν ξένο κλείδι Προβολή Σχέσης Γράφουμε ένα όνομα, όπως cat_idx_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (Book.category_id) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (BookCategory.category_id). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο BookCategory.category_id να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές Book.category_id) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής BookCategory.category_id αν υπάρχουν εγγραφές με ίδιες τιμές στο Book.category_id).

45 Δήλωση publisher_id σαν ξένο κλείδι Προβολή Σχέσης Γράφουμε ένα όνομα, όπως pub_idx_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (Book.publisher_id) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (Publisher.pub_id). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο Publisher.pub_id να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές Book.publisher_id) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής Publisher.pub_id αν υπάρχουν εγγραφές με ίδιες τιμές στο Book.publisher_id).

46 Η sql δηλώσεις για τη δημιουργία των ξένων κλειδιών ALTER TABLE `book` ADD CONSTRAINT `cat_idx_fk` FOREIGN KEY (`category_id`) REFERENCES `bookcategory`(`category_id`) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE `book` ADD CONSTRAINT `pub_idx_fk` FOREIGN KEY (`publisher_id`) REFERENCES `publisher`(`pub_id`) ON DELETE RESTRICT ON UPDATE CASCADE; Από τη δομή (1) και την εμφάνιση των σχέσεων (2) μπορούμε να διαχειριστούμε τους περιορισμούς ενός πίνακα.

47 Εισαγωγή τιμών στο Book INSERT INTO `book` (`isbn`, `title`, `category_id`, `publisher_id`, `price`, `description`, `publ_date`) VALUES (' ', 'Ηλιος και θάλασσα', '3', '3', '15', '', ' ');

48 Η οντότητα Επιμελητής

49 Η οντότητα Επιμελητής (editor) Editor editor_id afm firstname lastname phone address tk Ο κωδικός του επιμελητή O κωδικός ΑΦΜ To όνομα Το επώνυμο To τηλέφωνο H διεύθυνση H διεύθυνση Ταχυδρομικός κώδικας

50 Ο πίνακας Editor

51 O κώδικας SQL για τον Editor Editor CREATE TABLE `business_group`.`editor` ( `editor_id` INT NOT NULL AUTO_INCREMENT, `afm` VARCHAR(10) NOT NULL, `firstname` VARCHAR(20) NOT NULL, `lastname` VARCHAR(30) NOT NULL, `phone` VARCHAR(20) NOT NULL, `address` VARCHAR(200) NOT NULL, `tk` VARCHAR(10) NULL, ` ` VARCHAR(50) NULL, PRIMARY KEY (`editor_id`), UNIQUE `afmidx` (`afm`) ) ENGINE = InnoDB; Τα πεδία ταχυδρομικός κώδικας (tk) και είναι NULL επειδή δεν είναι κρίσιμες οι τιμές τους για την εισαγωγή της πληροφορίας όπως είναι για παράδειγμα ο τίτλος, το αφμ, η διεύθυνση και το τηλέφωνο του επιμελητή.

52 Εισαγωγή ενός επιμελητή

53 Οι εγγραφές για τον editor Οι εντολές σε SQL INSERT INTO `editor` (`editor_id`, `afm`, `firstname`, `lastname`, `phone`, `address`, `tk`, ` `) VALUES (NULL, ' ', 'Κώστας', 'Νικολάου', ' ', 'Πάτμου 23, Αθήνα', '10834', NULL); INSERT INTO `editor` (`editor_id`, `afm`, `firstname`, `lastname`, `phone`, `address`, `tk`, ` `) VALUES (NULL, ' ', 'Γεώργιος', 'Λουκάς', ' ', 'Χίου 85, Αθήνα', NULL, NULL); INSERT INTO `editor` (`editor_id`, `afm`, `firstname`, `lastname`, `phone`, `address`, `tk`, ` `) VALUES (NULL, ' ', 'Φώτης', 'Δαναός', ' ', 'Μυκόνου 115, Αθήνα', NULL, NULL) INSERT INTO `editor` (`editor_id`, `afm`, `firstname`, `lastname`, `phone`, `address`, `tk`, ` `) VALUES (NULL, ' ', 'Ουρανία', 'Τσαγκάρη', ' ', 'Πατριάρχου Κοσμά 5, Αθήνα', '16671',

54 Η οντότητα Editor_Category

55 H οντότητα editor_category editor_category cat_id Ο κωδικός της κατηγορίας title Ο τίτλος της κατηγορίας salary Μισθός Το πεδίο κωδικός κατηγορίας είναι πρωτεύον κλειδί, το πεδίο τίτλος είναι μοναδικό, και το πεδίο μισθός είναι πραγματικός αριθμός.

56 O κώδικας SQL για το editor_category editor_category CREATE TABLE `business_group`.`editor_category` ( `cat_id` INT NOT NULL AUTO_INCREMENT, `title` VARCHAR(100) NOT NULL, `salary` FLOAT NOT NULL, PRIMARY KEY (`cat_id`), UNIQUE `titleidx` (`title`) ) ENGINE = InnoDB;

57 Οι εγγραφές του editor_category Οι εντολές σε SQL INSERT INTO `editor_category` (`cat_id`, `title`, `salary`) VALUES (NULL, 'Γενικής υποστήριξης', '1200'); INSERT INTO `editor_category` (`cat_id`, `title`, `salary`) VALUES (NULL, 'Φιλογική επιμέλεια', '2480'); INSERT INTO `editor_category` (`cat_id`, `title`, `salary`) VALUES (NULL, 'Πωλήση - προώθηση', '1500')

58 Επίλυση των σχέσεων Βιβλίο - Συγγραφέας Βιβλίο - Επιμελητής

59 Η σχέση ΒοοκAuthor BookAuthor author_id book_isbn bookshare O κωδικός του συγγραφέα To isbn του βιβλίου Ποσοστό συμμετοχής στα δικαιώματα του βιβλίου H σχέση της οντότητας ΣΥΓΓΡΑΦΕΑΣ (AUTHOR) με την οντότητα ΒΙΒΛΙΟ (BOOK) είναι μια σχέση πολλά προς πολλά (ΝxΜ) επειδή πολλοί συγγραφείς έχουν γράψει ένα βιβλίο και πολλά βιβλία έχουν γραφτεί από ένα συγγραφέα. Για την επίλυση αυτής της σχέσης δημιουργούμε την οντότητα BookAuthor η οποία έχει σαν γνωρίσματα τα πρωτεύοντα κλειδιά των επιμέρους οντοτήτων συν το γνώρισμα μερίδιο το οποίο δείχνει την συμμετοχή του κάθε συγγραφέα στο εκάστοτε βιβλίο.

60 Δημιουργία του πίνακα BookAuthor Πρώτα δηλώνουμε σαν πρωτεύον κλειδί το author_id και εν συνεχεία δηλώνουμε και το bookisbn και αυτό σαν πρωτεύον κλειδί ώστε ο συνδυασμός τους να αποτελεί το πρωτεύον κλειδί του πίνακα.

61 O κώδικας SQL για το BookAuthor BookAuthor CREATE TABLE `business_group`.`bookauthor` ( `author_id` INT NOT NULL, `bookisbn` VARCHAR(15) NOT NULL, `bookshare` FLOAT NOT NULL, PRIMARY KEY (`author_id`, `bookisbn`) ) ENGINE = InnoDB; To πρώτο βήμα για τη δήλωση ότι το πεδίο author_id αποτελεί ξένο κλειδί (δηλαδή είναι πρωτεύον κλειδί σε άλλο πίνακα) είναι η δημιουργία ενός ευρετηρίου. Επιλέγουμε τη δομή του πίνακα BookAuthor (1) εν συνεχεία Index (2) για το πεδίο author_id και τέλος πατάμε ΟΚ (3)

62 Δημιουργία ευρετηρίων για το BookAuthor Παρόμοια, τo πρώτο βήμα για τη δήλωση ότι το πεδίο bookisbn αποτελεί ξένο κλειδί (δηλαδή είναι πρωτεύον κλειδί σε άλλο πίνακα) είναι η δημιουργία ενός ευρετηρίου. Επιλέγουμε τη δομή του πίνακα BookAuthor (1) εν συνεχεία Index (2) για το πεδίο bookisbn και τέλος πατάμε ΟΚ (3) Για να διαχειριστούμε τα ευρετήρια ενός πίνακα μπορούμε αφού έχουμε επιλέξει τη δομή (1) έπειτα να πατήσουμε Indexes (4) και να επεξεργαστούμε όλα τα ευρετήρια.

63 Δήλωση author_id σαν ξένο κλείδι Προβολή Σχέσης Γράφουμε ένα όνομα, όπως author_id_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (BookAuthor.author_id) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (AUTHOR.author_id). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο AUTHOR.author_id να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές BookAuthor.author_id) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής AUTHOR.author_id αν υπάρχουν εγγραφές με ίδιες τιμές στο BookAuthor.author_id).

64 Δήλωση book_isbn σαν ξένο κλείδι Γράφουμε ένα όνομα, όπως book_isbn_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Παρόμοια δηλώνουμε ότι οι τιμές στο πεδίο (BookAuthor.bookisbn) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (BOOK.isbn). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο BOOK.isbn να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές BookAuthor.bookisbn) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής BOOK.isbn αν υπάρχουν εγγραφές με ίδιες τιμές στο BookAuthor.bookisbn).

65 Η sql δηλώσεις για τη δημιουργία των ξένων κλειδιών ALTER TABLE `bookauthor` ADD CONSTRAINT `author_id_fk` FOREIGN KEY (`author_id`) REFERENCES `author`(`author_id`) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE `bookauthor` ADD CONSTRAINT `book_isbn_fk` FOREIGN KEY (`bookisbn`) REFERENCES `book`(`isbn`) ON DELETE RESTRICT ON UPDATE CASCADE; Από τη δομή (1) και την εμφάνιση των σχέσεων (2) μπορούμε να διαχειριστούμε τους περιορισμούς ενός πίνακα.

66 Εισαγωγή εγγραφής στο BookAuthor INSERT INTO `bookauthor` (`author_id`, `bookisbn`, `bookshare`) VALUES (1, ' ', 1);

67 BookEditor editor_id editor_cat book_isbn startdate enddate Η σχέση ΒοοκEditor O κωδικός του επιμελητή O κωδικός επιμέλειας To isbn του βιβλίου Ημερομηνία έναρξης της επιμέλειας Ημερομηνία λήξης της ανάθεσης H σχέση της οντότητας ΕΠΙΜΕΛΗΤΗΣ (Editor) με την οντότητα ΒΙΒΛΙΟ (BOOK) είναι μια σχέση πολλά προς πολλά (ΝxΜ) επειδή πολλοί επιμελητές ασχολούνται με ένα βιβλίο και πολλά βιβλία έχουν επιμεληθεί από ένα επιμελητή. Επίσης θέλουμε να γνωρίζουμε το είδος της επιμέλειας για το συγκεκριμένο βιβλίο. Για την επίλυση αυτής της σχέσης δημιουργούμε την οντότητα BookEditor η οποία έχει σαν γνωρίσματα τα πρωτεύοντα κλειδιά των επιμέρους οντοτήτων συν τα γνωρίσματα της έναρξης και της λήξης της συμμετοχής ενός επιμελητή σε ένα βιβλίο. Με την ανωτέρω περιγραφή υπάρχει η ευελιξία ο ίδιος επιμελητής να ασχοληθεί για το ίδιο βιβλίο με διαφορετικές εργασίες. Εμείς θα θεωρήσουμε ότι το πρωτεύον κλειδί είναι ο συνδυασμός των πεδίων editor_id, editor_cat, book_isbn οπότε ένας επιμελητής μπορεί να ασχοληθεί με διαφορετικά βιβλία και να προσφέρει διαφορετικές υπηρεσίες.

68 Δημιουργία του πίνακα BookEditor Πρώτα δηλώνουμε σαν πρωτεύον κλειδί το editor_id και εν συνεχεία δηλώνουμε και το editor_cat και αυτό σαν πρωτεύον κλειδί και τέλος το book_isbn ώστε ο συνδυασμός τους να αποτελεί το πρωτεύον κλειδί του πίνακα.

69 O κώδικας SQL για το BookEditor BookEditor CREATE TABLE `business_group`.`bookeditor` ( `editor_id` INT NOT NULL, `editor_cat` INT NOT NULL, `book_isbn` VARCHAR(15) NOT NULL, `startdate` DATE NOT NULL, `enddate` DATE NULL, PRIMARY KEY (`editor_id`, `editor_cat`, `book_isbn`) ) ENGINE = InnoDB; Επίσης δηλώνουμε το startdate και το endate σαν ημερομηνίες και το enddate μπορεί να πάρει τιμή NULL επειδή μπορεί να μην γνωρίζουμε πότε θα τελειώσει η επιμέλεια του συγκεκριμένου βιβλίου. To πρώτο βήμα για τη δήλωση ότι το πεδίο editor_id αποτελεί ξένο κλειδί (δηλαδή είναι πρωτεύον κλειδί σε άλλο πίνακα) είναι η δημιουργία ενός ευρετηρίου. Επιλέγουμε τη δομή του πίνακα BookEditor (1) εν συνεχεία Index (2) για το πεδίο editor_id και τέλος πατάμε ΟΚ (3) Επαναλαμβάνουμε τη διαδικασία και προσθέτουμε ευρετήρια στα πεδία editor_cat και book_isbn.

70 Δημιουργία ευρετηρίων για το BookEditor Επιλέγουμε της δομή του πίνακα BookEditor (1) και για το πεδίο editor_id, επιλέγουμε index και πατάμε ΟΚ (3) Επαναλαμβάνουμε τη διαδικασία για τα πεδία editor_cat και book_isbn

71 Δήλωση editor_id σαν ξένο κλείδι Προβολή Σχέσης Γράφουμε ένα όνομα, όπως editor_id_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (BookEditor.editor_id) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (Editor.editor_id). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο Editor.editor_id να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές BookEditor.editor_id) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής Editor.editor_id αν υπάρχουν εγγραφές με ίδιες τιμές στο BookEditor.editor_id).

72 Δήλωση editor_cat σαν ξένο κλείδι Προβολή Σχέσης Γράφουμε ένα όνομα, όπως editor_cat_fk Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (BookEditor.editor_cat) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (Editor_category.cat_id). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν σε περίπτωση που αλλάξουν (CASCADE -σημαίνει ότι αν αλλάξει η τιμή στο Editor_category.cat_id να αλλάξουν και οι τιμές στις αντίστοιχες εγγραφές BookEditor.editor_cat) ή αν διαγραφούν (RESTRICT - σημαίνει να ματαιωθεί η διαγραφή της εγγραφής Editor.editor_id αν υπάρχουν εγγραφές με ίδιες τιμές στο BookEditor.editor_cat).

73 Δήλωση book_isbn σαν ξένο κλείδι Προβολή Σχέσης Επιλέγουμε το πεδίο που θα συσχετιστεί με το ξένο πίνακα. Γράφουμε ένα όνομα, όπως book_isbn2_fk Επιλέγουμε τις ενέργειες κατά τη διαγραφή και τη τροποποίηση των τιμών. Επιλέγουμε τη Βάση Δεδομένων, το πίνακα και το πεδίο που είναι το ξένο κλειδί. Η δήλωση του ξένου κλειδιού αποτελεί έναν περιορισμό, ότι οι τιμές στο συγκεκριμένο πεδίο (BookEditor.book_isbn) θα προέρχονται μόνο από τις τιμές του πεδίου στο ξένο πίνακα (Book.isbn). Οπότε πρέπει να δηλώσουμε και τις ενέργειες που θα γίνουν στις εγγραφές του πίνακα BookEditor σε περίπτωση που αλλάξουν (CASCADE) ή αν διαγραφούν (RESTRICT) οι τιμές στο ξένο πίνακα (Book). Προσοχή το όνομα του constraint να είναι διαφορετικό από οποιοδήποτε άλλο όνομα περιορισμού στη Βάση Δεδομένων.

74 Η sql δηλώσεις για τη δημιουργία των ξένων κλειδιών ALTER TABLE `bookeditor` ADD CONSTRAINT `editor_id_fk` FOREIGN KEY (`editor_id`) REFERENCES `editor`(`editor_id`) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE `bookeditor` ADD CONSTRAINT `editor_cat_fk` FOREIGN KEY (`editor_cat`) REFERENCES `editor_category`(`cat_id`) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE `bookeditor` ADD CONSTRAINT `book_isbn2_fk` FOREIGN KEY (`book_isbn`) REFERENCES `book`(`isbn`) ON DELETE RESTRICT ON UPDATE CASCADE; Από τη δομή (1) και την εμφάνιση των σχέσεων (2) μπορούμε να διαχειριστούμε όλους τους περιορισμούς ενός πίνακα.

75 Εισαγωγή τιμών στο πίνακα bookeditor INSERT INTO `bookeditor` (`editor_id`, `editor_cat`, `book_isbn`, `startdate`, `enddate`) VALUES ('1', '2', ' ', ' ', ' ');

76 Ερωτήματα με συνδυασμό εγγραφών σε δύο ή περισσότερους πίνακες.

77 Join Η εντολή JOIN μας επιτρέπει να επιλέξουμε εγγραφές από δύο ή περισσότερους πίνακες, αρκεί αυτοί να σχετίζονται με κάποιο πεδίο που είναι κοινό. Διαφορετικοί Τύποι JOIN Αριστερός Πίνακας Πίνακας Publisher Δεξιός Πίνακας JOIN (ισοδύναμη έκφραση INNER JOIN) επιλέγει τις εγγραφές των οποίων οι τιμές ταιριάζουν και στους δύο πίνακες. Οι δύο παρακάτω πίνακες σχετίζονται στο πεδίο Publisher_Id Πίνακας Book

78 Ερώτημα: Εμφάνιση βιβλίων ανά εκδότη select book.isbn, book.title, publisher.title from book INNER join publisher on book.publisher_id=publisher.pub_id order by publisher.title, book.publ_date

79 Ερώτημα: Εμφάνιση βιβλίων, συγγραφείς, ποσοστά select book.isbn, book.title, author.lastname, bookauthor.bookshare from bookauthor inner join book on bookauthor.bookisbn = book.isbn INNER join author on bookauthor.author_id = author.author_id order by book.isbn asc, bookauthor.bookshare desc

80 Διαφορετικοί Τύποι JOIN (συν) Αριστερός Πίνακας Δεξιός Πίνακας Left JOIN επιλέγει όλες τις εγγραφές από τον αριστερό πίνακα και αυτές που ταιριάζουν από το δεξιό πίνακα. Ο πίνακας bookcategory έχει τρεις κατηγορίες εκ των οποίων μόνο οι δύο, category_id με 1 και 3, έχουν αναφορά σε βιβλία. Τρέχοντας το παρακάτω ερώτημα ο αριστερός πίνακας είναι ο bookcategory και επιλέγονται όλες οι εγγραφές του, και η category_id = 2, και όλες οι στήλες που ταιριάζουν από το δεξιό πίνακα. select bookcategory.title, book.title from bookcategory Left join book ON bookcategory.category_id = book.category_id

81 Διαφορετικοί Τύποι JOIN (συν) Αριστερός Πίνακας Δεξιός Πίνακας Right JOIN (ισοδύναμη έκφραση RIGHT OUTER JOIN) επιλέγει όλες τις εγγραφές από τον δεξιό πίνακα και αυτές που ταιριάζουν από τον αριστερό πίνακα. Ας υποθέσουμε ότι υπάρχουν δύο ακόμα εκδότες οι οποίοι δεν έχουν εκδώσει βιβλία : INSERT INTO `publisher` (`pub_id`, `title`, `afm`, `address`, `tk`, `phone`, ` `) VALUES (NULL, 'Εκδόσεις Ζωή', ' ', 'Θηβών 220, Αθήνα', '12244', ' ', NULL) INSERT INTO `publisher` (`pub_id`, `title`, `afm`, `address`, `tk`, `phone`, ` `) VALUES (NULL, 'Εκδόσεις Φως', ' ', 'Σωκράτους 56, Αθήνα', '14244', ' ', NULL) και έστω ότι θέλουμε να δούμε τα βιβλία ανά εκδότη και μάλιστα να επιλεγούν και οι εκδότες που δεν έχουν εκδώσει κάποιο βιβλίο. Οι δύο πίνακες που εμπλέκονται στο ερώτημα είναι οι book και publiher οπότε θα χρησιμοποιήσουμε το πίνακα book σαν αριστερό και τον publisher σαν δεξιό πίνακα σε μια σχέση RIGHT JOIN

82 Διαφορετικοί Τύποι JOIN (συν) select book.isbn, book.title, publisher.title from book right join publisher ON book.publisher_id = publisher.pub_id Αν στο ανωτέρω ερώτημα αντικαταστήσουμε το RIGHT με το LEFT τότε δεν θα επιλέξουμε τις δύο τελευταίες εγγραφές.

83 Αριστερός Πίνακας Δεξιός Πίνακας FULL JOIN FULL JOIN επιλέγει όλες τις εγγραφές από τους δύο πίνακες. (Η ΜySQL δεν υποστηρίζει τη σύνταξη του FULL JOIN αλλά μπορεί να υλοποιηθεί με την ένωση UNION μεταξύ του LEFT JOIN και του RIGHT JOIN) Έστω ότι υπάρχει ένα ή περισσότερα βιβλία που δεν έχουν εκδότη INSERT INTO `book` (`isbn`, `title`, `category_id`, `publisher_id`, `price`, `description`, `publ_date`) VALUES (' ', 'O κόσμος στη δύση', '3', NULL, '25', '', ' '); ΠΡΟΣΟΧΗ, για να επιτύχει το ανωτέρω ερώτημα θα πρέπει να έχει προηγηθεί μια αλλαγή στη δομή του πίνακα book τέτοια ώστε η προκαθορισμένη τιμή στο πεδίο book.publisher_id να είναι η NULL. Αυτή η αλλαγή έχει μόνο εκπαιδευτικό στόχο. και έστω ότι θέλουμε να δούμε τα βιβλία ανά εκδότη και μάλιστα να επιλεγούν και οι εκδότες που δεν έχουν εκδώσει κάποιο βιβλίο καθώς και τα βιβλία που δεν έχουν εκδότη. Οι δύο πίνακες που εμπλέκονται στο ερώτημα είναι οι book και publisher οπότε θα χρησιμοποιήσουμε το πίνακα book σαν αριστερό και τον publisher σαν δεξιό πίνακα σε μια σχέση LEFT JOIN τα αποτελέσματα της οποίας θα ενωθούν (UNION) με τα αποτελέσματα μια RIGHT JOIN.

84 FULL JOIN (συν) Η εντολή Union ενοποιεί τα αποτελέσματα διαφορετικών ερωτημάτων αρκεί να έχουν το ίδιο πλήθος στηλών. Επιπλέον η εντολή Union διαγράφει όλα τα διπλότυπα, και σε περίπτωση που θέλουμε να εμφανιστούν θα πρέπει να αντικαταστήσουμε την εντολή Union με την Union Αll SELECT book.isbn, book.title, publisher.title from book left join publisher on book.publisher_id = publisher.pub_id UNION SELECT book.isbn, book.title, publisher.title from book RIGHT join publisher on book.publisher_id = publisher.pub_id

85 Ερώτημα: Πλήθος βιβλίων ανά συγγραφέα Σε συνέχεια του προηγούμενου ερωτήματος αν θέλουμε να δούμε το πλήθος των βιβλίων ανά συγγραφέα θα μπορούσαμε να προσθέσουμε τη συνάρτηση COUNT η οποία μετράει πλήθος isbn select count(book.isbn), author.lastname from bookauthor inner join book on bookauthor.bookisbn = book.isbn INNER join author on bookauthor.author_id = author.author_id Σίγουρα δεν είναι το αναμενόμενο αποτέλεσμα και θα πρέπει να προσθέσουμε στο τέλος του ανωτέρω ερωτήματος την δήλωση group by author.lastname η οποία συνδυάζεται με τις συγκεντρωτικές συναρτήσεις avg, sum κ.λπ. ώστε να ομαδοποιήσει τα αποτελέσματα σε ένα πεδίο.

86 Ερώτημα: Πλήθος βιβλίων ανά συγγραφέα Τώρα θέλουμε να εμφανίσουμε όλους τους συγγραφείς που έχουν περισσότερα από τρία βιβλία δεν μπορούμε να χρησιμοποιήσουμε WHERE με τις συγκεντρωτικές συναρτήσεις (COUNT, SUM κ.λπ.) και θα πρέπει να χρησιμοποιήσουμε την HAVING όπως παρακάτω : select count(book.isbn), author.lastname from bookauthor inner join book on bookauthor.bookisbn = book.isbn INNER join author on bookauthor.author_id = author.author_id group by author.lastname HAVING count(book.isbn) > 3 Μια παραλλαγή στο ανωτέρω είναι να χρησιμοποιήσουμε ένα αναγνωριστικό για την συγκεντρωτική συνάρτηση. Αυτό μπορεί να γίνει και σε οποιοδήποτε άλλο πεδίο του ερωτήματος. Χρησιμοποιούμε τη δήλωση AS ΑΝΑΓΝΩΡΙΣΤΙΚΟ μετά το πεδίο. SELECT count(book.isbn) as nobooks, author.lastname from bookauthor INNER JOIN book on bookauthor.bookisbn = book.isbn INNER JOIN author on bookauthor.author_id = author.author_id GROUP BY author.lastname HAVING nobooks > 3

87 Διάφορα ερωτήματα Εμφάνιση όλων των βιβλίων που εκδόθηκαν το 2016 select book.title from book where year(book.publ_date) = 2016 Εμφάνιση όλων των βιβλίων όπου η τιμή του εκδότη είναι NULL SELECT * FROM book WHERE publisher_id is NULL Εμφάνιση όλων των βιβλίων όπου η τιμή του εκδότη δεν είναι NULL SELECT * FROM book WHERE publisher_id is NOT NULL

88

89

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

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 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 Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

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

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

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

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

Οι εντολές 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 Περιεχόμενα

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

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

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

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

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

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση Βάσεις Δεδομένων 3η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Συσχέτιση πινάκων (εισαγωγή ξένων κλειδιών) Δρ. Μαρία Ευθυμιοπούλου 1. Εμφάνιση πινάκων στο Workspace Στο προηγούμενο εργαστήριο

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

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

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

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

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

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση Βάσεις Δεδομένων 5η εργαστηριακή άσκηση SQL Δρ. Μαρία Ευθυμιοπούλου Εντολές sql Για να γράψετε ή να επικολλήσετε εντολές sql πηγαίνετε από το μενού SQL Workshop και επιλέγετε το SQL Commands 1. Δημιουργία

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

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

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

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

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

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

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ι - 05. SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Βάσεις Δεδομένων Ι - 05. SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ Βάσεις Δεδομένων Ι - 05 SQL Μέρος 3 ο (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας Πρόσθετες Διαφάνειες σε Προηγούμενα Θέματα...σε Διαγραφή Πλειάδων Σημασιολογία

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΕΤΑΡΤΟ Insert, Update, Delete, Ένωση πινάκων Γιώργος Μαρκοµανώλης Περιεχόµενα Group By... 1 Having...1 Οrder By... 2 Εντολή Insert...

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

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

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

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

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

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

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα -ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25)

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

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 4ο Μάθημα: SQL - Παράδειγμα Δρ. Κωνσταντίνος Χ. Γιωτόπουλος SQL Εργασία Customer AFM Onoma Eponimo DOB Address Sex 131313 Dimitris

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα - ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastnamevarchar(25)

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. 3. Η υλοποίηση απλών ερωτημάτων mysql

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

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

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

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

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

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

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

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

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

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

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

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. Για το κείμενο των προδιαγραφών της

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

Ανοικτά Ακαδημαϊκά Μαθήματα

Ανοικτά Ακαδημαϊκά Μαθήματα Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Case Study: Σύστημα Διαχείρισης Βάσης Βιβλιοθήκης (Library Information System) - Μοντελοποίηση και Κανονικοποίηση - Υλοποίηση με χρήση

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

DELETE, UPDATE, INSERT.

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

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

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

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

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

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

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

DELETE, UPDATE, INSERT

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

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

Παράδειγμα Εμφιαλωτήριο. Διάγραμμα Οντοτήτων - Συσχετίσεων

Παράδειγμα Εμφιαλωτήριο. Διάγραμμα Οντοτήτων - Συσχετίσεων Παράδειγμα Εμφιαλωτήριο Διάγραμμα Οντοτήτων - Συσχετίσεων Παράδειγμα Εμφιαλωτήριο Διάγραμμα σύμφωνα με το σχεσιακό μοντέλο Παράδειγμα Εμφιαλωτήριο Δημιουργία πίνακα Paragogos Create table Paragogos ( kodikos

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

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

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

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

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

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

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

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

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

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

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

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

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

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

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

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr Σχεδίαση και Χρήση Βάσεων Δεδομένων Χρήση του DBDesigner Γιώργος Πυρουνάκης - forky@di.uoa.gr Δομή Διαλέξεων Εισαγωγή στο DBDesigner Εφαρμογή στη ΒΔ Προμηθευτής-Προϊόντα Παραδείγματα μοντελοποίησης και

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

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

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

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα: ΘΕΜΑΤΑ Θέμα 1 ο Σε μία βάση δεδομένων χρηματιστηριακών συναλλαγών υπάρχουν οι παρακάτω πίνακες που αποτελούνται από τα εξής πεδία : : ΚΣ, ΗΜΝΙΑ, ΩΡΑ, ΚΜ, ΤΙΜΗ ΜΕΤΟΧΗ : ΚΜ, ΟΝΟΜΑ, ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΚ, ΚΑΤΗΓΟΡΙΑ

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 19/2/2011 Μάριος Μάντακας mmantak@gmail.com Διαφορά από την προηγούμενη Έκδοση: Προσθήκη

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη 1 3 η ενότητα: Εισαγωγή στις Βάσεις Δεδομένων και στην MySQL

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

Εργαστήριο Βάσεων Δεδομένων. Triggers

Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα ξένα κλειδιά

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

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Περιορισμοί Σχεσιακού Μοντέλου και Σχεσιακά Σχήματα Πράξεις Ενημερώσεων

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

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

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

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

PHPMyAdmin: Σύντομος οδηγός για αρχάριους 2014 PHPMyAdmin: Σύντομος οδηγός για αρχάριους Καρούσος Νικόλαος Επιστημονικός Συνεργάτης Παρασκευά Σταυρούλα Φοιτήτρια, Εργαστηριακή Βοηθός, τμήμα ΕΠΔΟ Μεσολογγίου 33 Έκδοση 1.1 Πρόλογος... - 2-1. Είσοδος

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

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ 2015-2016 Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος Τμήμα Πληροφορικής ΑΠΘ 2015-2016 2 Βασικοί στόχοι Μερικοί βασικοί στόχοι του εργαστηρίου είναι: Η ικανότητα ανάλυσης των απαιτήσεων, κατασκευής

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

Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD)

Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD) Βάσεις Δεδομένων Ι 2 Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας ΝΙΚΟΣ ΚΑΡΟΥΣΟΣ - ΔΙΟΝΥΣΗΣ ΚΑΡΟΥΣΟΣ XE 2015-2016

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

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

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

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

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006 Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006 A Θέμα 1 ο (30%) 1. (10%) α) Ποια τα πλεονεκτήματα ενός B + -tree ευρετηρίου; β) Αναφέρετε τις διαφορές ανάμεσα στα αραιά και τα πυκνά ευρετήρια.

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Βασικές πράξεις της Σχεσιακής Αλγεβρας Σχεσιακό Μοντέλο Δεδομένων Ορισμός Βάσης

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

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

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

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL 3.1 Εντολή επιλογής δεδομένων Η εντολή επιλογής δεδομένων select έχει την γενική μορφή SELECT FROM [WHERE ] [GROUP BY ]

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

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

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

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

ER Diagram Συσχετίσεις Ασθενείς Οντότητες Παράδειγμα ER.. Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER)

ER Diagram Συσχετίσεις Ασθενείς Οντότητες Παράδειγμα ER.. Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER) ..?????? ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ?? ΙΙ Εργαστήριο Βάσεων Δεδομένων Entity-Relationship Diagram (ER) . ER ER Diagram Το διάγραμμα οντοτήτων-συσχετίσεων (entity-relationship diagram) είναι ένας τρόπος αφηρημένης

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

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,

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

Βάσεις Δεδομένων. Ενότητα 7.2: Structured Query Language - 2 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 7.2: Structured Query Language - 2 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Βάσεις Δεδομένων Ενότητα 7.2: Structured Query Language - 2 ο Μέρος Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης

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

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

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

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

Το Σχεσιακό Μοντέλο Βάσεων Δεδομένων Το Σχεσιακό Μοντέλο Βάσεων Δεδομένων Βασικοί κανόνες σχεσιακού μοντέλου Η κάθε οντότητα πρέπει να παριστάνεται ως ένας ξεχωριστός πίνακας. Η κάθε στήλη του πίνακα αντιστοιχεί σε μια ιδιότητα της οντότητας.

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

Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER)

Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER) Εργαστήριο Βάσεων Δεδομένων Entity-Relationship Diagram (ER) ER Diagram Το διάγραμμα οντοτήτων-συσχετίσεων (entityrelationship diagram) είναι ένας τρόπος αφηρημένης και εννοιολογικής αναπαράστασης των

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

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

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

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

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

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL 1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL Τύποι στην MySQL Κείμενο Αριθμοί Ημερομηνίες και ώρες Επιλογή του τύπου Στήλες ονομάτων τύπος κειμένου Στήλες ποσών ή ποσοτήτων Αριθμητικός τύπος Στήλες ημερομηνιών τύπος ημερομηνίας

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

Φυσική Σχεδίαση Υλοποίηση βάσης

Φυσική Σχεδίαση Υλοποίηση βάσης ΕΣΔ330 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας Φυσική Σχεδίαση Υλοποίηση βάσης Περιεχόμενα Περιεχόμενα Εισαγωγή Μετασχηματισμός οντοτήτων Μετασχηματισμός συσχετίσεων Ακεραιότητα δεδομένων Παραδείγματα

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

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

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

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

1 / 150

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

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

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

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

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

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

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

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

ΕΠΛ 342 Βάσεις εδοµένων

ΕΠΛ 342 Βάσεις εδοµένων ΕΠΛ 342 Βάσεις εδοµένων Εργαστήριο 3 ο SQL - DML Ιωάννα Συρίµη syrimi@ucy.ac.cy Data Manipulation Language Εισαγωγή νέων Εγγραφών Insert Into ιαγραφή Εγγραφών Delete Αλλαγή υφιστάµενων Εγγραφών Update

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

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΔΕΣΠΟΙΝΑ ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr 2 ΤΙ ΕΙΝΑΙ Η SQL? (1/2) Η SQL (Structured Query Language) αποτελεί μια πρότυπη

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

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

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

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

Βάση Δεδομένων: συλλογή από σχετιζόμενα δεδομένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ): λογισμικό για δημιουργία και χρήση μιας βάσης δεδομένων

Βάση Δεδομένων: συλλογή από σχετιζόμενα δεδομένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ): λογισμικό για δημιουργία και χρήση μιας βάσης δεδομένων Τι είναι μια βάση δεδομένων; Βάση Δεδομένων: συλλογή από σχετιζόμενα δεδομένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ): λογισμικό για δημιουργία και χρήση μιας βάσης δεδομένων Σ Δ Β Δ ΒΔ Σύστημα Βάσεων

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

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

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

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

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

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

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

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

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

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

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων Μοντέλο Οντοτήτων Συσχετίσεων Το Μοντέλο Οντοτήτων-Συσχετίσεων βασίζεται στην αντίληψη ότι ο πραγματικός κόσμος αποτελείται από οντότητες (entities)

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης

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

Ανάκτηση Δεδομένων (Information Retrieval)

Ανάκτηση Δεδομένων (Information Retrieval) Ανάκτηση Δεδομένων (Information Retrieval) Παύλος Εφραιμίδης Βάσεις Δεδομένων Ανάκτηση Δεδομένων 1 Information Retrieval (1) Βάσεις Δεδομένων: Περιέχουν δομημένη πληροφορία: Πίνακες Ανάκτηση Πληροφορίας

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

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

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (2 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Μοντελοποίηση δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Παραδείγματα Διαγραμματικές τεχνικές Συμβολισμοί Τριαδικές συσχετίσεις 2

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

1 / 105

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access... 9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 22 Άνοιγμα και κλείσιμο βάσης δεδομένων... 24 Ερωτήσεις ανακεφαλαίωσης... 25 Πρακτική εξάσκηση...

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

Εισαγωγή στην PostgreSQL Spatial 8.1

Εισαγωγή στην PostgreSQL Spatial 8.1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Αγρονόμων & Τοπογράφων Μηχανικών ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΓΓΕΕΩΩΠΠΛΛΗΗΡΡΟΟΦΦΟΟΡΡΙ ΙΙΚΚΗΗ ΜΑΘΗΜΑ: [GEO-6671] Χωρικές Βάσεις Δεδομένων [ Άνοιξη 2008 ] Διδάσκων: Τίμος Σελλής

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