Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων

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

Download "Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων"

Transcript

1 Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων Σύνοψη Η εργαστηριακή δραστηριότητα που περιγράφεται στο κεφάλαιο αυτό έχει ως στόχο την γνωριμία με τις τεχνικές και τους μηχανισμούς που χρησιμοποιούνται σε ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS), έτσι ώστε να προστατεύεται η ιδιότητα της ακεραιότητας των δεδομένων που βρίσκονται αποθηκευμένα σε αυτό. Θα μελετηθούν βασικοί περιορισμοί (constraints) με το σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ) Oracle Database Express Edition που διατίθεται ελεύθερο για μη-εμπορική χρήση. Παρόλα αυτά οι βασικές αρχές που θα αναφερθούν ισχύουν για όλα τα γνωστά ΣΔΒΔ, που συνήθως χρησιμοποιούνται σήμερα. Προαπαιτούμενη γνώση Για την ολοκλήρωση αυτής της δραστηριότητας απαιτείται βασική γνώση της δομής μιας σχεσιακής βάσης δεδομένων, γνώση απλών εντολών της SQL και δυνατότητα σύνδεσης σε έναν εξυπηρετητή με λειτουργικό σύστημα Linux. 6.1 Προεργασία Για την υλοποίηση αυτής της εργαστηριακής δραστηριότητας, μπορεί να χρησιμοποιηθεί το image που δημιουργήσατε στο Κεφάλαιο 1 για την υπηρεσία okeanos, ή στην περίπτωση κατά την οποία η υπηρεσία okeanos δεν είναι διαθέσιμη ή δεν μπορεί να προσπελαστεί, το image που είναι διαθέσιμο σε μορφή ova στη διεύθυνση: Στα παραπάνω images είναι προεγκατεστημένο ώστε να είναι είναι δυνατό να εκτελεστεί σε οποιαδήποτε από τις παραπάνω μηχανές το ΣΔΒΔ Oracle Database Express Edition. Αρχικά, για τη σωστή εκκίνηση του ΣΔΒΔ Oracle πρέπει να ενημερώσετε το αρχείο /etc/hosts με το τρέχον hostname του υπολογιστή σας. Ένας εύκολος τρόπος για να το επιτύχετε, είναι να εκτελέσετε την εντολή, έχοντας συνδεθεί στο σύστημα ως root: sed -i "/^ / s/$/ ${HOSTNAME}/" /etc/hosts Αλλάζετε από χρήστη root σε χρήστη oracle: su oracle Ως χρήστης oracle, εκκινήστε τον listener, που είναι το πρόγραμμα που αναλαμβάνει τη σύνδεση χρηστών στο ΣΔΒΔ: lsnrctl start Συνδεθείτε με το ΣΔΒΔ ως διαχειριστές (sysdba), μέσω της κονσόλας sqlplus, εκτελώντας την ακόλουθη εντολή: sqlplus sys/oracle as sysdba Εκκινήστε ένα στιγμιότυπο (instance) της βάσης δεδομένων: SQL> startup Μόλις ξεκινήσει το στιγμιότυπο της βάσης δεδομένων, θα δείτε το μήνυμα «Database opened» και θα επιστρέψετε στην προτροπή (prompt) «SQL>».

2 Εκχωρήστε τα απαραίτητα προνόμια στο χρήστη Student, έτσι ώστε να μπορεί να συνδεθεί στο σύστημα, εκτελώντας την εντολή (περισσότερα για τους χρήστες και τα προνόμια, θα αναφερθούν στα επόμενα κεφάλαια 7 και 8): SQL> grant connect, resource to student; Αποσυνδέεστε με Ctrl+D ή γράφοντας exit και στη συνέχεια συνδέεστε στο ΣΔΒΔ ως χρήστης student με την εντολή: sqlplus student/student@xe 6.2 Πρωτεύοντα Κλειδιά Κάθε πίνακας σε μια σχεσιακή βάση δεδομένων αποτελείται από ένα σύνολο γραμμών. Η κάθε γραμμή περιλαμβάνει μια εγγραφή (record). Το πρωτεύον κλειδί (primary key) είναι αυτό που προσδιορίζει (identifies) την κάθε εγγραφή. Για το λόγο αυτό, το πρωτεύον κλειδί πάντα έχει τιμή και η τιμή αυτή είναι μοναδική. Δημιουργήστε τον πίνακα Departments με τα ακόλουθα πεδία: id NUMBER name VARCHAR(32) city VARCHAR(32) με την εντολή: CREATE TABLE DEPARTMENTS ( ID NUMBER, NAME VARCHAR(32), CITY VARCHAR(32) ); Στον πίνακα Departments που δημιουργήσατε εισάγετε τις εγγραφές: id name city 101 Informatics Thessaloniki 101 Informatics Thessaloniki 102 Informatics Thessaloniki Πίνακας 6.1 Ο πίνακας Departments Μπορείτε να χρησιμοποιήσετε τις εντολές: INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (101, 'Informatics', 'Thessaloniki'); INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (101, 'Informatics', 'Thessaloniki'); INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (201, 'Informatics', 'Athens');

3 Είναι δυνατή η εισαγωγή των εγγραφών; Στην περίπτωση που είναι δυνατή, ποια προβλήματα εκτιμάτε ότι δημιουργούνται; Δείτε τα περιεχόμενα του πίνακα DEPARTMENTS με τη χρήση της DML (Data Manipulation Language) εντολής SELECT. Όπως θα περιμένατε, δύο εγγραφές περιέχουν τα ίδια ακριβώς δεδομένα σε όλες τις στήλες (πεδία). Εικόνα 6.1 Εμφάνιση περιεχομένων πίνακα Departments Για να καθορίσετε το πεδίο ID ως το πρωτεύον κλειδί (primary key) του πίνακα, εκτελέστε τη DDL (Data Definition Language) εντολή: ALTER TABLE DEPARTMENTS ADD PRIMARY KEY (ID); Το σύστημα θα απαντήσει με ένα μήνυμα λάθους (ERROR) για παραβίαση περιορισμού, όπως φαίνεται στην Εικόνα 6.2: Εικόνα 6.2 Παραβίαση περιορισμού Στην απάντηση με κωδικό λάθους ORA-02437, το σύστημα μας πληροφορεί πως δεν είναι δυνατή η επικύρωση του STUDENT.SYS_CΧΧΧΧΧΧ (όπου ΧΧΧΧΧΧ ένας εσωτερικά του ΣΔΒΔ παραγόμενος αριθμός). Τι είναι το αντικείμενο αυτό; Ποια λύση θα προτείνατε για την αντιμετώπιση του προβλήματος και τον ορισμό του πρωτεύοντος κλειδιού; Εκτελέστε την εντολή: SELECT ROWNUM, ROWID, D.* FROM DEPARTMENTS D; Το σύστημα θα απαντήσει (οι τιμές των δύο πρώτων στηλών πιθανότατα θα διαφέρουν από σύστημα σε σύστημα, καθώς παράγονται πιθανώς διαφορετικά από το κάθε ΣΔΒΔ):

4 Εικόνα 6.3 Εμφάνιση rownum και rowid Τι παρατηρείτε για τη μοναδικότητα της κάθε γραμμής; Οι εγγραφές με τιμή 101 στο ID είναι ίδιες; Οι παραπάνω παρατηρήσεις (εμφάνιση ROWNUM και ROWID) διευκολύνουν την προεργασία για το σωστό καθορισμό του primary key που προσπαθήσατε; Αφού εξαλειφθούν τα διπλότυπα (duplicates), θα πρέπει να μπορέσετε με επιτυχία να εκτελέσετε τη DDL εντολή: ALTER TABLE DEPARTMENTS ADD PRIMARY KEY (ID); 6.3 Περιορισμοί Ύπαρξης Τιμής Σε πολλές περιπτώσεις, ένα στοιχείο (πεδίο) μιας εγγραφής πρέπει να περιέχει οπωσδήποτε μια τιμή. Για παράδειγμα, αν σε ένα πίνακα τηρούμε τα στοιχεία φοιτητών, τότε πρέπει απαραίτητα ο κάθε φοιτητής να έχει ένα ονοματεπώνυμο. Αυτό μπορούμε να το επιτύχουμε απαγορεύοντας την παράλειψη εισαγωγής κάποιας τιμής. Θυμίζουμε ότι η απουσία τιμής δηλώνεται ως null. Την απαίτηση για ύπαρξη τιμής, φροντίζει να ικανοποιήσει ο περιορισμός NOT NULL. Δημιουργήστε τον πίνακα Courses με τα ακόλουθα πεδία: id NUMBER PRIMARY KEY name VARCHAR(128) NOT NULL description VARCHAR(128) department NUMBER. με την εντολή: CREATE TABLE COURSES ( ID NUMBER PRIMARY KEY, NAME VARCHAR(128) NOT NULL, DESCRIPTION VARCHAR(128), DEPARTMENT NUMBER ); Εκτελέστε την εντολή: DESCR COURSES οπότε το σύστημα θα επιστρέψει: Εικόνα 6.4 Δομή πίνακα Courses

5 Στη συνέχεια εισάγετε τις ακόλουθες εγγραφές: Id name description department 1 Computer Networks Discrete Mathematics Πίνακας 6.2 Εγγραφές προς εισαγωγή στον πίνακα Courses Μπορείτε να χρησιμοποιήσετε τις εντολές: INSERT INTO COURSES (ID, NAME, DEPARTMENT) VALUES (1, 'Computer Networks', 101); INSERT INTO COURSES (ID, NAME, DEPARTMENT) VALUES (2, 'Discrete Mathematics', 101); INSERT INTO COURSES (ID, DEPARTMENT) VALUES (3, 101); Είναι δυνατή η εισαγωγή των εγγραφών; Αν όχι ποια εγγραφή δεν εισήχθη και γιατί; 6.4 Περιορισμοί Μοναδικότητας Αφού επιλύσαμε το πρόβλημα της έλλειψης τιμής μέσω του περιορισμού NOT NULL, ας αντιμετωπίσουμε ένα ακόμη πρόβλημα. Υπάρχουν περιπτώσεις όπου πρέπει να διασφαλιστεί η μοναδικότητα μιας τιμής. Για παράδειγμα, ο αριθμός μητρώου κοινωνικής ασφάλισης (ΑΜΚΑ) ή ο αριθμός ταυτότητας (ΑΔΤ) είναι μοναδικοί. Δεν είναι αποδεκτό να υπάρχουν δύο διαφορετικά πρόσωπα με ίδιο ΑΜΚΑ ή ΑΔΤ. Στη συνέχεια, θα δούμε πως μπορούμε να υποδείξουμε στο σύστημα διαχείρισης βάσης δεδομένων να ελέγχει την ύπαρξη και να αποτρέπει την εισαγωγή ίδιας τιμής. Για να αποφύγουμε διπλότυπες εγγραφές μπορούμε να ενεργοποιήσουμε τον περιορισμό UNIQUE. Ο περιορισμός αυτός μπορεί να τεθεί σε μια ή περισσότερες στήλες συνδυαστικά, όπως με την ακόλουθη εντολή, την οποία και εκτελείτε: ALTER TABLE DEPARTMENTS ADD CONSTRAINT UNIQUE_DEPT_FOR_CITY UNIQUE (DEPARTMENT, CITY); Εισάγετε τώρα στον πίνακα Departments τις ακόλουθες εγγραφές: id name city 111 Informatics Athens 112 Informatics Athens Πίνακας 6.3 Εγγραφές προς εισαγωγή στον πίνακα Departments Μπορείτε να χρησιμοποιήσετε τις εντολές: INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (111, 'Informatics', 'Athens'); INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (112, 'Informatics', 'Athens'); Είναι δυνατή η εισαγωγή των εγγραφών αυτών;

6 Από το μήνυμα που φαίνεται στην Εεικόνα 6.5, παρατηρούμε πως υπάρχει μια παραβίαση περιορισμού: Εικόνα 6.5 Αποτυχία εισαγωγής εγγραφών λόγω παραβίασης μοναδικότητας Παρατηρήστε το μήνυμα και θυμηθείτε την προηγούμενη περίπτωση με την παραβίαση περιορισμού για το primary key (Εικόνα 6.2). Τι παρατηρείτε σε σχέση με την ευκολία κατανόησης του μηνύματος; Ποιο πρόβλημα κατανόησης και ενημέρωσης από τα μηνύματα αντιμετωπίζετε και ποια ανάγκη για μια καλή πρακτική προκύπτει; 6.5 Διαχείριση Περιορισμών Στο σημείο αυτό, πριν παρουσιαστούν οι επόμενοι περιορισμοί, είναι χρήσιμο να μελετήσουμε το πως μπορούμε να γνωρίζουμε ποιους περιορισμούς έχουμε δηλώσει στο ΣΔΒΔ. Για το σκοπό αυτό, εκτελούμε την εντολή: SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, STATUS, VALIDATED, LAST_CHANGE FROM USER_CONSTRAINTS; Το σύστημα θα μας εμφανίσει μια λίστα με τους περιορισμούς που έχουμε δηλώσει στο ΣΔΒΔ: Εικόνα 6.6 Περιορισμοί για το χρήστη Ποιους περιορισμούς μπορείτε να αναγνωρίσετε και ποιους όχι; Είδατε ότι στην απάντηση περιλαμβάνονται δύο χαρακτηριστικά κατάστασης (status) των περιορισμών: ENABLED, που σημαίνει ότι ο περιορισμός ισχύει. VALIDATED, που σημαίνει ότι ο περιορισμός έχει επικυρωθεί. Απενεργοποιήστε τον περιορισμό UNIQUE_DEPT_FOR_CITY με την εντολή: ALTER TABLE DEPARTMENTS DISABLE CONSTRAINT UNIQUE_DEPT_FOR_CITY; Τι αποτέλεσμα έχει η εκτέλεση της παραπάνω εντολής για τις μελλοντικές εισαγωγές εγγραφών στον πίνακα;

7 Σε ποια περίπτωση θα θέλατε να απενεργοποιήσετε έναν περιορισμό; Κατά την ενεργοποίηση ενός περιορισμού μπορεί να γίνει και επικύρωσή του με βάση τα περιεχόμενα του πίνακα; Μετά την απενεργοποίηση του περιορισμού UNIQUE_DEPT_FOR_CITY, εκτελέστε την εντολή: INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (112, 'Informatics', 'Athens'); Ήταν δυνατή η καταχώρηση της εγγραφής; Θυμηθείτε ότι είναι η ίδια εγγραφή που δεν καταφέρατε να καταχωρήσετε προηγουμένως. Γιατί συμβαίνει αυτό που παρατηρείτε; Προσπαθήστε να ενεργοποιήστε εκ νέου τον περιορισμό με την εντολή: ALTER TABLE DEPARTMENTS ENABLE CONSTRAINT UNIQUE_DEPT_FOR_CITY; Ήταν δυνατή η ενεργοποίησή του; Με τη χρήση του όρου NOVALIDATE ένας περιορισμός μπορεί να ενεργοποιηθεί χωρίς να επικυρωθεί με βάση τα υπάρχοντα δεδομένα. Παρόλα αυτά, αν δοκιμάσετε τώρα να εκτελέσετε την εντολή: ALTER TABLE DEPARTMENTS ENABLE NOVALIDATE CONSTRAINT UNIQUE_DEPT_FOR_CITY; θα διαπιστώσετε ότι δεν ενεργοποιήθηκε ο περιορισμός. Πού, κατά τη γνώμη σας, οφείλεται η αποτυχία; Δημιουργήστε το ευρετήριο (index) IDX_DEPT_CITY για τις στήλες (NAME, CITY) και, στη συνέχεια, δοκιμάστε εκ νέου να ενεργοποιήσετε τον περιορισμό: Εικόνα 6.7 Δημιουργία index Μπορείτε να εξηγήσετε γιατί αυτή τη φορά η ενεργοποίηση πέτυχε; Δοκιμάστε τώρα να καταχωρήσετε και τρίτο διπλότυπο με την εντολή: INSERT INTO DEPARTMENTS (ID, NAME, CITY) VALUES (112, 'Informatics', 'Athens'); Είναι δυνατή πλέον η εισαγωγή; Σε ποιες περιπτώσεις μπορεί να είναι χρήσιμη η χρήση του όρου NOVALIDATE;

8 6.6 Ξένα Κλειδιά Αναφέρθηκε νωρίτερα πως κάθε εγγραφή ενός πίνακα προσδιορίζεται από την τιμή του πρωτεύοντος κλειδιού. Διαφορετικοί πίνακες μιας σχεσιακής βάσης δεδομένων μπορούν να συσχετίζονται μεταξύ τους στη βάση τιμών συγκεκριμένων στηλών. Η λειτουργία αυτών των συσχετίσεων καθορίζεται από τον περιορισμό της αναφορικής ακεραιότητας (referential integrity), που ορίζεται στη βάση των τιμών ενός πρωτεύοντος κλειδιού ενός πίνακα (παιδί) και εξασφαλίζει ότι οι τιμές αυτού του κλειδιού ταιριάζουν με τις τιμές σε ένα πεδίο ενός συσχετιζόμενου πίνακα (γονέα) αναφοράς. Οι σχετικοί όροι που χρησιμοποιούνται για τα μέρη που συμμετέχουν σε μια συσχέτιση αναφοράς μεταξύ δυο πινάκων είναι οι εξής: Ξένο κλειδί (Foreign key): Η στήλη ή η ομάδα στηλών που περιλαμβάνεται στον ορισμό του περιορισμού αναφορικής ακεραιότητας, η οποία αναφέρεται σε ένα πρωτεύον κλειδί άλλου πίνακα (αναφοράς). Κλειδί αναφοράς (Referenced key): Tο πρωτεύον κλειδί του πίνακα στο οποίο αναφέρεται το ένα ξένο κλειδί (foreign key) άλλου πίνακα. Πίνακας-παιδί (Child table): Είναι ο πίνακας που περιλαμβάνει το ξένο κλειδί. Πίνακας-γονέας (Referenced / parent table): Ο πίνακας που περιλαμβάνει το πρωτεύον κλειδί στο οποίο αναφέρεται το ξένο κλειδί του πίνακα-παιδιού. Με βάση τις τιμές του πρωτεύοντος κλειδιού αυτού του πίνακα αποφασίζεται αν επιτρέπονται ή όχι εισαγωγές ή ενημερώσεις στον πίνακα-παιδί. Δημιουργήστε ένα ξένο κλειδί στον πίνακα COURSES για τη στήλη DEPARTMENT, το οποίο θα αναφέρεται στη στήλη ID του πίνακα COURSES: ALTER TABLE COURSES ADD CONSTRAINT FK_DEPT FOREIGN KEY (DEPARTMENT) REFERENCES DEPARTMENTS(ID); Δοκιμάστε να διαγράψετε όλα τα δεδομένα του πίνακα DEPARTMENTS με την εντολή DELETE ή να αδειάσετε τον πίνακα με την εντολή TRUNCATE ή ακόμη και να διαγράψετε τον πίνακα με την εντολή DROP: Εικόνα 6.8 Προσπάθεια καταστροφής δεδομένων πίνακα

9 Παρατηρείτε κάποια προβλήματα; Από τι μας προστάτευσε ο περιορισμός της αναφορικής ακεραιότητας (referential integrity); Δοκιμάστε να αλλάξετε το id του τμήματος 101. Εικόνα 6.9 Προσπάθεια τροποποίησης εγγραφής Είναι αυτό δυνατό; Πώς θα μπορούσατε να το πετύχετε χωρίς να διαγράψετε το foreign key; Μπορούμε να καθορίσουμε τη συμπεριφορά ενός ξένου κλειδιού για τις παρακάτω ενέργειες επί του πρωτεύοντος κλειδιού στο οποίο αναφέρονται: ON UPDATE: Όταν γίνεται μια αλλαγή στο πρωτεύον κλειδί αναφοράς. ON DELETE: Όταν γίνεται διαγραφή του πρωτεύοντος κλειδιού αναφοράς. Για τις ενέργειες αυτές το σύστημα μπορεί να συμπεριφέρεται ως ακολούθως: RESTRICT: Απαγορεύεται κάθε ενημέρωση ή διαγραφή του πρωτεύοντος κλειδιού στο οποίο αναφέρεται ένα ξένο κλειδί. NO ACTION: Εκτελείται το ερώτημα και ελέγχεται αν επηρεάζονται πρωτεύοντα κλειδιά αναφοράς. Αν ναι, τότε το ερώτημα απορρίπτεται. CASCADE: Η ενέργεια διαδίδεται στις γραμμές των πινάκων που αναφέρονται αμέσως ή εμμέσως στο πρωτεύον κλειδί που επηρεάστηκε. Δηλαδή, αν ένα πρωτεύον κλειδί άλλαξε τιμή, τότε η αλλαγή γίνεται και σε όλα τα ξένα κλειδιά που αναφέρονται σε αυτό. Ομοίως, κατά τη διαγραφή της γραμμής του πρωτεύοντος κλειδιού, διαγράφονται και όλες οι γραμμές με αναφορές. NULL: Τα ξένα κλειδιά που αναφέρονται στο κλειδί που επηρεάστηκε, παίρνουν την τιμή null. Μελετήστε τη συμπεριφορά για κάθε περίπτωση. Ενδεικτικά, μπορείτε να αναφερθείτε σε σχετική βιβλιογραφία, όπως: Περιορισμοί Ελέγχου Τιμής Οι περιορισμοί ελέγχου τιμής (check constraints) παρέχουν έναν κεντρικό μηχανισμό ελέγχου των τιμών που εισάγονται στα πεδία εγγραφών. Για παράδειγμα, προκειμένου να βρίσκονται μέσα σε ένα σύνολο επιτρεπτών τιμών. Προσθέστε στον πίνακα COURSES τη στήλη active, με την εντολή:

10 ALTER TABLE COURSES ADD (ACTIVE CHAR); Ενεργοποιείστε τον περιορισμό ελέγχου τιμής με την εντολή: ALTER TABLE COURSES ADD (CONSTRAINT check_true_false CHECK (UPPER(active)='T' OR UPPER(active)='F')); Δοκιμάστε να εισάγετε μια διαφορετική τιμή στη στήλη COURSES.ACTIVE. Είναι κάτι τέτοιο δυνατό; Τι αλλαγές θα έπρεπε να κάνετε ώστε το πεδίο courses.department να παίρνει τιμές μεταξύ του 101 και του 200; 6.8 Οριστικοποίηση και Ανάκληση Σε μία σύνοδο (session) όλες οι αλλαγές που προκύπτουν από την εκτέλεση DML εντολών είναι προσωρινές και ισχύουν μόνο για τη συγκεκριμένη σύνοδο. Για να οριστικοποιηθούν (ορισμός savepoint), πρέπει να εκτελεστεί η εντολή commit. Αντίθετα, η εκτέλεση της εντολής rollback ανακαλεί το αποτέλεσμα της εκτέλεσής των εκκρεμών (uncommitted) αλλαγών μέχρι το τελευταίο savepoint: Εκτελέστε την εντολή: commit Διαγράψτε τις εγγραφές του πίνακα COURSES με την εντολή: DELETE FROM TABLE COURSES Πόσες γραμμές (records) έχει τώρα ο πίνακας COURSES; Με ποια εντολή θα σας επιστραφεί ο αριθμός των γραμμών; Εκτελέστε την εντολή: rollback Μετρήστε πόσες γραμμές έχει τώρα ο πίνακας COURSES. Παρατηρήσατε πως καμμιά αλλαγή δεν οριστικοποιείται, αν δεν εκτελεστεί η εντολή commit. Τι συμβαίνει όμως αν κάποιος χρήστης τερματίσει τη σύνοδό του με μη-οριστικοποιημένες τις αλλαγές που έκανε; Εκτελέστε εκ νέου την εντολή: DELETE FROM TABLE COURSES Αποσυνδεθείτε και ξανασυνδεθείτε. Μετά την επανασύνδεση, οριστικοποιήθηκαν οι uncommitted αλλαγές; Βιβλιογραφία Dawes, C., Bryla, B., Johnson, J. C., & Weishan, M. (2006). OCA: Oracle 10g Administration I Study Guide: Exam 1Z Wiley. Fernandez, E. B., Summers, R. C., & Wood, C. (1981). Database Security and Integrity. Addison-Wesley Publishing Company. Horacio, D. Jorge. (2001). Database Integrity: Challenges and Solutions: Challenges and Solutions. Idea Group Inc (IGI).

11 Κριτήρια αξιολόγησης Ερωτήσεις κατανόησης Απαντήστε στις ακόλουθες ερωτήσεις. Κάθε ερώτηση μπορεί να έχει μοναδική ή περισσότερες απαντήσεις. 1. Αντιστοιχίστε κάθε εντολή SQL με την επιμέρους γλώσσα στην οποία ανήκει i. Data Definition Language (DDL) ii. Data Manipulation Language (DML) iii. Data Control Language (DCL) iv. Transaction Control Language (TCL) α) INSERT β) DROP γ) CREATE δ) REVOKE ε) SELECT στ) ALTER ζ) UPDATE η) DELETE θ) TRUNCATE ι) SAVEPOINT 2. Ένα πρωτεύον κλειδί (primary key): α) Δεν μπορεί να έχει τιμή null. β) Δεν έχει μοναδική τιμή σε έναν πίνακα γ) Ορίζεται πάντα σε μια στήλη. δ) Δεν διαφέρει σε τίποτα από ένα UNIQUE KEY σε μια NOT NULL στήλη. 3. Επιλέξτε τις σωστές SQL εντολές: α) CREATE TABLE table_name (column1 NUMBER, CONSTRAINT constraint_name PRIMARY KEY (column1)); β) ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column1); γ) CREATE TABLE table_name (column1 NUMBER PRIMARY KEY); δ) ALTER TABLE table_name ADD CONSTRAINT PRIMARY KEY (column1); 4. Η τιμή null είναι ίση με: α) 0 β) γ) δ) Κανένα από τα παραπάνω. 5. Ένας περιορισμός ακεραιότητας: α) Έχει όνομα. β) Δεν έχει όνομα. γ) Ονοματίζεται πάντα από το σύστημα. δ) Στην περίπτωση που δεν τον ονοματίσουμε, ονοματίζεται από το σύστημα. 6. Ένας περιορισμός μπορεί να είναι: α) DISABLED & NONVALIDATED β) DISABLED & VALIDATED

12 γ) ENABLED & NONVALIDATED δ) ENABLED & VALIDATED 7. Εάν θέλουμε να θέσουμε έναν περιορισμό σε έναν υπάρχοντα πίνακα που περιέχει δεδομένα και να ελέγξουμε ταυτόχρονα τη σωστή τήρησή του από τα δεδομένα που ο πίνακας περιέχει, ο περιορισμός θα πρέπει να είναι: α) DISABLED & NONVALIDATED β) DISABLED & VALIDATED γ) ENABLED & NONVALIDATED δ) ENABLED & VALIDATED 8. Ποια από τις παρακάτω καταστάσεις διασφαλίζει πως η αλλαγή σε μία τιμή στη στήλη του πρωτεύοντος κλειδιού θα ενημερώσει και τα ξένα κλειδιά που αναφέρονται σε αυτό; α) RESTRICT β) NOACTION γ) CASCADE δ) NULL 9. Ένα ξένο κλειδί του πίνακα Β αναφέρεται σε ποιο στοιχείο του πίνακα Α; α) UNIQUE KEY β) AUTOINCREMENT γ) PRIMARY KEY δ) ID 10. Ο χρήστης A συνδέεται από το τερματικό Χ και εκτελεί DROP TABLE T χωρίς να κάνει commit. Ο χρήστης Β από το τερματικό Υ βλέπει: α) Ότι δεν υπάρχει πλέον ο πίνακας Τ. β) Έναν άδειο πίνακα Τ. γ) Τον πίνακα Τ όπως ήταν μετά το τελευταίο commit. δ) Το τελευταίο δικό του savepoint στον πίνακα Τ.

Κεφάλαιο 8. Βασισμένος σε ρόλους έλεγχος πρόσβασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές 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 Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

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

Κεφάλαιο 7. Έλεγχος Πρόσβασης σε Συστήματα Διαχείρισης Βάσεων Δεδομένων

Κεφάλαιο 7. Έλεγχος Πρόσβασης σε Συστήματα Διαχείρισης Βάσεων Δεδομένων Κεφάλαιο 7. Έλεγχος Πρόσβασης σε Συστήματα Διαχείρισης Βάσεων Δεδομένων Σύνοψη Μια βασική αρμοδιότητα σε ένα σύστημα διαχείρισης βάσεων δεδομένων αφορά τη διαχείριση των λογαριασμών χρηστών του συστήματος,

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

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

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

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

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

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

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

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

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

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

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

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

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

Το σχεσιακό μοντέλο βάσεων δεδομένων

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

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

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

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

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

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

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1 Ενεργές ΒΔ Παύλος Εφραιμίδης pefraimi ee.duth.gr Βάσεις Δεδομένων Ενεργές ΒΔ 1 Active Databases Υποστηρίζουν την αυτόματη εκτέλεση ενεργειών όταν συμβούν συγκεκριμένα γεγονότα Ένας διαδεδομένος μηχανισμός

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

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

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

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

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Ενημέρωση Βάσης Δεδομένων (INSERT, UPDATE, DELETE) SQL DCL (GRANT, DENY, REVOKE)

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

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

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

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

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

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

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

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

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

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

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

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

Εργαστήριο 5o. Σχέσεις πινάκων Ακεραιότητα αναφορών. Ευάγγελος Γ. Καραπιδάκης

Εργαστήριο 5o. Σχέσεις πινάκων Ακεραιότητα αναφορών. Ευάγγελος Γ. Καραπιδάκης Εργαστήριο 5o Σχέσεις πινάκων Ακεραιότητα αναφορών Σχέσεις Συσχετίσεις - Relations Οι συσχετίσεις (σχέσεις) μεταξύ των πινάκων ορίζουν τον τρόπο με τον οποίο συνδέονται μεταξύ τους οι πίνακες. Ορίζονται

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

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

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

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

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα 1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter ) Department of Computer Science University of Cyprus EPL342 Databases Lecture 8: RM II Relational Model (Chapter 5.2-5.3) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342 8-1 Περιεχόμενο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Βάσεις Δεδομένων Ενότητα 6: Γλώσσα Structured Query Language -SQL Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 4/2/2009 Δικαιώματα χρηστών - Προβολές (Views) ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ MYSQL queries results mysql host DB server queries results Client host Β Δ Ηχρήσητηςmysql βασίζεται

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

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

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

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Β) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

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

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

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

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

Παράδειγμα 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχεία και Βάσεις Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 11η: Περιορισμοί Ακεραιότητας - Κανονικές Μορφές Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Αποτελούν μηχανισμό για τον

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή

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

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

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

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

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

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

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

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

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

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

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2 Η Γλώσσα SQL (Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα

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

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Εισαγωγή στη χρήση της γλώσσας SQL και στον προγραμματισμό εφαρμογών βάσεων δεδομένων Θα χρησιμοποιήσουμε το Σχεσιακό Σύστημα (προϊόν)

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

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

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

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

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ... sname rating age Dustin 7 45.0 29 Brutus 1 33.0 Lubber 8 55.5 32 Andy 8 25.5 58 Rusty 10 35.0 64 Horatio 7 35.0 71 Zorba 10 16.0 74 Horatio 9 35.0 85 Art 3 25.5 95 Bob 3 63.5 day 101 10/10/98 102 10/10/98

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

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

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

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

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

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

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

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

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

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Η SQL ως γλώσσα τροποποίησης Δεδομένων Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης

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

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

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

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

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

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

Το Σχεσιακό μοντέλο και η γλώσσα SQL

Το Σχεσιακό μοντέλο και η γλώσσα SQL Το Σχεσιακό μοντέλο και η γλώσσα SQL Μανόλης Γεργατσούλης (manolis@ionio.gr) Αναπληρωτής Καθηγητής Ομάδα Βάσεων Δεδομένων και Πληροφοριακών Συστημάτων, Τμήμα Αρχειονομίας Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο

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

Διάλεξη 02: Βάσεις Δεδομένων Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 02: Βάσεις Δεδομένων Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 02: Βάσεις Δεδομένων Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Αρχιτεκτονική Τριών Επιπέδων Χρήστες Βάσεων Δεδομένων Μοντέλα Δεδομένων και Γλώσσες

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

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

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

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

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

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

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

10 η Διάλεξη Python Βάσεις δεδομένων στη python

10 η Διάλεξη Python Βάσεις δεδομένων στη python 10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων

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

Η Γλώσσα SQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

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

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

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples Ξένου Ρουμπίνη 1 SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων.

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

DELETE, UPDATE, INSERT.

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

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

SQL: Συναρτήσεις Συνάθροισης

SQL: Συναρτήσεις Συνάθροισης SQL: Συναρτήσεις Συνάθροισης Συναρτήσεις Συνάθροισης (Aggregate Functions) Εφαρμόζονται πάνω σε σύνολα τιμών γνωρισμάτων. count, max, min, avg, sum Περιορισμοί: η συνάρτηση count μπορεί να εφαρμοστεί σε

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

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές Εργαστήριο Βάσεων Δεδομένων Δικαιώματα Χρηστών Προβολές Επικοινωνία με MySQL mysql host DB server queries results Client host Β Δ Η χρήση της mysql βασίζεται στο μοντέλο client server Remote access to

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

DELETE, UPDATE, INSERT

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

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

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

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

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

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

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

Εισαγωγή στις Βάσεις Δεδομζνων II

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Το Σχεσιακό Μοντζλο Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες Χρήσης Το

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

Επίλυση προβλήματος με Access

Επίλυση προβλήματος με Access Δ.1. Το προς επίλυση πρόβλημα Ζητείται να κατασκευάσετε τα αρχεία και τα προγράμματα μιας εφαρμογής καταχώρησης Δαπανών μελών ΔΕΠ (Διδακτικό και Ερευνητικό Προσωπικό) για την παρακολούθηση του απολογισμού

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

«Εισαγωγή στις ΒΔ - SQL»

«Εισαγωγή στις ΒΔ - SQL» «Εισαγωγή στις ΒΔ - SQL» Κωνσταντίνος Λουκάς Εργαστήριο Ιατρικής Φυσικής Ιατρική Σχολή ΕΚΠΑ e-mail: cloukas@med.uoa.gr Περίγραμμα Παρουσίασης Εισαγωγικά Από τι αποτελείται μια ΒΔ Πως οργανώνεται, σχεδιάζεται

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος cman@unipi.gr Το ευρετήριο (index) είναι ένα αντικείμενο δεδομένων μέσα στη βάση δεδομένων που καταγράφει τις γραμμές

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

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

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

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

1.1 Ανάλυση απαιτήσεων του Υποσυστήματος Μητρώου Εταιρειών Μ.Μ.Ε Ανάλυση απαιτήσεων του Υποσυστήματος Ελέγχου τήρησης μη

1.1 Ανάλυση απαιτήσεων του Υποσυστήματος Μητρώου Εταιρειών Μ.Μ.Ε Ανάλυση απαιτήσεων του Υποσυστήματος Ελέγχου τήρησης μη Πίνακας Περιεχομένων 1 Ανάλυση Απαιτήσεων Πληροφοριακού Συστήματος... 3 1.1 Ανάλυση απαιτήσεων του Υποσυστήματος Μητρώου Εταιρειών Μ.Μ.Ε.. 3 1.2 Ανάλυση απαιτήσεων του Υποσυστήματος Ελέγχου τήρησης μη

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφ 4: Προχωρημένες Εντολές SQL

Κεφ 4: Προχωρημένες Εντολές SQL Κεφ 4: Προχωρημένες Εντολές SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Σύνδεση σχέσεων (join) Οι λειτουργίες Join παίρνουν ως είσοδο δυο σχέσεις και επιστρέφουν

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

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

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

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

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Απρίλιος 2007 1 Περιεχόμενα Εισαγωγή...2

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

Εργαστήριο Βάσεων Δεδομένων. 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

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

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

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data

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