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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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


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

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

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

Αντικείμενα 2 ου εργαστηρίου

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

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

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

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

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

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

Αντικείμενα 3 ου εργαστηρίου

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



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

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 5α. Σημειώσεις μαθήματος: E mail:

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

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

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

ΕΚΦΩΝΗΣΕΙΣ. β. Να γράψετε αναλυτικά τα μειονεκτήματα της χρήσης των πινάκων. γ. Να γράψετε ονομαστικά τις τυπικές επεξεργασίες των πινάκων.

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

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

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

Αριθμός πελάτη ΑΡΠΕΛ Αυτόματη αρίθμηση Όνομα πελάτη ΟΝΟΜΑ Κείμενο Τηλέφωνο ΤΗΛ Κείμενο Διεύθυνση ΔΙΕΥΘΥΝΣΗ Κείμενο ΠΑΡΑΓΓΕΛΙΕΣ ΠΕΔΙΩΝ)

SQL Data Manipulation Language


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

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 5γ. Σημειώσεις μαθήματος: E mail:

Δημιουργώντας τον πίνακα διάστασης

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

DELETE, UPDATE, INSERT.

Δομημένος Προγραμματισμός

DELETE, UPDATE, INSERT

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

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

Open Office Calc. Ακαδημαϊκό έτος εαρινό εξάμηνο ΟΝΟΜΑΤΕΠΩΝΥΜΟ : ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ:

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

Εργαστήριο #10 (Ε10) 1

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

Διαχείριση χρηστών και δικαιωμάτων

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

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

Αντικείμενα 4 ου εργαστηρίου

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

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

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

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

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

Προγραμματισμός ΙI (Θ)

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

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

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

1 / 150

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Χρησιμοποιώντας διαδικασίες

ΕΝΔΕΙΚΤΙΚΑ ΘΕΜΑΤΑ ΓΙΑ ΤΟ ΜΑΘΗΜΑ «ΥΠΟΛΟΓΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΙΑΤΡΙΚΩΝ ΚΑΙ ΒΙΟΛΟΓΙΚΩΝ ΔΕΔΟΜΕΝΩΝ»

Αρχεία και Βάσεις Δεδομένων

α. Οι συμβολοσειρές είναι μια ακολουθία από χαρακτήρες. Μια συμβολοσειρά μπορεί να αποτελείται από περισσότερες από μία λέξεις.

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

1. Να αναφέρετε ονοµαστικά τις λειτουργίες µε τις οποίες ο υπολογιστής µπορεί να επιτελέσει µε επιτυχία οποιαδήποτε επεξεργασία. Ï.Å.Ö.Å.

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

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

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ ΕΣΠΕΡΙΝΩΝ

Transcript:

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

Η επιλογή δεδομένων από δύο ή περισσότερους πίνακες μπορεί να επιτευχθεί χρησιμοποιώντας τις λέξεις INNER JOIN (ή μόνο JOIN) σε μία εντολή SELECT Συνήθως, οι πίνακες από τους οποίους πρόκειται να επιλεγούν τα δεδομένα συνδέονται με μία σχέση ένα προς πολλά και το εξωτερικό κλειδί του ενός πίνακα συνδέεται με το πρωτεύον κλειδί του άλλου πίνακα Έστω, για παράδειγμα οι πίνακες για ασθενείς, ιατρούς και εξετάσεις ΙΑΛΕΞΗ 8 2

Έστω, για παράδειγμα οι πίνακες για ασθενείς, ιατρούς και εξετάσεις Έστω, για παράδειγμα οι πίνακες για ασθενείς, ιατρούς και εξετάσεις ΙΑΛΕΞΗ 8 3

Για να επιλεγούν το όνομα και το επώνυμο ασθενή, καθώς και το είδος και η ημερομηνία εξέτασης, η εντολή SQL είναι Με την εντολή αυτή θα εμφανιστούν μόνο οι ασθενείς που έχουν κάνει κάποια εξέταση. Αν υπάρχουν ασθενείς που δεν έχουν καταχωρημένη εξέταση, αυτοί δεν θα εμφανιστούν ΙΑΛΕΞΗ 8 4

Η σύνταξη της προηγούμενης εντολής μπορεί να απλοποιηθεί χρησιμοποιώντας τη λέξη USING με την προϋπόθεση ότι το εξωτερικό κλειδί του ενός πίνακα έχει το ίδιο όνομα με το πρωτεύον κλειδί του άλλου πίνακα Για παράδειγμα, εάν στον πίνακα με τους ασθενείς το πρωτεύον κλειδί ονομαζόταν astheneis_id και το ίδιο όνομα είχε δοθεί στο εξωτερικό κλειδί στον πίνακα με τις εξετάσεις, τότε η προηγούμενη εντολή θα μπορούσε να γραφτεί Οποιοσδήποτε από τους δύο τρόπους και εάν επιλεγεί (χρήση λέξης ON ή χρήση λέξης USING), η εντολή μπορεί να περιλαμβάνει τις λέξεις WHERE και ORDER BY Έστω ότι στο προηγούμενο παράδειγμα θέλαμε να εμφανιστούν οι εξετάσεις που έγιναν το πρώτο εξάμηνο του 2010 και τα αποτελέσματα να είναι ταξινομημένα με βάση την ημερομηνία εξέτασης από παλαιότερες σε νεώτερες, ΙΑΛΕΞΗ 8 5

Η εντολή θα ήταν Το αποτέλεσμα θα ήταν ΙΑΛΕΞΗ 8 6

Στην περίπτωση που επιθυμείται να επιλεγούν δεδομένα από 3 πίνακες, για παράδειγμα επώνυμο ασθενή, επώνυμο ιατρού και ημερομηνία εξέτασης, η χρήση της λέξης JOIN γίνεται ως ακολούθως Η εντολή θα παράγει το ακόλουθο αποτέλεσμα ΙΑΛΕΞΗ 8 7

Όπως και πριν, η σύνταξη της εντολής μπορεί να απλοποιηθεί με χρήση της λέξης USING ως εξής: έστω ότι στον πίνακα με τους ασθενείς το πρωτεύον κλειδί ονομαζόταν astheneis_id και το ίδιο όνομα είχε δοθεί στο αντίστοιχο εξωτερικό κλειδί στον πίνακα με τις εξετάσεις έστω ότι στον πίνακα με τους ιατρούς το πρωτεύον κλειδί ονομαζόταν iatroi_id και το ίδιο όνομα είχε δοθεί στο αντίστοιχο εξωτερικό κλειδί στον πίνακα με τις εξετάσεις ΙΑΛΕΞΗ 8 8

Πρέπει να τονιστεί ότι εάν δύο πίνακες δεν συνδέονται άμεσα (όπως ασθενείς και ιατροί), αλλά μέσω ενός τρίτου πίνακα (εξετάσεις), τότε ακόμα και δεν ζητούνται δεδομένα από τον τρίτο πίνακα, ο πίνακας αυτός πρέπει να χρησιμοποιηθεί Για παράδειγμα, για να εμφανιστούν το επώνυμο ασθενή και το επώνυμο ιατρού ΙΑΛΕΞΗ 8 9

Το πλεονέκτημα της εφαρμογής της JOIN για επιλογή δεδομένων από δύο πίνακες είναι ότι μπορεί να χρησιμοποιηθεί για την επιλογή δεδομένων από τον έναν πίνακα από τους δύο πίνακες ακόμα και αν οι εγγραφές του δεν σχετίζονται με εγγραφές του άλλου πίνακα. Για παράδειγμα, έστω ότι επιθυμείται να εμφανιστούν όνομα και επώνυμο για ασθενείς ακόμα και εάν δεν έχουν κάνει κάποια εξέταση και για όσους υπάρχουν εξετάσεις, να εμφανιστούν το είδος και η ημερομηνία εξέτασης. ΙΑΛΕΞΗ 8 10

ΣΥΝΑΡΤΗΣΕΙΣ Η MySQL υποστηρίζει συναρτήσεις που μπορούν εφαρμοστούν στις τιμές μίας στήλης ενός πίνακα Μία ιδιαίτερα χρήσιμη συνάρτηση είναι η DATE_FORMAT(col_name, format), όπου col_name είναι το όνομα μίας στήλης που περιέχει ημερομηνίες και format είναι μία συμβολοσειρά που καθορίζει τη μορφοποίηση Εάν για παράδειγμα θέλουμε να εμφανιστούν το επώνυμο και το επώνυμο ασθενών και η ημερομηνία εξέτασης στη συνήθη μορφή (μέρα μήνας χρόνος), ηεντολήθαείναι ΣΥΝΑΡΤΗΣΕΙΣ Το αποτέλεσμα θα είναι ΙΑΛΕΞΗ 8 11

ΣΥΝΑΡΤΗΣΕΙΣ Η MySQL υποστηρίζει τις ακόλουθες συναρτήσεις, οι οποίες χρησιμοποιούνται με την εντολή SELECT: COUNT(field): επιστρέφει το πλήθος των γραμμών του πίνακα που έχουν τιμή στη στήλη field MIN(field): επιστρέφει την ελάχιστη τιμή της στήλης field MAX(field): επιστρέφει τη μέγιστη τιμή της στήλης field AVG(field): επιστρέφει το μέσο όρο των τιμών της στήλης field STDDEV_SAMP(field): επιστρέφει την τυπική απόκλιση των τιμών της στήλης field SUM(field): επιστρέφει το άθροισμα της στήλης field ABS(field): υπολογίζει την απόλυτη τιμή κάθε τιμή της στήλης field ROUND(field): υπολογίζει τον πλησιέστερο ακέραιο κάθε τιμής της στήλης field ROUND(field, n): στρογγυλοποιεί κάθε τιμή της στήλης field χρησιμοποιώντας n δεκαδικά ψηφία ΣΥΝΑΡΤΗΣΕΙΣ Για παράδειγμα, για να υπολογιστεί η μέση τιμή του βάρους των ασθενών, η εντολή είναι: ΙΑΛΕΞΗ 8 12

ΣΥΝΑΡΤΗΣΕΙΣ Για να υπολογιστούν η ελάχιστη και η μέγιστη τιμή του βάρους των ασθενών, η εντολή είναι: ΣΥΝΑΡΤΗΣΕΙΣ Για να υπολογιστεί το πλήθος των γραμμών του πίνακα ασθενών, η εντολή είναι ΙΑΛΕΞΗ 8 13

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Άσκηση Έστω μία βάση δεδομένων με πληροφορίες για πελάτες, κατηγορίες προϊόντων, προϊόντα, παραγγελίες και λεπτομέρειες παραγγελιών μιας εταιρείας, η οποία περιλαμβάνει τους ακόλουθους πίνακες: πίνακας πελατών customers: κωδικός πελάτη επώνυμο όνομα πίνακας κατηγοριών προϊόντων product_categories: κωδικός κατηγορίας περιγραφή ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Άσκηση Έστω μία βάση δεδομένων με πληροφορίες για πελάτες, κατηγορίες προϊόντων, προϊόντα, παραγγελίες και λεπτομέρειες παραγγελιών μιας εταιρείας, η οποία περιλαμβάνει τους ακόλουθους πίνακες: πίνακας προϊόντων products: κωδικός προϊόντος κωδικός κατηγορίας ονομασία τιμή απόθεμα ΙΑΛΕΞΗ 8 14

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Άσκηση Έστω μία βάση δεδομένων με πληροφορίες για πελάτες, κατηγορίες προϊόντων, προϊόντα, παραγγελίες και λεπτομέρειες παραγγελιών μιας εταιρείας, η οποία περιλαμβάνει τους ακόλουθους πίνακες: πίνακας παραγγελιών orders: κωδικός κωδικός πελάτη ημερομηνία παραγγελίας σχόλια κατάσταση ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Άσκηση Έστω μία βάση δεδομένων με πληροφορίες για πελάτες, κατηγορίες προϊόντων, προϊόντα, παραγγελίες και λεπτομέρειες παραγγελιών μιας εταιρείας, η οποία περιλαμβάνει τους ακόλουθους πίνακες: πίνακας λεπτομερειών παραγγελιών order_details: κωδικός κωδικός παραγγελίας κωδικός προϊόντος τεμάχια ΙΑΛΕΞΗ 8 15

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Άσκηση Να γραφτούν εντολές SQL ώστε να: 1. δημιουργούνται οι πίνακες 2. εμφανίζονται επώνυμο και όνομα πελατών και οι ημερομηνίες των αντίστοιχων παραγγελιών. Να γίνει ταξινόμηση με βάση την ημερομηνία παραγγελίας από παλαιότερες σε νεώτερες 3. εμφανίζονται οι ονομασίες των προϊόντων που είναι στην κατηγορία Αναλώσιμα Εργαστηρίων 4. εμφανίζονται οι ημερομηνίες των 5 τελευταίων παραγγελιών του πελάτη με ονοματεπώνυμο John Doe, ταξινομημένες από την πιο πρόσφατη προς την πιο παλιά 5. να υπολογίζεται το πλήθος των παραγγελιών για τον πελάτη με ονοματεπώνυμο John Doe ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 1. Δημιουργία πινάκων Πίνακας πελατών Πίνακας κατηγοριών προϊόντων ΙΑΛΕΞΗ 8 16

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 1. Δημιουργία πινάκων Πίνακας προϊόντων ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 1. Δημιουργία πινάκων Πίνακας παραγγελιών ΙΑΛΕΞΗ 8 17

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 1. Δημιουργία πινάκων Πίνακας λεπτομέρειες παραγγελιών ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 2. Επώνυμο και όνομα πελατών και οι ημερομηνίες των αντίστοιχων παραγγελιών. Ταξινόμηση με βάση την ημερομηνία παραγγελίας από παλαιότερες σε νεώτερες ΙΑΛΕΞΗ 8 18

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 3. Ονομασίες των προϊόντων που είναι στην κατηγορία Αναλώσιμα Εργαστηρίων ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 4. Ημερομηνίες των 5 τελευταίων παραγγελιών του πελάτη με ονοματεπώνυμο John Doe. Ταξινόμηση από την πιο πρόσφατη προς την πιο παλιά ΙΑΛΕΞΗ 8 19

ΙΑΤΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Λύση 5. Πλήθος των παραγγελιών για τον πελάτη με ονοματεπώνυμο John Doe ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB Γενικά, υπάρχουν 3 βήματα που εκτελούνται όταν μία εφαρμογή πρόκειται να αλληλεπιδράσει με μία βάση δεδομένων: Δημιουργία σύνδεσης με τη βάση δεδομένων Εκτέλεση μίας η περισσοτέρων εντολών SQL Τερματισμός σύνδεσης με βάση δεδομένων ΙΑΛΕΞΗ 8 20

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΔΕΣΗΣ Η πρώτη ενέργεια που πρέπει να γίνει για να υπάρξει αλληλεπίδραση με μία βάση δεδομένων μέσω Matlab είναι να δημιουργηθεί μία σύνδεση μεταξύ της εφαρμογής και του συστήματος διαχείρισης βάσεων δεδομένων MySQL. Τα στοιχεία που χρειάζονται για να δημιουργηθεί η σύνδεση είναι: το όνομα της βάσης δεδομένων που θα χρησιμοποιηθεί η IP διεύθυνση του υπολογιστή όπου είναι εγκατεστημένο το ΣΔΒΔ MySQL ο αριθμός πόρτας που χρησιμοποιεί το ΣΔΒΔ MySQL ένα όνομα χρήστη ένα συνθηματικό ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΔΕΣΗΣ Η πρώτη ενέργεια που πρέπει να γίνει για να υπάρξει αλληλεπίδραση με μία βάση δεδομένων μέσω Matlab είναι να δημιουργηθεί μία σύνδεση μεταξύ της εφαρμογής και του συστήματος διαχείρισης βάσεων δεδομένων MySQL. Τα στοιχεία που χρειάζονται για να δημιουργηθεί η σύνδεση είναι: το όνομα της βάσης δεδομένων που θα χρησιμοποιηθεί η IP διεύθυνση του υπολογιστή όπου είναι εγκατεστημένο το ΣΔΒΔ MySQL ο αριθμός πόρτας που χρησιμοποιεί το ΣΔΒΔ MySQL ένα όνομα χρήστη ένα συνθηματικό ΙΑΛΕΞΗ 8 21

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΔΕΣΗΣ Συνήθως, ο αριθμός πόρτας είναι 3306. Στην περίπτωση όπου το ΣΔΒΔ MySQL είναι στον ίδιο υπολογιστή με την εφαρμογή η διεύθυνση IP είναι 127.0.0.1 ή ισοδύναμα localhost. Οι εντολές Matlab για τη δημιουργία σύνδεσης με μία βάση δεδομένων με το όνομα askhsh10, με όνομα χρήστη student, συνθηματικό student στην IP 192.168.1.100 είναι: ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΔΕΣΗΣ Όπως φαίνεται, κάθεπαράμετροςτηςσύνδεσηςβρίσκεταισε μία μεταβλητή. Η μεταβλητή driver καθορίζει τον τύπο του προγράμματος οδήγησης που θα χρησιμοποιηθεί για τη διασύνδεση με τη βάση δεδομένων. Ένα πρόγραμμα οδήγησης περιλαμβάνει ένα σύνολο βοηθητικών συναρτήσεων συνήθως γραμμένων σε γλώσσα C ή Java που αναλαμβάνουν να εκτελέσουν τις λειτουργίες χαμηλού επιπέδου για τη διασύνδεση με τη βάση δεδομένων. ΙΑΛΕΞΗ 8 22

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΔΕΣΗΣ Η δημιουργία της σύνδεσης γίνεται με χρήση της συνάρτησης του Matlab database, η οποία παίρνει ως ορίσματα εισόδου τις παραμέτρους της σύνδεσης και επιστρέφει ένα κατάλληλο αντικείμενο με πληροφορίες για τη σύνδεση. Ο έλεγχος εάν η σύνδεση είναι επιτυχής πραγματοποιείται με χρήση της συνάρτησης isconnection, ηοποίαλαμβάνειως όρισμα εισόδου το αντικείμενο που επιστρέφει η συνάρτηση database. H συνάρτηση isconnection επιστρέφει 1 σε περίπτωση επιτυχούς σύνδεσης, διαφορετικά επιστρέφει 0. ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ SQL Αφού δημιουργηθεί η σύνδεση της εφαρμογής με τη βάση δεδομένων, είναι πλέον εφικτό να εκτελεστούν εντολές SQL. Έστω για παράδειγμα ότι στη βάση δεδομένων υπάρχει ένας πίνακας με το όνομα astheneis με την ακόλουθη δομή: ΙΑΛΕΞΗ 8 23

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ SQL Τότε, για να επιλεγούν το όνομα και το επώνυμο κάθε ασθενή οι εντολές Matlab είναι οι ακόλουθες: Η εντολή setdbprefs('datareturnformat','structure'); καθορίζει ότι τα αποτελέσματα θα είναι μια μεταβλητή τύπου δομής (structure). Ηεντολή sql = 'SELECT first_name, last_name FROM astheneis'; τοποθετεί στη μεταβλητή sql την εντολή που πρόκειται να εκτελεστεί. Ηεντολή: X = fetch(conn, sql); χρησιμοποιεί τη συνάρτηση fetch, η οποία λαμβάνει ως ορίσματα εισόδου το αντικείμενο με τη σύνδεση και την προς εκτέλεση εντολή, για εκτέλεση της εντολής ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ SQL Η συνάρτηση fetch επιστρέφει τα αποτελέσματα εκτέλεσης σε μία μεταβλητή τύπου δομής: Στο προηγούμενο παράδειγμα, Χ.first_name είναι ένας πίνακας 50 στοιχείων με τα ονόματα των ασθενών και X.last_name είναι ένας άλλος πίνακας 50 στοιχείων με τα επώνυμα των ασθενών. ΙΑΛΕΞΗ 8 24

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ SQL Στη συνέχεια, μπορεί να γίνει οποιαδήποτε επεξεργασία επιθυμούμε με τα δεδομένα που υπάρχουν στη μεταβλητή Χ. Εάν για παράδειγμα, επιθυμείται να εμφανιστούν το όνομα και το επώνυμο κάθε ασθενή οι εντολές είναι: ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB ΤΕΡΜΑΤΙΣΜΟΣ ΣΥΝΔΕΣΗΣ Αφού εκτελεστούν όλες οι εντολές SQL που θέλουμε, η σύνδεση με τη βάση δεδομένων μπορεί να τερματιστεί καλώντας τη συνάρτηση close, με όρισμα το αντικείμενο με τις πληροφορίες της σύνδεσης: ΙΑΛΕΞΗ 8 25

ΧΡΗΣΗ MYSQL ΜΕΣΩ MATLAB Το συνολικό πρόγραμμα είναι: ΙΑΛΕΞΗ 8 26