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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Βάσεις Περιβαλλοντικών Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Βάσεις Δεδομένων Ι. Παραδείγματα. Γεώργιος Ευαγγελίδης, Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

Λογιστικές Εφαρμογές Εργαστήριο

Οικονομικά Μαθηματικά

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

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

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

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

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

Ιστορία της μετάφρασης

Μικροβιολογία & Υγιεινή Τροφίμων

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αυτοματοποιημένη χαρτογραφία

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Μοντελοποίηση Λογικών Κυκλωμάτων

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Διδακτική της Πληροφορικής

Οικονομικά Μαθηματικά

Οικονομικά Μαθηματικά

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διαδικαστικός Προγραμματισμός

Εκκλησιαστικό Δίκαιο

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Υδραυλικά & Πνευματικά ΣΑΕ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Οικονομικά Μαθηματικά Ενότητα 11: Δείκτης Κερδοφορίας

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Υπολογιστικά & Διακριτά Μαθηματικά

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Εισαγωγή στη διδακτική των γλωσσών Ασκήσεις

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εκκλησιαστικό Δίκαιο

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Εκτίμηση Περιβαλλοντικών Επιπτώσεων

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

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στους Αλγορίθμους

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 11: Λογική πρώτης τάξης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

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

Θεωρία Πιθανοτήτων & Στατιστική

Υπολογιστικά Συστήματα

Θεωρία Πιθανοτήτων & Στατιστική

Αυτοματοποιημένη χαρτογραφία

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

Μάρκετινγκ Αγροτικών Προϊόντων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 10: Εισαγωγικά περί κανονικοποίησης Συναρτησιακές εξαρτήσεις BCNF. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Μαθηματικά. Ενότητα 9: Όριο Συνάρτησης στο Διηνεκές. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

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

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Αρχές Χρηματοοικονομικής

Παράκτια Τεχνικά Έργα

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

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

Transcript:

Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Μέρος 1 Περιορισμοί (Constraints) 4

Γενικά περί περιορισμών Γνωστοί και ως περιορισμοί ακεραιότητας (integrity constraints). Υπάρχουν στο standard της SQL. Κανένα DBMS δεν τους υλοποιεί πλήρως. Σπάνια δυο διαφορετικά DBMS συμφωνούν πλήρως στις υλοποιήσεις τους... Σκοπός τους είναι να περιορίσουν τις επιτρεπτές καταστάσεις μιας βάσης δεδομένων. 5

Παραδείγματα περιορισμών Στη βάση cdbase: 0 < track.pos <= 99 cd.year >= 1900 or null performer.dob >= cd.year στην περίπτωση που υπάρχει στο cd track που ερμηνεύει ο συγκεκριμένος performer 6

Χρήση περιορισμών Για επιβολή περιορισμών επιπλέον αυτών που προκύπτουν από τη δομή και τα πεδία ορισμού. Για αποφυγή λαθών στην εισαγωγή δεδομένων. Για έλεγχο ορθότητας όταν τροποποιούνται τα δεδομένα. Για επιβολή συνέπειας. Για να ξέρει το σύστημα τη φύση των δεδομένων. 7

Τύποι περιορισμών Non-Null. Κλειδιού (primary, unique). Αναφορικής ακεραιότητας (αλλιώς ξένου κλειδιού). Πάνω σε πεδίο. Πάνω σε εγγραφή. Γενικοί ισχυρισμοί (general assertions). 8

Δήλωση/Επιβολή περιορισμών Πότε δηλώνονται: Κατά τη δήλωση των πινάκων (create table). Αργότερα με ανεξάρτητη δήλωση. Πώς επιβάλλονται: Κάθε φορά που υπάρχει κάποια τροποποίηση. Μετά από μια ομάδα τροποποιήσεων (deferred checking). 9

Μέρος 2 Εναύσματα (Triggers) 10

Γενικά περί εναυσμάτων Παρακολουθούν τις τροποποιήσεις που συμβαίνουν στη βάση δεδομένων, ελέγχουν συνθήκες και εκτελούν ενέργειες. Είναι της μορφής: event-condition-action. 11

Παραδείγματα εναυσμάτων Αν τροποποιηθεί το έτος γέννησης ενός ερμηνευτή και είναι πλέον μεγαλύτερο από το έτος κυκλοφορίας κάποιου cd στο οποίο συμμετέχει, κάνε το έτος γέννησης NULL. Αν εισαχθεί ένα νέο track σε ένα cd και η τιμή του pos είναι τέτοια ώστε να μην υπάρχουν για το cd αυτό όλες οι προηγούμενες τιμές από το 0 ως το pos-1, σήμανε λάθος. 12

Χρήση εναυσμάτων Για να μεταφέρουμε μέρος της επιχειρησιακής λογικής από την εφαρμογή στο DBMS. Για να επιβάλλουμε (υλοποιήσουμε) περιορισμούς (constraints). Δυστυχώς, υπάρχουν μεγάλες διαφορές στις υλοποιήσεις στα διάφορα DMBS (ακόμα και όσον αφορά στη συμφωνία με το standard της SQL). 13

Εναύσματα στην SQL Create trigger name Before After Instead Of events [referencing-variables] [For Each Row] When (condition) action 14

Εναύσματα στην SQL Create trigger name Before After Instead Of events [referencing-variables] [For Each Row] When (condition) action events: insert, delete, update on table condition: όπως στην where action: μπλοκ sql εντολών referencing variables: old row as var1, new table as var2 15

Τέλος Ενότητας